Как правильно выбрать поля при кодировании в 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
Cinema Craft Encoder 2.67.00.08
Установленная галка «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-й параметр.
На рисунке установлен 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.
Настройки меняют только 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. Скорей всего этого надо придерживаться и нам.