To Dima описание функций divx 5.02 взятые по адресу http://www.ixbt.com/digimage/divx-specificity.shtml Основные параметры Bitrate Variable bitrate mode — режим сжатия. Как уже обсуждалось выше, в разделе Выбор режима сжатия, мы будем использовать двухпроходный режим. Соответственно, выбираем 2-pass, first pass для первого и 2-pass, second pass второго проходов. Encoding bitrare — собственно желаемый средний битрейт результата. Совсем не обязательно, чтобы эта цифра была одинакова для двух проходов. Однако, как предостерегает документация, слишком большая разница между значениями битрейта при первом и втором проходе приводит к ухудшению соответствия размера результата заданному размеру. Таким образом, вполне допустимо в случае, когда вас не устраивает размер результата, немного увеличить или уменьшить значение битрейта и повторить второй проход сжатия. Обратите внимание — первый проход повторять не нужно (если, конечно, вы не стерли файлы со статистикой, созданные DivX 5 на первом проходе). Two pass encoding files В этом разделе указывается расположение файлов со статистикой, в которые кодер DivX 5 записывает информацию о сжимаемости видеоряда во время первого прохода сжатия. Если вы кодируете файлы строго по очереди (file1-pass1, file1-pass2, file2-pass1, file 2-pass2, file3-pass1, …) и уверенны в том, что вам не придется переделывать второй проход (например для получения результата с чуть большим или чуть меньшим размером) — то вы вполне можете использовать имена файлов по умолчанию. В противном случае задайте для каждого видео свои имена файлов со статистикой. Естественно, что для выполнения первого и второго проходов одного видеоряда должны использоваться одни и те же файлы. Также учтите, что по умолчанию эти файлы пишутся в корень диска C: -- в некоторых системах у вас может не быть прав доступа на запись к этому каталогу. Log file — имя файла со статистикой сжимаемости. Размер этого файла равен примерно 250 кБ на минуту сжимаемого видео, то есть примерно 15 МБ на час видеоряда. Use MV file — включает создание/использование файла с записями о векторах движения. Этот параметр включает режим, в котором на первом проходе информация о векторах движения в кадре записывается в файл. На втором проходе эти вектора не рассчитываются заново, а читаются из файла, что сокращает время выполнения второго прохода примерно на треть. Учтите, что для того, чтобы иметь возможность пользоваться этой возможностью, настройки кодера для первого и второго прохода должны быть абсолютно одинаковыми (кроме среднего битрейта и уровня пре-процессинга, подробнее см. документацию). Использование этого режима настоятельно рекомендуется. MV file — имя файла с рассчитанными векторами движения. Размер этого файла больше раз в 6-8 размера файла статистики, то есть примерно 50-70 МБ на час видеоряда. Protect log/MV file — включает защиту файлов статистики. Защита заключается в том, что если файл с указанным именем уже существует, то кодер выдаст запрос вида «перезаписать файл, да/нет?». Очевидно, что если вы используете имена файлов статистики по умолчанию, то кодер будет только надоедать вам. Использование этого параметра — по вкусу. Помните только, что в случае запуска кодирования в пакетном режиме включение этого параметра вполне может привести к тому, что компьютер будет всю ночь ждать ответа на вопрос, вместо обработки видео материала. Psychovisual Enhancements Психовизуальная модель — это передний край технологии сжатия видео. Модель оказывает влияние на параметры сжатия таким образом, чтобы сэкономить на размере как раз в том месте, где человеческий глаз менее чувствителен к ухудшению качества изображения. Так, например, она увеличивает степень игнорирования деталей на темных сценах. Очевидно также, что этот код в силу своей новизны тестировался меньше всего, использование психовизуальной модели потенциально может привести к появлению нежелательных искажений результата сжатия видео. В версии 5.02 были исправлены явные промахи ранних версий кодера DivX 5, которые приводили к получению откровенно провальных результатов. Сегодня большинство специалистов по сжатию видео советуют использовать психовизуальную модель с значением Strong. Учтите, что если в вашем видеоряде нет очень темных или очень светлых мест (где в основном и работает психовизуальная модель) то результат сжатия вполне может совпадать один в один с тем, что вы получите без использования психовизуальной модели. Keyframe Примечание: подробное разъяснение того, что такое ключевой и промежуточный кадр приведено ниже, в разделе Двунаправленные кадры (Bidirectional frames). Max. keyframe interval — максимально возможное количество промежуточных кадров подряд. За добавление в выходной поток ключевых кадров отвечает механизм определения начала новой сцены. В случае длинной статичной сцены кодер вполне может использовать только промежуточные кадры, которые имеют размер меньший, нежели ключевые кадры. Использование одних только промежуточных кадров не совсем удобно именно из-за их природы. В промежуточном кадре содержатся только изменившиеся по сравнению с предыдущем кадром блоки. Потому для отрисовки промежуточного кадра необходимо найти предыдущий ключевой кадр (в котором записан кадр целиком) и проанализировать все промежуточные кадры после него — аж до необходимого нам кадра. Именно этим объясняется задержка при перемотке DivX видео — она тем больше, чем больше расстояние между ключевыми кадрами (говоря совсем строго — математическое ожидание задержки пропорционально среднему расстоянию между ключевыми кадрами). Соответственно, от этого параметра зависит комфорт при просмотре полученного результата. Следует учитывать также тот факт, что добавление слишком большого числа ключевых кадров приведет к нерациональному использованию битов: как правило при прочих разных промежуточный кадр занимает в 5-10 раз меньше места по сравнению с ключевым. Этим я хочу вас предостеречь от установки слишком короткого расстояния между ключевыми кадрами. Таким образом имеет смысл ограничивать максимальное расстояние между ключевыми кадрами, но это расстояние не должно быть слишком маленьким. Величина этого расстояния целиком зависит от вашим предпочтений. Наиболее часто используются значения от 3 до 10 секунд. Умножьте это число на количество кадров в секунду в вашем видеоряде и укажите это значение кодеру. Scene change threshold управляет чувствительностью механизма определения смены сцены в видеоряде. Значение по умолчанию — 50% — вполне подходит для использования в большинстве случаев. Изменение этого значения в большую или меньшую сторону может привести к получению лучших результатов, однако оптимальное значение будет различным для разных видеорядов. Data Rate control (RC) Эти параметры отвечают за тонкую настройку двухпроходного кодирования. Часть из них используется также и в других режимах. Maximum quantizer — максимальное значение степени игнорирования деталей. В конечном видеоряде не окажется ни одного кадра с качеством хуже, чем указано в этой графе. Таким образом, уменьшая это значение можно получить более качественный результат сжатия видео — вплоть до максимального качества при указании здесь «2» (так мы получим аналог режима 1-pass quality based с качеством в 100%). С другой стороны это заставит кодер использовать больше бит в тех кадрах, где вполне можно было бы обойтись и менее качественным кадром. Это уничтожает смысл двухпроходного режима: кодер сам по себе достаточно умный, чтобы использовать качественные кадры там, где это необходимо — зачем его заставлять использовать качественные кадры там, где это не нужно? Нельзя не упомянуть о том, что разработчики кодера не рекомендуют менять значение по умолчанию — «12». Они говорят о том, что алгоритм кодера оптимизирован под значения по умолчанию всех параметров из группы Data Rate control (кроме RC averaging period). Нарушение этого правила может, например, привести к некорректной работе психовизуальной модели, которая ориентирована на значения «12» и «2» для maximum и minimum quantizer соответственно. Обращаю ваше внимание, что это значение означает не более чем ограничение: при достаточно высоком битрейте кодер может ни разу не создать кадра с минимальным качеством — вплоть до использования минимальной степени игнорирования деталей «2» во всех кадрах. Это, кстати, накладывает ограничение сверху на размер результата сжатия видео при помощи DivX — оно соответствует примерно 0,40 бит на пиксел. Minimum quantizer — соответственно, минимальное значение степени игнорирования деталей. Ума не приложу, в каком случае может появиться необходимость увеличить значение по умолчанию — «2». Пожалуй, только разве что в случае экстремально низкого битрейта. То есть в нашем случае — стремимся к качественному результату — тут должно быть »2» и только «2». RC averaging period, frames — указывает интервал, в пределах которого в двухпроходном режиме перераспределяются биты между кадрами. Очевидно, что наилучшим вариантом будет использовать перераспределение битов в пределах всего видеоряда. Так, разработчики кодера рекомендуют использовать значение в половину количества кадров сжимаемого видеоряда. Соответственно, имеет смысл установить это значение в «500000» — это больше 4 часов — и забыть про него навсегда. Значение по умолчанию — «2000» — соответствует примерно одной минуте и вряд ли может считаться удовлетворительным. Очевидно, что это значение подразумевает использование однопроходного режима. RC reaction period, frames — указывает интервал, в пределах которого кодер игнорирует изменение количества движения в кадре. Соответственно, чем это значение меньше, тем лучше будут переданы короткие рывки, с другой стороны это может привести к слишком расходу бит для кодирования, скажем, случайных шумов в пределах нескольких кадров. Слишком высокое значение приведет к слишком медленному реагированию кодера и, как следствие, к нерациональному расходу битов в начале медленной сцены и низкому качеству начала динамичной сцены. Значение по умолчанию — «10», его и рекомендую оставить, следуя рекомендациям разработчиков кодера. Rate control down/up reaction — отвечает за скорость увеличения/уменьшения битрейта при изменении количества движения в кадре. Значение по умолчанию — «20», его и рекомендую оставить, следуя рекомендациям разработчиков кодера. Use data partitioning Этот параметр имеет смысл использовать только в некоторых случаях при вещании видео. У нас этот параметр должен быть всегда выключен. Perfomance / quality Этот параметр регулирует скорость работы кодера, точнее позволяет ускорить работу кодера за счет более низкого качества результата. Этот параметр имеет смысл изменять только в случае сжатия видео в реальном времени. Во всех остальных случаях установите его в Slowest — максимальное качество. Write conversion log file Указывает кодеру на необходимость создать файл с описанием полученного результата — сжатого видеоряда. В этом файле раскрывается работа кодера на втором проходе: какова сжимаемость каждого кадра, с каким качеством в итоге каждый кадр был сжат и тому подобное. По умолчанию кодер создает файл с именем analyse.log в текущем каталоге. Вы также можете указать любое другое место расположения и имя этого файла. Новые возможности кодера DivX 5 Как уже говорилось выше, кодер DivX 5 впервые среди MPEG-4 видео кодеров реализует некоторые новые функции, в частности поддержку B-frames, Global motion compensation и работа с векторами движения с повышенной точностью (до четверти пиксела — quarter pixel). Как, опять же, упоминалось выше, эти возможности доступны лишь в Pro версии кодера DivX 5. Двунаправленные кадры (Bidirectional frames) Согласно стандарту MPEG-4, в потоке видео данных могут присутствовать кадры трех типов: полные (intra, I-frame) — их содержимое сохраняется целиком, часто их называют ключевыми кадрами (key frames); предсказуемые (predictable, P-frame) — часть содержимого этих кадров предсказывается на основании содержимого предыдущих кадров, безразлично I или P, часто их называют промежуточными кадрами (delta frames); двунаправленные кадры (bidirectional, B-frames) — часть содержимого этих кадров предсказывается на основании содержимого предыдущих кадров (так же, как и у предсказуемых кадров), а часть — на основании содержимого последующих кадров. Кодеры DivX версий 3 и 4 умели формировать поток только из I и P кадров. DivX 5 предоставляет возможность использовать и кадры типа B. На практике использование такого режима сжатия означает небольшое увеличение ресурсоемкости кодирования и декодирования потока (порядка 10%) и существенное — от 10 до 20% -- уменьшение размера сжатого видео при том же уровне качества. Это каждый может элементарно проверить, закодировав дважды какой-нибудь видео фрагмент в режиме 1-pass quality based: с использованием B-frames и без них. Таким образом этот параметр предоставляет возможность существенно уменьшить размер сжатого видео при том же уровне качества или, соответственно, существенно повысить качество при заданном размере (например в двухпроходном режиме) — и все это ценой мизерных временных затрат при кодировании и при практически неизменной ресурсоемкости процесса декодирования. Очевидно, что использование этого режима сжатия более чем желательно. Компенсация движения (Global motion compensation) Этот режим позволяет использовать еще одну не задействованную ранее возможность стандарта MPEG-4. Компенсация движения создана для описания сцен с плавным панорамированием в стороны, вверх/вниз (например, титры) или в глубину (наезд/отъезд камеры). Промежуточные кадры формируются специальным образом, чтобы максимально использовать уже имеющуюся в предыдущих кадрах информацию о сцене — это дает существенный выигрыш в объеме результата. Конечно, этот режим применяется кодером только в сценах определенного типа — потому вполне возможно, что на видео материале, в котором подобных сцен мало, выигрыш в размере окажется мизерным. Тем не менее, эта возможность позволяет вам экономить на размере результата (или повышать качество других кадров, если размер результата фиксирован) с минимальными дополнительными затратами: увеличение ресурсоемкости кодирования и декодирования всего лишь около 10% Использование этого режима скорее желательно, чем нет. Четверть пиксельная точность Кодер DivX 5 позволяет работать с векторами движения с повышенной точностью: до четверти пиксела — quarter pixel. Старые версии DivX позволяли проводить расчеты с точностью лишь до половины пиксела. Теоретически такая технология позволит более точно описывать движение блоков в кадре, соответственно, повысить качество отображения границ движущихся объектов. На практике использование этого режима увеличивает размер результата на пару процентов, а вот ресурсоемкость как кодирования, так и декодирования подскакивает больше чем на четверть. Не могу сказать, что качество полученного результата настолько лучше, насколько больше ресурсов оно потребляет. А при таком среднем количестве бит на пиксел, которое я обычно использую, визуально разницу видно лишь при сравнении кадров один к одному — на скорости в 24 кадра в секунду все выглядит совершенно одинаковым. Таким образом этот режим себе же дешевле не использовать — ну разве что вы во что бы то ни стало хотите достичь максимального качества и у вас компьютер существенно быстрее 1 GHz (на Intel Pentium III 833 MHz видео размером 800х340, сжатое DivX 5 с включенными Qpel, B-frames и GMC, декодируется с полной загрузкой процессора на нулевом уровне постпроцессинга). Прочие параметры Опция Write DivX MP4 file позволяет создавать файлы не в формате avi, а в формате DivX MP4. В частности это позволяет обойти ограничение системы Video for Windows, которая требует одинаковой частоты кадров у видео на входе и на выходе кодера — то есть это реально необходимо в случае осуществления IVTC силами DivX 5 кодера. На практике файлы в формате avi куда как более распространены — так что эту опцию вам вряд ли придется когда-то включать. В строке Quick config CLI (command line interface) вы можете видеть командную строку, которая будет использоваться для передачи выбранных вами параметров кодеру. Вы также можете вручную редактировать эту строку, в частности для указания таких параметров, которые невозможно выбрать при помощи оконного интерфейса — подробнее см. документацию кодера DivX 5. Crop позволяет обрезать кадр перед кодированием — однако мне кажется намного удобнее и нагляднее делать это в какой-то программе, которая поддерживает режим предварительного просмотра: например VirtualDub или GordianKnot. Resize позволяет изменить размер кадра видео перед кодированием. Опять же — мне намного удобнее сделать это при помощи фильтра в VirtualDub, тем более что фильтр Smart Resize содержит много полезных и удобных дополнений, облегчающих расчет размера результата. Pre Processing Source позволяет провести обработку входного видеоряда, в частности провести сглаживание изображения и усреднение значений пикселов по времени. По сути это эквивалентно обработке фильтрами типа Smooth и Temporal Clean. Лично я считаю намного более удобным и гибким в настройке использование фильтров для VirtualDub — тут вы можете подобрать значения параметров для каждого из фильтров индивидуально, вместо абстрактных «Light», «Normal», «Strong» и «Extreme». Не забывайте также про возможность предварительного просмотра результата работы фильтра в VirtualDub'е. Source Interlace позволяет провести обработку исходного видео перед сжатием: deinterlace и inverse telecine (IVTC). И снова — для этих более чем нетривиальных процедур существует несколько разнообразных фильтров для VirtualDub с огромным количеством настроек — зачем использовать простенький вариант от DivX кодера? DivX MP4 Creator позволяет преобразовать готовые avi файлы, в которых записано видео с DivX 5 сжатием, в файлы формата MP4. Опять же — в силу повсеместной распространенности именно файлов в формате avi — вряд ли вам эта возможность понадобится. Закладка Manage settings позволяет создавать и использовать пресеты кодера DivX 5. Это достаточно удобно для использования — однако вы вполне можете и игнорировать эту функциональность. На качество получаемого результата это не повлияет Заметки о настройке DivX 5 Обобщая приведенные выше сведения о настройках кодера DivX 5 мы еще раз убеждаемся в том, что интерфейс кодера доведен практически до совершенства. Я не советую использоавть возможности кодера, описанные в разделе Прочие настройки — куда как лучше и удобнее использовать для этих целей видео редактор. Это также позволит вам раз и навсегда отключить эти настройки и никогда не возвращаться к их конфигурированию. Подавляющее большинство других настроек устанавливается раз и навсегда в оптимальное значение, которое оптимально для любого видео материала. Из настроек, которые зависят от видео материала, остаются Max keyframe interval и Scene change threshold — но и их вполне можно один раз установить в универсальные значения и забыть об их существовании. Таким образом конфигурирование кодера DivX 5 в двухпроходном режиме сводится к выбору среднего битрейта, первого или второго прохода и имен файлов со статистикой (кстати, если вы не кодируете несколько файлов сразу, то вполне можете использовать имена файлов со статистикой по умолчанию). Для расчета среднего битрейта исходя из желаемого размера результата можно использовать программу Advanced Bitrate Calculator — хотя он, в отличие от встроенного калькулятора NanDub'а, не понимает VBR mp3.
|