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

VJ Софт

Как правильно выбрать поля при кодировании в MPEG 2


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

Цель этой статьи объяснить, как добиться желаемого результата и что необходимо для этого на примере разных программ сжатия.

Многие обращали внимание на отсутствие в описании стандарта DVD такого параметра, как очередность полей (field order), только interlaced или progressive(non-interlaced). Возникает вопрос — почему?

Все оказывается очень просто.

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

Цель этой статьи объяснить, как добиться желаемого результата и что необходимо для этого на примере разных программ сжатия.

Многие обращали внимание на отсутствие в описании стандарта DVD такого параметра, как очередность полей (field order), только interlaced или progressive(non-interlaced). Возникает вопрос — почему?

Все оказывается очень просто.

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


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


Mpeg2 содержит 2 значения о полях:

1-е значение — это реальные поля , т.е.  с какой очередностью расположены строки,

2-е значение — так называемый флаг для аппаратного декодера, если он установлен, у файла Upper field first, если снят — Lower. Чтобы не путаться дальше, эти два значения так и будем называть 1-е и 2-е.

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


Немного справочной информации:


Устройство захвата
(источник видео)
Очередность полей Формат
miroVIDEO DC10(+)*
miroVIDEO DC30(+)
miroVIDEO DC50
Upper field first MJPEG
Fast AV Master**
miroVIDEO DC20 (+)
Lower field first MJPEG
IEEE1394
Pinnacle DV500
Pinnacle Pro-ONE
Canopus DV Storm
Lower field first  DV
Matrox RT2000-2500*** Upper field first DV
SkyStar 1 Upper field first MPEG2 MP@ML

* в последних драйверах для XP при захвате можно указать разную очередность.
** значение по умолчанию, настройки позволяют менять очередность
*** особенности RT2500 рассматриваются только для standalone (самостоятельных) модулей энкодеров.


Обозначения полей.
Upper field first = Top field first = even = field order B (Ulead)
Lower field first = Bottom field first = odd = field order A (Ulead)


Теперь рассмотрим сам процесс.
Дополнительно понадобятся программы для просмотра и изменения 2-го значения, это могут быть Easy Changer (Mpeg Fixer) из пакета DVMPEG компании Darim Vision, или ReStream. Повторюсь, это значение только для аппаратных декодеров, на реальную очередность полей оно не влияет.


Начнем c Cinema Craft Encoder (далее CCE).
Судя по конференциям, этот энкодер вызывает наибольшее количество вопросов.


Ближе к делу.
Cinema Craft Encoder до 2.66.01.07



image

Cinema Craft Encoder 2.67.00.08


image

Установленная галка «upper field first» или в последних версиях «Offcet line=1» означают, что изображение будет сдвинуто на одну строку вверх, таким образом в готовом мпеге получаем обратную очередность полей относительно исходного файла (по 1-му значению).

Особенность CCE в том, что при любых настройках 2-е значение для аппаратного декодера DVD всегда будет upper field first, это можно посмотреть указанными выше утилитами.


Таким образом, чтобы получить «правильный» мпег в CCE без дополнительной обработки, нужно:


источник настройки ССЕ результат
Upper field first Upper field first off.
или Offcet line=0
1 = Upper field first
2 = Upper field first
Lower field first Upper field first on
или Offcet line=1
1 = Upper field first
2 = Upper field first

1 и 2 это информация о полях, описанная выше.
Как видно, на выходе всегда получается Upper field first.
Все другие комбинации приводят к несовпадению информации в обоих значениях, отсюда и неправильное воспроизведение на DVD проигрывателях.
CCE понимает файлы RT2500 как Upper Field First (AVI Import).


Теперь очередь за Canopus ProCoder.
Этот энкодер может менять оба значения.
В таблице приведены параметры Source и Target для источников с разной очередностью полей, придерживаясь данных настроек, Вы всегда получите правильный результат.


 источник  Source setting  Target setting  результат
 Upper field first  Upper  Upper 1 = Upper
2 = Upper
 Upper  Lower 1 = Lower
2 = Lower
 Lower  Lower 1 = Upper
2 = Lower
 Lower  Upper 1 = Lower
2 = Upper
 Lower field first  Upper  Upper 1 = Lower
2 = Upper
 Upper  Lower 1 = Upper
2 = Lower
 Lower  Lower 1 = Lower
2 = Lower
 Lower  Upper 1 = Upper
2 = Upper

красным цветом отмечены неправильные комбинации.
Canopus ProCoder понимает файлы RT2500 как Lower Field First (Direct Show Import).

Настройки в TMPGEnc влияют только на 2-й параметр.



image

На рисунке установлен Bottom field first, это тоже, что и Lower field first. Выбор параметра зависит от исходника, исходник = готовый мпег. TMPGEnc (настройки по умолчанию) понимает файлы RT2500 как Upper Field First (AVI Import). Хотите как Lower? В настройках на закладке VFAPI Plug-In снимите галку с AVI2(Open DML) File Reader, будет использоваться Direct Show Import (Microsoft DV).

Тоже самое относится и к Mainconcept Mpeg Encoder.



image

Настройки меняют только 2-е значение. Mainconcept Mpeg Encoder (настройки по умолчанию) понимает файлы RT2500 как Lower Field First (Direct Show Import).

Plug-In энкодеров в программах монтажа работают абсолютно одинаково, очередность полей источника для Plug-In определяется настройками проекта (особенности работы в программах монтажа здесь не рассматриваются).


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



Как проверить правильность процесса? Запишите пробный диск на DVD±RW, и посмотрите на DVD плеере. Обойтись без записи на диск можно, воспроизводя файлы через устройство с аппаратным декодером, например через плату Sky Star 1. При определенном навыке можно использовать видеокарты с ТВ выходом Matrox G400-450-550 (родной Upper field first), но поскольку при воспроизведении используются программные декодеры не воспринимающие 2-й параметр, полное представление о совпадении очередности полей в обоих значениях узнаем так:


Скачайте DivXG400 http://www.tac.ee/~prr/divxg400/, эта утилита должна быть у каждого владельца Matrox G400-450–550 :)
В настройках снимите галку «Enable extended overlay». Допустим, у нас есть источник Upper field first. Сожмите для теста мпег длительностью около 10 сек. Посмотрите на телевизор, изображение не должно «дрожать» на движениях, затем посмотрите 2-е значение, флаг «Upper field first» должен стоять. В случае с Lower field first наоборот, мы увидим «трясущееся» изображение, в DivXG400 включаем «Shift Image by one row», картинка будет воспроизводиться правильно, соответсвенно флаг «Upper field first» не должен быть включен. В дополнение ко всему замечу, что все «фирменные» DVD-Video сделаны с Upper field first. Скорей всего этого надо придерживаться и нам.
EventCatalog.ru — всё для организации мероприятий!