MPEG4 в вопросах и ответах
Фильмы, записанные в формате MPEG-4, уже успели завоевать заслуженную популярность среди широкой аудитории пользователей ПК. Такие фильмы обычно умещаются на одном компакт-диске, а по качеству изображения могут успешно конкурировать с видеокассетами. Не последним фактором, определяющим популярность MPEG-4 дисков, является их цена - 60-70 р. против 400-600 р. за DVD. Поэтому промежуточным этапом на пути массового перехода домашних пользователей с аналоговых VHS-видеомагнитофонов на цифровой стандарт DVD вполне мог бы стать именно MPEG-4. В русскоязычной части Internet можно найти много материалов, посвященных стандарту MPEG-4, однако большая их часть содержит описание тонкостей процесса компрессии видео в этот формат. Это, безусловно, специфический и требующий подробного исследования вопрос, но для пользователей, выступающих только в роли зрителей, подобные статьи зачастую не могут дать ответ на вопросы, возникающие при желании посмотреть фильмы. Другой крупный источник информации - это конференции. В разделах "Процессоры", "Видео", "Мультимедиа" постоянно поднимаются темы, связанные с быстродействием, качеством, оптимальной конфигурацией и всем тем, что касается MPEG-4, но поступающие ответы зачастую противоречат друг другу. Кто-то заявляет, что всю жизнь смотрел без тормозов MPEG-4 на Pentium 200, другие жалуются на слайд-шоу, имея при этом компьютер с процессором Pentium III. В настоящей статье предпринята попытка разъяснить вопросы, наиболее часто возникающие у людей, недавно столкнувшихся с этим форматом, а также привлечь к нему внимание тех, кто никогда раньше не сталкивался с MPEG-4. Надеюсь, после прочтения данного материала читатель, не занимающийся редактированием и компрессией видео, сможет уверенно сказать: "Теперь я знаю об этом достаточно". Что это такое MPEG?MPEG - аббревиатура, расшифровывающаяся как Moving Picture Experts Group (прежде чем писать письмо, что первая буква расшифровывается не так - сходите на http://www.mpeg.org).Это достаточно большая организация, состоящая из разработчиков аудио, видео и компьютерной техники, а также программистов и специалистов, занимающихся разработкой и внедрением стандартов на алгоритмы компрессии, передачи, хранения и воспроизведения аудио- и видео данных. Среди разработок этой группы в области цифровой видеозаписи наиболее известными являются:
В чём отличие MPEG-4 от MPEG-1 и MPEG-2?Стандарт MPEG-4 задает принципы работы с контентом (цифровым представлением медиа-данных) для трех областей: собственно интерактивного мультимедиа (включая продукты, распространяемые на оптических дисках и через Сеть), графических приложений (синтетического контента) и цифрового телевидения - DTV; фактически данный формат задает правила организации среды, причем среды объектно ориентированной. Он имеет дело не просто с потоками и массивами медиа-данных, а с медиа-объектами (ключевое понятие стандарта). В MPEG-4 определен двоичный язык описания объектов, классов и сцен - BIFS, который разработчики характеризуют как "расширение Си++".Стандарт MPEG-4 представляет пользователям гибкие средства работы с мультимедийным контентом. Помимо работы с аудио и видео, формат позволяет работать с естественными и синтезированными компьютером 2D и 3D объектами, производить привязку их взаимного расположения и синхронизацию друг относительно друга, а также указывать их интерактивное взаимодействие с пользователем. Кроме того, формат обеспечивает доступ к мультимедийной информации через каналы различной пропускной способности. Алгоритм компрессии видео в MPEG-4 работает по той же схеме, что и в предыдущих форматах. При кодировании исходного изображения кодек ищет и сохраняет ключевые кадры, на которых происходит смена сюжета. А вместо сохранения промежуточных кадров прогнозирует и сохраняет лишь информацию об изменениях в текущем кадре по отношению к предыдущему. Полученная таким образом информация сжимается по алгоритмам компрессии, аналогичным тем, что применяются в архиваторах. Компрессия звука чаще всего производится в формат MP3 или WMA. Однако возможно использование любого кодека, вплоть до применяемого в DVD шестиканального AC-3 потока (единственное требование - чтобы данный аудиокодек был установлен в системе). Кардинальное нововведение при компрессии видео в MPEG-4 заключается в следующем. В отличие от предыдущих форматов, которые делили изображение на прямоугольники, при обработке изображений кодек оперирует объектами с произвольной формой. К примеру, человек, двигающийся по комнате, будет воспринят как отдельный объект, перемещающийся относительно неподвижного объекта - заднего плана. Естественно, алгоритмы поиска и обработки подобных объектов требуют гораздо больше вычислительных ресурсов, нежели в случае MPEG-1/2. Но с учетом быстродействия современных компьютеров последнее обстоятельство нельзя рассматривать сегодня как крупное препятствие на пути широкого распространения формата MPEG4. Для сравнения - во времена выхода MPEG-2, в 1995 году, частота процессора новых PC составляла около 100 МГц. Сегодня эта цифра возросла в десять раз! Для нас как конечных пользователей наибольший интерес представляет именно хранение и воспроизведение видео на компьютере. Этот формат вполне можно назвать дешевой и как следствие более доступной альтернативой DVD в области развлечений. Более подробно о стандарте MPEG-4 можно прочитать на русском языке здесь (http://mpeg.boom.ru/divx.htm). От чего зависит качество MPEG-4 фильмов?Качество фильмов в формате MPEG-4 зависит от многих факторов, их можно условно разделить на три группы.
Оверлей: что это такое?Видеопоток в Windows может воспроизводиться через специальный режим DirectDraw, называемый Overlay (оверлей), при этом видеоинформация выводится не в видеобуфер, а в отдельную область локальной памяти видеоплаты, где она дополнительно обрабатывается аппаратными средствами самой видеоплаты (преобразование цветового пространства YUV в RGB, аппаратное масштабирование и фильтрация). Размер кадра оверлея и глубина его цвета не зависят от десктопа. После обработки буфер оверлея может выводиться на десктоп или по отдельному каналу, например, через видеовыход на телевизор, причем многие видеоплаты позволяют производить над содержимым этого буфера гамма-коррекцию, регулировать яркость, контрастность и т.д. независимо от десктопа. На десктоп оверлей выводится по технологии "хромакей". Windows рисует окно, где должен отображаться оверлей, и заполняет его "ключевым цветом"; видеоконтроллер, встречая этот цвет, при выводе на DAC (цифро-аналоговый преобразователь) замещает его данными из буфера оверлея, предварительно производя масштабирование изображения до размера окна или на весь экран. Проверить, работает или нет режим оверлея при воспроизведении видео, очень просто: достаточно попытаться сделать скриншот экрана - если на месте видеоизображения появится черный прямоугольник, значит, видео выводится через оверлей.Что такое DivX и для чего он нужен?DivX (http://divx.ctw.cc) - кодек, производящий компрессию/декомпрессию изображения, сжатого в стандарте MPEG-4. В стремлении вытеснить с рынка потокового видео конкурентов (к примеру Apple c его QuickTime) в Microsoft занялись разработкой кодека, позволяющего компрессировать видеопоток в формат MPEG-4. На одном из этапов отладки нового продукта в "массы" была выпущена бета-версия этого кодека, которая после небольших доработок группой хакеров была переименована в DivX-кодек. По "политическим" мотивам Microsoft позже свернула разработки в этом направлении, выпустив только модуль для воспроизведения уже закодированного видео.При установке DivX производит регистрацию в системе, для того чтобы
к нему могли обращаться программы более высокого уровня - плееры. Fast
и Low Motion - это модификации кодеков для быстро и медленно меняющихся
сцен.
Рисунок 1. Панель управления: видеокодеки Какой софт нужен для просмотра фильмов в формате MPEG-4?В заголовке MPEG-4 видеофайла есть информация о том, каким кодеком он закодирован. Вариантов обычно два: либо это стандартный Microsoft MPEG-4, либо DivX. Существует утилита, позволяющая переправлять заголовок файла и таким образом обманывать программу-плеер (http://rising.nm.ru/ru/divx/index.htm).Для формата DivX необходимо использовать DivX (http://www.divx-digest.net/software/encode/DivX_311alpha.zip) кодек. Во избежание проблем со звуком и изображением желательно также установить DireсtX не ниже 7-й версии и DXMedia 6.0. Обычно на компакт-дисках с фильмами в формате MPEG-4 есть установка кодека DivX и программы плеера. Для просмотра подойдёт Windows Media Player 6.4.
Рисунок 2. Windows Media Player 6.4 WMP7.1
- новейшая официальная версия универсального проигрывателя от Microsoft.
Рисунок 3. Windows Media Player 7.1 Нужно заметить, что качество и скорость изображения зависят в основном от кодека - плеер является только надстройкой. (Однако некоторые плееры от энтузиастов гораздо бережнее обращаются с памятью и не раздражают постоянно трещащим от свопинга винчестером, как это любят делать оптимизированные для низкого битрейта "поделки" от M$. Кроме того, сторонние плееры имеют множество настроек - от достаточно банального, но легкодоступного ползунка качества DivX до включения оверлея и выбора режима многоканального звука - прим. ред.) Чем, кроме плееров от Microsoft можно смотреть MPEG-4?Существует много альтернативных проигрывателей видео в MPEG-4, принципиальных различий между ними нет, так как все они используют один и тот же кодек, но есть реально необходимые настройки, которые отсутствуют в стандартных проигрывателях.BSPlayer (http://bsplayer.cjb.net).
Рисунок 4. BSPlayer в стандартном оформлении и со скином DVD
Sasami2k (http://sasami2k.kiwidream.com/index2.html).
Рисунок 5. Sasami2k
Сразу после установки, все пункты меню в данном плеере выводятся на корейском языке. Для того чтобы изменить язык, используемый по умолчанию, на английский, необходимо найти в каталоге с установленным плеером файл sasami2000.enu и переименовать его в sasami2000.rus PlayA (http://www.projectmayo.com/projects/subproject.php?projectID=2&subprojectID=3)
Рисунок 6. PlayA Рисунок 7. Загрузка процессора при использовании для просмотра различных плееров Можно ли смотреть MPEG-4 видео в ОС, отличных от Windows?Конечно, можно. К примеру, если сходить по последней ссылке (см. чуть выше), то можно найти плееры для Linux и BeOS. Нетрудно устроить поиск или выйти на сайты поддержки вашей ОС, для того чтобы найти соответствующие им плееры.Как можно измерить быстродействие кодека DivX на моем компьютере?К сожалению, измерить максимально достижимый fps (кадры/cек) так, как это делается, например в Quake, нельзя. Раздел Статистика в плеерах выдает только текущее число кадров в секунду, которое не может превышать то значение (обычно 24-25), с которым записан MPEG-4 файл. Если для декомпрессии видеопотока не хватает вычислительных ресурсов процессора, то кодеку приходится пропускать некоторые кадры, для того чтобы не потерять синхронизацию видео и звука, при этом начинается подергивание изображения, и, следовательно, падает мгновенное значение fps. Для оценки быстродействия кодека мгновенное значение fps непригодно, так как в случае нехватки вычислительной мощности компьютера оно постоянно изменяется в зависимости от движения объектов в кадре, а при достаточном быстродействии компьютера остается постоянным в пределах номинального (24-25 кадров/сек.).Косвенной оценкой быстродействия того или иного плеера на различных конфигурациях компьютеров может являться значение загрузки процессора при воспроизведении видео. Если загрузка процессора меньше 100%, скорее всего кодеку хватает вычислительных ресурсов для полного разжатия видеопотока. Если значение загрузки процессора вплотную приближается к 100%, то кодеку, по-видимому, приходится пропускать некоторые кадры, чтобы успеть за звуковым сопровождением фильма. Все тесты, приведенные в этой статье (за исключением тех случаев, где указывается на применение других конфигураций), я проводил на следующем компьютере:
Средний процент использования процессора во всех тестах определялся
за промежуток времени, равный 1 мин. 40 с, при воспроизведении начинающегося
на 106-ой минуте фрагмента фильма "Матрица" (сцена с падающим вертолетом).
Параметры сжатия используемого фильма: разрешение 680*312, битрейт 80,595
Kbit/s, продолжительность 130 мин. 59,240 с. Размер файла - 648 620 032
байта. Причем там, где явно не сказано об обратном, качество изображения
в свойствах кодека DivX выставлялось на 2 и не использовался режим оверлея.
Рисунок 8. Системный монитор Что можно сделать, если MPEG-4 "тормозит"?Заикающийся звук, резкое подергивание картинки на динамичных сценах, "выпадение кадров" - верные признаки того, что вашей системе не хватает мощности для нормальной декомпрессии видеопотока. Кстати, статистику работы видеокодека при просмотре фильма можно выяснить в разделе меню Вид/Статистика универсального проигрывателя. Перечисленные выше явления могут возникать не только на откровенно слабых машинах, но и на достаточно мощных компьютерах при неоптимальной настройке. В этом случае начать проверку системы нужно с установок в BIOS SETUP. Особое внимание следует уделить настройке подсистемы памяти, так как именно ее задача - успеть пропустить весь разжатый кодеком поток данных между процессором и видеокартой. Кодек MPEG-4 исполняется почти полностью на программном уровне, поэтому разгон процессора может дать существенный прирост по производительности. Ниже приведены результаты оптимизации настроек BIOS Setup моего компьютера.Рисунок 9. Изменение загрузки процессора в зависимости от настроек BIOS Рисунок 10. Загрузки CPU в зависимости от используемого накопителя Рисунок 11. Загрузка процессора в зависимости от настройки видеокарты Как уже говорилось, масштабирование изображения и преобразования формата цветов из YUV в RGV может и должно (для разгрузки процессора) производиться на аппаратном уровне силами видеокарты. Аппаратное масштабирование поддерживают практически все видеоадаптеры последних двух-трех лет выпуска, однако некоторые видеопроцессоры, например от MATROX и NVIDIA TNT/TNT2, не всегда запускают оверлеи, если разрешение исходной картинки для масштабирования не кратно по горизонтали 16 или 32. Оверлей также может не работать при неправильной настройке драйверов видеокарты или же просто потому, что программа-плеер не умеет выводить видео в этом режиме. Мне так и не удалось включить оверлей при просмотре "Матрицы" (разрешение 680*312) на видеокарте TNT2PRO во всех плеерах кроме Sisami2k. При просмотре других фильмов (с разрешением по горизонтали, кратным 32) включение режима оверлея снижало загрузку процессора (Duron 700) в среднем на 10-15%. Если все предыдущие рекомендации существенно не помогли, остается только жертвовать качеством декомпрессии в обмен на плавность. При открытом файле MPEG-4 в WMP 6.4, в меню Файл > Свойства > Дополнительно, выберите свойства MPEG-4 DVD Video decompressor и подберите оптимальный уровень CPU Quality. Уменьшение этого показателя высвободит дополнительные такты процессора, и изображение не будет "затыкаться". При значении 0 будет выключен программный фильтр сглаживания изображения;
уровни от 1 до 4 соответственно повышают степень сглаживания - это ведет
к уменьшению заметности "квадратиков" на изображении.
Рисунок 12. Загрузка процессора при различном уровне фильтрации Можно ли как-то улучшить качество изображения при просмотре видео?Если для просмотра MPEG-4 фильмов вы используете проигрыватель WMP 6.4 из состава OS Windows, то, запустив его в меню Файл>Свойства>Дополнительно, выберите свойства MPEG-4 DVD Video decompressor: в этом разделе ползунок CPU Quality можно перемещать от 0 до 4 начиная с единицы. При значении CPU Quality "четыре" достигается наилучшее качество изображения, однако при этом сильно возрастает объем вычислений, необходимых для просчета каждого кадра. В этом разделе также можно подстроить уровень яркости, контрастности, насыщенности и баланса цветов.Рисунок 13. CPU Quality 0
Существуют ли для PC видеокарты с аппаратным ускорителем MPEG-4?На сегодня таких видеокарт нет в природе и причин тому несколько.Экономические. MPEG-4 - это обширный стандарт, описывающий работу с мультимедиа. Использование кодеков из его состава для сжатия и хранения фильмов на CD в качестве дешевой альтернативы DVD является лишь одним из его применений. При этом в видеоформате MPEG-4 (так, как он реализован сегодня) и накопителях на CD полностью отсутствует какая бы то ни было аппаратно-программная защита от несанкционированного копирования, так что пиратское тиражирование CD (в частности CD MPEG-4) осуществить гораздо проще, нежели DVD. Поэтому вряд ли стоит ожидать согласия со стороны крупнейших производителей видеопродукции на разработку подобного вида устройств именно как альтернативы DVD. Технические. Стандарт MPEG-4 на сегодня является достаточно сырым, его постоянно дополняют, изменяют и исправляют. Кроме того, декомпрессия видео в этом стандарте осуществляется по весьма сложным алгоритмам, для достижения качественного результата работы которых требуются значительные вычислительные ресурсы. Какое железо нужно для нормального просмотра MPEG-4 фильмов?На упаковке CD c записанными в этом формате фильмами в графе системные требования обычно пишут: компьютер не ниже PII-400. Но это далеко не однозначная оценка. Быстродействие программного декодера напрямую зависит от параметров сжатия конкретного фильма, главным образом от битрейта и размера кадра. Фильмы с разрешением 352*288 длительностью в один час вполне прилично смотрятся на Pentium 200MMX, в то время как при разрешении 720*576 фильм длительностью в два часа превращает просмотр в "слайд-шоу" на Pentium II 400 (предполагается, что в обоих случаях фильм занимает один CD). Чтобы узнать основные параметры сжатого видеофайла, нужно в проводнике щелкнуть по нему правой кнопкой мыши и выбрать пункт Свойства, после чего открыть закладку Сведения.Итак, рассмотрим по порядку компоненты компьютера, от которых зависит плавность и качество воспроизведения MPEG-4 видео. Процессор. Быстродействие практически всех старых socket 7 систем
является недостаточным для качественного воспроизведения большинства фильмов,
записанных со сравнительно высокими разрешениями. К примеру, фильм "Матрица",
сжатый с параметрами 680 x 312, 24 бит, 196481 кадров, 25,000 кадров/с,
80 кБ/с, длительностью 131 минута, мне так и не удалось нормально посмотреть
на компьютере с процессором K6-2+ 500 даже с установкой нулевого качества
изображения. А ведь это самый быстрый представитель socket 7 процессоров
из когда-либо выпускавшихся! Положение не спасает даже интегрированный
в его ядре кэш второго уровня объемом 128Kb (как у процессора более позднего
поколения - Celeron). Что уж говорить о процессорах без такого кэша, да
еще и работающих на меньших частотах. Узким местом Socket 7 систем является
даже не процессор, а пропускная способность шины данных между памятью и
процессором. Не хватает производительности и у представителей следующего
поколения процессоров - Celeron и первых моделей Pentium II с частотой
FSB всего 66 МГц. Для нормального просмотра подобных фильмов желательно
иметь процессор с частотой не ниже 600-700 МГц и - самое главное - со 100-,
а лучше 133-мегагерцовой системной шиной.
Рисунок 15. Загрузка ЦП в зависимости от процессора Видеокарта. Видеокарты последних лет выпуска обладают примерно
одинаковым набором функций для вывода двухмерного изображения и уровнем
производительности в 2D режимах, вполне достаточным для воспроизведения
MPEG-4 фильмов. Единственное, на что нужно обратить внимание, это на используемую
видеокартой шину. AGP несколько повышает общую производительность в 2D
по сравнению с PCI, связано это главным образом с более высокой скоростью
доступа к локальной памяти видеокарты через шину PCI. Аппаратно ускорять
MPEG-4 не умеет ни один из выпускающихся сегодня видеоконтроллеров, поэтому
видеокарты отличаются друг от друга в основном уровнем качества видеосигнала,
выдаваемого на монитор (выражается, к примеру, в "замыливании" изображения),
и некоторыми различиями в алгоритмах масштабирования и преобразования изображения.
Рисунок 16. Загрузка процессора при различных видеокартах Звуковая плата. Использование старой звуковой платы ISA или программного
звука, интегрированного на системной плате, не способствует повышению производительности
компьютера. Лучше использовать полноценную звуковую плату PCI. Что интересно
- программный вывод звука через контроллер, встроенный в южный мост 686B
чипсета VIA на процессоре Duron 700, и далее через AC'97 кодек занимает
даже меньше ресурсов, чем при выводе через старую звуковую плату ISA.
Рисунок 17. Загрузка процессора в зависимости от типа звуковой карты Как лучше смотреть фильмы - на телевизоре или на мониторе?На этот вопрос трудно ответить однозначно. С одной стороны, у компьютерного кинескопа гораздо меньше размер зерна люминофора, за счет чего достигается заметно более высокая четкость изображения, но, с другой стороны, обычно по размеру диагонали экрана мониторы сильно проигрывают телевизорам. А чем больше размер экрана, тем дальше располагается зритель от последнего - в результате повышенная зернистость изображения становится незаметной для человеческого глаза. Исходя из этих соображений, можно посоветовать следующее: если вы являетесь обладателем 17-дюймового монитора и 21-дюймового телевизора, то предпочтительнее все-таки смотреть фильмы на компьютерном мониторе. В случае если ваш телевизор 25 и более дюймов, то лучше использовать для просмотра фильмов телевизор. Естественно, подключить телевизор к компьютеру можно только в том случае, если ваша видеокарта обладает TV выходом. Можно установить вторую PCI видеокарту с TV-OUT, но в этом случае не исключены трудности с софтом, откровенная кривизна которого может свести на нет все преимущества телевизионного просмотра.Способы подключения к телевизору, выбор стандарта изображения, сравнение качества видеовыходов различных видеокарт и решения возникающих при этом проблем - это тема для отдельной статьи. Качество изображения на экране телевизора зависит также от соединительного кабеля. И напоследок о самом важном. Возможно, вам приходилось замечать при подключении антенного штекера к работающему телевизору проскакивающую между соединяемыми разъемами искру. Так вот, такая искра практически гарантированно выведет из строя микросхему, отвечающую за TV-OUT. Поэтому перед коммутацией соединительных кабелей не пренебрегайте инструкциями и вынимайте из розетки питающие вилки компьютера и телевизора! Где еще можно почитать о MPEG-4?Мне встречались следующие интересные ресурсы, из которых можно почерпнуть достаточно много полезной информации:
Сергей Коряков (ksv@shakht.donpac.ru)
Опубликовано - 18 июня 2001 года |