Xvid4psp 7 настройки кодирования. Кодирование с помощью технологии CUDA. Определение базовых настроек

Инструкция к 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.

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

Проекту MediaCoder исполнилось уже несколько лет, и за эти годы программа обрела большую популярность - прежде всего благодаря своей «всеядности»: MediaCoder может без проблем работать с десятками видео- и аудио-форматов, включая MPEG2/4 (AVC), DivX/XviD (AVI), QuickTime MOV, RealMedia и Windows Media.

Наиболее часто у пользователей возникает необходимость конвертировать оригинальное видео в формат MPEG4 AVC (H.264), поддерживающийся современными мобильными платформами, либо уменьшить размер файлов, сохранив по возможности оригинальное качество.

Итак, у нас на руках имеется тестовое видео: трейлер «BF3 Armored Kil» с разрешением 1920x1080 и битрейтом 5 642 Килобит/сек. Поставим перед собой задачу перекодировать его в видеофайл с меньшим размером (битрейтом) и более низким разрешением 720p. Для кодирования видео-потока выберем энкодер x264, сочетающий высокие показатели качества изображения с низкими требованиями к размеру конечных файлов - другими словами, отличающийся замечательной эффективностью конвертации. Операционная система - Windows 7 SP1 64-bit .

Зайдите на сайт M edia C oder HQ .com , выберите раздел «Download», затем перейдите по ссылке «Choose a MediaCoder edition to download» на страницу, где вам предложат выбрать издание Mediacoder. Нас интересует, конечно же, полное издание «MediaCoder Full Edition» - наиболее функциональное из всех.

На момент составления руководства актуальной версией является 0.8.16.5292 . Остается кликнуть на содержащую номер версии ссылку, размещенную под заголовком MediaCoder 64-bit (x64), и воспользоваться одним из зеркал для загрузки.

Если по каким-то причинам скачать MediaCoder с официального сайта не удается, рекомендую искать свежую версию программы на сайте VideoHelp.com в разделе «Tools ».

При установке на этапе выбора компонентов («Choose Components»), которые будут проинсталлированы в систему, отметьте пункт «Extra Decoders» в разделе «Video Components». После первого запуска появится окно с предложением воспользоваться «Мастером настройки» («Config Wizard»), однако целесообразнее производить все настройки для будущего кодирования непосредственно в главном окне самой программы, потому необходимо отметить пункт «Skip this screen on startup» и нажать «Start now».

По умолчанию программа сворачивается не на панель задач, а в системный трей. Чтобы отключить эту опцию в главном меню программы выберите File - Setting - Overall - User Interface - Disable tray icon/Enable tray icon (вместо Enable tray icon and minimize to tray) и перезапустите MediaCoder.

Добавление файлов и подготовка к кодированию

В главном окне MediaCoder крупное поле слева вверху отведено под список заданий (Jobs ), то есть файлов, которые уже были перекодированы в нужный формат или же только дожидаются своей очереди. Добавить новый файл с этот список можно, перетащив его прямо из Проводника Windows или через диалоговое окно «Add». После добавления файла в поле «Properties » («Свойства») справа от списка MediaCoder отобразит данные о типе контейнера, битрейте, длительности, размере, а также подробную информацию о видео- и аудио-потоках. Над «Properties» вы увидите строку, показывающую путь к папке, в которой в результате перекодирования будет создан новый файл. По умолчанию используется папка, в которой находится оригинал (Original Folder), ее можно сменить, нажав кнопку с троеточием (Обзор) справа от поля.

Под списком задач расположено несколько вкладок с опциями кодирования, с помощью которых укажем программе все нужные нам свойства будущего файла. Выбираем вторую вкладку «Tasking ». По умолчанию MediaCoder на время кодирования размещает все временные файлы в стандартной системной папке AppDataLocalTemp. Если в системном разделе мало свободного пространства, рекомендуется сменить папку на любую иную, расположенную в другом разделе (в некоторых случаях MediaCoder экпортирует видео- и аудио-потоки из оригинального файла в отдельные временные файлы). Сделать это можно через диалоговое окно, нажав кнопку «Browse» под полем «Working Folder».

По умолчанию MediaCoder устанавливает приоритет для процесса кодирования автоматически. Если отзывчивость системы на время кодирования снижается слишком сильно, можно вручную изменить приоритет до уровня Lower или Idle в выпадающем списке в поле «Priority». Кроме того, можно установить предпочтения для использования ядер процессора, указав один из модулей, принимающих непосредственное участие в процедуре кодирования: audio/video decoder либо audio/video encoder. Рекомендуется выбрать самый «прожорливый» модуль - video encoder (отвечающий за конвертацию оригинального видео-потока).

Определение базовых настроек

Теперь перейдем к вкладке «Picture » («Свойства кадра»). Сначала отметим поле Resize галочкой. Выбрать нужное разрешение можно из выпадающего списка справа от поля Resize либо ввести вручную. Чтобы изменить яркость, контраст или гамму изображения, а также степень насыщенности цветов, нужно нажать на кнопку «Effects» и в появившемся окне «Clipping and Effects » с помощью ползунков выставить желаемые значения для этих параметров. Если в оригинальном видео наблюдаются горизонтальные полоски («эффект расчески») в динамичных сценах, необходимо применить специальный фильтр, активировав пункт «Enabled» в поле «De-interlace».

В этом же окне можно задать исходное и конечное значение времени (в полях «In Time» и «Out Time» соответственно), если вы собираетесь кодировать только определенный интервал, а не весь клип. Оба значения можно указать вручную, но легче это сделать при помощи ползунка под рамкой, в которой проигрывается видео. Сначала выберите стартовую позицию и нажмите «Mark In», а затем обозначьте финальную позицию, нажав «Mark Out». Далее - Ok для применения настроек. Задать начальную и финальную позиции времени для будущего видеофайла можно и в полях «Start Position»/«End Position» на вкладке «Time» вручную или кликнув на кнопку Select.

Важно! Иногда контрастность или насыщенность оригинального и конечного изображения совпадают не в полной мере. Чтобы сделать изображение более контрастным (как в оригинале), необходимо повысить значение "Contrast", а снизить излишнюю цветовую насыщенность можно, уменьшив слегка значение "Hue".

Чтобы выбрать нужный контейнер для видео, который объединит в одном файле аудио- и видео-потоки, откройте вкладку «Container » и выберите из выпадающего списка пункт «MP4» в поле «Container».

Параметры для видео-потока нужно задать на вкладке «Video »: сначала рядом с полем «Video bitrate» укажем необходимый нам битрейт - 3000 Kbps, далее выбираем видео-формат - H.264. Если у вас имеется современная видеокарта от nVidia, вы можете передать функцию конвертации видео графическому процессору - для этого отметьте пункт GPU справа от поля Encoder (в последнем название энкодера изменится на CUDA Encoder).

Параметры для аудио-потока задаются на вкладке «Audio ». В качестве аудио-формата выберите LC-AAC (Low Complexity AAC), если ожидаемый конечный битрейт аудио-потока превышает 96 Kbit/s, или HE-AAC/HE-AAC v2 (High Efficiency AAC) - для более эффективной (с меньшими последствиями для качества) конвертации в аудио-поток с низким битрейтом. По умолчанию для кодирования в формат AAC используется Nero Encoder. На вкладке «Sound» в поле «Channels» («Аудио-каналы») выберите Original для сохранения оригинальной конфигурации каналов аудио-потока (как правило, стерео).

Параметры кодирования аудио- и видео-потоков

Справа от группы вкладок с основными опциями, включающие перечисленные выше Tasking, Video, Audio, Picture и т.д., расположена еще одна группа вкладок, с помощью которых производится тонкая настройка энкодеров. Если для аудио-потока вы выбрали AAC, то вам станет доступна вкладка "Nero Encoder ", на которой в поле «Rate Mode» можно выбрать значение «Target Bitrate» (назовем это «оптимальным битрейтом» - в противоположность CBR/Constant bitrate - постоянному битрейту), а затем при помощи ползунка установить необходимый битрейт. Для фильмов и музыкальных клипов рекомендуется битрейт выше 192 Kbit/s.

Самый главный этап настроек касается выбора правильных параметров для кодирования видео-потока в формат H.264. Если выбран стандартный энкодер x264 (без участия GPU/CUDA), справа активируется вкладка «x264 ». Для достижения наилучшей совместимости с мобильными устройствами в поле «Profile» стоит указать «основной» профиль x264 - Main, и диапазон уровней («Levels») в пределах 3.0-4.2. Для современных и производительных устройств можно выбрать High Profile и Auto-level. Значение поля «Preset» изменим на Custom (Пользовательские настройки).

Motion Estimation

Здесь необходимо сделать небольшое отступление. Каждая из сцен, которые формируют видеоряд, состоит из определенного количества кадров (frames/pictures). Эта группа кадров (GoP , group of pictures), как правило, содержит в себе визуальную информацию о перемещении каких-либо объектов или других воспринимаемых нами изменениях (к примеру, яркости освещения). По умолчанию длина GoP равна значению в интервале от 25 до 250 кадров. При этом кадры в этой последовательности можно разделить на три группы: i-frames (intraframes, или reference frames , ключевые кадры) представляют собой кадры, которые полностью соответствуют определенным кадрам из оригинального видео-потока, а значит, занимают максимальный объем; p-frames (predictive frames) в GoP следуют за ключевыми кадрами или другими p-кадрами и содержат только данные, описывающие изменения по отношению к предыдущему кадру, таким образом «отнимая» намного меньше пространства; b-frames (bi-directional predictive frames) рассчитываются энкодером на основе данных как о предшествующих, так и стоящих впереди них кадрах. Компрессия, иными словами, сжатие, «уменьшение» размера видео-потока, видео осуществляется, с одной стороны, за счет квантизации и иных алгоритмов «упрощения» изображения, применяемых к ключевым кадрам, а с другой - за счет использования «легких» p/b-кадров, содержащих достаточно информации об изменениях от кадра к кадру для преобразования всей последовательности в динамичную сцену.

x264 активно задействует b-кадры с целью повышения эффективности кодирования, однако в большинстве случаев не стоит устанавливать значение «B-frames» выше 4-5 - за исключением анимационных материалов (мультипликации или anime). Кроме того, x264 позволяет включить так называемый «адаптивный» режим, в котором энкодер самостоятельно определяет, нужно ли в каждом конкретном случае использовать указанный выше максимум (4-5 b-кадров) или же сократить это количество за счет применения p-кадров. В «оптимальном режиме» энкодер лучше справляется с этой задачей, слегка уменьшая размер конечного файла (если на вкладке «Video» вместо битрейта указано качество в процентах)/улучшая качество изображения - установите «Optimal» вместо «Disabled». Что касается «Reference frames», их количество стоит указывать в пределах 2-4 кадров. Чем выше это значение, тем меньше интервал между кадрами при поиске во время воспроизведения видео - но вместе с тем, ниже и эффективность кодирования.

Главный параметр, который, пожалуй, в наибольшей степени влияет на сохранение оригинального качества видео - это «оценка движения» в динамичных сценах («Motion Estimation »). Если вы хотите добиться максимально возможного эффекта, выбирайте пункты UMH (Uneven multi-hexagon) или Exhaustive. Впрочем, чем больше усилий энкодер прикладывает к «обсчету» движений, тем дольше длится процесс кодирования. Параметр «Range» указывает размеры области (блока) кадра в пикселях, в которой происходит «поиск» быстрых изменений - для Full HD-видео, конвертируемого в режимах UMH и выше, рекомендуется значение не менее 16. Параметр «Subpixel ME» определяет выбор алгоритма оптимизации при «оценке движения» на позиции каждого пикселя в блоке: начиная со значения 6, энкодер задействует разные варианты алгоритма RDO (Rate-distortion optimization) - от простого RDO для i/p-кадров (6) до «улучшенного» («Refined RDO») для всех типов кадров (9). Повышение значений «ME Range» и «Subpixel ME» заметно увеличивает время кодирования.

В меню «Advanced » («Продвинутые опции») можно оставить активными все опции, предназначенные для сохранения качества изображения при конвертации, включая психо-визуальные оптимизации, deblocking-фильтр, убирающий артефакты в виде «квадратов» (на которые как бы распадается изображение), а также CABAC (Context Adaptive Binary Arithmetic Coder), увеличивающий эффективность кодирования - правда, за счет все тех же системных ресурсов.

Запуск процесса кодирования

Теперь, когда все настройки энкодера и параметры будущего видео-файла определены, можно приступить к кодированию. Для этого в списке задач выделите оригинальный файл (отметив галочкой поле слева от его названия), и нажмите кнопку «Start» на панели инструментов под главным меню MediaCoder. Прогресс отображается при помощи растущих полосок «Current Task» («Текущее задание») и «Total Tasks» («Все задания»). На вкладке «Preview» («Предпросмотр») в режиме реального времени можно наблюдать за окном, в котором демонстрируются кодируемые в данный конкретный момент кадры.

Если вы поставили в очередь несколько файлов, они будут обрабатываться программой последовательно. Для включения параллельного кодирования нескольких файлов на вкладке «Tasking» выберите нужное число одновременно выполняемых задач в поле «Parallelize» (полезно для кодирования аудио-файлов).

После завершения кодирования можно открыть окно Проводника с папкой, содержащей новый файл, кликнув по кнопке «Open » вверху справа от поля «Output». Мы получили более «компактную» версию трейлера с разрешением 1280x720 и размером на 44% меньше по сравнению с оригиналом. Процесс кодирования занял около 5 мин. MediaCoder указал соотношение длительности файла ко времени кодирования - 0.54.

Сопоставление характеристик оригинального (слева) и нового (справа) видео-файла, созданного при помощи энкодера x264

Если вам нужно произвести повторное кодирование файла (с другими параметрами), выделите его в списке, кликните на нем правой кнопкой мыши, и из контекстного меню выберите «Set item State» («Установить текущий статус для данного файла») - «Undone» («Статус: не завершено»). Статус в колонке «State» изменится на «Ready» («готов к кодированию»).

Кодирование с помощью технологии CUDA

Обладатели видеокарт от nVidia могут воспользоваться быстрым алгоритмом кодирования в формат H.264, использующим CUDA-архитектуру графического процессора. Отметив пункт «GPU » на вкладке «Video » справа от поля «Encoder», вы переключитесь на CUDA-энкодер. Затем на вкладке «CUDA » по соседству предстоит определить параметры для кодирования видео-потока: выбираем из списка «Preset» пункт «Custom» («Пользовательские опции»), далее - профиль «Main», уровень 4.2, 3 b-кадра (рекомендуемое значение для CUDA), а также активируем автоматический выбор длины групп кадров «Dynamic GoP» - в этом случае энкодер будет создавать ключевой кадр, открывающий собой последовательность GoP, не через жестко заданный интервал (некоторое точное количество кадров), а при необходимости, то есть при обнаружении начала новой динамичной сцены.

Следует заметить, что энкодер CUDA, несмотря на существенно более высокую скорость кодирования, не способен сохранить оригинальное высокое качество изображения - особенно, в случае с Full HD-контентом. Однако для кодирования видео для мобильных платформ CUDA можно отдать предпочтение, поскольку различие в качестве «картинки» будет уже не столь заметным. Средняя скорость (соотношение длительности к времени кодирования) кодирования трейлера в сравнении со стандартным энкодером возросла практически в 5 раз: 2.46x вместо 0.54x.

Сопоставление характеристик оригинального (слева) и нового (справа) видео-файла, созданного при помощи энкодера CUDA

Помимо MediaCoder внимания также залсуживают бесплатные программы MeGUI и XviD4PSP 6.0 (доступна бета-версия).

XviD4PSP 5.0: настройки кодирования видео (кодек х264) для iPod, iPhone и AppleTV

В настоящее время существует множество "однокнопочных" конвертеров, которые по заверениям разработчиков очень быстро и качественно конвертируют видео в необходимый пользователю формат. На самом деле качество видео, созданного данными программами, мягко говоря - слабовато. Поэтому для создания видео для iPod, iPhone, AppleTV и других устройств необходимо использовать более серьезные продукты.
Одной из лучших программ для конвертирования видео является Xvid4PSP. XviD4PSP - это удобный и качественный мультиформатный конвертер на основе AviSynth. Благодаря AviSynth, который действует как «посредник» между видеофайлами и программой обработки видео, XviD4PSP способен использовать в качестве исходного потока практически любой тип видео, для обработки применять качественные фильтры (изменения размеров, обрезка, подавление шумов, повышение резкости и т.д.).
Изначально разработчиком данного конвертера является Winnydows. В настоящее время активным развитием и доработкой данного софта занимается fcp , а плагинов - фильтров к нему - Tempter57 , за что им огромное спасибо.
Последнюю версию программы можно скачать
Для корректной работы программы необходимы Microsoft Framework 3.0 и K-Lite Codec Pack

Настройки XviD4PSP. Производятся после установки программы

После установки программы необходимо произвести некоторые настройки, которые будут использоваться в дальнейшем. Рекомендую установить-снять галочки так же, как на скриншотах, однако опытные пользователи могут произвести настройки на свое усмотрение.
1. НАСТРОИТЬ-->ЯЗЫК (кому какой нравится, у меня русский)
2. НАСТРОИТЬ-->ДВИЖОК ПЛЕЕРА (оставляем DirectShow)
3. НАСТРОИТЬ-->АВТО ОБЪЕДИНЕНИЕ (только DVD)
4. НАСТРОИТЬ-->АВТО ГРОМКОСТЬ (запрещено)
5. НАСТРОИТЬ-->АВТО ОБРЕЗКА (только MPEG файлы) это автообрезка черных полос, обычно черные полосы присутствуют только в DVD исходниках, т.е. в MPEG-2 видео.
6. НАСТРОИТЬ-->АВТО ДЕИНТЕРЛЕЙС (только MPEG файлы) интерлейсное видео обычно только в DVD исходниках.
7. НАСТРОИТЬ-->ПОСЛЕ ОТКРЫТИЯ (середина)

ГЛОБАЛЬНЫЕ НАСТРОЙКИ

РАЗНОЕ

1. Не извлекать звук для превью. Для исключения большинства проблем, связанных с кодированием звука, рекомендуется галочку снять. Эта настройка изначально была предусмотрена для сокращения времени загрузки исходного файла в программу, но большинство проблем, связанных с кодированием звука в XviD4PSP появляется с включение этой настройки. (ОБЯЗАТЕЛЬНО! ГАЛОЧКУ СНЯТЬ)
2. Сохранять анаморфный аспект. Если установить галочку, то в случае задания аспекта (соотношение сторон кадра), отличного от исходного его значения, на выходе получится анаморфное* видео. Галочку лучше снять, т.к. встречаются случаи, когда, при ресайзе (уменьшении исходного разрешения кадра) остается ошибка аспекта, возникающая из-за mod-8 (обязательной кратности размера стороны кадра 8-ми). Эта ошибка, при включенной функции сохранения анаморфного аспекта, исправляется за счет придания кадру небольшой анаморфности. Как пример: перед кодирование вы задавали разрешение кадра - 480х360, а у скриншотов, сделанных после кодирования, размер сторон отличается от заданного вами, он имеет значение 482х360. При получении MediaInfo файла, разрешение правильное - 480х360. Эта разница в 2 пиксела и есть последствия установленной галчки и исправления ошибки аспекта за счет анаморфирования кадра. С другой стороны, если стоит необходимость - сделать анаморфное видео, то анамофность проще задать после кодирования, в программе Yamb. (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ. ЛУЧШЕ ГАЛОЧКУ СНЯТЬ)
3. Кодировать все в прогрессивное видео. При установленной галочке, все видео будет кодироваться в прогрессивное**, независимо от того какое исходное видео: чересстрочное или прогрессивное. (ОБЯЗАТЕЛЬНО! ГАЛОЧКУ УСТАНОВИТЬ)
4. Автоматически применять ColorMatrix*** для MPEG2 файлов. При установке галочки, ко всем DVD исходникам будет применен ColorMatrix - фильтр, корректирующий цвета потоков. (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ)
5. Запоминать параметры окна при выходе. При установке галочки будет сохраняться размер окна программы при следующем её открытии. (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ)
6. Обновлять скрипт при изменении настроек аудио/видео кодека. Лучше, что бы эта галочка стояла, т.к. в противном случае при изменении настроек кодирования аудио или видео, эти изменения не будут перезаписаны в скрипт, следовательно, кодирование будет произведено без учета последних изменений. Внимание! При установленной галочке, когда производится изменение скрипта вручную, а после этого изменяются настройки в интерфейсе программы, то изменения, сделанные вручную, стираются из скрипта, следовательно, их необходимо будет вписывать повторно.(ЛУЧШЕ ГАЛОЧКУ УСТАНОВИТЬ)
7. Удалять комментарии (#текст) из скрипта. После установки данной галочки, из скрипта будут удаляться все комментарии и описания, которые помогают разобраться в этом скрипте, что не очень удобно, но уменьшает размер самого скрипта. (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ)
8. Сначала кроп/ресайз, потом фильтрация. После установки галочки, сначала будет происходить изменение размеров (ресайз) и обрезка (кроп) исходного видео до заданной пользователем геометрии кадра, и уже к этому кадру будет применяться скрипт фильтрации (высокая скорость обработки). И наоборот, при её снятии, сначала будет фильтроваться кадр исходного разрешения, и только потом, он будет обрезаться и уменьшаться в размерах (лучшее качество фильтрации). (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ)
9. При сохранении задания считывать параметры видео из скрипта. После установки галочки, сохранение задания будет производиться на основании скрипта. Галочка необходима в том случае, если вы вносите изменения в скрипт вручную. К примеру, когда добавляете строки для проведения анализа оптимального значения среднего битрейта, включаете/отключаете тот или иной вариант фильтра и т.д. В противном случае, все изменения, внесенные в скрипт вручную, программой учитываться не будут. (ЛУЧШЕ ГАЛОЧКУ УСТАНОВИТЬ)

ВРЕМЕННЫЕ ФАЙЛЫ
1.При запуске программы искать лучшее место для временной папки. При установленной галочке, программа, при каждом новом её открытии, будет анализировать свободное место на всех жестких дисках вашей системы и предлагать для размещения рабочей директории Темп, тот, на котором больше свободного места. (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ)
2/3. Автоматически удалять кеш. После установки галочек, будет автоматически удаляться кеш, оставшийся после кодирования. (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ)
4. Создавать DGIndex кеш в Темп-папке. Если поставить галочку, то DGIndex кеш будет создаваться не в папке, в которой находится исходное видео, а в папке Темп. (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ)

ЛОГ КОДИРОВАНИЯ
Рекомендуется установить все галочки для того, что бы сохранялся наиболее полный и подробный лог кодирования.
При установленной галочке «Во временной папке», лог кодирования будет сохраняться в папку Темп, в противном случае в то же место, куда сохраняется файл после кодирования.
Если установить галочку в «Автозакрытие окна кодирования при успешном выполнении задания», то после полного завершения кодирования файла, диалоговое окно кодирования будет закрываться автоматически.

ПАКЕТНАЯ ОБРАБОТКА
Здесь можно:
- Добавить-удалить расширения файлов, которые будут использоваться при пакетной обработке.
- Влючить-отключить возможность использования параметров (разрешение, аспект, кроп и других настроек из окна РАЗРЕШЕНИЕ/АСПЕКТ, а так же "трим" (обрезку по времени)) от уже открытого файла для всех последующих.
- Влючить-отключить паузу после первого открытого файла для проведения настроек кодирования.
- Влючить-отключить автоматическое начало кодирования после открытия всех файлов.
HotKeys


Здесь можно настроить управление программой с помощью "горячих клавиш" на клавиатуре.
Примечание:
* Анаморфное видео – видео с неквадратными пикселами.
** Прогрессивное видео – это видео, в котором смена кадров происходит полными кадрами, а не полукадрами. Существует два типа видео - чересстрочное и прогрессивное. В первом случае кадр состоит из двух полей (полукадров). Каждое поле содержит половину горизонтальных строк кадра; верхнее поле содержит все нечетные строки, а нижнее поле - все четные строки. Каждый кадр отображается посредством вывода всех строк одного поля, а затем другого поля. У прогрессивного видео кадры не делятся между полями, а отображаются за один проход, при этом все горизонтальные строки выводятся сверху вниз.
***ColorMatrix корректирует цвета потоков MPEG-2 DVD. Многие MPEG-2 потоки для хранения цветовой информации используют коэффициенты, отличающиеся от тех, которые используются подпрограммой преобразования цвета AviSynth. В результате, видео MPEG-2 отображается со слегка смещенными цветами (обычно наблюдается в небольшой разнице яркости). Данный фильтр пересчитывает YUV величины, предполагая коэффициенты, которые используются AviSynth, что позволяет корректно отображать видео при кодировании из MPEG-2 в MPEG-4.

XviD4PSP имеет простейший для понимания интерфейс, единственное, с чем могут возникнуть проблемы, это "настройки видео кодирования".

НАСТРОЙКИ ВИДЕО КОДИРОВАНИЯ (НАСТРОЙКА КОДЕКА)Устройства компании Apple способны воспроизводить видео стандарта H.264/MPEG-4 AVC, определяющего один из самых современных и технически совершенных форматов видео кодирования. На сегодняшний день x264 является наилучшим среди AVC-кодеков по соотношению качество/скорость кодирования. Поэтому для кодирования видео для iPod, iPhone и AppleTV будем использовать кодек х264. Xvid4PSP использует консольную версию данного кодека - х264 CLI.
После выбора формата (MP4 iPhone or Touch или MP4 AppleTV), загрузки исходного видео в программу, выбора разрешения, типа цветокоррекции, фильтрации и проведения других настроек, приступаем к настройке кодека х264. Для этого нажимаем на шестеренку в пункте "КОДИРОВАНИЕ ВИДЕО". Окно настроек имеет пять вкладок, рассмотрим каждую:

Для корректной работы программы необходимы Microsoft Framework 3.0 и K-Lite Codec Pack и сама

Настройки XviD4PSP. Производятся после установки программы

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

1. НАСТРОИТЬ-->ЯЗЫК (кому какой нравится, у меня русский)
2. НАСТРОИТЬ-->ДВИЖОК ПЛЕЕРА (оставляем DirectShow)
3. НАСТРОИТЬ-->АВТО ОБЪЕДИНЕНИЕ (только DVD)
4. НАСТРОИТЬ-->АВТО ГРОМКОСТЬ (запрещено)
5. НАСТРОИТЬ-->АВТО ОБРЕЗКА (только MPEG файлы) это автообрезка черных полос, обычно черные полосы присутствуют только в DVD исходниках, т.е. в MPEG-2 видео.
6. НАСТРОИТЬ-->АВТО ДЕИНТЕРЛЕЙС (только MPEG файлы) интерлейсное видео обычно только в DVD исходниках.
7. НАСТРОИТЬ-->ПОСЛЕ ОТКРЫТИЯ (середина)

ГЛОБАЛЬНЫЕ НАСТРОЙКИ

ОСНОВНЫЕ

1. Не извлекать звук для превью. Для исключения большинства проблем, связанных с кодированием звука, рекомендуется галочку снять. Эта настройка изначально была предусмотрена для сокращения времени загрузки исходного файла в программу, но большинство проблем, связанных с кодированием звука в XviD4PSP появляется с включение этой настройки. (ОБЯЗАТЕЛЬНО! ГАЛОЧКУ СНЯТЬ)


2. Сохранять анаморфный аспект. Если установить галочку, то в случае задания аспекта (соотношение сторон кадра), отличного от исходного его значения, на выходе получится анаморфное видео. Галочку лучше снять, т.к. встречаются случаи, когда, при ресайзе (уменьшении исходного разрешения кадра) остается ошибка аспекта, возникающая из-за mod-8 (обязательной кратности размера стороны кадра 8-ми). Эта ошибка, при включенной функции сохранения анаморфного аспекта, исправляется за счет придания кадру небольшой анаморфности. Как пример: перед кодирование вы задавали разрешение кадра - 480х360, а у скриншотов, сделанных после кодирования, размер сторон отличается от заданного вами, он имеет значение 482х360. При получении MediaInfo файла, разрешение правильное - 480х360. Эта разница в 2 пиксела и есть последствия установленной галчки и исправления ошибки аспекта за счет анаморфирования кадра. С другой стороны, если стоит необходимость - сделать анаморфное видео, то анамофность проще задать после кодирования, в программе Yamb. (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ. ЛУЧШЕ ГАЛОЧКУ ПОСТАВИТЬ)

3. Кодировать все в прогрессивное видео. При установленной галочке, все видео будет кодироваться в прогрессивное, независимо от того какое исходное видео: чересстрочное или прогрессивное. (ОБЯЗАТЕЛЬНО! ГАЛОЧКУ УСТАНОВИТЬ)

4. Автоматически применять ColorMatrix для MPEG2 файлов. При установке галочки, ко всем DVD исходникам будет применен ColorMatrix - фильтр, корректирующий цвета потоков. (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ)

5. Обновлять скрипт при изменении настроек аудио/видео кодека. Лучше, что бы эта галочка стояла, т.к. в противном случае при изменении настроек кодирования аудио или видео, эти изменения не будут перезаписаны в скрипт, следовательно, кодирование будет произведено без учета последних изменений. Внимание! При установленной галочке, когда производится изменение скрипта вручную, а после этого изменяются настройки в интерфейсе программы, то изменения, сделанные вручную, стираются из скрипта, следовательно, их необходимо будет вписывать повторно. (ЛУЧШЕ ГАЛОЧКУ УСТАНОВИТЬ)

6. Сначала кроп/ресайз, потом фильтрация. После установки галочки, сначала будет происходить изменение размеров (ресайз) и обрезка (кроп) исходного видео до заданной пользователем геометрии кадра, и уже к этому кадру будет применяться скрипт фильтрации (высокая скорость обработки). И наоборот, при её снятии, сначала будет фильтроваться кадр исходного разрешения, и только потом, он будет обрезаться и уменьшаться в размерах (лучшее качество фильтрации). (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ)

7. При сохранении задания считывать параметры видео из скрипта . После установки галочки, сохранение задания будет производиться на основании скрипта. Галочка необходима в том случае, если вы вносите изменения в скрипт вручную. К примеру, когда добавляете строки для проведения анализа оптимального значения среднего битрейта, включаете/отключаете тот или иной вариант фильтра и т.д. В противном случае, все изменения, внесенные в скрипт вручную, программой учитываться не будут. (ЛУЧШЕ ГАЛОЧКУ УСТАНОВИТЬ)

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

XviD4PSP имеет простейший для понимания интерфейс, единственное, с чем могут возникнуть проблемы, это "настройки видео кодирования".

Настройки видео кодирования (настройка кодека)
Для кодирования нашего мувика мы будем использовать H.264/MPEG-4 AVC, определяющего один из самых современных и технически совершенных форматов видео кодирования. На сегодняшний день x264 является наилучшим среди AVC-кодеков по соотношению качество/скорость кодирования. Поэтому для кодирования видео будем использовать кодек х264. Xvid4PSP использует консольную версию данного кодека - х264 CLI.

После загрузки исходного видео в программу, выбора разрешения, типа цветокоррекции, фильтрации и проведения других настроек, приступаем к настройке кодека х264. Для этого нажимаем на шестеренку в пункте "КОДИРОВАНИЕ ВИДЕО". Окно настроек имеет пять вкладок, рассмотрим каждую

Вкладка «Main»


1. Encoding mode : Выбор режима кодирования (ratecontrol метода)

1.1 Constant Quality (CRF)
Качество, основанное на переменном битрейте (Quality Based VBR). В режиме постоянного качества, основанного на переменном битрейте, каждый кадр кодируется с почти одинаковым математическим качеством (или квантизером), включая движение (оценка скорости). Этот режим визуально повышает качество, кодируя динамичные сцены с более сильной степенью сжатия (ниже качество) и статичные сцены с меньшим сжатием (лучше качество). Квантизер (математическое качество) может колебаться во времени: меньше бит будет потрачено на сценах, где много движения - множество деталей становятся неразличимыми, и больше бит будет потрачено для статичных сцен, когда лучше видны детали. Это позволит получить постоянное визуальное качество на всей видео последовательности. В этом режиме итоговый размер файла, и соответственно значение среднего битрейта, непредсказуемы.

1.2 Constant Quantizer (QP)
(Постоянный квантователь)
В режиме Constant Quantizer (постоянного квантователя) каждый кадр кодируется с одинаковым математическим качеством (или квантизером), не обращая внимания на то, сколько битрейта придется потратить, применяя постоянное математическое качество ко всей видео последовательности. В этом режиме итоговый размер файла, и соответственно значение среднего битрейта, непредсказуемы. Файл видео, созданного в режиме QP получится больше по размеру, чем в CRF режиме, при том же визуальном качестве.

1.3 Bitrate режимы (1 Pass bitrate, 2 Pass bitrate, 3 Pass bitrate, 1 Pass size, 2 Pass size, 3 Pass size) (ABR - Average Bit Rate)

(Усреднённый переменный битрейт)
Изменение качества на различных кадрах для достижения наилучшего качества последовательности при заданном битрейте. В режиме ABR каждый кадр кодируется с минимально возможным квантователем (лучшее качество), придерживаясь среднего битрейта на указанном времени. В этом режиме итоговый размер достаточно предсказуем. Цифра перед «Pass» обозначает количество проходов (до 3-х). При увеличении количества проходов, время обработки видео увеличивается. Дополнительные проходы позволяют более эффективно распределить битрейт при кодировании в заданный размер. 3-й проход как правило не даёт существенной прибавки в качестве, но может быть полезен при кодировании коротких роликов, когда длительность видеофрагмента слишком мала, чтобы кодек успел за два прохода эффективно просчитать кривую компресии.

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

Вопрос: для чего в Bitrate режимах используют три прохода (3-Pass)?
Ответ: На третьем проходе идёт распределение кривой компрессии с учётом полной оценки видеоряда на основе достоверной сложности всех фреймов. На втором проходе, сжав очередной фрейм, кодек пересчитывает кривую на оставшиеся фреймы, чтобы вписаться в заданный размер, т.е. в отличие от CRF или 3 проходного режима в двухпроходном кодировании распределение QP не будет идеально равномерным для каждого фрейма.

2.Quantizer (Q)/ Bitrate (kbps)/ Размер (MB)

2.1 Значение Quantizer (Q)
(только в режимах Constant Quality (CRF) и Constant Quantizer (QP)
Простыми словами, это коэффициент сжатия видео. Низкие значения означают низкую степень сжатия (выше качество) и соответственно больший размер файла на выходе, большие значения, наоборот, сильное сжатие и меньший размер. Значения ниже 16 полезны только для архивного качества, а при значениях выше 30 заметны значительные потери качества.

Рекомендации: диапазон 18-24 – скорее всего, будет приятен для просмотра. Если Вы нуждаетесь в абсолютно совершенном качестве, то можете понизить Q до 16, но это того не стоит. Значения Q в диапазоне 19 – 21.5 – это те значения, при которых изображение будет выглядеть очень хорошо.

2.2 Значение Bitrate (kbps)
(только в режимах 1-Pass bitrate, 2-Pass bitrate, 3-Pass bitrate)
Это значение среднего битрейта, с которым будет закодировано видео.

Рекомендации: Оптимальное значение среднего битрейта зависит от качества, типа, формата, динамичности, зашумленности и других характеристик исходного видео, а также настроек кодека. Самым лучшим методом определения оптимального значения среднего битрейта является конвертирование видео в режиме Constant Quality (CRF) (Q 20 – 21) с предварительной установкой параметров кодирования, которые будут использоваться в Bitrate режиме. Полученное в итоге значение битрейта и является оптимальным для этого видеоряда. Но этот метод занимает много времени, поэтому рекомендую придерживаться примерно следующих параметров.
1024х768 - ~1500kbps
1280х1024 - ~2000kbps
1680х1050 - ~3000kbps
1920x1200 - ~4000kbps

2.3 Размер (MB )
(только в режимах 1 Pass size, 2 Pass size, 3 Pass size)
Это примерный размер видео, который вы хотите получить на выходе после конвертирования. Он необходим в тех случаях, когда вы хотите что бы ваше видео помещалось, к примеру, на DVD болванку или другой носитель. Актуален, когда есть ограничения на размер файла на выходе.

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

3. AVC Profiles (Профиль)

Спецификация H.264/AVC подразумевает несколько профилей. Каждый профиль определяет, какие настройки кодека разрешены, а какие недопустимы. AVC Profiles устанавливает профиль для выходного потока видео и тем самым определяет его совместимость с устройством, на котором планируется просмотр. Эта опция отменяет все установки, которые не соответствуют устанавливаемому профилю, в итоге будет гарантирован совместимый поток. Если вы, к примеру, включите CABAC, потом поменяете профиль на Baseline Profile, то CABAC отключится, т.к. его Baseline Profile не поддерживает.

3.1 Baseline Profile: Отключает CABAC, 8x8dct, запрещает использование B frames.
3.2 Main Profile: Отключает 8x8dct.3.3
High Profile: нет ограничений.

4. AVC level (Уровень)

Помимо профилей, спецификация H.264/AVC также определяет набор уровней. Если профиль определяет, какие характеристики сжатия могут, или не могут, использоваться, уровень определяет дальнейшие ограничения свойств видео. Эти ограничения включают максимальное разрешение, максимальный битрейт, максимальную частоту кадров (для данного разрешения) и максимальное количество референсных кадров (важный параметр для аппаратной совместимости).


Рекомендации: AVC level – 4, для мувиков будет достаточно.

5. Preset (Пресет)

Варианты изменения опций позволяют добиться соответствующей эффективности сжатия и качества. Если Вы определите заданный пресет, то изменения, которые он сделает, будут применены прежде, чем применены все другие параметры. Пресеты устанавливают следующие значения:
- Fast (быстрый): me algorithm – hexagon; subpixel ME – 5; reference frames – 2.
- Slow (медленный): me algorithm - multi hexagon; subpixel ME – 8; reference frames – 5; b-adapt – optimal; b-frames mode – auto.
- Slower (медленнее): me algorithm - multi hexagon; subpixel ME – 9; reference frames – 8; b-adapt – optimal; b-frames mode – auto; включает I4x4, I8x8, P4x4, P8x8, B8x8; trellis - 2.
- Placebo (плацебо): me algorithm - multi hexagon; subpixel ME – 9; me range - 24; reference frames – 16; b-adapt – optimal; b-frames mode – auto; включает I4x4, I8x8, P4x4, P8x8, B8x8; trellis - 2; b-frames – 16.

6. Slow 1-st pass (медленный первый проход)

Эта функция предусмотрена для более качественного анализа на первом проходе только в Bitrate режимах. Увеличивает время кодирования. Обычно используется когда нет ограничения по времени и стоит задача сделать видео как можно лучше.

7. CABAC

(Контекстно-зависимое адаптивное бинарное арифметическое кодирование)

CABAC - главное достоинство всех AVC-кодеков, он обеспечивает значительно лучшее сжатие, чем алгоритмы использующиеся в других кодеках, но требует больше вычислительных ресурсов как для кодирования, так и для декодирования. Это умная технология сжатия без потерь, упорядочивания элементов видео потока, знающая возможности элементов в окружении. Когда он отключен, видео кодируется с CAVLC (Контекстно-зависимое адаптивное кодирование с переменной длиной), которая использует меньше процессорного времени и, соответственно, даёт хуже качество. Использование CABAC увеличивает сжатие приблизительно на 10-20 % по сравнению с CAVLC. Так же, при отключенном CABAC, недоступны некоторые настройки кодирования.

8. Lossles

Режим кодирования без потерь. При включении данной функции Constant Quality (CRF) или Constant Quantizer (QP) получаю значение – 0.

9. Deblocking (Фильтр деблокинга)

При кодировании изображение разбивается на блоки (макроблоки) и каждый такой блок кодируется отдельно. При недостаточном значении битрейта эти блоки становятся заметными. Deblocking определяет края этих блоков и определённым образом уравнивает их разницу (смазывает). Так же имеет смысл использовать и при высоких значениях битрейта.
Deblocking имеет два параметра - alpha (сила подавления блоков) и beta (порог или точность определения блоков).
Параметр "alpha" рекомендуется выбрать от -2 до 2. Большее значение увеличивает силу подавления блоков, но картинка становится немного размытой (используйте при низких битрейтах или при кодировании мультипликации). Меньшее значение уменьшает силу, зато картинка остается достаточно четкой (используйте при высоких битрейтах). Если не знаете, что выбрать, то оставьте 0 - подходит для большинства случаев.
Параметр "beta" рекомендуется выбирать от -2 до 2. При больших значениях, кодек может распознать некоторые детали за блок и применить к ним фильтр подавления блоков. При меньших значениях, деталей сохранится больше, но некоторые блоки могут быть приняты за деталь (используйте меньшие значения при кодировании мультипликации - в ней четкие контуры, поэтому кодек не ошибется). Желательно чтобы этот параметр отличался не больше, чем на единицу от предыдущего. Если не знаете, что выбрать, то оставьте 0 - подходит для большинства случаев.
Простыми словами, чем выше сила деблокинга (alpha), тем сильнее он применяется, чем выше порог (beta), тем больше блоков ему попадается. При этом необходимо помнить то, что установка деблокинга в минус никогда не сделает картинку резче чем она есть, а поднятие деблокинга в плюс, едва ли поможет избавиться от блочности исходного сигнала.

Вкладка «Motion Analysis» (анализ движения)


1.Subpixel ME
(уровень сложности оценки субпиксельной точности векторов движения)
Устанавливает один из десяти уровней сложности оценки субпиксельной точности векторов движения. Чем выше уровень, тем в больших случаях могут быть построены векторы движения повышенной точности.
Первые пять уровней определяют в каком варианте будет использоваться четвертьпиксельная точность (Qpel). Для четвертьпиксельной точности требуется больше информации для кодирования. Но увеличение информации компенсируется тем, что с повышенной точностью может быть построено больше векторов (а значит сжатие будет лучше). Это реализуется за счет использования дополнительной оптимизации – RDO (или RD, Rate–distortion optimization) доступной на следующих уровнях, начиная с шестого. Начиная с восьмого уровня, допускается RDO для векторов движения и intra режимов предсказания. Для функционирования десятого уровня необходимо включение функции Trellis при значении 2- Always (везде), а для включения Trellis, необходимо включение CABAC, что для видео Apple недопустимо. Как следствие, десятый уровень для видео разделов Apple, функционировать не будет. Уровни с RDO медленнее, чем уровни без него, но значительно качественнее.

2. ME algorithm.

(Алгоритм оценки движения)
Устанавливает метод оценки движения полного пикселя. Diamond - простейший поиск, начиная с одного пикселя одного кадра, начинают просматриваться соседние пиксели на соседнем кадре, на один пиксель выше, правее, ниже и левее. Выбирается наиболее вероятно сдвинувшийся пиксель и процесс повторяется до тех пор, пока не будет найден лучший пиксель или пока не будет достигнут предел диапазона поиска движения. Hexagon - похож на предыдущий, но оцениваются 6 соседних пикселей. Немного медленней, но более эффективный, чем предыдущий алгоритм. Multi Hexagon - лучше предыдущего, способен найти сложные векторы движения, ценой потери скорости кодирования. В отличие от предыдущих алгоритмов, в этом, и во всех последующих, опция "диапазон поиска движения" задает не количество итераций, а радиус в пределах которого будет искаться пиксель. Exhaustive - не намного лучше, но намного медленнее, работает методом перебора в диапазоне поиска движения: строит все возможные вектора движения и выбирает наилучший. SATD Exhaustive - похож на предыдущий, чуть-чуть лучше и чуть-чуть медленнее. Два последних алгоритма не рекомендуются из-за огромной потери скорости кодирования при незначительном улучшении качества.

3. ME range.

(Алгоритм оценки движения)
Указывает радиус поиска (количество итераций) движения объекта в пикселях. Большие значения улучшают качество ценой потери скорости кодирования. Для алгоритмов "diamond" и "hexagon" допустимыми значениями являются числа от 4 до 16. Для остальных алгоритмов - от 4 до 64. Чем больше значение, тем лучше качество.

4. Reference frames
(Референсные кадры)
Управляют размером DPB (Decoded Picture Buffer). Простыми словами, количество кадров на которые могут ссылаться P- и B-кадры. Чем больше - тем эффективней могут быть закодированы P/B-кадры, но для кодирования потребуется больше времени. Максимальное значение 16, однако, уже после 5 - прирост качества ощущается все меньше и меньше, а прирост времени кодирования все больше и больше. Кроме того, значение 4 - максимальное для видео 1080p, и 9 - максимальное для 720p, придерживаясь level 4.1 спецификации. Т.е., чем больше разрешение, тем меньше должно быть количество референсных кадров, что бы обеспечить совместимость с устройствами, на которых будет воспроизводиться видео.

5. Mixed ref. frames

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

6. Adaptive DCT

Адаптивное 8x8 дискретное косинусное преобразование (DCT). Разрешает умное: использование преобразований 8x8 в I-кадре. При отключении, автоматически отключится анализ частиц I8x8. Работает только в High Profile, т.е. если включить, то профиль поменяется на High Profile.

7. Chroma ME

8. DCT decimate

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

8. I4x4, I8x8, P4x4, P8x8, B8x8

(Partitions - размеры макроблоков для анализа)
При кодировании изображения кодек разбивает его на макроблоки размерами 16*16 пикселей. Каждый такой макроблок разбивается еще на 2, 4, 8 или 16 частей. Вы можете указать какие типы блоков должен использовать кодек для каждого типа кадров:
i8х8, i4х4 - для ключевых кадров;
p8х8 (включает также p16х8 и p8х16), p4х4 (включает также p8х4 и p4х8) - для однонаправленных кадров;
b8х8 (включает также b16х8 и b8х16) - для двунаправленных кадров.
Чем больше вариантов разбиения вы разрешите использовать кодеку, тем лучше будет закодирован материал, ценой потери скорости кодирования. Однако учтите, что включение p4х4 незначительно улучшает качество, но значительно увеличивает время кодирования. i8x8 может использоваться только в High Profile с использованием Adaptive DCT.

Вкладка «B-frames» (B кадры)


1. B-frames

Это максимальное количество последовательных B-кадров. B-кадры – это кадры в которых закодированы изменения не только от предыдущих кадров, но и от последующих (кадры двунаправленного предсказания). Имеют еще большую степень сжатия, чем P-кадры. Несмотря на низкое качество изображения в B-кадрах, их все же рекомендуется использовать, т.к. сэкономленные биты идут на улучшение качества остальных кадров. Значения 2 или 3, как правило, сочетают нормальное качество со значительным улучшением сжимаемости. В Baseline Profile использование B-кадров не предусмотрено.

2. B-frames mode
(Режим B-кадров)
Способ определения векторов движения в B-кадрах. Spatial (пространственный) - сравнивает блоки в пределах одного кадра (рекомендуется при однопроходном кодировании), Temporal (временной)- в соседних. Auto выбирает для каждого кадра отдельно (рекомендуется при многопроходном кодировании).

3. Adaptive B-frames

Функция адаптивного распределения B-кадров. При включении этой опции кодек будет более разумно распределять двунаправленные кадры (B-кадры), сокращая их последовательное количество в сценах, которые не сильно от этого выиграют. Имеет смысл только при первом проходе в многопроходном кодировании и только если в настройке B-frames вы выбрали значение больше единицы (т.е. разрешили использование B-кадров).
Fast - старый алгоритм, достаточно быстрый. Optimal - новый алгоритм, значительно медленнее, что становится очевидным при увеличении максимального количества последовательных B-кадров, однако если это значение равно 16, то используйте этот режим, т.к. кодек имеет дополнительную оптимизацию по скорости при таком сочетании опций.

4. B-pyramid

Включение данной функции позволяет использовать B-кадры в качестве опорных, увеличивая эффективность использования 2-х или более B-кадров. Без этой функции кадры могут сослаться только на I или P-кадры. Если она включена, то B-кадры могут кодировать изменения от предыдущих и последующих B-кадров. Эта опция доступна только если максимальное количество последовательных B-кадров больше единицы (B-frames больше 1). Если это так, то рекомендуется включить эту опцию. Незначительно увеличивает время кодирования. На данный момент опция b-pyramid несовместима с --mb-tree, т.е. нельзя использовать однвременно обе метрики.

5. Disable mb-tree
(отключение функции mb-tree rate control)
Mb-tree rate control передаёт информацию от будущих блоков к прошлым с помощью векторов движения. Эта функция дает возможность воздействия на отдельные блоки вместо полных сцен. То есть, вместо того, чтобы понижать качество в сценах высокой сложности, эта функция понизит качество только на сложной части сцены, в то время, как например, статический фон останется высококачественным. Во многих случаях mb-tree rate control даёт положительные результаты. Применение этой функции полезно при всех значениях битрейта, особенно при низких, где видео могло бы полностью рассыпаться на блоки.

6. Lookahead

Устанавливает количество кадров, применяемых для mb-tree rate control. Увеличение этого значения способствует повышению качества, но увеличивает время кодирования. Максимально допустимое значение - 250 или максимальный размер VOP-группы (интервал между I кадрами, по умолчанию тоже равен 250), в зависимости от того какое значение меньше.

7. Weighted B-Prediction
(Взвешенное B-предсказание)
Позволяет использовать B-кадры там, где присутствует плавный переход от одного оттенка цвета к другому. Другими словами, разрешает взвешенное предсказание яркости для B-кадров, которое улучшает затухания и градиенты цвета. Потери в скорости кодирования минимальны, поскольку не требуется производить дополнительные вычисления. Так же, не сильно влияет на требования декодера к CPU.




Top