59 subscribers
27 photos
2 videos
31 files
5 links
Видеомонтаж, цветокоррекция, нытье. Обучаю. Автор — @alex_burato
Download Telegram
Вы только посмотрите на этого красавца, автора канала!😏

Специально отключил дизеринг, чтобы фотошоп не улучшал картинку, которую я умышленно ухудшаю :)

По порядку идут фото сначала в оттенках серого:

1 бит, 2 цвета
2 бита, 4 цвета
3 бита, 8 цветов

Затем с RGB-оттенками:

3 бита, 8 цветов (кровь из глаз)
4 бита, 16 цветов
8 бит, 256 цветов
24 бита, 16 777 216 цветов (неповторимый оригинал)

Обратите внимание, что последние две фотографии почти неотличимы, нужно присматриваться к самым контрастным частям изображения, чтобы увидеть, что оттенков не хватает. То есть 256 цветов нам почти хватает для неплохой картинки!
👍1
И то же самое отправлю файлами, чтобы телеграм не улучшал без спроса качество зашакаленных картинок :)
Вот вы спросите: «да какая польза от твоих этих ффмпегов?»

А вот только за сегодня было два случая, когда он помог:

1. Человек, работающий с видео довольно опосредованно, смог сильно сжать видео без особой потери качества (Premiere Pro и всякие ноунейм конвертеры сильно шакалили картинку)

2. Шот, прилетевший от фрилансера и записанный в непонятный для Adobe кодек, был оперативно пережат в ProRes.

Так-то!

#ffmpeg
🦄31
Давайте разбираться с темой, будоражащей умы миллионов людей во всем мире! Речь конечно же о цветовой субдискретизации.

Это невыговариваемое словосочетание в английском звучит поприятнее — chroma subsampling. Откуда вообще это пошло, и зачем монтажеру оно надо?

Дело в том, что человеческий глаз воспринимает свет лучше цвета, мы прекрасно можем смотреть чёрно-белые фильмы и картинки, легко считывая образы. К цветам мы не так восприимчивы, поэтому здесь появляется возможность немного схитрить и сжать видеопоток незаметно для зрителя. Это достигается путем уменьшения количества цветовой информации от одного блока пикселей к другому, а вот уменьшить это количество информации можно как раз субдискретизацией, то есть снижением цветового разрешения. Пока что звучит сложно, но дальше будут картинки!

🎬Для начала немного важных фактов: видео в абсолютном большинстве случаев хранится не в пространстве RGB, а в цветоразностном пространстве YCbCr. Это делается для экономии места. То есть мы не описываем каждый пиксель тремя значениями R, G и B, а вместо этого используем другие три значения: Y (яркость), Cb и Cr (цветоразностный сигнал для синего и красного цветов). Перевести значение RGB в YCbCr и наоборот можно через специальные формулы (чем и занимаются кодек и декодер).


Теперь о том, как это работает.

Как я написал выше, мы используем видеосигнал в пространстве YCbCr. Чаще всего цветовую субдискретизацию представляют в виде трех компонент: Jab, где J — горизонтальный размер зоны, которую мы "сжимаем", a — число семплов первой строки, b — число цветовых изменений между первой и второй строками. Посмотрите на картинку ниже, так будет намного понятнее. Читать эту краденную с Википедии иллюстрацию удобнее снизу вверх.

🧐Итак, левое изображение: если мы принимаем значения a и b равными 1, то цветовая составляющая 4 пикселей по горизонтали становится одинаковой для всей первой строки (нижний уровень). Для второй строки аналогично. Затем, при добавлении яркостной компоненты (средний уровень) мы получаем изображение нашего семпла, называемого 4:1:1 (верхний уровень). Здесь горизонтальное цветовое разрешение в четыре раза ниже, чем если бы мы не сжимали видеопоток.

🧐Теперь смотрим правее. Здесь a = 2, b = 0. То есть верхняя строка состоит из двух разных оттенков, а нижняя просто дублирует верхнюю. При добавлении яркостной компоненты получаем семпл 4:2:0. Горизонтальное и вертикальное цветовые разрешения сжаты вдвое.

🧐Средняя картинка показывает формирование семпла цветовой субдискретизации 4:2:2 для a = 2 и b = 2, то есть теперь у нас 4 цветовых семпла, которые при наложении яркостной составляющей дадут более точное изображение. Горизонтальное разрешение сжато вдвое.

🧐Четвертую картинку попробуйте проанализировать сами (но учтите, что такой формат субдискретизации почти не используется, я вообще ни разу такого не видел🤓).

🧐А вот самое интересное — это последняя картинка с дискретизацией 4:4:4. Цвета здесь не пережимаются, на выходе мы имеем для нашего региона 4x2 пикселя все пиксели, несущие информацию, заложенную в видео с самого начала. Никаких фокусов и искажений цвета. Но тут и субдискретизации нет :)

Продолжение после картинки!
Зачем нам это все-таки, а?

🎬Все просто: при работе с видео часто возникает проблема пережатия исходного материала, чтобы с ним можно было комфортно работать всем департаментам. Здесь речь и о CG, и о цветокоррекции. Если исходный материал с субдискретизацией 4:2:2, то зачастую нет смысла отдавать его дальше по пайплайну в 4:4:4, а если исходники в 4:4:4, то нужно договориться с человеком, который будет работать с графикой, нужен ли ему материал в 4:4:4 или достаточно будет 4:2:2.

Отмечу, что телефоны и недорогие потребительские камеры снимают чаще всего в 4:2:0, чего недостаточно для нормальной работы с цветом и всякими тонкими вещами вроде ротоскопа, и перекодировние в ProRes 422HQ не улучшит качество, информации неоткуда взяться :)

Из очевидных плюсов цветовой субдискретизации (потерпите, немного осталось читать это словосочетание) можно выделить следующие:

Сжатие потока, то есть экономия места на диске и пониженные требования к ширине интернет-канала при прямых трансляциях. В идеале это выглядит так (на практике обычно сильно иначе):

444 занимает 1 ГБ
422 занимает 683 МБ (на треть меньше)
420 занимает 512 МБ (вдвое меньше)

Совместимость со многими устройствами и поддержка разных кодеков.

Минусы тоже есть:

Могут появиться видимые артефакты сжатия, пропасть детали.

Снижается гибкость работы с материалом в CG-департаменте.

Снижается динамический диапазон видеосигнала.


🎬Еще пара замечаний.

Есть еще важное уточнение об альфа-канале, то есть канале прозрачности. Он добавляет нам еще одну цифру в формат цветовой субдискретизации, в самый конец. И 4:4:4 превращается в 4:4:4:4! В подавляющем большинстве случаев вы будете сталкиваться именно с таким форматом субдискретизации, когда речь будет заходить об альфе, и чаще всего это будет ProRes 4444XQ.

❗️Не забывайте, что сжимая материал в угоду экономии места, мы можем получить проблемы в пайплайне, так как какому-либо департаменту может не хватить качества видео для нормальной работы. Обычно считается хорошим тоном хранить исходный материал в максимальном качестве, как снято, плюс пересчитывать его в монтажный кодек, что дает огромный прирост в скорости монтажа, а зачастую монтажного кодека еще и хватает для работы в других департаментах. Да, это отнимает место, но зато избавляет от лишней головной боли по ходу работы над проектом.

Ищите баланс!

#воркфлоу #цветоваясубдискретизация
5
Сейчас расскажу про довольно частую вещь, которую не все принимают во внимание. Пиксель не всегда квадратный.

🎬Да, мы привыкли к тому, что у нас есть наши 1920x1080, соотношение сторон пикселя (на которое вообще никто не смотрит) тут 1.0, то есть высота и ширина пикселя одинаковы. Но так не всегда и не везде. Есть два основных направления использования неквадратного пикселя.


1. Древние (но все еще живые) стандарты ТВ.

Если вы когда-то что-то готовили для телевидения, особенно регионального, то сталкивались с DV PAL, где разрешение составляет 720x576, но при этом в него вписываются два соотношения сторон: 16:9 и 4:3. Как так?

Поскольку развитие видео идет и всегда шло рука об руку вместе с проблемой сжатия данных, особенно когда дело касается телевидения, вполне логично, что раньше в ТВ-трансляциях пытались передать как можно больше информации как можно меньшим потоком. Стандарт PAL не исключение. Помимо использования прогрессивной развертки (о ней напишу в следующих постах), соотношение сторон пикселя (PAR — pixel aspect ratio) тоже решили изменить. Давайте посчитаем.

Для 720x576 с соотношением сторон 4:3

720/576 = 1,25
4/3 = 1,33

1,33/1,25 = 1,067

🧐Что отсюда можно понять?
Мы втискиваем в более узкий по горизонтали формат 4:3 наш более широкий видос, сжимая также по горизонтали пиксель. При вещании видео растягивается обратно.

Для 720x576 с соотношением сторон 16:9

720/576 = 1,25
4/3 = 1,78

1,78/1,25 = 1,422

Здесь аналогично: более широкий формат сживается по горизонтали, чтобы быть втиснутым в узкий канал разрешения. А потом мы это видео точно так же растягиваем в 16:9.

❗️При этом нужно заметить, что размеры пикселя для DV PAL в настройках секвенций в Premiere Pro почему-то отличаются, там используются значения 1,094 и 1,4587, но это тянется уже много лет, все на это давно забили, потому что ну зачем нам тратить ресурсы на умирающий формат. Но лучше об этом помнить на всякий случай.

❗️Ну и да, нам это менее актуально, но в западных странах такая же ерунда со стандартом NTSC, только там другие разрешения и PAR. Также очень редко встречаются нестандартные материалы вроде DVCPRO HD или что-то похожее, где PAR обычно 1,33 или 1,5. Это тоже не стоит забывать.


2. Анаморфотные объективы и насадки.

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

🤩К счастью, монтажные программы прекрасно понимают неквадратный пиксель, сразу разворачивают видео до нужного размера (при условии, что соотношение сторон прописано в метадате). Но для нас как монтажеров важно не забывать проверять размер пикселя в настройках наших сорсов. Особенно при передаче их в графику, поскольку при этом часто метадата не прописывается.


🎬Как это сделать?

Очень просто: в Premiere Pro советую включить Preview Area (прям насовсем включите), чтобы видеть краткую сводку по выделенному сорсу, либо вытащить вкладку Video Info в панели метадаты куда-то на видное место. В DaVinci Resolve в Media Pool нужно кликнуть ПКМ по панели метаданных и поставить галочку напротив PAR.

#пиксель
👀4