Видео-форматы, видео-кодеки, видео-контейнеры. Видео-форматы, видео-кодеки, видео-контейнеры Настройка и использование кодека xvid

= Настройка и использование кодека XviD 1.1.0 beta 2 =

Profile @ Level – здесь выбираем стандартные профайлы, выбирается только если потом надо будет проигрывать сжатый файл на стандартных MPEG4 плеерах. Для всех остальных случаев выбираем (unrestricted). Кнопка “more…” открывает окно настройки профайлов.

Encoding type – тип кодирования. Бывает Single pass АКА однопроходный режим и Two pass (1st pass и 2nd pass) АКА многопроходный режим. Однопроходный режим годится только для кодирования на лету (для захвата видео) или если важна скорость. Многопроходный режим кодирования работает так: сначала кодек кодирует файл как в однопроходном режиме, но вместо *.avi а генерит лог-файл, который потом анализирует во втором проходе. Благодаря этому в двухпроходном режиме более рационально распределяется битрейт. Кнопка “more…” открывает окно подробных настроек выбранного режима.

Target bitrate/Target size – нажатием на кнопку переключается способ расчёта битрейта видео. В поле рядом нужно вводить битрейт видео или его конечный размер. Кнопка “calc” вызывает окно калькулятора, в котором, например, можно расчитать битрейт для фильма, который необходимо уместить на один диск. Битрейт фильмов обычно колеблется от 450 kbps до 1000 kbps. Клипов – от 600 kbps до 1500 kbps. Игрового видео (мувиков) от 1800 kbps до 3000 kbps. Чем больше битрейт – тем лучше качество.

Zones – одно из главных преимуществ кодека Xvid – это возможность вручную настраивать энкодер для отдельных зон видеофайла (например grayscale для титров или BVOP sensitivity для high-motion участков). Кнопка “Add” добавляет зону, “Remove” – удаляет выбранную, “Zone Options” – открывает окно настроек выбранной зоны.

Advanced Options – открывает окно дополнительных настроек енкодера.

Load Defaults – сбрасывает все настройки кодека по умолчанию

Decoder Options – окрывает окно настройки декодера.

Profile @ Level – выбор стандартного профайла для воспроизведения на аппаратных МПЕГ4 плеерах. При сжатии для компа ставить (unrestricted).

Quantization type – выбор таблицы квантизирования. Имхо H.263 – лучше чем MPEG2. Также здесь можно выбрать MPEG-custom чтобы самому настроить таблицу квантизирования или загрузить альтернативную. Влияет в основном на распределение сжатия на картинке. Например MPEG лучше сжимает однотонные поверхности чем границы цветов, а H.263 – наоборот.

Adaptive Quantization – при включении кодек сильнее сжимает однотонные тёмные и светлые поверхности. Полезно включать если видео содержит много чёрного или белого цвета. Например при сжатии в ави записи игры на q3dm17. У меня On.

Interlaced Encoding – обрабатывает фреймы не последовательно, а отдельно каждый. Очень не рекомендуется включать.

Top field first – Эта опция для удаления грёбенки при захвате видео.

Quarter Pixel – Улучшает качество обработки исходного изображения (кодируется с точностью? пиксела). При включении – жрёт много проца и чуть больше битрейта. Кроме того, для воспроизведения конечного файла понадобится более мощный проц. Я отрубаю.

Global Motion Compensation – При включении кодек лучше сжимает видео, в котором много масштабирования и панорамирования. Пример такого видео – воды по варику/старику. Для воспроизведения понадобится более мощный проц. У меня выключено всегда.

Reduced Resolution – не включать. Лажа. 8)

B-VOPs – Включение этой опции капитально увеличивает сжатие практически без потери качества. Рекомендуется включать категорически! Немного теории:


Изначально видео было организовано примитивно (1 на схеме) – совокупность картинок одного типа идущих одна за другой. Потом появилось разграничение Intra и Inter фреймов (2 на схеме). Это когда есть один ключевой кадр, а все остальные за ним – дельта фреймы, которые содержат только разницу от ключевого. Это позволило сильно увеличить сжатие. Введение би-фреймов (bi-directional frames) улучшило сжатие еще сильней (3 на схеме). Би-фреймы получаются методом интерполяции двух близлежайших Пи-фреймов + коректирующая информация. В Xvid впервые была реализована возможность кодрования нескольких би-фреймов подряд (4 на схеме). Такой метод сжатия на данный момент является наиболее прогрессивным и дающим лучшую степень сжатия. Теперь вернёмся к настройкам.

Max consecutive BVOPs – Сколько максимум би-фреймов может быть подряд в конечном видео. Чем статичней изображение в исходном видео – тем больше надо ставить. Я не вижу причин вообще ограничивать это значение – гораздо легче поставить BVOP-sensitivity в настройках зоны в меньшее значение. Однако я ставлю это значение =5.

Quantizer ratio – я не буду долго рассказывать что такое квантизер – скажу только, что чем он меньше – тем лучше качество картинки. Значение этого поля содержит множитель на который множится квантизер исходных Пи-фреймов чтобы получить квантизер Би-фрейма. Увлекаться увеличением этого значения не рекомендуется. Оптимальное значение – от 1,50 до 2,0. Но значения выше 1,75 надо использовать только в том случае, если средний квантизер исходных пи-фреймов не больше 6. У меня это значение = 1,75 для мультипликации (Симпсоны, Футурама, Саус Парк и т.п.), 1,50 для фильмов, клипов и игрового видео.

Quantizer offset – Хммм… лучше приведу формулу B-VOPquant=AVG(prevVOPquant,nextVOPquant)*quant ratio+quant offset. Короче – этой опцией можно слегка подкорректировать среднее значение квантизера би-фреймов для всего видео. Я обычно оставляю в 1,00.

Packed bitstream – практически не влияет на сжатие. включение этой опции сглаживает воспроизведение. Оставлять включенной полюбэ.

Target size – Сюда вводить нужный размер файла в килобайтах. Например для 700мб диска это 716800.

Subtitles – Размер файла субтитров. Нажав на кнопку “…” можно указать к нему путь и калькулятор сам подсчитает его размер.

Format – Выбрать формат видео, чтобы подсчитать размер заголовка и служебной информации видеофайла. Скорей всего это будет “AVI-OpenDML”.

Video – Длительность и фреймрейт. В графе “size” – появится рассчитаный максимальный размер видеофайла. В графе “bitrate” – рассчитаный битрейт видео.

Audio – Можно выбрать формат и битрейт, но лучше указать путь к уже скодированному mp3 файлу, чтобы калькулятор сам подсчитал битрейт звука.

После заполнения всех граф – жмём Ок и в основном окне настроек уже будет стоять нужный битрейт.

Start frame # – собственно адрес зоны – номер фрейма можно посмотреть в том-же дабе в строке статистики.

Rate control – управление размером фреймов напрямую. В графе “weight” ставится коефициент, на сколько больше битрейта будет получать эта зона относительно всего остального видео. В графе “quantizer” можно принудительно назначить фреймам этой зоны определённый квантизер. Я предпочитаю не трогать эти значения, так как не вижу в этом нужды. При явной нехватке битрейта в определённых местах можно обойтись настройками второго прохода. Исключение – когда на какую-то часть мува, по какой-то причине кодек распределил мало битрейта.

Begin with keyframe – определяет, будет ли зона начинаться с ключевого кадра. Это для извращенцев – кодек более менее точно определяет места куда нужно всунуть ключевой кадр, а если и ошибается – его всегда можно поправить при помощи Statsreader"a. Полезно вставлять в начале статичных сцен, таких как фиксированные камеры в мувах.

Cartoon Mode – в новой версии режим мультфильма включается в настройках зоны. Незаменимая штука для кодирования анимационных фильмов. Лучше сжимает границы цвета чем закрашенные плоскости. Для мультиков включать, для всего остального – не рекомендую.

Grayscale encoding – вся зона кодируется в чёрно-белом изображении, полезно для титров.

Chroma optimizer – Интерполирует цвета в тёмных/светлых зонах чтобы улучшить качество границ этих зон в сжатом видео. Полезно для анимационных фильмов и на космических картах в кваке.

BVOP sensitivity – Самая полезная и юзабельная фича всей этой менюхи. Чем больше её значение – тем больше би-фреймов будет в сжатом видео. Для high-motion фильмов вещь незаменимая. О том, как подбирать это значение – написано ниже. При значениях меньше нуля – би-фреймов будет очень мало.

Motion search precision – чем больше значение – тем качественней кодек будет искать путей экономии битрейта. Ставить или в 0 для кодирования на лету или в 6 для окончательного сжатия.

VHQ mode – Использовать на максимуме с Motion search precision = 6. Не рекомендуется использовать с Global Motion Compensation и Quarter Pixel. Определяет насколько хорошо будут проработаны векторы движения блоков. Опять-же не включать при кодировании на лету, ибо сильно тормозит тачку. У меня на максимуме.

Use VHQ for bframes too – если включено, кодек прорабатывает векторы движения и для би-фреймов. Включать.

Use chroma motion – Применяет алгоритмы Motion Estimation для цветных блоков. Улучшает сжатие за счёт падения скорости. При окончательном кодировании – включать однозначно.

Turbo ;-) – ускоряет расчёт Motion Estimation при кодировании би-фреймов и Quarter Pixel. Я не использую.

Frame drop ratio – процент кадров, которые будут копироваться из предыдущего. Не рекомендуется трогать.

Maximum I-frame interval – уменьшать нужно, если кодируется на лету, и потом прийдется много резать в дабе. Никаких плюсов кроме увеличения комфорта работы в дабе и небольшого прироста качества нет. У меня 300.

Stats filename – файл в котором хранится результат первого прохода. Менять нужно только если вы пользовались Statsreader"ом, и сохранили результат в новый файл.

I-frame boost – Значение в процентах на которое увеличится размер всех ключевых кадров в видео. Полезно при кодировании с низким битрейтом очень low-motion сцен. При кодировании high-motion видео лучше не увеличивать – всё равно не поможет 8).

I-frames closer than … are reduced by ... (%) – Ключевые кадры, находящиеся друг от друга ближе чем первое значение уменьшаются на второе значение процентов. Например для супер-high-motion видео, где ключевые кадры ставятся практически через два-три фрейма. (Пример такого видео – клип Prodigy “Out Of Space”).

Overflow control strength (%) – немного лирики: кодек XviD имеет неприятную особенность неправильно распределять битрейт по видео (на начало практически всегда попадает битрейта меньше чем на конец). Эта и следующие две опции призваны исправить этот недостаток, попутно увеличив точность соответствия реального битрейта номинальному. То есть – если значение этой опции 0 и номинальный битрейт выставлен в 1000 – то финальный битрейт может быть и 900 и 1100. (реальный битрейт можно посмотреть в окне “Encoding status” после завершения кодирования). Чтобы этого избежать – увеличиваем значение этой опции. Я обычно ставлю в таких случаях 30%-50%. Кстати – чтобы понять завышает ли кодек квантизер в начале видео – просто взгляните на окно статуса во время кодирования. Если реальный битрейт вначале раза в три меньше чем номинальный – увеличиваем эту опцию.

Max overflow improvement (%) – Увеличиваем, если реальный битрейт меньше номинального.

Max overflow degradation (%) – Увеличиваем, если номинальный битрейт меньше реального.

High bitrate scenes degradation (%), Low bitrate scenes improvement (%) – Увеличение этих опции проводит уравниловку – часть данных с самых больших фреймов снимается и распределяется между остальными.

По заявкам трудящихся на ниве мувимейкинга - рассказываю как жать мувы, по пунктам.

на входе имеем: видео-файл, пожатый loseless кодеком

установленный кодек XviD 1.1.0 beta 2 или выше (далее кодек)

1. Открываем файл в дабе

2. Отключаем звук (Audio->No Audio)

3. Выбираем (Video->Compression)

5. Нажимаем кнопку “Configure”

6. В окне кодека нажимаем кнопку „Load defaults”

7. Encoding type = Two Pass – 1st pass

8. В свойствах профайла: Adaptive Quantization = on

Max consecutive BVOPs = 5

9. В Advanced options: VHQ mode = 4-Wide Search

Use VHQ for bframes too = on

10. Закрываем окно настройки кодека, всюду жмём „Ок”

11. В дабе: нажимаем „File->Save as AVI”

12. Теперь, когда проходит первый проход сжатия, проверяем правильность настройки би фреймов. На графике фреймов мы видим два столбика – красно-синий (I-VOP+P-VOP) и зеленый (B-VOP). Если зелёный столбик выше красно-синего – значит наше видео низкодинамичное (low-motion) и дальше увеличивать количество би-фреймов нет необходимости. Вместо этого можно уменьшить значение Quantizer Offset в свойствах профайла до 1.00 или даже до нуля (если зелёный столбик выше в два раза). Если же красно-синий столбик выше (чаще всего так и есть) – значит видео высокодинамичное (high-motion) и кол-во би фреймов прийдется увеличить. Для этого, надо поделить мув на зоны, и в самых динамичных из них увеличить параметр „BVOP sensitivity” до 20. Как это делать расписано чуть ниже.

13. Повторяем действия пунктов 10-11.

14. Если зелёный столбик не уравнялся с красно-синим - увеличиваем „BVOP sensitivity” до 30 и повторяем действия пунктов 10-11.

15. Если всё равно зелёный столбик ниже красно-синего – оставляем количество би-фреймов в покое и принимаемся за их качество. В свойствах профайла, в поле “Quantizer Offset” ставим двойку если би-фреймов лишь немного меньше чем пи-фреймов, и тройку если меньше хотя-бы в два раза. Еще раз делаем первый проход.

16. Теперь в главном окне настроек кодека, выбираем Encoding type = Two Pass – 2nd pass

17. Нажимаем на „Target size” чтобы вместо Target size было Target bitrate

18. В поле битрейта вписываем значение 2600. (Для того, чтобы мув вписался в 20мб/мин рамки, если позволяет контент – можно и меньше).

19. Теперь напротив Encoding type нажимаем кнопку “more…” и заполняем поле I-frames closer than … are reduced by ... (%) так: первая цифра = 3 вторая = 75.

20. Если наше видео явл. low-motion (см. пункт 12) - то напротив Encoding type нажимаем кнопку “more…” и в поле „I-Frame boost (%)” ставим „50” (или 100 если очень low-motion).

21. Если наше видео явл. high-motion (см. пункт 12) – то в Advanced Options, на вкладке Quantization в поле Min I frame quantizer вписываем «4» (А если в пункте 15 ставили «3» в оффсет – то можно и 5 или даже 6).

22. в Advanced Options, на вкладке Quantization в поле Max P-frame quantizer вписываем «8».

23. Повторяем пункты 10-11.

В принципе – перед нами готовый, хорошо пожатый мув. Большего сжатия можно добиться применением grayscale, cartoon-mode, chroma optimizer и B-VOP Sensitivity на разные зоны мува. Улучшения качества можно добиться применяя Statsreader для добавления ключевых кадров в критичные места, и увеличением параметров High bitrate scenes degradation (%), Low bitrate scenes improvement (%) в свойствах второго прохода.

Еще пара слов о качестве: чтобы найти оптимальные настройки кодека для каждого мува, нужно отличать хорошо пожатый мув от очень хорошо пожатого. Самым критичнымы параметрами в оценке качества для high-motion мувов является среднее значение квантизера пи-фреймов всего мува (в окне статуса строчка P-VOP, столбец AVG в группе Quant) и среднее значение квантизеров всех фреймов; чем эти значение меньше – тем лучше качество мува (даже если глазу это незаметно). Уменьшить среднее значение квантизера пи-фреймов можно увеличив средний квантизер би-фреймов или увеличив их количество. Если, например, уменьшить максимальный квантизер пи фреймов с 6 на 5 без корректировки остальных параметров – кодек увеличит битрейт самостоятельно, такого нельзя допускать. В общем, оптимальное значение среднего общего квантизера ориентировочно равно 8 при минимальном значении среднего квантизера пи-фреймов. То есть, если в результате сжатия общий средний квантизер меньше восьми – можно попробовать уменьшить за его счёт минимальный квантизер пи-фреймов. Если же после сжатия общий средний квантизер равен 8, а средний квантизер пи-фреймов больше шести – есть смысл подумать над увеличением битрейта мува (еще можно увеличить минимальный квантизер и-фреймов).

Это всё – что касается high-motion мувов, для low-motion общий средний квантизер пи-фреймов не столь важен как общий средний квантизер всех фреймов, и нету особой необходимости возиться с настройками, пережимая мув по двадцать раз.

Теперь, подробнее о зонах и их использовании

Зона – это небольшая часть мува, отличающаяся от остальных частей сложностью картинки или её динамикой. Для начала делим мув на эти самые зоны. Пример деления – интро/фраги/видео-вставки/фраги/аутро/титры. Теперь надо эти зоны сформировать в кодеке. Для этого:

1. В дабе, находим начало зоны и копируем в буфер обмена порядковый номер фрейма начала зоны

2. Заходим в настройки кодека и в главном окне нажимаем "Add"

3. Выделяем новодобавленную зону и нажимаем "Configure"

4. Вводим в поле "Start Frame #" порядковый номер фрейма начала зоны из буфера.

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


Если возникает необходимость быстро сохранить текущие настройки, чтобы их потом вернуть (особенно это полезно когда в кодек занесено много зон), достаточно просто импортировать ветвь реестра в файл *.reg - ввести в Пуск -> Выполнить комманду:

regedit /e c:\xvid.reg HKEY_CURRENT_USER\SOFTWARE\GNU\XviD

В итоге в корне диска С: появится файл xvid.reg, Чтобы потом загрузить сохраненные настройки – нужно просто добавить его в реестр.

Вроде бы всё самое основное описал, если непонятно – пишите, стучите…

mailto:[email protected]

ICQ UIN: 244105535

Сегодня, мы рассмотрим кодек Xvid, который претендует на звание "ISO совместимого". Это значит, что он должен проигрываться стационарными плеерами, поддерживающими Mpeg4 стандарт. На практике, это до сих пор не так.

Есть 4 реальных конкурента на рынке сильного сжатия видеоматериалов: Divx, Xvid, WMV_VCM и VP6. Между собой совместимы только DivX и Xvid (как последователи стандарта Mpeg4). Я не выделил бы ни один кодек в качестве однозначного лидера. У каждого из этих кодеков есть свои изъяны.

Например, Xvid искажает цвета и не очень хорошо работает с материалами, где есть постепенные нарастания и снижения яркости, но у него высокая чёткость на динамических сценах. DivX - менее чёткий, по сравнению с Xvid (опять же, при определённых условиях, это можно назвать плюсом). К WMV_VCM пожалуй меньше всего нарицаний, но он менее чёток на динамических сценах, по сравнению с Xvid. А вот про VP6 отдельный разговор. О нём написана хорошая .

Теперь приступим непосредственно к виновнику. Вы можете спросить - а чем собственно Xvid, мне больше нравится? Отвечу - он мне больше подходит по причине качественной работы с динамическими сценами. Мне очень часто приходится заниматься сжатием "домашнего видео", а оно, как известно, не блещет качеством съёмки. Всё это снимается без штатива, естественно, картинка ходит ходуном. При этих условиях, только Xvid после сжатия, сохраняет максимальную деталировку.

Кодек Xvid постоянно обновляется. Это результат того, что его код является открытым и любой, кому это интересно, может принять участие в доработке программы. Первоначальный код переписывался 3 раза полностью. Последние версии (альфа и бета) уже совместимы с кодом ISO Mpeg4. Это значит, что фильмы, сжатые при помощи кодека Xvid, будут нормально просматриваться декодером DivX. По моему мнению, декодер DivX более качественный, чем собственный декодер Xvid.

Начнём. Для сборки фильма я использую программу VirtualDub. Это очень простая программа. Захват в ней я описал, а обычная работа с VirtualDub описана во многих статьях и повторятся я не буду. После запуска VirtualDub и открытия в нём вашего видео вы должны будете произвести настройку фильтров (его я опишу в другой статье). Когда этот этап пройден, вам нужно сжать исходный материал кодеком с сильным сжатием для дальнейшего хранения и просмотра. Мы договорились, что это будет Xvid. На момент написания статьи, была выпущена версия Beta2, которую можно скачать с сайта . Я опишу работу с этой версией.

После того, как вы произвели монтаж своего фильма и произвели настройку фильтров, нужно настроить кодек. Для запуска настройки кодека Xvid, нужно произвести последовательность действий, отображённую на рисунке.

После запуска конфигурации кодека, вы увидите окно настройки кодека:

Для большего удобства я ввёл свои условные пункты от одного до шести. Далее, при описан кодека, я буду отталкиваться от этих пунктов.

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

Цифрой 2 помечены две вкладки.

Первая из них - выпадающее меню. Здесь сделаны стандартные предустановки, которые должны быть совместимы с аппаратными проигрывателями. На самом деле, использование этой вкладки под большим вопросом. Во-первых, на данный момент аппаратные Mpeg4 проигрыватели не получили достаточно широкого распространения. Это является дополнительной функцией DVD проигрывателей, но далеко не все проигрыватели это могут делать. Многое зависит от прошивки. Так что, для аппаратных проигрывателей это на вряд ли пригодится. Во-вторых, здесь только готовые предустановки для разрешения, битрейта и других параметров. Но если вы пытаетесь сжать готовый фильм, то для него потребуется своё разрешение и битрейт. В связи с этим, эта функция почти не применима.

Вторая вкладка (находящаяся под кнопкой...) изображена на рисунке:

Сверху на этой вкладке есть возможность выбора предустановок, про которые я уже написал. Опция "Quantization type" даёт возможность выбора типа матрицы квантизеров. Не вдаваясь в подробности что это такое, просто скажу, что даёт этот выбор. Мы можем сделать выбор из 3 пунктов:

"H.263" - это стандартная матрица квантизеров для Mpeg4. Это даёт менее чёткую картинку, чем MPEG матрица и рекомендуется делать для битрейтов ниже 900 kBit/s. Вторым пунктом стоит "MPEG". Этот выбор даст более чёткую картинку и соответственно, требует битрейтов больших, чем 900 kBit/s. "MPEG-Custom" даёт возможность задавать самому матрицу квантизеров. Я бы не рекомендовал вам пробовать это делать вручную.

Опция "Adaptive Quantization" включает возможность маскировки ярких и тёмных мест при сжатии. Раньше эта опция называлась "lumi masking". Эта опция нужна для того, что бы увеличить коэффициент сжатия исходного материала. Теоретически, человеческий глаз не заметит такого преобразования. Но на практике, при включении этой опции происходят искажения. В кодере Xvid этот алгоритм реализован недостаточно качественно.

Опция "Interlacing" включает работу кодека с чересстрочным видео. При включении этой опции кодек начинает сжимать не кадры, а поля. Эта опция пригодится только в том случае, если вы производите сжатие без деинтерлейса. Я не вижу практического применения такому сжатию, но кто знает, может вам пригодится.

Опция "Quarterpel" включает разрешение с точностью до четверти пикселя. Это повышает чёткость особенно на низких разрешениях, но вместе с этим, добавляет шум на изображение. Естественно, просто так это не происходит. Включение Quarterpel повышает загрузку процессора и увеличивает поток, используемый для этого. Включать эту опцию я не рекомендовал бы. Качество работы до сих пор не безупречно.

Опция "Global Motion Compensation" предназначена для компенсации движения. Она начинает функционировать, когда идёт панорамирование, наезд или отъезд на объект, а так же при вращении. Задумка конечно хорошая, но использовать я так же не рекомендовал бы.

А вот про опцию "Reduced resolution" ничего не известно. И вообще, не понятно, делает ли она что-нибудь.

При сжатии видео используется 3 типа кадров: I,P и B - frames. I-frames - это кадры без сжатия. Вернее, сжатие производится с очень небольшими коэффициентами компрессии. I-frames так же называются ключевыми кадрами. При просмотре сжатого фильма, вся навигация по фильму производится через ключевые кадры. После I-frames следует последовательность P-frames например так: IPPPPPPPPPPPPPPPP IPPPPPPP и так далее. P-frames имеет гораздо больший коэффициент сжатия. Для того, что бы повысить коэффициент сжатия, были введены B-frames. Они ставятся между двумя менее сжатыми кадрами (I,P-frames). Последовательность получается такой: IPBPBPBPBPBPBP IPBPBPBP : Коэффициент сжатия B-frames больше, чем коэффициент сжатия P-frames. Это достигается тем, что он сравнивается с 2 окружающими кадрами, а в B-frames записывается, чем он отличается от них. Но вместе с этим, это накладывает определённые ограничения. Например, видеопоследовательность не может заканчиваться B-frames. Начинаться же видеоряд должен обязательно с I-frames. В нём содержится вся информация об изображении. В P-frames и B-frames содержится информация не удалённая кодеком во время сжатия, что так же накладывает определённые трудности при монтаже сжатого материала. Итак, разобрались, с B-frames мы можем сильнее сжать видео. Вы спросите, а причём здесь качество? Всё просто. Сильнее сжали, а размеры видео файла у нас те же самые. Этот "освободившийся" поток перераспределяется на все кадры. Конечно, качество на B-frames ниже, чем у P-frames. Если поставить "Max consecutive BVOPs"=1, то они появляются 12 раз в секунду (последовательно с более качественными P-frames) и картинка, в целом, остаётся достаточно качественной.

Разобрались, включение B-frames (BVOPs) повышает качество.

Посмотрим теперь на опцию "Max consecutive BVOPs". Здесь нужно ставить максимальное количество идущих подряд B-frames. Если поставить 0, то мы попросту отключим использование B-frames. Если поставить больше 1, то качество картинки (на мой взгляд) падает. Плюс, я встречал появление необоснованных артефактов. Я рекомендую ставить 1.

Опция "Quantizer ratio (%)" означает, во сколько раз будет повышен квантизер для B-frames. Теперь объясню, что такое квантизер.

Квантизер может быть назван так же DRF - Detail Removal Factor. По-русски, степень потери детализации изображения. Минимально возможный квантизер - 2 (это то же самое, что 1).

Максимальный квантизер, ограничивается кодеком. Причём, чем больше квантизер, тем больше потерь в детализации будет происходить. Изначально, если кодек не ограничивать в размерах получаемого файла, он будет стремится держать квантизеры как более низкими. Но при этом размер получаемого файла будет получаться большим. Теперь, если ограничить размер получаемого AVI файла, кодек начнёт повышать эти квантизеры до тех пор, пока не попадёт в заданный размер. Причём, он устанавливает для каждого кадра свои кантизеры, в зависимости от сложности кадра.

В опции Quantizer ratio (%) мы указываем, во сколько раз увеличится квантизер и соответственно, во сколько раз ухудшится детализация на B-frames. Квантизер B-frames считается по следующей формуле: [(Quantizer of previous P-frame+Quantizer of following P-frame)*(B-frame quantizer ratio)/200+(B-frame offset/100)]. Исходя из формулы, квантизер B-frames зависит от значений квантизеров окружающих его P-frames, значения Quantizer ratio (%) (множитель) и Quantizer offset (смещение). Снижать этот параметр не рекомендую (теряется смысл B-frames). Повышать вы можете на своё усмотрение, это повысит сжатие B-frames (соответственно, снизит качество этих кадров) и повысит качество I и P-frames.

Опция "Quantizer offset" показывает, сколько нужно прибавить к квантизеру B-frames относительно расчётной величины после Quantizer ratio (%). Изменять этот параметр не стоит. Если включить опцию "Packed bitstream", то производится упаковка P-frames и B-frames в одном потоке. Это даёт возможность декодировать B-frames без задержек. При 2 проходном кодировании и включении этой опции кодер работает не правильно. Если у вас достаточно мощный процессор, нет никакого смысла включать эту опцию.

Опция "Closed GOV" предназначена для того, что бы перед I-frames никогда не стоял B-frames. Если вы не собираетесь сжатый материал впоследствии резать или сращивать, нет никакой надобности в этой функции. Зато при отключении этой функции качество можно ещё повысить за счёт добавления B-frames. Если же, вы собираетесь впоследствии как-либо монтировать Mpeg4, то вам понадобится включение этой функции. Только одно предостережение, вы сможете резать готовый Mpeg4 файл только по ключевым кадрам и многие стыки получатся очень корявыми. Лучше позаботиться о монтаже заранее.

Перейдя на вторую вкладку, мы увидим информационную панель. Вся беда в том, что она показывает информацию только если был использован какой-нибудь профиль.

Цифрой 3 (Encoding type) помечена опция, управляющая типом работы кодека.

В выпадающем меню вы можете выбрать 3 типа работы кодека. Для каждого типа есть свои настройки, которые находятся под кнопкой, обозначенной многоточием.

1 тип - "Single Pass". Это однопроходный режим работы с постоянным битрейтом. Битрейт задаётся в окошке обозначенном цифрой 4. При вызове настроек однопроходного режима (нажатие на кнопку: под цифрой 4) появится окно:

В этом окне есть всего 3 параметра.

  • "Reaction Delay Factor" служит для задания времени задержки реакции кодера на изменение качественных параметров видеосигнала.
  • "Averaging period" этот параметр определяет скорость реакции на изменение качественных параметров видеосигнала.
  • "Smoother" параметр, определяющий количество кадров, в течении которых возможно понижение качества картинки для выдерживания заданного битрейта.

2 тип - Twopass - 1 st pass. Это первый проход двухпроходного режима. О нём говорить особо нечего, заглянем только в его настройки:

В окошке "Stats filename" стоит название файла, в который будет записываться статистика от первого прохода о фильме.

"Discrad first pass" если убрать галочку с этого пункта, то во время первого прохода будет не только производится сбор статистики, так же будет производится сохранение сжатого материала. Если вы используете двух проходный режим, то нет никакого смысла это делать. Единственное, для чего может это понадобится - что бы сделать видео с переменным битрейтом за 1 проход. Но размер при этом будет абсолютно не управляем., он получится на усмотрение кодека.

Теперь расскажу, о двухпроходном режиме и переменном битрейте. Для этого нужно немного рассмотреть теорию работы кодека. Кодеки Mpeg4 разработаны таким образом, что они видят не картинку целиком, а только объекты и изменение картинки от кадра к кадру. Из этого можно сделать вывод, что шумное видео сложнее сжимать, чем чистое и статичные картины так же проще сжимаются, чем динамичные (именно эту информацию и собирает кодек во время первого прохода). Допустим, у вас есть какой-то ролик или фильм. В любом видео, не бывает, что бы было абсолютно монотонное движение и неизменное количество объектов. Получается, что для каждого кадра нужно выделять разное количество памяти. Для того, что бы выделять каждому кадру своё количество битрейта, был введён переменный битрейт. То есть, во время первого прохода кодек собирает информацию о количестве движения и объектов, производит запись её в файл. Во время второго прохода, кодек начинает обрабатывать фильм снова. Только он уже производит сжатие исходного материала, пользуясь статистикой от первого прохода. При этом, для каждого кадра выделяется нужный ему битрейт. Таким образом происходит повышение качества кодируемого материала.

Продолжим рассмотрение настроек типа работы кодера.

3 тип - Twopass - 2 st pass. Это второй проход двухпроходного режима. Заглянем в его настройки:

Рассмотрю настройки сверху.

  • "Stats filename" здесь указывается файл, в котором находится статистика от первого прохода. Вы спросите, зачем это надо? Дело в том, что уже появились программы, позволяющие править этот файл. Если вы создали (исправили) свой собственный файл статистики, то можно указать его здесь и кодирование будет происходить по этим данным.
  • "I-frame boost %" эта функция делает увеличение потока на I-frames. Указывается в процентном соотношении. То есть, если указать 10, то на I-frames пойдёт на 10 процентов больше битрейт, относительно расчётного значения (расчёт изначально производит кодер, а мы можем к этому ещё добавить).
  • "I-frames closer than: frames" здесь указывается расстояние между соседними I-frames, меньше которого считается, что ключевые кадры следуют друг за другом. Если какие-то I-frames попадают в этот предел, то производится уменьшение потока, расходуемого на них. При установке этого параметра в 1, производится отключение этой функции. Оптимальным значением я считаю 2.
  • ":are reduced by %" эта функция уменьшает битрейт первых I-frames в ряде идущих подряд I-frames. Последний I-frames идёт с нормальным коэффициентом сжатия.
  • "Max overflow improvement" этот параметр определяет, на сколько можно поднимать битрейт, относительно среднего битрейта, на непродолжительных участках (там, где это требуется). Слишком большое значение замедляет работу кодера.
  • "Max overflow degradation %" этот параметр определяет, на сколько можно снижать битрейт, относительно среднего битрейта, на непродолжительных участках (там, где это требуется). Слишком большое значение замедляет работу кодера.

Для того, что бы произвести сжатие в два прохода, вам потребуется воспользоваться возможностями программы VirtualDub. Конкретно, как это делается, написано в моей статье "Личный опыт работы с DivX".

Теперь мы дошли до компрессии по криволинейному алгоритму (Curve compression) . Эта функция есть только у кодека Xvid. Я бы не назвал это большим преимуществом кодека Xvid, но в определённых обстоятельствах это может добавить немного качества.

  • "High bitrate scenes %" здесь можно указать, сколько процентов битрейта может забрать кодек со сцен с высокими битрейтами и перераспределить на средне и низкобитрейтные сцены.
  • "Low bitrate scenes %" этот параметр указывает, сколько процентов битрейта нужно добавить сценам с низкими битрейтами. Этот битрейт будет забран со сцен со средним и высоким битрейтом.
  • "Overflow control strength %" этот параметр указывает, на сколько кодек может выходить за расчётные значения в каждом кадре (без разницы, уменьшение или увеличение). При установке этого параметра в 0, кодек начинает работать по-умолчанию (как заложено в алгоритме кодека).

При работе с компрессией по криволинейному алгоритму, перед тем, как им воспользоваться нужно произвести сжатие без него. Если вы видите, что видео получилось недостаточно качественнее, посмотрев видео можно проанализировать, в каких местах плохо отработал кодек. С динамикой, как правило, проблем не бывает. Динамика - это высокобитрейтные сцены. Так же, к высокобитрейтным относится зашумлённое видео или видео с множеством мелких предметов. Так вот, если при просмотре оказалось, что динамика смотрится хорошо, а статика не очень, можно немного снять битрейт с динамичных и среднебитрейтных сцен, для этого нужно поставить какой-то процент в "Low bitrate scenes %". Если среднебитрейтные (движение есть, но его не много) сцены смотрятся то же не очень хорошо, то битрейт можно снять только с высокобитрейтных сцен. Для этого нужно проставить какое-то значение в опции "High bitrate scenes %". Как я уже сказал, эти параметры нужно подбирать экспериментально.

Под цифрой 4 скрывается поток, который будет расходоваться на фильм.

Здесь мы можем задать размер файла, который мы хотим получить (при этом кнопка будет подсвечена надписью "Target size (kbytes)"). Только учтите, что у вас ещё есть звук, на который то же надо оставить место. Если вы хотите сделать фильм на один CD диск, то для подсчёта размера видео лучше всего воспользоваться каким-либо калькулятором, который учтёт размер звука в итоговом файле. В том случае, если кнопка подсвечена надписью "Target bitrate (kbps)", то задаваться будет средний битрейт, с которым будет кодироваться фильм. Для того, что бы переключить из одного режима в другой, нужно нажать на эту кнопку. Битрейт можно изменять слайдером и вводом цифр вручную, а вот размер файла можно задавать только вводом вручную, в килобайтах.

Для того, что бы вызвать дополнительные настройки кодека, нужно нажать на кнопку 5.

При этом вы увидите окно:

Посмотрим на настройки:

  • "Motion search precision" прямой перевод - точность поиска движения. Чем выше этот параметр, тем более качественно будут выглядеть движения. Авторы рекомендуют ставить не менее 5, в идеале 6. Но учтите, чем выше этот параметр, тем медленнее будет работать кодек.
  • "VHQ mode" эта функция позволяет оптимизировать режим макроблоков, вместо усреднения. Чем выше это значение, тем медленнее будет работать кодек. Качество вместе с этим повышается значительно (не сравнить с использованием B-frames). Нельзя использовать совместно VHQ mode и GMC (Global Motion Compensation).
  • "Use chroma motion" эта функция включает поиск движения по цветовой информации. Этот способ на много более точен, чем стандартный способ. Включение этого метода замедляет работу кодера.
  • "Frame drop ratito" количество пропускаемых кадров. Эта функция будет работать в том случае, если кодек считает, что для кодирования не хватает битрейта. В этом случае кодер начнёт выкидывать кадры. При выставлении в 0 не пропускается ни одного кадра, при выставлении в 100 пропускается столько кадров, сколько нужно кодеру для нормальной работы. Для получения качественного видео я не рекомендую использовать значения отличные от нуля.
  • "Maximum I-frame interval" максимальное количество кадров, которое может быть между ключевыми (I-frames). На качество кодирования это особо не сказывается, а вот на поиске фрагмента очень сильно. Объясню почему. При просмотре фильма, когда мы хотим переместится в какое-то произвольное место, мы передвигаем ползунок поиска. Если в том месте, куда мы попали, стоит ключевой кадр, то воспроизведение пойдёт сразу. А вот если ключевого (I-frame) нет, то мы будем слышать звук, а видео увидим только когда положение просмотра дойдёт до ключевого кадра. Я ставлю этот параметр в значение 100. При этом, гарантировано мы будем ждать появления картинки не более 4 секунд.
  • "Use cartoon mode" эта функция введена для работы кодера с мультипликацией. Я не знаю, чем отличаются алгоритмы работы в этом режиме.

Перейдём на следующую вкладку "Quantization".

Что такое квантизеры я уже объяснял выше. В этом меню можно расставить, в каких интервалах будут работать квантизеры отдельно для I,P и B-frames. По большому счёту, не вижу смысла менять эти значения. Кодер Xvid распоряжается квантизерами достаточно хорошо. Но скажу, что это значит ещё раз.

  • "Min ..-frame quantizer" - минимально возможный квантизер для.. типа фреймов. Чем ниже это значение, тем более чёткая картинка будет получаться (при условии, что битрейт будет достаточно высоким для достижения этого квантизера). Для I-frame это будет самое низкое значение, для P-frame - повыше, а для B-frame самое высокое. Но лучше не трогать значения по-умолчанию.
  • "Max ..-frame quantizer" - максимально возможный квантизер для.. типа фреймов. Высокое значение этого параметра снижает детализацию картинки. Для I-frame это будет самое низкое значение, для P-frame - повыше, а для B-frame самое высокое. Но лучше не трогать значения по-умолчанию.
  • "Trellis quantization" на данный момент, эта функция работает только с матрицей квантования H.263. За счёт небольшого изменения математического алгоритма работы должно происходить улучшение качества. Эта функция экспериментальная. При включении этой опции я не заметил большой разницы от материалов, сжатых без неё. Разница была как на качелях, то в её пользу, то наоборот. Если учесть, что это использует нестандартные функции, то включать "Trellis quantization" наверное не стоит.

На последней вкладке находится отладочная информация кодека.

При выборе параметров оптимизации для конкретного процессора ("Performance optimizations") можно сделать 2 выбора:

  • "Automatically detect optimizations" - включает автоматический выбор оптимизации под ваш процессор.
  • "Force optimizations" - ручное выставление параметров оптимизации.
  • Следующая доступная функция "FourCC used". Объясню, что это такое. При сжатии, в заголовке AVI файла прописывается метка, каким кодеком это было сжато. При воспроизведении проигрыватель считывает эту метку и запускает соответствующий декодер. Для Mpeg4 совместимых кодеков возможна замена декодера. Так, сжимать виде мне больше нравится при помощи кодера Xvid, а просматривать при помощи декодера DivX (этот декодер имеет меньше проблем с разными проигрывателями и картинка после него имеет меньше артефактов). Для того, что бы изменить FourCC метку, нужно сделать выбор в выпадающем меню. Если здесь выбрать DX50, то для воспроизведения запустится декодер DivX5. Именно это я вам и рекомендую сделать.

И последний пункт в этой закладке "Display encoding status". Эта опция включает информационную панель во время сжатия.


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

Теперь последний пункт 6

Здесь указываются интервалы, на которых нужно повышать или понижать битрейты. Этот пункт очень удобно использовать на титрах. На них не обязательно сохранять полное качество, но полностью отрезать их мне не очень то нравится. При нажатии на кнопку "Add" добавится ещё один пункт в списке. Для того, что бы его отредактировать, нужно нажать на кнопку "Edit":

Сверху здесь указывается, с какого кадра начнётся действие этого раздела. Его действие идёт до следующего раздела, а если следующего раздела нет, то действие идёт до конца фильма. Номер кадра вводится вручную. Посмотреть, с какого кадра вам нужно делать раздел очень просто. Для этого в VirtualDub нужно перейти на нужный кадр (двигая слайдер мышью, а для точного позиционирования стрелками право-лево). Внизу отображается номер кадра, на котором вы остановились.


Вы можете просто выделить его и скопировать в буфер. После вставления этого номера в окошко "Start frame #" можно продолжать настройки для этого раздела. Всё, что вы настроите ниже, будет применено только для этого раздела.

При выборе параметра "Weight" в окошке нужно указать коэффициент умножения битрейта (ставится вручную или ползунком). Если поставить 0,5, то битрейт снизится в 2 раза относительно расчётного значения. При выставлении в 1 с битрейтом ничего не произойдёт.

Если выбрать "Quantizer", то в окне нужно указать квантизер, с которым будет производиться сжатие. Это не очень удобно. Я пользуюсь снижением битрейта. Пожалуй, этот пункт можно использовать для того, что бы получить на каком-то промежутке предсказуемое качество. Для этого мы задаём на этом промежутке какой-то квантизер (например 10 - это довольно высокий квантизер, при котором практически все детали будут сохранены).

  • "Force keyframe" если вы поставите галочку в этом пункте, то первый кадр этого раздела будет сделан как I-frame (ключевой кадр). Это бывает очень удобно, когда вы хотите пометить начало какого-то момента.
  • "Greyscale" включение этой функции переводит изображение в чёрно-белое.
  • "Chroma optimizer" эта функция усредняет цвета на ярких/тёмных местах. Это приводит к более качественным краям. Я бы рекомендовал использовать этот режим только для мультфильмов.

Теперь немного расскажу, как можно просматривать фильмы, сжатые при помощи кодека Xvid.. В связи с тем, что кодек переписывался несколько раз, материалы, закодированные разными версиями кодека Xvid, не совместимы между собой. Это касается и декодеров. Если декодер написан для версии Xvid, несоответствующей версии кодера, которым сжат фильм, то при проигрывании мы получим артефакты. Во многих проигрывателях есть собственные декодеры Xvid, они очень часто работают не правильно. Самый лучший вариант - отключить все внутренние декодеры и заставить проигрыватель пользоваться системными декодерами. Так же, выпускаются различные декодеры, поддерживающие Xvid и другие форматы. Примером такого декодера может служить FFDSHOW. Пользоваться такими вещами для просмотра я бы так же не вам рекомендовал. Многие проблемы при просмотре возникают именно из-за таких декодеров. Бывают случаи, когда попадается фильм сжатый очень ранними версиями Xvid. В этом случае, для того, что бы просмотреть этот фильм нужно будет поставить старую версию Xvid, что безусловно, очень не удобно. К сожалению, другого решения этой проблемы нет. Последние версии Xvid уже совместимы со стандартными декодерами Mpeg4. То есть, если в сжатом файле выставить метку FourCC в значение DX50, то для проигрывания этого видео запустится декодер DivX5.

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

Решил наконец-то разобраться с разнообразием видео-форматов. Результаты моего «интернет-расследования» ниже.

Стандарт - это спецификация (описание) алгоритма кодирования (сжатия) данных. Популярные стандарты:

  • Стандарты MPEG (Moving Picture Exper Group) - отличаются высокой скоростью компрессии/декомпрессии видео и звука и высокой степенью сжатия без заметной потери качества изображения. Стандарт MPEG-1 обеспечивает «картинку» аналогичную VHS-видео. MPEG-2 (DVD-Video) по качеству соизмерим с телевизионным изображением. MPEG-3 разрабатывался для систем телевидения высокой четкости (HDTV) и сейчас является частью стандарта MPEG-2. MPEG-4 используется в разработке интерактивного мультимедиа, графических приложений и цифрового телевидения.
  • H.264 (также известен как MPEG-4 AVC (Advanced Video Coding) - принят в качестве стандарта для сжатия видео высокой чёткости (HD, HDTV), распространяемого на оптических носителях нового поколения: Blu-ray и HD DVD. Сжатие H.264 обеспечивает отличное качество изображения и небольшой объём файла, но предъявляет более высокие требования к оборудованию для кодирования и воспроизведения видеофайлов.
  • WMV (Windows Media Video) - формат сжатия видео от Microsoft; для записи, как правило, используются контейнер Windows Media (*.wmv).
  • Real Media - формат позволяет менять качество видео-потока в зависимости от качества канала связи, используется для живой телевизионной трансляции в Интернете.
  • DV - формат записи, использующийся в цифровых видеокамерах.
  • Другие форматы: Apple Quicktime, VCD (Video CD), Super Video CD, ASF (Active Streaming Format).

Кодек - программная реализация алгоритма кодирования. Популярные кодеки:

  • DivX - самый распространённый проприетарный кодек стандарта MPEG-4;
  • Xvid - открытый кодек, основанный на одной из версий кодека DivX;
  • x264 - кодек для сжатия в стандарте H.264.
  • TrueMotion VP6 - прямой конкурент кодекам MPEG4-ASP (таким как DivX и Xvid), на малых битрейтах даёт заметно лучшую картинку, чем все кодеки семейства ASP, используется в качестве одного из основных вариантов кодирования в формате Flash Video.

Строго говоря за декодирование отвечает декодер (например, ffDShow), хотя под кодеком часто понимают и кодер, и декодер. Один из самых популярных пакетов декодеров - K-Lite Codec Pack . Если в системе не установлен необходимый декодер, то видеозапись не будет воспроизведена. Определить, какой именно декодер отсутствует, можно либо с помощью проигрывателя, либо с помощью специальной программы, например, AVIcodec или GSpot .

Контейнер - формат файла, в котором сохраняется видеоряд, звуковая дорожа/дорожки, субтитры и служебная информация. Популярные контейнеры:

  • Audio and Video Interleaved (AVI) - стандартный медиаконтейнер для Microsoft Windows; позволяет использовать различные кодеки, обычно DivX и XviD.
  • MPEG-4 Part 14 (MP4) - медиаконтейнер, поддерживающий аудио и видео из группы MPEG-4; официальный стандарт контейнера для видео H.264; может содержать звук только в формате AAC.
  • Matroska (MKV) - открытый и гибкий формат контейнера; расширения файлов: *.mkv - для видео с субтитрами и звуком, *.mka - для аудиофайлов, *.mks - для субтитров.
  • Flash Video (FLV) - медиаконтейнер для передачи видео через Интернет; используется популярными сервисами видеохостинга YouTube, Google Video, RuTube и другими.
  • Ogg - медиаконтейнер для аудиокодека Vorbis и видеокодека Theora.
  • Windows Media - формат контейнера для видеозаписей, разработанный Microsoft; расширения: *.asf, *.wmv, *.wm.
  • Другие виды контейнеров: Ogg Media (*.ogm), RealMedia (*.rm, *.rv, *.ram), QuickTime (*.mov, *.qt), Video Object (*.vob), DivX Media (*.divx), MPEG-2 program stream (MPG), 3GP.

Битрейт - показатель, который характеризует объем информации в единицу времени, как правило в каждой секунде записи. Чем меньше битрейт, тем «легче» файл, и тем хуже качество изображения и звука.

Инструкция к XviD4PSP 5 + XviD для:

  • конвертации видео в avi
  • кодирования видео кодеком XviD / настройка кодека XviD
  • кодирования аудио кодеком MP3 / настройка кодека MP3
  • создания HWP - видео в формате avi для домашнего двд-проигрывателя
  • настройка XviD4PSP 5

Данная инструкция прежде всего нацелена на качество материала на выходе.

Данный материал составлен для бесплатного ознакомления, любое его копирование в каких-либо целях запрещено и является нарушением авторских прав. Авторство принадлежит сайту minisite.3dn.ru (сайт), так что в случае обновления или дополнения инструкции, актуальная версия будет всегда только на minisite.

Перед началом работы рекомендуется установить последний пакет кодеков K-Lite Mega Codec Pack (в противном случае не гарантируется корректная работа программы) и обновить DirectX (Инструменты> Обновить DirectX) .

Рекомендуется использовать версию XviD4PSP 5 не ранее XviD4PSP 5.10.228.0 (2011-03-31) rc19, т.к. в старых версиях использовался косячный XviD 1.3.0 (версии билда ранее XviD 63), а начиная с этой версии используется XviD 1.3.1 (версии билда начиная от XviD 63) с пофиксенными косяками старой версии.

Инструкция написана на примере кодирования аниме, для кодирования фильма читайте пояснения к скринам.

Данная инструкция не претендует на звание лучшей, в том числе по качеству получаемого видео, но вполне является одной из лучших в своем роде. Рекомендую экспериментировать с настройками и добиваться лучшего результата в связке максимальное качество+минимальный вес для этого качества , т.е. находить золотую середину с приоритетом на качество и без раздутия веса. В данной инструкции описаны рекомендации по настройке программы XviD4PSP 5 и кодеков XviD и MP3, с конкретными примерами, а также описание различных опций и настроек. Экспериментируйте с настройками и добивайтесь лучших результатов =)

Данная инструкция считается законченной (лично я hwp более не занимаюсь), поэтому изменения и дополнения если и будут, то небольшие и редко.

Последнее обновление: 15.03.2013

upd. 16.10.2015 - небольшая редакция заголовков и подпись скринов, для профилактики от тупых копипастеров.

Версия программы не ранее: Xv iD4PSP 5.10.228.0 (2011-03-31) rc19

XviD - кодек, сжимающий видео по стандарту MPEG-4 , т.е. он использует сжатие MPEG-4 Advanced Simple Profile (ASP). Т.к. это кодек для сжатия видео, то следовательно он кодирует видео с потерей качества, поэтому добиться абсолютного 100% качества в принципе невозможно, но можно добиться качества максимально близкого к этому значению, т.е. снизить потери качества на столько, чтоб они были не заметны при просмотре, другими словами потери качества будут минимально допустимыми.

Настройка профиля видео - настройка кодека XviD.

Первая вкладка Main (основная):

Синим кружком обозначены рассчитываемый конечный размер файла и рассчитываемое значение бит на пиксель (обозначено как качество ). Левее показаны соответственно кодек, размер и значение бит на пиксель оригинального видео. Значение бит на пиксель не обязательно должно совпадать с оригиналом.

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

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

Encoding mode выбираем 2-Pass Bitrate (двухпроходное кодирование или кодирование в 2 шага по заданному битрейту )- наилучший вариант для качественного кодирования, в первом проходе(шаге) программа анализирует видео, чтоб правильно перераспределить битрейт по всем кадрам, а во втором уже производит кодирование по результатам анализа.

По идее 3-Pass Bitrate (кодирование в 3 шага) должен кодировать еще лучше, за счет более тщательного анализа, но на практике часто разница между ними небольшая, качество не сильно отличается, а порой и вовсе одинаковое, при этом времени на кодирование уходит гораздо больше (например если в 2 шага время кодирования будет 1ч., то в 3 шага 1.5+ ч.). Ну если для вас главное качество и вы никуда не торопитесь то можете кодировать в 3 шага, все же хоть и не на много, но оно качественней кодирования в 2 шага.

А вот 1-Pass Bitrate (кодирование в 1 шаг) лучше не выбирать, хоть он и быстрее, но при этом качество картинки сильно портится, особенно на динамических сценах(практически большинство сцен с движением). При кодировании в 1 шаг битрейт получается постоянным на всем протяжении видео, потому что не проводится анализ видео, в следствии чего качество страдает(пиксели, квадратики, шумы и прочие артефакты), т.к. на простых сценах битрейта будет в избытке, а на сложных наоборот будет не хватать.

Constant Quality - кодирование с постоянным квантизером, т.е. с постоянным качеством. Аналогичен 1-Pass Bitrate , с той только разницей что здесь мы задаем качество с помощью значения квантизера и в зависимости от сжимаемости видео будет получен средний битрейт, т.е. битрейт переменный, т.к. при одном и том же значении квантизера будет разный битрейт на разных сценах, в зависимости от их сложности(сжимаемости). Плюсы - время кодирования как у 1-Pass Bitrate , при значении квантизера 1-3 будет хорошее качество , минусы - непредсказуемый размер конечного файла, а также часто большой размер файла на выходе. Примечание : не зависимо от выставленного квантизера, кодер будет использовать опцию повышения квантизера для B-фреймов (вкладка Frames ).

3-Pass Quality - первый проход кодируется в режиме Constant Quality , по выбранному качеству (квантизеру) определяется битрейт, который будет использоваться в следующих проходах. 2 и 3 проходы аналогичны 2-Pass Bitrate. Плюсы - хорошее качество, минусы - долгое кодирование, непредсказуемый размер файла на выходе, который часто будет большим.

Кодирование в размер - 2-Pass Size и 3-Pass Size . Аналогичны 2-Pass Bitrate и 3-Pass Bitrate , с той только разницей что вместо битрейта выбираем размер конечного файла, а битрейт подстраивается так чтобы точно попадать в этот размер. Плюсы - легко подобрать размер конечного файла, минусы - для видеофайлов с разной продолжительностью размер файла придется настраивать отдельно, т.к. при одинаковом конечном размере файла, в зависимости от длительности(продолжительности) видео, качество(значение бит на пиксель)/битрейт будет различным - чем дольше будет видео, тем хуже будет качество(будет более низкий битрейт).

Не забывайте простую вещь - чем дольше видео, тем больше оно будет весить.

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

К слову большинство прочих программ для конвертирования видео кодируют именно в 1 шаг, не имея возможности кодирования в 2 шага и уж тем более в 3 шага, а также часто без возможности более точной настройки кодирования, в некоторых программах есть кодирование в 2 шага, но оно тупо не работает, а их экспертные настройки, если есть, оставляют желать лучшего. Как правило такие программы обещают(точнее их разработчики в описании) быстрое, легкое и удобное, и качественное кодирование видео, но в результате получаемое качество оказывается далеко не хорошим. Причем такие программы как правило еще и платные, в отличии от XviD4PSP.

Битрейт. Битрейт подбираем с учетом получаемого значения качества(бит на пиксель)(О среднем битрейте и значении качества(бит на пиксель)). Для разрешения 704х396-720x576 битрейта = 1200-1500 Кбит/сек будет достаточно , если кодируете аниме, в данном примере(см. скрины) при битрейте в 1500 Кбит/сек качество(бит на пиксель) получилось на 0.224 (частота кадров в примере 23.976 кадр/сек ), что вполне удовлетворяет требования к качеству. Как уже говорилось ранее, для фильмов надо брать битрейт выше, к примеру 1400-1700 Кбит/сек , чтоб значение качества было в районе 0.2 и больше.

Совет . Лучше ставьте более высокий битрейт, для достижения уровня качества от 0.2 и выше, к примеру в диапазоне 1500-2000 Кбит/сек (в зависимости от конечного разрешения и частоты кадров, при одном и том же битрейте, расчетное значение качества будет различным), особенно для динамичных видео, где полно сложных динамических сцен и высокая детализация изображения , например для аниме при разрешении 704х396 и частоте кадров 23.976 кадр/сек в большинстве случаев 1500 Кбит/сек будет более чем достаточно. Пустого увеличения размера файла не будет, если битрейта будет больше нужного, то он будет снижен, что в большинстве случаев и будет. Таким методом мы избежим занижения качества. А избежать пустого раздувания битрейта и следовательно размера файла нам поможет правильная настройка кодека, о чем как раз и написано в данной инструкции.

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

Grayscale mode не включать. Цветность убивается полностью, картинка становится серой (черно-белое кино).

Full 1-st pass - полное качество первого прохода. При отключенной данной опцией первый проход проходит с облегченными настройками. Изначально в кодеке XviD данная опция используется для того чтоб при первом проходе создать готовый файл. Но т.к. мы кодируем в 2 прохода эта опция нам бесполезна, ибо в первом проходе только собирается статистика по файлу для кодирования во втором проходе. Никакого улучшения качества в принципе это не дает, по крайней мере заметного, а времени на обработку файла уходит больше.

Chroma optimizer включаем, улучшает качество, работая с цветовой информацией изображения, минимизирует эффект лестницы на границах.

Вкладка Motion (поиск движения):

Motion search ставим на 6 - Ultra High , VHQ mode ставим на 4 - Wide Search , это делается для более тщательного анализа движения, что повышает качество видео.

VHQ metric выбираем 1 - PSNR_HVSM , это новая метрика, улучшает качество.

Quartel pixel search (Qpel) и Global motion compensation (GMC) отключить, двд плееры их не поддерживают, видео или вообще не будет запускаться или будет идти с жуткими помехами в виде квадратиков. Включать только в случае если вы не собираетесь смотреть видео на домашнем двд проигрывателе, на компе будет проигрываться без проблем (хотя в таком случае не понятно что вы забыли в настройке кодека xvid, для компа и новой техники лучше использовать кодек H.264(AVC) и контейнер mkv или mp4, брать больше разрешение и др.) . Собственно Qpel и GMC позволяют немного улучшить качество изображения.

Chroma motion estimation включаем, это оценка движения цветовой информации, улучшает качество изображения.

Вкладка Frames (настройка качества фреймов (кадры видео )):

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

P-frames — промежуточные кадры, используют данные о изображении из предыдущих кадров. В них хранится только информация о том на сколько изменился кадр по сравнению с предыдущим. Степень сжатия выше чем у I-фреймов.

B-frames промежуточные кадры для повышения степени сжатия видео без потери качества. В отличии от P-фреймов в них хранится информация на сколько кадр отличается от предыдущего и от следующего кадра. Степень сжатия выше чем у P- фреймов .

B-frames ставим 2 . Это максимальное количество идущих подряд B-фреймов. Более высокие значения могут привести к несовместимости с некоторыми двд проигрывателями(в основном со старыми) и ухудшению качества(если поставить слишком большое значение).

B-frames ratio | offset выставляем 150 | 100 соответственно (стандартные значения), это значит что ratio | offset = 1.50 | 1.00 . Повышают значение квантизера B-фреймов. Значения больше ставить не стоит, в противном случае будет завышен квантизер B-фреймов, что приведет к ухудшению качества картинки, уменьшать тоже не стоит, в противном случае теряется смысл B-фреймов.

Квантизер(Q) B-фреймов расчитывается по формуле:

Q B-фреймов = средний Q окружающих двух фреймов * ratio + offset

средний Q окружающих двух фреймов = (Q предшествующего P-фрейма + Q следующего P-фрейма) / 2

ratio|offset = 1.50 |1.00

Key-frames interval - максимальное расстояние (интервал) между ключевыми кадрами (I-фреймами). Ставим 200 - это более менее оптимальное значение для большинства случаев . Это улучшит навигацию по видео и его качество. Это лишь максимальное значение интервала, т.е. расстояние между I-фреймами на протяжении всего видео будет разное, но не будет превышать это значение. Не рекомендуется выставлять слишком высокие значения - это приведет к ухудшению качества и навигации по видео, слишком низкие значения же приведут к значительному увеличению веса видео, а качества в целом не прибавит. Минимум выставлять значение 100 , но в большинстве случаев не рекомендуется , по умолчанию стоит 300 , в большинстве случаев выше этого значения ставить также не рекомендуется. Лучше выставлять значения в районе 200-300 .

Closed GOP должно быть включено. Опция гарантирует что перед каждым новым I-фреймом будет всегда стоять P-фрейм.

Packet bitstream отключить, тем более потому что мы кодируем в 2 прохода.

VHQ for B-frames включить. Как ясно из названия это VHQ mode для B-фреймов , используется для повышения их качества.

Min Q и Max Q - минимальные и максимальные значения квантизеров для I-, P-, B-фреймов. Другими словами с помощью этих параметров можно задать ограничения на максимальное и минимальное качество разных фреймов(значения их квантизеров), т.е. задать диапазон качества . По умолчанию Min Q = 1-2, Max Q = 31. При Min Q = 1 кодек будет стремиться кодировать точно в заданный битрейт (особенно при Pmin =1) , т.е. битрейт будет стремиться к максимальному значению и он часто будет больше чем нужно. При Min Q = 2 качество получается примерно такое же как при значении 1, но идет более лучшее распределение квантов, лучше экономится битрейт. Max Q можно оставить на 31 , но если вы не довольны качеством то ставьте значения ниже. Для I-фреймов значение квантизера будет минимальным(для максимального качества ключевых кадров), для P-фреймов больше, для B-фреймов еще больше. Но не стоит увлекаться с поднятием квантизера B-фреймов, т.к. мы и так используем опцию повышения квантизера B-фреймов B-frames ratio | offset .

Также можно жестко ограничить качество фреймов, в таком случае для наилучшего качества подойдут следующие значения:

Min Q I = 1, Max Q I = 3 - ключевым кадрам ставим максимальное качество

Min Q P = 2, Max Q P = 4 - P-кадры должны быть сжаты сильнее чем I-кадры

Min Q B = 2, Max Q B = 4 - B -кадры должны быть сжаты сильнее чем P-кадры, это условие выполняется, т.к. включено повышение Q B -кадров (ratio|offset). Поэтому конечные значения Min Q и Max Q B -кадров будут равны 3-4 и 7 соответственно.

Вообщем жестко ограниченный диапазон выставляемых значений мин. и макс. квантов фреймов для хорошего качества должен быть примерно следующим:

Min Q I = 1-2, Max Q I = 2-4

Min Q P = 2-3, Max Q P = 3-5

Min Q B = 2-3, Max Q B = 3-5

Если выставленный битрейт не будет попадать в диапазон качества, который мы задали, то он будет повышен или понижен. Т.е. если битрейт ниже нужного для минимального качества (Max Q), он будет повышен до этого значения . А если битрейт выше нужного для максимального качества (Min Q), он будет понижен до этого значения .

Для хорошего качества средние значения квантов I-фреймов должны получаться в районе 1-3 , P-фреймов 2-4 , B-фреймов 3-6 . Чем ниже значения по средним квантам тем выше качество. Значения средних квантов можно посмотреть в конце лога кодирования, ниже строчки xvid_encraw.exe: -pass2 . В идеале должно получиться что то вроде:
I frames: ... quants = 1 / 1.00 / 1 (или 2 / 2.00 / 2 )
P frames: ... quants = 2 / 2.00 / 2
B frames: ... quants = 4 / 4.00 / 4
(или 3 / 3.00 / 3 )

Тут мы видим количество фреймов каждого типа и значения их квантов в порядке минимум / среднее / максимум .

Оценка качества по средним квантам фреймов - наиболее оптимальный и точный вариант оценки качества готового видео при кодировании кодеком XviD.

Вкладка Rate :

KBoost (I-frame boost - повысить I-фреймы ) оставляем значение по умолчанию 10 (%) . Этот параметр увеличивает количество битрейта выделяемого на ключевые кадры(I-фреймы). Указывается в процентном соотношении, т.е. в данном случае на I-фреймы пойдет на 10% больше битрейта.

CHigh (High bitrate scenes degradation - уменьшить сцены с высоким битрейтом ) и CLow (Low bitrate scenes improvement - повысить сцены с низким битрейтом ) можно оставить значения по умолчанию 0 (%) . CHigh забирает битрейт со сцен с высоким битрейтом(сложные динамические сцены) и отдает их сценам со средним(сцены со средней динамикой) и низким битрейтом(статичные, фоновые сцены, с минимум или полным отсутствием движения). CLow забирает битрейт со сцен с высоким и средним битрейтом и отдает их сценам с низким битрейтом. Указываются в процентном соотношении. Т.е. если вас не устраивает качество статичных сцен, а динамика смотрится хорошо, то эти опции помогут вам лучше перераспределить битрейт между ними. Но не рекомендуется увлекаться этими опциями, слишком большие значения испортят качество динамичных или средних сцен. Если использовать данные опции то желательно ставить наименьшие значения. Лично я использую CHigh = 5% (см. скрин).

OStrength (Overflow control strength - контролировать силу распределения) , OImprove (Max overflow improvement - максимальное повышение распределения ) и ODegrade (Max overflow degradation - максимальное понижение распределения ) выставляем 10 (%) . Эти параметры указывают на сколько кодек может отклоняться от расчетных значений битрейта там где это нужно. OStrength указывает на сколько кодек может выходить за расчётные значения в каждом кадре (без разницы, уменьшение или увеличение). OImprove определяет на сколько можно поднимать битрейт, относительно среднего битрейта, на непродолжительных участках (там, где это требуется). ODegrade определяет на сколько можно снижать битрейт, относительно среднего битрейта, на непродолжительных участках (там, где это требуется). С помощью данных параметров мы улучшаем перераспределение битрейта. Высокие значения ставить не рекомендуется, в противном случае кодек может одной сцене отдать битрейта больше чем нужно, а другой наоборот меньше, что приведет к ухудшению качества в последней. По умолчанию вообще стоят значения 5 .

Reaction (Reaction Delay Factor) , Averaging (Averaging period) и Smoother оставляем значения по умолчанию(см. скрин).

VBV (Video Buffer Verifier) : VBVsize (Max buffer size) ставим 3145728 , VBVmax (Max bitrate) ставим 4854000 , VBVpeak оставляем 0 . Используются в двухпроходном режиме. Значения взяты из стандартных профилей кодека XviD. Такие же значения в профилях двухпроходного кодирования по умолчанию.

Вкладка Misc (разное) :

Матрицу выбираем H263 , лучший выбор в большинстве случаев, особенно для аниме. Для фильмов также можно использовать следующую матрицу MPEG .

HVS masking (Adaptive Quantization(AQ) - Адаптивное Квантование) выбираем только Variance . Улучшает качество. Lumi вообще никогда не стоит выбирать, т.к. это старое AQ и оно наоборот только портит качество.

1-st pass Quantizer ставим 2 . Это квантизер первого шага. Можно выставлять значения в районе 1-3 . Как говорилось ранее при квантизере 2 идет лучшее распределение квантов.

Trellis quantization включить, также улучшает качество.

Use new XviD 1.3.x включаем, в противном случае часть опций просто не будет работать, т.к. их просто не поддерживает старая версия кодека, в последствии чего качество будет хуже. Э то глобальная опция.

Threads - многопоточность, определяет сколько ядер процессора будет использоваться для кодирования. Это глобальная опция. Ставим количество ядер вашего компа или оставляем на Auto . Только в режиме Auto будет использоваться значение = количество ядер + 2. Но это не значит что режим Auto увеличит скорость кодирования, все равно скорость кодирования напрямую зависит от вашего железа, т.е. будет использоваться столько ядер сколько есть.

В последней вкладке CLI (Command line Interface) нам делать нечего, там записан скрипт с нашими параметрами кодирования, который получился в результате наших настроек. Если не знаете что делаете, то там ничего не изменяйте.

Итак, с видео мы закончили, сохраняем профиль (кнопка с плюсиком, говорилось в самом начале) и нажимаем OK.

Звук для фильмов лучше выбирать AC3 с битрейтом в 256-448 Кбит/сек , при условии что звук в исходнике качественный (5.1ch с хорошим качеством например).

А для аниме, сериалов и прочего выбираем конечно же MP3 с битрейтом в 128-256 Кбит/сек . Для аниме оптимальным будет 192 Кбит/сек , но если например в исходнике дубляж и сам звук высокого качества, то лучше 224- 256 Кбит/сек . Битрейт в 128 Кбит/сек является минимально допустимым, но лучше его все же не использовать, а брать не менее 160 Кбит/сек .

В данном примере выбран MP3.

Encoding mode выбираем CBR (Constant BitRate - постоянный битрейт) . Это постоянный битрейт, другие не стоит выбирать, в противном случае получите проблемы со звуком.

Channels mode естественно Stereo .

Quality выбираем 0 - Best Quality , это лучшее качество.

Replay gain (выравнивание громкости) оставляем отключенным(None ). В противном случае можем испортить звук, т.к. в принципе громкость звука в оригинале врятле постоянна на всем своем протяжении. Включать если только вам это нужно в определенных целях, но в большинстве случаев не рекомендуется.

Don"t change samplerate - не изменять частоту дискретизации. Не включать, т.к. если частота звука оригинала стандартная для MP3(например 44.1 KHz(КГц) или 48.0 KHz ) то она и так по умолчанию скопируется, а нестандартную частоту лучше не оставлять, в противном случае могут возникнуть проблемы со звуком, вплоть до того что оно не будет воспроизводиться на двд . Включайте если только оно вам надо и вы знаете что делаете.

Сохраняем готовый профиль аудио.

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

Экспериментируйте с настройками

Статья в процессе написания, когда есть свободное время - тогда и пишу...

1. Что вы можете рассказать мне о настройках в XviD?

При открытии настроек кодека XviD в программе XviD4PSP 5 в первый раз, вы увидите много кнопок, вкладок, выпадающих под панелей Показывающих варианты, варианты и.... что вы думаете? Дополнительные параметры настроек кодека XviD.
В принципе, все варианты, что предлагает XviD очень сильно отличаются от большинства других MPEG-4 кодеков. Они могут иметь значение (или не иметь) для Вашего кодирования, а также могут иметь огромное влияние на скорость кодирования. Вы можете выбрать определенные опции, при кодировании с которыми Ваш результат будет воспроизводиться с кодеками / декодерами, не только XviD (например DivX или 3ivx кодек или FFDShow), или же Вы можете выбрать все эти дополнительные опции, которые делают XviD настолько уникальным и универсальным. Вы можете выбрать варианты, которые позволят в режиме реального времени кодировать телевизионную трансляцию или видео с камеры наблюдения, или же Вы можете выбрать опции, которые заставят кодек замедлиться до скорости улитки, но дадут очень хорошие результаты.

(Следующее описание настроек XviD для XviD4PSP 5 сборки от fcp. В других сборках интерфейс может быть отличным от этого, но Вы найдете много, если не все параметры, определенные в той или иной форме).

Настройки кодека XviD в XviD4PSP 5

В верху окна Настройки видео кодирования Вы можете видеть каким кодеком был закодирован исходный видео файл (исходник), его размер и соотношение Бит/(Пиксели*Кадры) а также предполагаемый размер и соотношение Бит/(Пиксели*Кадры) в перекодированном видео, при условии что уже настроены разрешение и частота кадров. (Исключение: Невозможно предугадать размер и соотношение Бит/(Пиксели*Кадры) при кодировании в режиме Constant Quality)

Вкладка Main

Encoding mode - Возможность выбрать режим кодирования: в установленный битрейт, с постоянным качеством или же в установленный размер.

1-Pass Bitrate - Закодирует видео сразу, за один проход. Берет каждый кадр видео, проверяет на сжимаемость и затем кодирует его.

2-Pass Bitrate - Кодирование в два прохода. В первом проходе делается оценка того, как сильно Ваше видео поддается сжатию. А во втором проходе используются данные о сжимаемости, собранные во время первого прохода, чтобы действительно закодировать видео.

3-Pass Bitrate - То же, что и 2-Pass Bitrate, но кодирование производится в 3-м проходе. А во 2-м проходе производится уточнение статистики, полученной на первом проходе. Это дает возможность более корректно распределить битрейт и точно попасть в заданный битрейт.

Constant Quality - Кодирование с постоянным квантизером ("делителем"). Чем меньше квантизер - тем выше качество. В этом режиме выходной битрейт не определен, и зависит от сжимаемости видео. Так же следует учитывать, что не зависимо от выставленного квантизёра, кодер не будет использовать значения, меньше Min Q и больше Max Q установленные на вкладке Frames.

3-Pass Quality - Первый проход кодируется в режиме Constant Quality , определяется битрейт перекодированного файла. Второй и третий проходы эквиваленты обычному 2-х проходному кодированию (2-Pass Bitrate), в качестве битрейта задается ранее подсчитанный битрейт.

2-Pass Size - Кодирование в два прохода. В первом проходе делается оценка того, как сильно Ваше видео поддается сжатию. А во втором проходе используются данные о сжимаемости, собранные во время первого прохода, чтобы действительно закодировать видео а также устанавливается необходимый битрейт (высчитывается встроенным в XviD4PSP 5 калькулятором) для точного попадания в заданный битрейт (в пределах разумного, кодек не сможет закодировать минутный семпл из DVD video в размер 2GB).

3-Pass Size - То же, что и 2-Pass Size, но (по аналогии с 3-Pass Bitrate) во время второго прохода производится уточнение статистики, полученной на первом проходе. Третий проход - непосредственно кодирование. Это дает возможность более корректно распределить битрейт и точно попасть в заданный размер.

Какой режим выбрать зависит от того, чего Вы желаете от результата. Кодирование в два прохода намного лучше в распределении битов, там где они необходимы, и поэтому дает Вам намного лучше выглядящее видео. Однопроходное кодирование пригодно для использования только когда невозможно сделать кодирование в два прохода, как например кодирование в реальном времени в прямом эфире, телевизионный захват или камеры видеонаблюдения. Если вам обязательно надо пойти на однопроходное кодирование по определенной причине тогда действительно нет другого пути, кроме кодирования в два прохода.
Обратите внимание, что DivX 5 в настоящее время имеет опцию "Multi-Pass ", что позволяет больше чем кодирование в два прохода. Это предназначается, чтобы получить еще лучшее распределение бит (вроде путем усреднения между большим количеством проходов), но многие пользователи сообщают близкие к нулю выгоды после третьего прохода. XviD действительно не нуждается в технике, как эта, потому что решение-распределения-бит которое она делает умнее и дает лучшие результаты.

Квантизер - это так называемый DRF (D etail R emoval F actor) - величина, показывающая степень потери детализации изображения, то есть обратно пропорциональная качеству. Чем больше квантизер - тем больше деталей будет потеряно. Визуально это проявляется появлением блочности на изображении (квадратных артефактов в кадре). Соответственно, чем меньше квантизер, тем больше детализация кадра (качество) а также битрейт, необходимый для его сжатия и, частично, его размер. По умолчанию минимальный квантайзер равен - 2; максимальный - 31.

Bitrate:(kbps) / Качество:(Q) / Размер: (MB) - Зависит от того что выбрано в Encoding mode .

Preset - Профиль в основном соответствует определенным настройкам кодека, предназначенным специально для определенного использования, сценарии...
В каждом Профиле у Вас есть разные уровни настроек, которые ограничивают тот особый профиль определенным сценарием. После изменения некоторых настроек выбранного пресета он может сбросится на Custom (например изменение количества B-кадров).
Default - Настройки кодека по умолчанию.
Turbo - Быстрое кодирование, плохое качество
Ultra - Высокое качество кодирования, оптимальное соотношение скорость / качество.
Extreme - Очень высокое качество, медленное кодирование
Custom - Персональные настройки кодека

FOURCC - Здесь вы можете изменить FourCC используемый в полученном файле после кодирования. FourCC в основном содержит идентификационный код, содержащийся в перекодированном видео файле. При сжатии, в заголовке AVI файла прописывается метка, каким кодеком это было сжато. При воспроизведении проигрыватель считывает эту метку и запускает соответствующий декодер (говорит мультимедийному приложению (например, WMP, MPC или DivX Player-у), какой тип декодера должен быть использован для правильного открытия видео). Для Mpeg4 совместимых кодеков возможна замена декодера. Вы можете установить, например, DivX или DX50 что бы проигрывать видео с помощью DivX 5 декодера. Если Вы это делаете, вы должны принять во внимание ограничения того декодера, так что вы не можете использовать некоторые функции XviD (например, больше чем 1 B-кадр или GMC). Рекомендуется, если вы действительно хотите, чтобы Ваши видео файлы воспроизводились на аппаратных плеерах, поддерживающих DivX, но не XviD.

Cartoon - Включает некоторый механизм по оценке движения, который пропускает больше макро-блоков (вместо того, чтобы кодировать их). Результат - более устойчивое, немного менее подробное (детализированное) изображение. Именно то что нужно для кодирования мультфильмов как "Futurama или Simpsons." Я не рекомендовал бы это для более детализированного японского аниме.
Активизирует два различных метода, оба разработанные, чтобы помочь с мультфильмами:
- detect_static_motion - флаг оценки движения, он работает как предел (лимит). Если движение, найденное процессом поиска движения, ниже этого предела, макроблок считается статичным, и никакая информация о движении не кодируется. Когда Cartoon режим включен, предел, ниже которого макроблок считается статическим, увеличивается так, что небольшие движения будут потеряны еще больше. Так как МНОГО этих "маленьких движений" являются фактически шумом (особенно в мультфильмах), он действительно помогает экономии многих битов, которые иначе использовались бы, чтобы закодировать шум на статической картинке.
- vop_cartoon - Квантизация. Когда блок получил достаточно хорошую компенсацию движения (с полной ошибкой ниже предела), это просто не кодируется вообще. XviD не пропускает данных в нормальном способе кодирования (предел = 1), но пропускает довольно много в мультипликационном способе. Опять же, это обычно означает, что шум проигнорирован. Это может также удалить некоторые мелкие детали, но мелкие детали действительно не должны присутствовать в "правильных" мультфильмах.
Таким образом, в то время как первая техника помогает с удалением движений, которые являются настолько крошечными, что можно считать что они "не являются частью источника", вторая помогает сжимаемости мультфильма, удаляя детали структуры, которые посчитала "слишком маленькими, чтобы быть частью источника".

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

Full 1-st pass - По умолчанию XviD делает первый проход с облегченными настройками, не зависимо от того, какие настройки указал пользователь. Включение этой опции отменяет этот режим.

Chroma optimizer - будет делать дополнительные «магические» действия над информацией о цвете, чтобы минимизировать эффект лестницы на границах. Это улучшит качество ценой скорости кодирования. Это снижает PSNR по своей природе, математическое отклонение от оригинальной картинки станет больше - но субъективное качество изображения будет лучше (как уже упоминалось, "ступенчатых артефактов" будет меньше). Поскольку он работает с информацией о цвете, Вы можете отключить его при кодировании в оттенках серого.

Вкладка Motion

Здесь вы найдете варианты определяющие точность поиска движения. Поиск движения является процессом, в котором кодек пытается выяснить, как каждая часть оригинального клипа двигалась. Чем больше он ищет, тем точнее будет его оценка движения, и лучше будет фиксироваться оригинальное движение в кадре.
Почему именно захват движения так важен, спросите вы?
Давайте рассмотрим простой пример, белый блок перемещения вправо. Каждый кадр является частью изображения, где блока больше не будет установится цвет фона, а другая часть должна принять цвет блока. Изменения которыми должен быть закодирован каждый кадр будут представлять собой значительное количество бит.
Вместо этого кодек просто принимает блок и проверяет, есть ли движение. Если есть движение, кодек захватывает это движение средствами поиска, а затем использует найденное значение в качестве вектора движения для конкретного блока. На самом деле процесс более сложный, но основная идея в том, что большинство изменений информации цвета и текстуры, вызвано движением и, следовательно, большое количество цветов и текстур могут быть сохранены с меньшими затратами бит, или это движение захватывается другими способами.

Motion search - Самая основная настройка точности поиска движения, и ей требуется большая продолжительность обработки, НО рекомендуется оставить 6. Допускается опускать значение ниже, до 5-ти, и только если Вы спешите. Кстати: она работает только в яркостной плоскости изображения, т.е. только смотрит на изменения в яркости, а не в цвете.

VHQ mode - Более интенсивный поиск и широкий подход, оптимизирует режим макроблоков, вместо усреднения. Более высокие параметры настройки замедлят кодирование значительно. Установка в 1 оказывает относительно маленькое влияние, и рекомендуется для любого кодирования. Использование более высоких значений даст Вам лучшее качество за счет падения скорости кодирования.

Quarter pixel search - Поиск движения с точностью до четверти пикселя. Это повышает чёткость, особенно на низких разрешениях, но вместе с этим добавляет шум на изображение. Естественно, просто так это не происходит. Включение Q-pel повышает загрузку процессора и увеличивает поток, используемый для этого. Не поддерживается Старыми аппаратными MPEG-4 плеерами.
Как Q-пиксел работает и когда я должен использовать его?
Q-pel (или Qpel) является кратким названием от Q uarterP ixel motion search precision (поиск движения с точностью до Четверти Пикселя), и этот выбор активизирует использование точности до четверти пикселя.
Поиск движения пытается захватить все движение между одним кадром и следующим, так, чтобы макроблоки (Дальше MB ) могли получить правильные векторы движения, назначенные на них. Если движение должным образом захвачено тогда не будет никакой потребности в дополнительных изменениях к MB-ам кроме вектора движения, экономя некоторые биты. Чем более точно движение захвачено, тем меньше битов может быть назначено на содержание MB-ов, и больше MB-ов может состоять только из вектора движения.
Так, теоретически, более точный захват движения бы спасти в измененной информации о структуре, таким образом экономя биты, и точность увеличения полного сжатия, таким образом увеличивая качество. (Мы будем скоро видеть, почему это только теоретически)

Обычно XviD использует точность поиска движения полупиксела. Это означает, что он может "видеть" движение с субпиксельной точностью; если MB перемещается по ширине, положение высоты от 200, 300 до 201, 300 в следующих двух кадрах, Q-pel может обнаружить это движение правильно и может дать MB вектор движения, который говорит, "переместите меня на половину пикселя вправо в этом кадре, пожалуйста", и в тех следующих двух кадрах. Движение будет захвачено правильно, и никакие биты кадров не изменены.
Теперь с Qpel Вы можете захватить движение, которое перемещается только на четверть пикселя за кадр, эффективно удваивая точность.

Пример :
MB, который перемещается (плавно) от положения 200, 300 до 201, 300 в следующих четырех кадрах, перемещается только на одну четверть пикселя за кадр. С нормальной точностью полупиксела это движение отображалось бы с "подергиванием", и кодеку, возможно, пришлось бы дать компенсацию за это, изменяя части структуры MB. Это, конечно, занимает место, и MB больше не состоял бы из только вектора движения; нужно было бы назначить дополнительные биты для измененной информации о кадре, таким образом уменьшая сжимаемость.
С Qpel, движение будет захвачено правильно и не потребуются дополнительные биты для измененной информации о кадре, количество битов, используемых для этой структуры уменьшится.
Легко да? Но подождите, здесь есть одна проблема...
Итак, в чем же подвох?
Загвоздка в том, что только само использование Qpel уже использует дополнительные биты.
Помогает ли это экономии бит в целом или нет ?
Это связано с дополнительной точностью, что требует больше битов, отводимых для векторов движения. Вместо того, что вектор движения может быть просто что-то вроде 0.5,0 (половина пикселя движение по ширине, без движения по высоте) этого не будет а будет 0.25,0 (четверть пикселя движение по ширине, без движения по высоте). Таким образом, вместо одной десятой после точки теперь требуется два десятичных знака после точки, требующие кодек бросить больше бит на сохранение этого значения.
(Обратите внимание, что это упрощение реального процесса, но это достаточно правильно чтобы понять принцип работы)
Вместо другой десятичной Qpel фактически использует другой дополнительный бит (устанавливается 0 или 1) для каждой оси, что достаточно для достижения двойной точности. Существуют две оси, одна для ширины и одна для высоты, так что каждый вектор движения требует двух дополнительных битов для Qpel.
Если предположить, что существует один вектор для всех макроблоков (там может быть 4 или 0), на разрешение 640x272 и 24 fps и P-кадрах только два бита для каждого макроблока принять 40 х 17 х 2 х 24 = 32 640 бит или 32,5 Кбит / с.
Так, в основном, независимо от результата, Qpel всегда берет значительный кусок битрейта только для себя, даже если это не поможет сжатию хоть одного проклятого бита.
Теперь правило, это действительно помогает, но биты кадров, сэкономленные лучшей точностью должны быть больше, чем биты добавленные векторами движения, прежде чем сжимаемость с Qpel увеличится при том же размере. Если сэкономленные биты кадров больше, чем дополнительные биты вектора движения, тогда Вы увеличите сжимаемость (и качество) в том же самом размере. Если сэкономленные биты кадров не больше, чем биты добавленные векторами движения, Вы потратите впустую место и конечный результат может выглядеть хуже.
Как же я могу узнать, использование Qpel будет увеличивать или уменьшать сжимаемость?
Вот другая загвоздка: Вы не можете узнать заранее. Нет никакого способа узнать, просто посмотрев на источник, поможет Qpel или нет. Не имеет значения, быстрая сцена с движением или медленная, панорамная сцена или изменяющая масштаб... Просто нет способа узнать заранее. Быстрая сцена с движением может составить 90%-ое движение Qpel или 90%-ое движение полупикселя, или любой другой процент... Это все делает какое-либо предварительное предположение о преимуществах кодирования с Qpel смешным .

Единственный реальный способ узнать состоит в том, чтобы попытаться кодировать и с и без Qpel и увидеть, какой результат выглядит лучше.
(Теперь вы можете понять, почему существует разница между теорией и практикой...)

Некоторые дополнительные примечания :
- Из-за повышенной точности, Qpel значительно увеличивает время кодирования и требует больше вычислительной мощности для декодирования. Кодирование может занять почти в два раза больше времени и, соответственно, может потребоваться до 30-60% больше мощности для декодирования.
- В некоторых старых версиях (альфа) Qpel может создавать артефакты, но текущие реализация не имеют известных ошибок. Это безопасно для использования.
- Quarter pixel search - Не поддерживается Старыми аппаратными плеерами! Не кодируйте для других если не уверены что их аппаратный плеер сможет проиграть видео закодированное с Qpel!

Global motion compensation - Глобальная Компенсация Движения (GMC), само название в значительной степени рассказывает о том, что делает GMC. Она начинает работать в моменты панорамирования, наезда или отъезда на объект, а так же при поворотах. Не поддерживается аппаратными MPEG-4 плеерами.
Для чего нужна GMC?
Если используется, то она будет смотреть на всю структуру кадра, есть ли движение всех частей кадра в общем. Затем возьмет эту сумму движения и поместит ее в одно значение. Части кадров - макроблоки а количество движения называется "вектор движения", которое имеет как направление так и значение (своего рода как двумерное X, Y значение).

Все макроблоки обычно имеют свои собственные векторы движения, но у GMC всего один вектор движения, который они имеют все вместе (именно поэтому и называется "Глобальным") поэтому все векторы будут компенсироваться и вкладываться в один вектор движения. Некоторые движения макроблоков "будет полностью компенсировать вектор GMC, получая полностью сведены на ноль процесс компенсации. Вектор движения этих макроблоков будет тогда удален, поскольку это то же самое, и является только дополнительной информацией. Возможная выгода в том, что Вы можете удалить многие или даже все векторы движения макроблоков (или даже непосредственно сами блоки, если нет никакой информации о изменениях в текстуре) в кадре за счет одного значения, тем самым делая его гораздо меньше.
Заметим, однако, что это для одной warppoint GMC. С Несколькими warppoints процессы гораздо более сложные, но принцип тот же.
Warppoints, хм..., что за warppoint?
warppoint - это вектор движения, что определяет смещение одного * края * в видео. Возьмите лист бумаги за края и перемести его, и вы увидите то, что я имею в виду.
- Первый warppoint определяет смещение верхнего левого края если это единственный warppoint, это когда остальное изображение имеет тот же вектор и вся картинка движется. Подумайте о панорамировании.
- Второй warppoint определяет смещение верхнего правого края (не * точно * правда, но достаточно близко, не вдаваясь слишком в технические подробности). Вместе с первым warppoint, этого достаточно, чтобы определить панорамирование * и * зум. Обратите внимание, что оно могло бы быть использовано для определения панорамирования и поворота вместо этого, но * нет *
- Третий warppoint определяет смещение вниз левого края и три warpoints достаточно, чтобы определить панорамирование, масштабирование и поворот.
- Четвертый warppoint создал бы подобное перспективе движения.
Обратите внимание, что GMC XviD использует 3 warppoints, в то время как GMC DivX использует только один. Warppoints хранятся в заголовке кадра, и только тогда, когда они используются.

Chroma motion estimation - Оценка движения цветовой информации. Принимает во внимание цветовую информацию в кадре, работает на основе Motion search с настройкой 7 но в области цветности, согласно названию. Рекомендуется!

Вкладка Frames

Стандартный рип, сделанный кодеком XviD, содержит 3 типа кадров (frames):

1 . I-frames - ключевые кадры, мало сжимаемые но не требуют других кадров для декодирования видео
2 . P-frames - промежуточные (прогнозируемые) кадры, могут использовать данные из предыдущих кадров для распаковки и более сжимаемые, чем I-frames.
3 . B-frames - двунаправленные интеллектуальные кадры, могут использовать как предыдущие так и следующие кадры для распаковки, чтобы получить наибольший объем сжатия данных.

I-frames содержат видеоинформацию и кодируются с минимальным сжатием, следовательно, имеют максимальную детализацию изображения. Навигация по видеоряду, операции резки/склейки осуществляются только по I-frames. В начале видеоряда и на смене сцен всегда стоит ключевой кадр.

P-frames содержат видеоинформацию об отличии видеокадра от предыдущего - то есть, при его распаковке мы получим не полный кадр, а, грубо говоря, отличие от предыдущего. На статических сценах кадры меняются сравнительно мало, поэтому отличия содержат меньше видеоинформации, чем полный кадр, и, благодаря этому, p-frames значительно меньше, чем i-frames. Но, для получения полного видеокадра, нам нужно иметь полный предыдущий кадр, чтобы добавить к нему это отличие. Для получения следующего – полный предыдущий и так далее... То есть, нам нужно декодировать подряд всю цепочку кадров, начиная с ближайшего i-frame, имеющего полную информацию о кадре.

B-frames содержат видеоинформацию, вычисляемую по двум кадрам - предыдущему и следующему. Алгоритм весьма сложный, разный у разных кодеков. Очень грубо говоря, делается однозначная и легко вычисляемая интерполяция между предыдущим и следующим кадром, и B-frame содержит информацию о том, насколько реальный кадр отличается от этой интерполяции. Поскольку чаще всего предыдущий и последующий кадры, как правило, P-frame, (хотя может быть и i-frame), а b-frame вычисляется по их отличию, то он является разницей между двумя разницами. Это очень грубая аналогия, конечно. Они разработаны для того, чтобы уменьшить размер файла на выходе и сэкономить битрейт для кодирования I-frames и P-frames.
Например : нам надо закодировать, чисто теоретически, 3 одинаковых кадра: I , P и ещё один P с битрейтом 20 бит/сек. На I-frame уйдёт 10 бит, на P-frames - по 5 бит соответственно. А теперь представьте, что вместо одного P-frame у вас B-frame, на который уйдёт не 5, а 3 бита. Оставшиеся 2 бита кодек добавит либо к I-frame, либо к P-frame (куда нужнее будет), тем самым увеличив качество данного кадра, то есть детализацию.
Размер B-frame будет меньше, чем заменённого им P-frame (данное справедливо для кодека XviD), так как B-frame - это не картинка, а разница между двумя другими разницами, как было сказано выше. Таким образом, мы выигрываем ещё и в размере.

Итак, стандартный видеоряд представлен следующей последовательностью кадров:
I-P-B-P-B-P-B-P-B-I в следующей пропорции (при условии использования I-frames 1 ): ключевой кадр, по 150 чередующихся P-frames и B-frames, и вновь ключевой кадр. То есть на 300 кадров видеоряда мы имеем 1 ключевой кадр. Это, я напоминаю, по умолчанию; в то же время кодек, определяя начало новой сцены, ставит первым ключевой кадр; таким образом, этот параметр не значит, что у нас на 300 кадров действительно будет лишь 1 ключевой; как минимум, их будет столько, сколько новых сцен в данном отрезке видеоряда. Разные рипперы используют разное количество, вернее, величину этого параметра – от 100 до 500. Количество ключевых кадров влияет на три параметра:
1. облегчение навигации по фильму и операций резки/склейки;
2. качество видеоряда;
3. размер файла;

B-frames - Определяет максимальное количество идущих подряд B-кадров. Если поставить 0, то мы попросту отключим использование B-кадров. Если поставить 1, то последовательность кадров будет: IPBPBPBPBPI (для большей совместимости со старыми аппаратными плеерами); если 2, то: IPBBPBBPBPI (для лучшего эффекта; установка B-frames 2 не означает что Везде будет два B-кадра подряд, это всего лишь ограничение что бы не было Больше двух подряд. На сложных сценах с движением последовательность кадров может выглядеть вот так: IPBPPPPBPPPBBPBPI); если 3, то: IPBBBPBBBPBPI (для интенсивного использования, может быть не совместимо с аппаратными MPEG-4 плеерами)Однако при очень большом количестве B-frames качество картинки может стать хуже (из-за высокой степени сжатия B-frames). Рекомендуется ставить 1 или 2 для того что бы не потерять совместимость с аппаратными MPEG-4 плеерами (По стандарту DivX, B-frames 1 рекомендуется при установке FOURCC - DivX / DX50).
B-кадрами (или BVOPs в технических обсуждениях) являются так называемые двунаправленные закодированные кадры и они являются частью определения A dvanced S imple P rofile (ASP). Без B-кадров вы просто должны придать ключевым кадрам четкое определение появления кадра каждые XXX кадров, а все остальные кадры (P-кадры) будут ссылаться на предыдущий, ключевой кадр, для описания. B-кадры ссылаются как на предыдущий так и на следующий кадр, поэтому они относится к другим кадрам в двух направлениях (эргономичная B-часть). Преимущество B-кадров в том, что они, как правило, закодированы с большим квантизером и занимают меньше места (битов) в видео, в то время как потери качества меньше в сравнении с потерями в использовании бит. В общем, вы используете изначально меньшие и хуже по качеству B-кадры, чтобы сэкономить место, которое будет использоваться для повышения качества во всем клипе. Основной эффект, как правило, улучшение качества, в зависимости от параметров B-кадра и типа источника.

B-frames ratio - Множитель (в среднем) окружающих квантов НЕ B-кадров, с этим значением, даст вам квантизер B-кадра (высчитывается, согласно формуле, на сколько должен быть поднят квантизер для B-кадров). Так что, если два смежных кадра имеют кванты 2 и 4, средний квант будет 3. Множитель с соотношением кванта 150 даст вам B-кадр с квантом - 4,5.
Пример : (2 + 4) * 150 / 200 = 4,5 (при условии что B-frames offset=0 )
(Квантизер предшествующего НЕ B-кадра + Квантизер следующего НЕ B-кадра) * (B-frames ratio) / 200 (при условии что B-frames offset=0 )
Снижать этот параметр не рекомендуется (теряется смысл B-кадров). Повышать Вы можете на своё усмотрение, это повысит сжатие B-кадров (соответственно, снизит их качество) и повысит качество I и P-кадров.

B-frames offset - Смещение квантизера. Возьмите результат расчета выше, а затем добавьте это значение. Со смещением квантизера 200 вы в конечном итоге получите B-кадры с квантом 6,5.
Как правило, повышение последних двух значений, даст Вам B-кадры более низкого качества.

Key-frames interval - Максимальное расстояние между ключевыми (I-frames ) кадрами (интервал). Эта опция указывает кодеку когда Обязательно нужно вставить ключевой кадр (I-кадр) через заданное число кадров (интервал). Если ключевой кадр необходим раньше, чем это число было достигнуто, он будет вставлен (например в месте смены сцен), и кодек начнет отсчет снова. Таким образом, хоть Вы и можете получить ключевые кадры с меньшим расстоянием, чем заданный интервал, у Вас не может быть более высоких интервалов.
Стандартные рекомендации настройки, 10x количество кадров в секунду, то есть 250 для 25fps PAL видео, 300 для NTSC 29,979 и т.д. Однако, есть видимый эффект, называемый Keyframe-pumping. Это напоминает медленное ухудшение качества последовательных P-и B-кадров с внезапным "скачком " по качеству, когда вставляется новый Ключевой кадр. В таких случаях может помочь Снижение максимального интервала I-кадра. Установка большого значения может привести к плохой навигации при перемещении по видео, так как процесс поиска использует только ключевые кадры, и меньшее количество ключевых кадров = менее точный поиск.
Примечание: Замечено появление артефактов при кодировании мультипликационных фильмов с Key-frames interval 300 для 25fps PAL видео, снижайте до 240-200...

Closed GOP - Closed GOP гарантирует, что P-кадр будет использоваться перед каждым новым I-кадром. Этот параметр всегда должен быть проверен (в противном случае Вы можете закончить с последовательностью кадров, как PBIP где B-кадр ссылается на I-кадр, что не имеет смысла; также отключение данной функции приведет к усложнению резки / склейки Вашего перекодированного видео).

Packet bitstream - опция, которая может доставить смешанные результаты во время воспроизведения, в зависимости от того, что Вы используете для воспроизведения. Это предназначается чтобы решить проблемы порядка кадров при кодировании в форматы, такие как контейнер AVI, который не может справиться с непорядком кадров. И хотя эта функция предназначена чтобы решить проблемы воспроизведения, которые возникают без этого, много людей сообщило о проблемах воспроизведения видео, закодированного с Packet bitstream . Это придумано для воспроизведения видео с помощью FFDShow, декодера DivX 5, и некоторыми старыми автономными (аппаратными) DVD-плеерами.
Если Вы точно знаете, что Вы делаете, то лучше держать эту функцию выключенной до дальнейшего уведомления. Если у Вас возникли проблемы воспроизведения, видео проигрывается с остановками, попробуйте отключить эту функцию и посмотреть, помогает ли отключение. В последних версиях XviD, большая часть проблем, связанных с Упаковыванием битового потока, как говорят, были решены, но больше обратной связи необходимо по этому вопросу. Так что если у Вас есть какая-либо особая информация, пожалуйста, сообщите.
Примечание: Если Вы воспроизводите файлы только с кодер-декодером XviD, вы никогда не должны использовать Packet bitstream .

VHQ for B-frames - Тоже что и VHQ mode но только для B-кадров.

Min Q / Max Q (I P B) - Минимально и Максимально возможные квантизеры для указанных типов кадров. Чем ниже это значение, тем более четкая картинка будет получаться (при условии, что битрейт будет достаточно высоким для достижения этого квантизера). По умолчанию: Min Q - 2, Max Q 31.
Min Q - 1 Устанавливается когда при кодировании в заданный битрейт / размер на выходе получаем файл с меньшим битрейтом / размером.
Если фильм, который достаточно хорошо сжимается при максимальном качестве, получается с меньшим битрейтом / размером, чем указано, то сКвантизером 1 немного увеличивается битрейт и, следовательно, размер файла без дальнейшего улучшения качества.Именно поэтому Квантизер 2 является действительно значимой ценностью.
Если Вы установите Min Q - 2 для кодирования, Xvid сделает Вам файл меньшего размера, демонстрируя свои способности к адаптации, и Вы сможете присоединить звуковую дорожку Большего размера, или даже повторить кодирование с Большим разрешением кадра. Это всегда лучше, чем впустую расходовать кванты для достижения нужного размера файла. Min Q - 2 почти не отличается по Качеству от Min Q - 1.

Вкладка Rate

KBoost - может быть использован, чтобы добавить дополнительные биты к ключевым кадрам. Указывается в процентах, так что значение 10 даст Вашим ключевым кадрам на 10% больше бит, чем обычно.

Кривая сжатия.
Обычно внутренние установки значения кривой (определяется разработчиками XviD после долгих общений с пользователями), способны доставлять очень хорошие результаты (я должен сказать «отличные» на самом деле), но если по тем или иным причинам Вы хотите изменить, можете использовать эти значения для настройки минимумов и максимумов в распределении бит.
Если вы сделаете мысленный образ кривой распределения, вы увидите график с «максимумами» и «минимумами», например как холмы и долины. Холмы это сцены с высоким битрейтом а долины - с низким битрейтом.
CHigh
- может быть использован, чтобы забрать биты из сцен с высоким битрейтом и распределить их на средне и низкобитрейтные сцены. (Представьте себе резервуар, например ведро с битами, откуда кодек может взять дополнительные биты чтобы улучшить каждый кадр) Следовательно, это снизит пиковый битрейт, и биты накопленные при этом будут разделены поровну между всеми кадрами Вашего видео. Это полезно, когда Вам действительно нужно сохранить Ваше перекодированное видео в пределах определенных максимальных параметров, как максимумы для определенного profile@level. Вы также можете использовать это, если у Вас есть клип с настолько большим количеством бит, отданным высобитрейтным сценам, что низкобитрейтные сцены начинают выглядеть плохо.
CLow
- может быть использован, чтобы добавить дополнительных бит в сцены с низким битрейтом, это подобно заполнению долины осадками. Но биты должны прийти откуда-то, поэтому кодек берет все кадры из видеоряда и выцарапывает несколько битов из каждого. Это может пригодиться, если у вас есть несколько сцен с низким битрейтом, на которых видны квадратики (блочность).

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

OImprove -

PDegrade -

Reaction -

Averaging -

Smoother -

VBVsize -

VBVmax -

VBVpeak -

Вкладка Misc

Matrix -

HVS masking -

1-st pass Quantizer -

Trelis quantization -

Use new XviD 1.3.0 -

Threads -

Вкладка CLI

Input options:
-i string: input filename (stdin)
-type integer: input data type (yuv=0, pgm=1, avi/avs=2)
-w integer: frame width ()
-h integer: frame height ()
-frames integer: number of frames to encode

Output options:
-dump: save decoder output
-save: save an Elementary Stream file per frame
-o string: save an Elementary Stream,
or AVI file,
or MKV file,
based on filename extension
-avi string: save an AVI file for the complete sequence
-mkv string: save a MKV file for the complete sequence

BFrames options:
-max_bframes integer: max bframes (2)
-bquant_ratio integer: bframe quantizer ratio (150)
-bquant_offset integer: bframe quantizer offset (100)

Rate control options:
-framerate float: target framerate (25.0)
-bitrate : target bitrate (700)
values <= 10000 are treated as kbit/s
values > 10000 are treated as bit/s
-size integer: target size in kilobytes
-single: single pass mode (default)
-cq float: single pass constant quantizer
-pass1 : twopass mode (first pass)
-full1pass: perform full first pass
-pass2 : twopass mode (2nd pass)
-altpass2 : twopass mode (2nd pass alt)
-zq starting_frame float: bitrate zone; quant
-zw starting_frame float: bitrate zone; weight
-zones: see xvid_encraw -help zones
-max_key_interval integer: maximum keyframe interval (300)

Single Pass options:
-reaction integer: reaction delay factor (16)
-averaging integer: averaging period (100)
-smoother integer: smoothing buffer (100)

Second Pass options:
-kboost integer: I frame boost (10)
-kthresh integer: I frame reduction threshold (1)
-kreduction integer: I frame reduction amount (20)
-ostrength integer: overflow control strength (5)
-oimprove integer: max overflow improvement (5)
-odegrade integer: max overflow degradation (5)
-chigh integer: high bitrate scenes degradation (0)
-clow integer: low bitrate scenes improvement (0)
-overhead integer: container frame overhead (24)
-vbvsize integer: use vbv buffer size
-vbvmax integer: vbv max bitrate
-vbvpeak integer: vbv peak bitrate over 1 second

Other options
-noasm: do not use assembly optmized code
-turbo: use turbo presets for higher encoding speed
-quality integer: quality () (6)
-vhqmode integer: level of R-D optimizations () (1)
-bvhq: use R-D optimizations for B-frames
-qpel: use quarter pixel ME
-gmc: use global motion compensation
-qtype integer: quantization type (H263:0, MPEG4:1) (0)
-qmatrix filename: use custom MPEG4 quantization matrix
-interlaced : interlaced encoding (BFF:1, TFF:2) (1)
-nopacked: Disable packed mode
-noclosed_gop: Disable closed GOP mode
-lumimasking: use lumimasking algorithm
-hvs_aq string: use custom adaptive quantisation equation
-hvs_lmb string: use custom lambda equation
-stats: print stats about encoded frames
-ssim : prints ssim for each frame () (2)
-ssim_file filename: outputs the ssim stats into a file
-debug: activates xvidcore internal debugging output
-vop_debug: print some info directly into encoded frames
-nochromame: Disable chroma motion estimation
-notrellis: Disable trellis quantization
-imin integer: Minimum I Quantizer (1..31) (2)
-imax integer: Maximum I quantizer (1..31) (31)
-bmin integer: Minimum B Quantizer (1..31) (2)
-bmax integer: Maximum B quantizer (1..31) (31)
-pmin integer: Minimum P Quantizer (1..31) (2)
-pmax integer: Maximum P quantizer (1..31) (31)
-drop integer: Frame Drop Ratio (0..100) (0)
-start integer: Starting frame number
-threads integer: Number of threads
-nothreadedinput: Disable threaded input reading
-progress : Show progress updates every n frames (10)
-par integer[:integer] : Set Pixel Aspect Ratio.
1 = 1:1
2 = 12:11 (4:3 PAL)
3 = 10:11 (4:3 NTSC)
4 = 16:11 (16:9 PAL)
5 = 40:33 (16:9 NTSC)
other = custom (width:height)
-help: prints this help message
-help zones: prints zones help message

NB: You can define 64 zones repeating the -z option as needed.