Выбор разрешения и битпотока

Если Вы не собираетесь кодировать в режиме постоянного квантователя, Вам нужно выбрать битпоток. Понятие битпотока очень просто: это среднее число битов, которые будут использованы для сохранения Вашего фильма, в секунду. Обычно битпоток измеряется в килобитах (1000 бит) в секунду. Размер Вашего фильма на диске есть битпоток, умноженный на длительность фильма, плюс небольшие накладные расходы (см. раздел контейнер AVI для примера). Остальные параметры, такие как масштабирование, усечение и т.п. не изменят размер файла, пока Вы также не измените битпоток!

Битпоток изменяется не пропорционально разрешению. То есть файл разрешением 320х240 с 200 кбит/сек не будет того же качества, что этот же фильм разрешением 640х480 и 800 кбит/сек! Для этого есть две причины:

  1. Восприятие: Вы сильнее замечаете MPEG артефакты, если они больше! Артефакты возникают на масштабе блоков (8х8). Ваш глаз не увидит ошибки в 4800 маленьких блоков так же легко, как и в 1200 больших блоков (предполагая масштабирование обоих фильмов на полный экран).
  2. Теоретическая: Когда Вы уменьшаете размер изображения, но продолжаете использовать блоки того же размера (8х8) для пространственных частотных преобразований, Вы перемещаете больше данных в высокочастотные полосы. Грубо говоря, каждый пиксель содержит больше деталей, чем раньше. Так что несмотря на то, что Ваша картинка с уменьшенным масштабом содержит 1/4 информации в пространственных направлениях, она всё ещё может содержать большУю часть информации в частотных интервалах (предполагая, что высокие частоты были не использованы в оригинальном 640х480 изображении).

Последние руководства рекомендовали выбор битпотока и разрешения, основываясь на приближении "бит на пиксель", но это обычно не верно из-за упомянутых выше причин. Похоже, лучшей оценкой является рост битпотока пропорционально квадратному корню разрешения, так что 320х240 и 400 кбит/сек должно быть сравнимо с 640х480 и 800 кбит/сек. Однако, это не было строго проверено теоретически или эмпирически. Кроме того, из-за существенного отличия фильмов по уровню шума, деталей, количества движения и т.п., тщетно давать общие рекомендации для "битов на длину диагонали" (аналог битов на пиксель, используя квадратный корень).

Таким образом, мы обсудили сложность выбора битпотока и разрешения.

Расчёт разрешения

Следующие шаги помогут Вам рассчитать разрешение для Вашего кодирования без слишком сильного искажения видео, учитывая несколько видов информации об исходном видео. Прежде всего, Вам необходимо рассчитать коэффициент соотношения сторон для кодированного видео: ARc = (Wc x (ARa / PRdvd)) / Hc

где:

  • Wc и Hc — ширина и высота усечённого видео,
  • ARa — коэффициент соотношения сторон изображения, обычно 4/3 или 16/9,
  • PRdvd — отношение пикселей DVD, что равно 1.25=(720/576) для PAL DVD и 1.5=(720/480) для NTSC DVD.

Затем Вы можете рассчитать разрешение по X и Y, согласно определённому фактору качества сжатия (CQ): ResY = INT(SQRT(1000*Битпоток/25/ARc/CQ)/16) * 16 и ResX = INT(ResY * ARc / 16) * 16.

Хорошо, но что такое CQ? CQ соответствует числу битов на пиксель и на кадр для кодирования. Грубо говоря, чем больше CQ, тем меньше вероятность увидеть артефакты кодирования. Однако, если у Вас есть заданный размер для Вашего фильма (например, 1 или 2 CD), есть ограниченное общее число битов, которые Вы можете потратить; поэтому важно найти хороший компромисс между сжимаемостью и качеством.

CQ зависит от битпотока, эффективности видеокодека и разрешения фильма. Обычно, в целях увеличения CQ, Вам нужно будет уменьшить размер фильма, при условии, что битпоток, вычисленный как функция конечного размера, и длина фильма постоянны. С MPEG-4 ASP кодеками, такими как Xvid и libavcodec, CQ меньше 0.18 обычно приводит к изображению с большим числом сегментов "квадратиками", из-за недостаточного числа битов для кодирования информации в каждом макроблоке. (MPEG4, как и многие другие кодеки, группирует пиксели в блоки по несколько пикселей для сжатия изображения; если битов не хватает, границы этих блоков заметны.) Следовательно, благоразумно выбрать CQ в диапазоне от 0.20 до 0.22 для рипа на 1 CD и 0.26-0.28 для рипа на 2 CD при использовании стандартных опций кодирования. Более продвинутые опции кодирования, такие как указанные для libavcodec и Xvid должны сделать возможным получение того же качества с CQ в диапазоне от 0.18 до 0.20 для рипа на 1 CD и 0.24-0.26 для рипа на 2 CD. Используя MPEG-4 AVC кодеки, такие как x264, Вы можете использовать CQ в диапазоне от 0.14 до 0.16 со стандартными опциями кодирования и должны суметь достичь таких низких значений, как 0.10 — 0.12 с помощью продвинутых опций кодирования x264.

Пожалуйста, обратите внимание, что CQ — лишь показательная величина, т.к. она зависит от кодируемого содержимого; CQ 0.18 может хорошо смотреться для Бергмана (Bergman), в отличии от такого фильма как Матрица (The Matrix), содержащего много сцен с быстрым движением. С другой стороны, бесполезно увеличивать CQ выше 0.30, т.к. Вы будете тратить биты без заметного увеличения качества. Так же обратите внимание, что, как было указано выше в данном руководстве, фильмам с низким разрешением (например, по сравнению с DVD) необходим более высокий CQ для того, чтоб они выглядели хорошо.

Фильтрация

Изучение использования видео фильтров MEncoder важно для получения хороших результатов кодирования. Вся обработка видео выполняется посредством фильтров: усечение, масштабирование, подстройка цвета, удаление шума, увеличение чёткости, деинтерлейс (преобразование видео из чересстрочной развёртки в построчную), телесин, обратный телесин и удаление блочной сегментации — и это лишь некоторые из них. Вместе с огромным количеством поддерживаемых входных форматов, разнообразие фильтров, доступных в MEncoder, является одним из его основных достоинств над другими аналогичными программами.

Фильтры загружаются в цепочку с помощью опции -vf:

-vf фильтр1=опции,фильтр2=опции,...

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

Фильтры действуют на видео в порядке их загрузки. Например, следующая цепочка:

-vf crop=688:464:12:4,scale=640:464

сперва усечёт область изображения до 688х464 с верхним левым углом (12,4), а затем масштабирует результат до 640х464.

Некоторые фильтры нужно загружать в начале цепочки фильтров (или рядом с ним) с целью получения преимущества от использования информации после видеодекодера, которая будет потеряна или искажена другими фильтрами. Важнейшими примерами являются: pp (постобработка, только при выполнении операций удаления блочной сегментации (deblocking) или увеличения чёткости краёв (deringing)), spp (другой фильтр постобработки, служащий для удаления артефактов MPEG), pullup (обратный телесин), и softpulldown (для преобразования мягкого телесина в жёсткий).

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

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

Однако, есть одна вещь, которую Вы, быть может, захотите сделать — это пропустить видео через очень слабый фильтр удаления шумов, такой как -vf hqdn3d=2:1:2. Ещё раз, причиной этому является то, что этим битам можно найти лучшее применение: зачем тратить их, кодируя шум, если Вы просто можете вернуть этот шум в процессе воспроизведения? Увеличение параметров для hqdn3d дополнительно улучшит сжимаемость, но увеличив значения слишком сильно, Вы рискуете ухудшить различимость изображения. Рекомендованные выше значения (2:1:2) слегка консервативны; не бойтесь экспериментировать с более высокими значениями и самостоятельно оценивать результаты.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: