Видео маппинг, видео перформансы

VJ Софт

On2 VP6: описание возможностей кодека, настройки, рекомендации


Описание настроек кодека

При инсталляции кодек ставит два профиля - VP60 (simple profile) и VP61 (advanced profile). Разницы в настройках нет. Авторы кодека рекомендуют использовать VP60 для обычных и высоких битрейтов, а VP61 - для низких и очень низких битрейтов. От себя добавлю, что VP61 требует при кодировании и декодировании больше ресурсов, но способен дать немного лучшее качество кодирования.
Кодек позволяет работать с ним через VfW интерфейс. И, как водилось ранее, чтобы выставить желаемый битрейт придется воспользоваться свойством этого API, которое позволяет, не инициализируя окно настроек, форсировать битрейт и частоту ключевого кадра. Чтобы сделать это, например, из VirtualDub'а, необходимо в окне выбора кодека (меню Video/Compression), выставить желаемое значение:


Битрейт выставляет в килобайтах в секунду вместо привычных нам кБит/с, поэтому, желая выставить, скажем, 1600 кБит/с, делите на 8 - т.е. в нашем случае это будет 200.

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


Настройка VP6. Первая вкладка - General

Меню Mode:

Realtime/Live Encoding Может быть использован для кодирования в режиме реального времени, например при оцифровке. Я противник использования сильно жмущих кодеков при захвате, поэтому могу порекомендовать данный режим лишь для тестовых захватов и для захвата "на раз" (например, запись сериала для жены :) ).
Good Quality Fast Encoding. Среднее качество, достаточно высокая скорость кодирования. Не рекомендуется к использованию.
One Pass - Best Quality. Лучший по качеству однопроходный режим. Медленное кодирование.
Two Pass - First Pass. Первый проход двухпроходного кодирования, используется для сбора статистики о видеопотоке для последующего использования во втором проходе.
Two Pass - Second Pass. Второй проход двухпроходного кодирования. Имеет два режима Good Quality и Best Quality, второй, конечно же, имеет более высокое качество, но гораздо более медленный, поэтому если скорость кодирования для Вас критична, можно использовать первый, разница в качестве между двумя режимами не сильно заметна.

Выбор End Usage (Применение видео):
Stream From A Server (CBR) - Постоянный битрейт. Подходит для трансляции видео по сети.
Local File Playback (VBR) . Переменный битрейт. Именно этот режим и следует использовать для кодирования видеопотока с последующим проигрыванием на компьютере (или на будущих EVD-плеерах).

Выбор Material (Формат входящего потока):
Interlaced Fields - Чересстрочное видео. Забегая вперед, скажу, что VP6 - лучший, на мой взгляд, кодек, работающий в области низких битрейтов, по обработке чересстрочного видео. Результаты потрясают! Более того, декодер VP6 имеет встроенный механизм деинтерлейсинга, пусть и не такой мощный, как, например, адаптивный деинтерлейсинг у программного обеспечения ATI, но достаточно неплохой.
Progressive. Прогрессивное видео.
Noise Reduction (Шумоподавление) Можно выбрать значение от "0" (шумоподавление отключено) до "6" (максимальное шумоподавление). Включение опции не рекомендуется - с помощью фильтров к VirtualDub можно гораздо эффективнее снизить шумность видео, потеряв значительно меньше в качестве.
Auto Key Frame - при включенной опции кодек автоматически выбирает расположение ключевых кадров в потоке (с учетом опции Max Frames Btw Keys ). Обязательно включите эту опцию.
Max Frames Btw Keys - Наибольшая длина ключевого фрагмента (максимальное количество кадров между ключевыми кадрами). Величина зависит от видеопотока. Если затрудняетесь сами определить, выставьте 360 - вполне "золотая середина".

Настройка VP6. Вторая вкладка - Advanced


Выбор DataRate Control (Управление потоком данных):
Undershoot - В % от значения datarate, уже выставленного Вами, означает битрейт, который будет первоначально отведен на кодирование видео. Остатки пойдут прежде всего на глобальные и локальные таблицы данных, а также на особо сложные фрагменты видеопотока. Отмечу, что значение по умолчанию (90%) вполне подходяще. Еще одно важное замечание: VP6 не подходит для сжатия небольших видеороликов из-за того, что достаточно большой объем в финальном файле занимают глобальные данные, и чем меньше длительность фильма, тем больше будут занимать эти данные относительно самого видеопотока. Минимальная рекомендуемая мной длительность фильма для кодирования в VP6 составляет 10 минут, и чем больше, тем лучше!
Adjust Quantizer . Позволяет вручную определить диапазон коэффициентов квантования для процесса кодирования. Очень мощное средство управления качеством, однако Вы должны понимать, что делаете, по нескольким причинам:
1. Если Вы установите чересчур малые коэффициенты (напоминаю общее правило кодеков, использующих квантование при сжатии: чем меньше коэффициент, тем меньше потерь при сжатии, но и тем больше будет размер видеопотока на выходе), то, если при этих установках заказанный Вами битрейт не может быть достигнут (и другие опции для понижения битрейта не выставлены), кодек не будет увеличивать коэффициенты - он увеличит битрейт, что, на мой взгляд, абсолютно верно: если Вы не можете сами продумать диапазон коэффициентов, используйте автоматический режим (не выставляйте галочку)
2. Диапазон дискретных значений коэффициентов у VP6 значительно больше, чем в стандарте MPEG-4 (1 - 80), причем алгоритм использования матрицы квантования несколько иной. В сумме это дает большее качество кодирования: "квадратики" в финальном видео, сжатом с помощью VP6, Вы получите только при очень низком битрейте.
3. Следует понимать механизм использования квантования при кодировании и выбирать коэффициенты, исходя из этого, стремясь максимально задействовать битрейт. Так, для нижней границы значения лучше выбирать из ряда: 2, 4, 8, 12, 16, 24, 32, 40 и т.д, а для верхней - 3, 7, 11, 15, 23, 31, 39 и т.д. Т.е., к примеру, 4 - минимальный коэффициент, 47 - максимальный. Это совсем не означает, что "шаг вправо, шаг влево - растрел на месте" - совсем нет. Это оптимальные установки для диапазонов, при которых будет достигаться оптимальное заполнение глобальных данных.
Temporal Resampling - кодек будет форсированно понижать частоту кадров для того, чтобы втиснуться в заданный битрейт. С помощью значения Down Watermark Вы задаете условие уровня нехватки битрейта, при котором кодек начнет выбрасывать кадры. Я не рекомендую включать эту опцию за исключением кодирования при очень низких битрейтах (например, для наладонников) или кодирования очень статичных фильмов (мультфильмы, рендеренные фильмы-презентации и т.п.)
Spatial Resampling - немного более полезная опция. Позволяет кодеку уменьшить разрешение кадра, в котором мало информации. Условия включения данного механизма задаются при помощи значений Down Watermark и Up Watermark: первым Вы также задаете уровень нехватки битрейта, при котором кодек уменьшит разрешение кадра, вторым задаете условие выбора таких кадров. С помощью грамотного подбора значений можно добиться хорошего сжатия малозначимых кадров фильма, например, титров. Однако, и эта опция, и предыдущая не имеют пока нормальных средств управления, ожидается, что следующая версии кодека исправит ситуацию.

Выбор Streaming Parameters (Параметры для потокового видео, режим CBR):
Как правило, установки по умолчанию весьма неплохо работают при создании потоков для трансляции по сети.
Peak Bitrate - Максимальный битрейт, разрешенный для потока
Prebuffer - Длительность потока в секундах для предварительной загрузки плеером клиента при старте проигрывания - чтобы поддержать плавное проигрывание в случае плавающей скорости трансляции.
Optimal Buffer - Оптимальная длительность буфера, которую кодек должен поддерживать при проигрывании
Max Buffer - Максимальная величина для установки буфера загрузки

Выбор Two Pass Section Datarate (Установки для второго прохода двухпроходного режима:
Variability - условная величина, определяющая величину разброса битрейта. 0 - означает постоянный битрейт, 100 - позволяет кодеку распределять битрейт в любых отношениях для любых секций потока. Не рекомендую устанавливать ниже 70. Для относительно высоких битрейтов и большой длительности потока (более получаса) можно смело ставить 100.
Min Section - минимальный % от битрейта, который кодек выделит для сегмента. 40 - вполне нормальная величина, однако, если в фильме есть титры, статика, можно уменьшить эту величину. В принципе, устанавливая значение в 0, Вы отдаете контроль на откуп кодеку.
Max Section - максимальный % от битрейта, который кодек выделит для сегмента. Минимальное "нормальное" значение - 100%. Максимальное значение, формально, не ограничено, но 400 % - разумный потолок для 95% случаев.

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

EventCatalog.ru — всё для организации мероприятий!