О быстрых и эффективных способах записи сигнала TV-тюнера и переноса видеоданных с DVD на CD для их последующего просмотра на ПК мы рассказывали (см. «Мир ПК», №12/01, с. 130, №8/03, с. 122). Однако большинство людей предпочитают смотреть кино по телевизору, используя видеомагнитофон либо стационарный проигрыватель Video-CD или DVD. Кроме того, имея коллекцию фильмов формата MPEG-4 на CD или «винчестере», невозможно поделиться ею с теми, у кого нет компьютера.
Как быть в таком случае? Очень просто: надо создать диск стандарта, совместимого со стационарными бытовыми плеерами. Этому и посвящена данная статья.
Форматы сжатия MPEG
Сначала поговорим о сжатии видео в форматах семейства MPEG — это поможет понять смысл описанных ниже манипуляций. Ведь при их бездумном выполнении вероятность совершения ошибки намного повышается. К тому же общее представление о MPEG даст возможность варьировать в определенных пределах выбираемые режимы и параметры, что позволит улучшить качество дисков Video-CD.
Разработка группы форматов сжатия MPEG, к которой принадлежат как стремительно набравший популярность MPEG-4, так и «старичок» MPEG-1, началась в 1988 г. Именно тогда был основан комитет Moving Pictures Expert Group (в буквальном переводе — экспертная группа движущихся изображений). Его аббревиатура MPEG известна теперь любому, кто занимается мультимедиа на компьютере или цифровым телевидением. В том же году началась разработка формата MPEG-1, в окончательном виде выпущенного в 1993 г. Несмотря на недостатки, MPEG-1 по-прежнему является одним из ведущих стандартов. Практически все как современные, так и более старые проигрыватели Video-CD и DVD поддерживают этот формат. Лишь в последнее время MPEG-1 начал постепенно сдавать позиции под натиском более новых и совершенных форматов видеосжатия, по большей части из этого же семейства. Однако и они практически все в том или ином виде используют разработки, легшие в основу MPEG-1. Поэтому, рассмотрев в подробностях его особенности, можно составить представление о том, как работают общие алгоритмы MPEG и какие настройки параметров кодека следует выбирать для получения изображения наилучшего качества или файла наименьшего размера.
Разработка формата MPEG-1 началась в те многими уже забытые времена, когда не было широкодоступных носителей данных большого объема. Даже сжатые видеоданные занимали огромное для конца прошлого века пространство — объем файла фильма средней продолжительности превышал гигабайт. Напомню, тогда на столах стояли компьютеры с 286-ми и 386-ми процессорами, а 4-Мбайт оперативная память и 200-Мбайт жесткий диск считались роскошью. Windows еще только начинала свое победное шествие, а в качестве портативных носителей информации применялись лишь 5-дюймовые дискеты.
В такой ситуации требовался носитель емкостью в несколько сот мегабайт, причем недорогой, иначе о массовости не могло идти речи. И такой носитель создали: CD-ROM. Правда, на один 650-Мбайт диск фильм в формате MPEG-1 продолжительностью 1,5 ч все равно не умещался, поскольку требовал 900 Мбайт. И кино стали записывать на два CD-ROM, так как стоимость их изготовления с самого начала была весьма невелика.
Первые проигрыватели CD-ROM имели скорость 1X, т.е. за 1 с ими пересылалось 150 Кбайт данных в формате MPEG-1. Именно из-за этого ограничения, так называемой фиксированной ширины потока данных (Constrained Parameters Bitstream, CPB), разработчики формата MPEG-1, а в дальнейшем и создатели основанных на нем кодеков вынуждены использовать довольно низкое разрешение кадра, характерное для Video-CD. На самом же деле MPEG-1 поддерживает сжатие и воспроизведение видеоинформации с разрешением вплоть до 4095х4095 пикселов и частотой смены кадров до 60 Гц. Наиболее распространены два варианта: SIF — 352х240 пикселов, 30 кадр./с и урезанный PAL/SECAM — 352х288 пикселов, 25 кадр./с. Обратите внимание — количество строк и пикселов не соответствует отношениям сторон кадра 3:4, что создает так называемый «неквадратный пиксел». Дело в том, что создатели MPEG-1 не предназначали его для просмотра фильмов на компьютере, они всего лишь предложили формат хранения видеоматериала в цифровой форме. Предполагалось, что видео будет выводиться через ТV-выход видеоплаты на телевизор либо проигрыватель Video-CD. Если же воспроизводить кино на мониторе ПК без применения специальной корректировки, то мы увидим слегка сжатое по вертикали (в случае использования SIF) или по бокам (урезанный PAL/SECAM) изображение.
Это особенно важно помнить тем, кто конвертирует видео из MPEG-1 в более современный формат MPEG-4 — в видеоредакторе необходимо включить опцию resize (т.е. изменение размеров окна) и вместо разрешения 352х240 пикселов задать значение 320х240 пикселов или вместо 352х288 пикселов — 384х288 пикселов.
В качестве примера рассмотрим урезанную версию формата PAL/SECAM, более распространенную, чем SIF. В ней на линию приходится 352 точки, а на кадр — 288 линий, частота составляет 25 кадр./с. Полноценный стандарт PAL/SECAM имеет значения параметров в 4 раза большие, чем у MPEG-1 (кроме частоты кадров). Поэтому принято говорить, что четкость изображения Video-CD в 4 раза хуже, чем у несжатого видео.
В компьютерной графике на каждый пиксел отводится определенное фиксированное число битов. В MPEG-1 принят другой принцип: цветовая схема YСbCr, где Y — яркостная составляющая, Сb и Cr — цветовые. Существует несколько вариантов кодирования (см. таблицу).
Очевидно, что цветовые составляющие практически всегда кодируются с меньшим разрешением, чем яркостная. А чем ниже разрешение Сb и Cr, тем грубее и неестественнее цветопередача в видеоролике. Таким образом, самым некачественным, но зато обеспечивающим наименьший размер файла будет вариант, приведенный в последней строке таблицы.
Перед кодированием программа анализирует видеоинформацию и выбирает ключевые кадры, не изменяющиеся при сжатии, а также те, часть информации из которых будет удаляться. Что именно изымается? Для начала следует вспомнить, как обрабатывает фильм MPEG-кодек.
Сжимать фильмы по тем же алгоритмам, что и фотографии, не удается. Точнее, это возможно (примерно так работает кодек DV, используемый цифровыми видеокамерами), но файл получается очень большим и не умещается на болванку CD-ROM. Тогда создатели MPEG применили следующий способ. Они выделили три типа кадров:
- I, Intra frame - ключевые кадры, которые записываются целиком;
- P, Predirected frame - при их кодировании часть информации удаляется, сохраняется только список отличий от предыдущих кадров; при воспроизведении используется информация предыдущих I- или P-кадров;
- В, Bidirectional frame - при кодировании этих кадров записывается не сам видеоматериал, а только ссылки на похожие "квадратики" в предыдущих кадрах; при воспроизведении используется информация двух предыдущих I- или P-кадров.
Именно кадры типа B обеспечивают высокую степень сжатия MPEG-1 (но не очень хорошее качество). При кодировании создается цепочка кадров разных типов — так называемая GOP-структура (подробности см. ниже), которая выглядит, как правило, так: IBBPBBPBBIBBPBBPBB... Соответственно если кадры обозначить номерами начиная с 1, то список примет такой вид: 1423765...
По окончании разбивки кадров на разные типы и создания GOP-групп начинается собственно кодирование. Каждый I-кадр разбивается на блоки размером 8х8 пикселов. Для кадров типов P и B применяется более сложный алгоритм. Чтобы сильнее их сжать, используется так называемое «предсказание движения». В качестве начальной информации берется блок 8х8 пикселов текущего и аналогичные блоки предыдущих кадров (типа I или P). Далее определяется, насколько и как изменился блок в данном кадре по сравнению с предыдущими. Все участки, имеющие высокое сходство, безжалостно удаляются. Поэтому в фильмах формата MPEG-1 качество статичных сцен заметно выше качества сцен с интенсивным движением. Ведь в неподвижных местах кадры P и B по сути представляют собой копии кадров I, и при их выбрасывании из записи изменения в видеоряде малозаметны. При кодировании блоков и вычислении разницы между ними часть информации теряется за счет выравнивания сильно выделяющихся участков. После этой процедуры формируется матрица квантования (quantization matrix), определяющая взаимозависимости похожих и непохожих кадров.
Все сказанное выше касается только изображения. Но кроме видеоряда в любом фильме присутствует звук, сжатие которого выполняется звуковым кодером. С развитием формата MPEG звуковые кодеры становились все эффективнее. К моменту стандартизации MPEG-1 были созданы кодеры MPEG-1 Layer I, Layer II и Layer 3 (MP3). Их работа базируется на психоакустической модели, достигшей потолка своего развития в алгоритме Layer 3. О ней и о принципах сжатия аудиоданных написано много статей, поэтому упомяну только о синхронизации аудио- и видеопотоков.
Она достигается записью обоих видов данных в единый поток — System stream. Этот поток имеет внутренний таймер, функционирующий с частотой 90 кГц, и содержит два слоя: системный с метками времени и служебной информацией и слой сжатых видео- и аудиопотоков. Наиболее важные метки: SCR (System Clock Reference) — инкремент увеличения временн?ого счетчика кодека и PDS (Presentation Data Stamp) — метка начала воспроизведения видеокадра или аудиофрейма. Именно потому в записях стандарта MPEG-1 никогда не бывает рассогласования видео и аудио, свойственного компьютерным фильмам MPEG-4.
Формат допускает варьирование качества звука в очень больших пределах. Спецификация была утверждена в 1992 г. Европейской комиссией по стандартам ISO и предусматривает такие значения: моно, два моноканала, стерео, интенсивное стерео (стереосигналы с частотами выше 2 кГц объединяются в моно), объединенное стерео (один канал — сумма сигналов, другой — разница). Частота дискретизации может равняться 48; 44,1 или 32 кГц.
Конвертируем фильм
Теперь обратимся к программам, которые потребуются для работы.
Это видеоредактор TMPGEnc (чтобы найти дистрибутив, достаточно ввести название программы в любую поисковую систему) и пакет Nero для изготовления дисков Video-CD из болванок CD-R.
Также понадобится пишущий привод CD-RW, стоимость которого в Москве сегодня колеблется от 1000 до 2000 руб. Нелишне напомнить, что очень старые устройства для воспроизведения Video-CD не читают современные записываемые диски CD-R из-за другого цвета отражающего слоя.
Итак, у нас есть файл фильма с расширением avi, сжатый с использованием кодека типа MPEG-4 (DivX, XviD) или аналогичного.
Установите на компьютер программу TMPGEnc и запустите ее (рис. 1).
Нажмите кнопку Browse, расположенную справа от поля ввода Video source. Откроется окно для выбора фильма, предназначенного для перекодирования. Укажите фильм (рис. 2).
В поле Video source появятся адрес и название файла, в строке Audio source будет то же самое, поскольку исходный файл содержит как видео-, так и аудиодорожку. А если бы вы делали кино из материала, отснятого с помощью домашней видеокамеры, то в строке Audio source могли бы выбрать звуковой файл, созданный отдельно от видеоряда для его озвучивания.
В поле Output file name отобразятся та же папка и файл с таким же названием, но расширение у него окажется уже не *.avi (или, как в нашем примере, *.mp4), а *.mpg, что означает формат MPEG-1.
По умолчанию программа записывает результат перекодирования в ту же папку, где находится исходный файл. Если вам нужен другой каталог, щелкните на кнопке Browse справа от поля Output file name и выберите папку. Здесь же можно изменить название файла фильма.
В последней строке показывается описание фильма: размер окна, частота кадров, скорости потоков (bitrate) видео и аудио. В большинстве случаев предлагаемые настройки не совпадают с требованиями стандарта Video-CD. Поэтому откройте диалоговое окно Setting, найдите вкладку System и в строке Stream type поставьте MPEG-1 Video CD (рис. 3). Далее перейдите на вкладку Video и введите значения: Size — 352х288 pixels, Frame Rate — 25 fps. (Если исходный фильм был в формате NTSC, то сразу после открытия файла в нижней строке описания видеофайла можно прочитать: 30 fps. Надо выбрать значения Size — 352х240 pixels, Frame rate — 30 fps.) Ниже следует задать Constant bitrate (CBR) и 1150 kbit/sec.
Рис. 3 |
Качество обработки исходного файла зависит от позиции Motion search precision, по умолчанию там стоит значение Normal. Для наилучшего качества замените его на High quality (slow). При этом на компьютере с 1,4-ГГц процессором фильм будет обрабатываться в течение времени, примерно равного продолжительности картины.
Любопытным рекомендую заглянуть на вкладку Advanced. Однако при создании Video-CD позиции, указанные на ней, скорее всего не понадобятся. Они нужны тем, кто захочет конвертировать фильм в формат MPEG-2. Здесь выбирается тип развертки — прогрессивный или чересстрочный (для Video-CD — понятие бессмысленное, так как этот формат работает только с первым полем1), порядок полей (тоже не нужно), аспект (т. е. отношение сторон: 3:4 или иное), метод изменения размеров изображения. Последние два пункта могут нам пригодиться, если исходный фильм имеет пропорции кадра, отличные от 3:4.
Рис. 4 |
Рассмотрим пример. Если открыть в TMPGEnc файл фильма «Пираты Карибского моря», то в строке описания можно увидеть размер кадра 416х250 пикселов. При попытке TMPGEnc вписать картинку в формат 352х288 пикселов физиономии действующих лиц ненормально вытянутся (рис. 4). В этой ситуации можно либо разместить видеоряд в середине кадра, добавив сверху и снизу черные поля (рис. 5), либо отрезать слева и справа «лишние» кусочки так, чтобы оставшаяся часть картинки полностью заняла кадр с отношением сторон 3:4 (рис. 6).
Рис. 5 |
Чтобы получить первый результат, в окне Setting откройте вкладку Video и в поле Size укажите 352х288 пикселов, а в Aspect ratio — 4х3 625 Line Pal. Затем перейдите на вкладку Advanced, в строке Source Aspect ratio выберите 4х3 Display, а в Video arrange Method поставьте Сenter (Keep aspect ratio) (рис. 7).
Рис. 6 |
Для достижения второго результата в строке Video arrange Method задайте Center (Custom size), а в поле чуть ниже — 439х288 пикселов. Почему 439? Это нужно высчитать. Высота кадра фильма 250 пикселов, а стандарт MPEG-1 предусматривает 288. Следовательно, высота увеличилась в 288:250=1,152 раза. Для сохранения пропорций умножаем имеющуюся ширину 416 пикселов на 1,152 и получаем 479 пикселов. Далее нужно вспомнить, что в формате MPEG-1 имеет место «неквадратный» пиксел (т.е. при пропорции кадра 3:4 соотношение записываемых пикселов равно 352:288), вычисляем величину «неквадратности» — 384:352=1,09 и делим на нее полученный прежде результат — 479:1,09=439 пикселов.
Рис. 7 |
На вкладках GOP structure и Quantize Matrix новичкам лучше ничего не изменять, так как проигрыватели Video-CD и DVD понимают только стандартные настройки, а они и установлены по умолчанию.
Теперь откройте вкладку Audio. В первом поле должно стоять Mpeg 1 Audio Layer II, под ним — 44 100 Hz, ниже Stereo, еще ниже 224 Kbit/sec. Поле Audio Edit предназначено для опытных пользователей и позволяет редактировать звук (рис. 8).
Рис. 8 |
На вкладке Advanced имеются фильтры, которые может использовать TMPGEnc:
- Source Range - позволяет выбрать из исходного видео фрагмент для кодирования путем указания начального и конечного кадров;
- Simple and Custom color correction - с помощью этих двух фильтров можно изменять цвет, яркость и контрастность;
- Deinterlace - помогает убрать чересстрочную развертку (для создания видео формата MPEG-1 не нужен);
- Clip Frame - используется для удаления черных полос по краям фильма или других нежелательных фрагментов (если кадр обрезается, то это необходимо делать как по высоте, так и по ширине для сохранения соотношения сторон 4:3 или 16:9);
- Noise reduction - позволяет убрать шумы (полезен, в частности, при кодировании фильма, полученного с платы TV-тюнера, однако может привести к уменьшению детализации изображения);
- Do not frame rate conversion - блокирует изменение частоты кадров.
Рис. 9 |
Теперь можно нажать Start, и программа начнет свою работу. По ее завершении образуется файл MPEG-1, соответствующий стандарту Video-CD. Если продолжительность фильма превышает 1 ч 10 мин, то на 700-Мбайт болванку он не уместится. В этом случае следует открыть окно MPEG Tools (рис. 9), перейти на вкладку Merge&Cut, выбрать мышью полученный файл фильма объемом от 700 до 1400 Мбайт и нажать кнопку Edit (рис. 10). В появившемся окне редактирования надо указать, где видеофайл будет разрезан на две части (например, в середине, рис. 11). Затем в строку File name необходимо вписать новое имя файла (скажем, Pirats1) и нажать Run (кнопка с треугольником). Далее потребуется обозначить второй фрагмент — в первое окошко поля Range ввести кадр из середины фильма, а в последнее — конечный кадр картины. Второй отрезок назовите Pirats2 и вновь щелкните на кнопке Run. Итак, мы получили два фрагмента длиной в полфильма, которые при общей продолжительности картины менее 2 ч 20 мин должны уместиться на две болванки CD-R.
Рис. 10 |
Рис. 11 |
Прежде чем говорить о записи готового фильма на болванки CD-R, для любопытных опишем другие вкладки с настройками TMPGEnc.
GOP structure (аббревиатура расшифровывается как Group Of Pictures, группа картинок) — эта опция указывает TMPGEnc, как обрабатывать последовательности кадров. При изменении значений параметров, установленных по умолчанию, возможно, улучшится качество фильма, но он перестанет соответствовать стандарту Video-CD и проигрываться бытовыми плеерами (будет воспроизводиться только на компьютере).
Quantize Matrix: Output YUV Data as basic YCbCr not CCIR601 — расширяет цветовую шкалу яркости 8—235 до 0—255 единиц. Телевизор не способен отображать картинку с таким диапазоном уровней яркости, как у компьютерного монитора, поэтому шкала обрезается. Устанавливать этот флажок нужно, если фильм уже имеет ТВ-шкалу (8—235) — например, при переписывании с DVD. Если же файл получен с платы ввода видео, то флажок активизировать не следует, и преобразование не будет применено.
Use floating point DCT — когда в фильме мало сцен с быстрыми перемещениями объектов, можете установить этот флажок. Время кодирования немного увеличится, но изображение будет более стабильным.
Soften block noise — эта опция смягчает границы между блоками кадров с быстро перемещающимися объектами, но немного ухудшает детализацию картинки. Если ее стандартное значение вас почему-либо не устраивает (скажем, изображения рассыпаются на квадраты), то можно поэкспериментировать, изменяя его в пределах от 20 до 50 единиц.
Что случится, если в поле bitrate вместо 1150 кбит/с указать, например, 700 кбит/с? Во-первых, фильм скорее всего уместится на одну болванку CD-R, а не на две. Во-вторых, резко упадет качество. И в-третьих, большинство бытовых плееров откажутся воспроизводить такой фильм.
Записываем файл на болванку
Для записи используем программу Nero. Поскольку мы подробно рассказывали о ней (см. «Мир ПК», №1/03, с. 50), остановимся только на некоторых аспектах.
В окно проекта Video-CD необходимо перетащить файл фильма, созданный по окончании работы TMPGEnc. В нашем случае он находится на карте флэш-памяти — диске N (рис. 12). Нажав кнопку Play, можно проверить, тот ли это фильм (начнется проигрывание).
Если параметры файла не соответствуют стандарту Video-CD, то Nero предложит самостоятельно перекодировать его (рис. 13). Нажатие кнопки Re-encode запускает процесс конвертирования фильма в формат MPEG-1 с помощью встроенного в Nero кодировщика.
Рис. 13 |
Большинство пользователей склоняется к тому, что он несколько уступает по качеству кодирования профессиональному кодировщику TMPGEnc, тем более что в случае каких-то несоответствий стандарту размеров кадра в TMPGEnc, как уже было рассказано выше, можно произвольно изменить рамки и даже вырезать часть изображения (укрупнить центр за счет отбрасывания краев). Поэтому кодировать фильмы в формате MPEG-1 все-таки лучше с помощью TMPGEnc, а Nero использовать по прямому назначению — для записи Video-CD.
Указав в меню Recorder пункт Medium-info, можно посмотреть свойства вставленной болванки CD-R (или CD-RW). В данном случае это пустой (готовый к записи) перезаписываемый диск емкостью 703 Мбайт (рис. 14). Когда нужно стереть старую запись на перезаписываемом диске, вызовите команду Erase Rewritable.
Рис. 14 |
Теперь можно начать запись, для чего достаточно выбрать File?Write CD и нажать кнопку Burn (рис. 15). Если диск будет создан успешно, Nero сообщит об этом.
Рис. 15 |
Вот и все. Простейшее представление о создании дисков Video-CD вы получили. Доброго пути!
С автором можно связаться по e-mail: grigor-m@yandex.ru.
1Уточним, о каком поле идет речь. 576-строчный телевизионный кадр делится на два поля по 288 строк каждое. Первое состоит из нечетных, а второе — из четных строк. Телевизор показывает сначала первое, а затем второе поле каждого кадра. При записи изображения, имеющего вдвое меньше строк, чем в телесигнале, одно из полей не используется.
Варианты кодирования MPEG-1
Вари-ант | Отношение разрешений Сb/Y и Сr/Y по горизонтали | Отношение разрешений Сb/Y и Сr/Y по вертикали |
4:4:4 | 1:1 | 1:1 |
4:2:2 | 1:2 | 1:1 |
4:2:0 | 1:2 | 1:2 |
4:1:1 | 1:4 | 1:1 |
4:1:0 | 1:4 | 1:4 |