Я смотрю аниме

В этой небольшой заметке я хотела бы рассказать вам, что смотреть аниме можно так, как вы себе и не представляете.

Я смотрю аниме

Я думаю, многие встречали в описании к видео такую характеристику, как глубина цвета изображения, выраженная в битах (bit) — чаще всего это 10bit или 8bit, т.е. — это буквально количество бит, которое используется для хранения интенсивности каждого цвета. Ещё эта величина называется битовой глубиной.

Большинство из нас привыкло к тому, что изображения описываются в цветовом пространстве RGB.

RGB имеет 3 канала — красный, зеленый и синий. Вместе они определяют цвет и яркость каждого пикселя. Сложив информацию для каждого пикселя мы получим приближенное представление исходного изображения на своём мониторе.

Я смотрю аниме

На деле всё, конечно, немного сложнее, потому что любое сжатие информации подразумевает, что часть исходной информации будет утеряна.

Всё верно, без возможности восстановления.

Подход к сжатию изображений основывается на алгоритмах, которые со временем не претерпели существенных изменений. Также как и в JPEG, изображение, для возможности его лучшего анализа, разбивают на небольшие зоны (обычно это квадраты 8x8) — т.е. дискретизируют, также и в современных алгоритмах сжатия применяют аналогичный способ, MPEG — точно также дискретизирует изображение, чтобы потом обработать

Конечно, с видеокодеками всё намного сложнее, потому что, одно дело сжимать статичное изображение, а совершенно другое дело сжимать последовательность изображений.

Дискретное косинусное преобразование, компенсация движения — это те вещи, о которых я тут рассказывать не буду.

Поэтому для передачи видеосигналов используется совершенно другой подход, основанный на особенности человеческого зрения, которое чувствительно к изменению яркости лучше, чем к изменению цвета.

<i>Особенность восприятия человеком цвета и яркости. Яркость - как ключевой компонент цвета.</i>
Особенность восприятия человеком цвета и яркости. Яркость - как ключевой компонент цвета.

Думаю, многие, в описании к видео видели странное сочетание букв — YCbCr.

По факту, YCbCr — это одна из разновидностей представления цветового пространства YUV — модели, где вместо привычных нам разделений на цвета, используется подход с разделением исходного цвета с использованием яркости (Y), как одного из компонентов и, также, компонентов Cb — насыщенный синий и Cr — насыщенный красный.

Насыщенность в данном случае означает, что из исходных цветовых каналов была вычтена компонента яркости. Поэтому компоненты Cb и Cr обычно называются цветоразностными сигналами.

Такой способ намного более эффективный для видео, потому что позволяет кодировать изображение c уменьшением разрешения в каналах передающих значения цвета, при сохранении разрешения в канале яркости, т.е. удаляю лишнюю информацию из-за особенностей восприятия цвета человеком.

Значения, которые показывают нам, насколько можно снизить разрешение цветности называется — цветовой субдискретизацией (англ. Chroma subsampling).

Если совсем по простому, то, в данном случае, значения интенсивности цвета накладывается на значения интенсивности яркости для каждого пикселя, что позволяет восстановить его исходный цвет.

Обычно указывается формат субдискретизации: 4:4:4, 4:2:2, 4:2:0, 4:2:1, что, по факту, означает, с каким разрешением мы восстанавливаем исходный цвет — чем ниже значение выборки цветоразностных сигналов, тем ниже точность представления исходного изображения.

Легко заметить, что выборка по значениям яркости всегда постоянна, а вот для цветоразностных сигналов выборка изменяется в зависимости от формата, например, 4:4:4 — это, по факту, привычное нам RGB, а у 4:2:2 цветовое разрешение уменьшается вдвое.

<i>Понял что-то? Скорее всего нихуя, но это не особо и важно.</i>
Понял что-то? Скорее всего нихуя, но это не особо и важно.

Потому что сейчас мы от бесполезной информации перейдём к полезной её реализации на практике, а именно к тому, как видеоплееры отображают всю эту информацию на твоём экране.

Если исходное разрешение изображения видео совпадает с разрешением твоего устройства, отображающего данные, то всё, скорее всего хорошо (и это мы ещё не рассматриваем HDR), но, например, как это часто бывает, в случае воспроизведения аниме, исходное разрешение видео всегда меньше разрешения твоего экрана.

И тут в игру вступают алгоритмы масштабирования изображения. Поэтому я использую — madVR, который имеет возможность использовать довольно точные алгоритмы масштабирования изображения.

Но, как ты понимаешь, madVR — это, по сути, просто рендер, и без видеоплеера его использовать невозможно. Наверное, кто-то ещё помнит — Media Player Classic, немного странный плеер с открытым исходным кодом, поддержка которого была прекращена в 2017 году.

Казалось, что его история на этом и закончилась, но нашлись энтузиасты, которые вяло, но всё же поддерживают его актуальность — новых, глобальных функций не добавят, но здесь скорее вопрос в том, что ещё можно добавить в видеоплеер, который изначально поддерживал кастомизацию и использовал открытые библиотеки декодирования информации. Библиотек, которые стабильно обновляются и по сегодняшний день.

Поэтому, пока ты смотришь потоковое видео с битрейтом, съедающим все нюансы, я, как настоящая душевнобольная, продолжаю использовать связку MPC-HC + madVR + XySubFilter:

Актуальную версию форка MPC спокойно можно скачать с гитхаба по следующей ссылочке:

Устанавливаем его, но не запускаем, потому что следующим шагом необходимо скачать сам madVR:

Архив, лучше всего распаковать в корень диска C:\madVR, тыкунть на install.bat и успешно его установить.

Следующим шагом скачиваем XySubFilter — плагин для точного отображения субтитров:

Архив распаковываем в папку с madVR, тыкаем на Install_XySubFilter.bat и радуемся, что на этом наши мучения ещё даже и не думают закончиться:Р

Запускаем MPC-HC, нажимаем клавишу O (англ. раскладка или Вид>Настройки) и настраиваем всё в соответствии с изображение ниже:

Я смотрю аниме

Поздравляю! Вы умнички:) Но, если тебе кажется, что заячья нора ещё не настолько глубока, то запускай любое видео, жми правую клавишу и тыкай в "Фильтры>madVR>Edit settings".

Добро пожаловать в меню тонкой настройки рендера madVR. Здесь нас интересует только пункты, связанные с scaling algorithms.

Для image downscaling и Image upscaling выбираем DXVA, который позволяет нам задействовать аппаратное ускорение при помощи твоей видеокарты (GPU)

А вот с chroma upscaling всё сложнее, потому что в данном случае, качество будет напрямую зависеть от мощности твоего железа.

Я советую использовать следующие алгоритмы: Lanczos, Jinc или NGU. Конечно, лучше вообще эти настройки не трогать, но если уж вы туда полезли, то советую, после каждого изменения нажимать Ctrl+J и пристально наблюдать за значением — Dropped frames.

Я смотрю аниме

Единственная проблема, с которой вы столкнётесь — воспроизведение HDR.

Вадим, как там твой телевизор?

198198
193 комментария

Кто найдёт ошибки - тот умничка, я это не могу перечитать, по довольно простой причине - я упилась винишком, ихихихихиииии:Р

46
Ответить

Я нихуя не понял

62
Ответить

А ты думал аниме для дэбилов?
Тут думать надо, особенно в моменте когда его включаешь

56
Ответить

За инструменты плюс, за аниме – минус.
В целом вынужденный нейтралитет.

19
Ответить