Журнал ТЗ № 4 2008 | MPEG-4 vs H.264
  бюро находок  
  Где искать        
наши издания
наши анонсы






2008
№ 4
статьи



Журнал ТЗ № 4 2008



Раздел: Детали
Тема: CCTV (системы видеонаблюдения)
Автор: Вадим ГРИБУНИН, кандидат технических наук

MPEG-4 vs H.264

Конечно же, противопоставлять MPEG-4 и H.264 некорректно, так как Н.264 и MPEG-4 (часть 10) – это одно и то же. Однако так оказалось удобнее написать основную часть материала статьи, понимая под MPEG-4 только MPEG-4 (часть 2).

Структура MPEG-4 и немного истории
Алгоритмы кодирования видео играют важную роль в современном мире. Они применяются для цифрового пред-ставления, сжатия, хранения, передачи и обработки видео-информации в самых различных системах. Большинство из этих алгоритмов последнего времени связано с деятельно-стью двух организаций: MPEG (Motion Picture Experts Group), работающей под эгидой Международной организа-ции по стандартизации (ИСО), и VCEG (Video Coding Ex-perts Group), работающей в составе Международного союза по электросвязи (МСЭ). Первая группа выпускает стандар-ты MPEGxx (-1, -2, -4, -7, -21), вторая – создает рекоменда-ции МСЭ Нхх (.261, .263, .263+, .263++, .264). В настоящей статье речь пойдет о последних разработках этих групп в области кодирования видео – стандарте MPEG-4 (часть 2) и рекомендации Н.264. Последняя рекомендация одновре-менно является стандартом MPEG-4 (часть 10), а также ISO/IEC 14496-10. Такое объединение двух стандартов ста-ло возможным в результате совместной работы групп MPEG и VCEG в рамках проекта Joint Video Team.
В таблице 1 показана предыстория создания этих стан-дартов.
Таблица 1 – Рекомендации МСЭ и стандарты MPEG

Надо отметить, что ядро стандарта MPEG-4 (ч. 2) было основано на рекомендации H.263.
Итак, самый последний стандарт в области кодирова-ния видео можно называть MPEG-4 (часть 10), либо ISO/IEC 14496-10, либо Н.264/AVC. Аббревиатура AVC здесь означает Advanced Video Coding.
Приведем содержание остальных частей стандарта MPEG-4:
Ч. 1 – Описание системы: сцены, объединения аудио, видео и служебной информации, синхронизации, управле-ния буфером, управления правами на интеллектуальную собственность.
Ч. 3 – Кодирование аудио.
Ч. 4 – Конформное тестирование: условия, процедуры, битовые потоки.
Ч. 5 – Общедоступное программное обеспечение, эта-лонно реализующее требования стандарта.
Ч. 6 – Протоколы распространения мультимедиа ин-формации.
Ч. 7 – оптимизированное программное обеспечение ко-дирования видео (технический отчет, а не стандарт).
Ч. 8 – Специфицирует механизмы передачи потока MPEG-4 через IP-сети .
Ч. 9 – Описание реализации MPEG-4 на языке VHDL (технический отчет, а не стандарт).
Ч. 11 – Механизм описания сцены.
Ч. 12 – Формат мультимедийного файла ИСО.
Ч. 13 – Дополнения в отношении управлениями права-ми на интеллектуальную собственность.
Ч. 14 – Формат файла MPEG-4 (ч. 2).
Ч. 15 – Формат файла MPEG-4 (ч. 10).
Ч. 16 – Дополнения по кодированию анимации.
При дальнейшем изложении с целью уменьшения пу-таницы мы будем называть стандарт MPEG-4 (ч. 2) стандар-том MPEG-4, а стандарт MPEG-4 (ч.10) – стандартом Н.264.

Как прагматизм победил романтизм
Посмотрев таблицу 1, мы увидим, что популярный и сегодня стандарт кодирования видео MPEG-2 (например, он применяется в DVD) был разработан еще в 1996 г. Зачем же было разрабатывать стандарт MPEG-4? О, для этого были великие причины…
Во-первых, зачем ограничивать себя кодированием ка-ких-то там прямоугольных изображений? Даешь изображе-ние произвольной формы! А вдруг нам понадобится коди-ровать не только естественные, но и синтетические изобра-жения, а также гибриды первых и вторых? Ведь виртуаль-ная реальность уже не за горами! А как нам не позаботиться об астрономах и других потребителях, коим 8 бит на ком-поненту цвета ничто? Да и вообще, что это за отсталая идея – относиться к видео как к последовательности прямо-угольных статических изображений? Даешь объектный подход! Будем кодировать взаимодействующие объекты, трехмерные поверхности. Суперпупер аппарат (вейвлеты) не подходит для кодирования видео? Что ж, применим их для кодирования неподвижных изображений. Ну и пусть, что MPEG-4 для видео: вейвлеты ведь.
Наверное, так примерно рассуждали энтузиасты – соз-датели MPEG-4 и разработали действительно революцион-ный стандарт. Правда, вот технические подробности деко-дирования увеличились с 17 страниц у Н.261 до 539 страниц у MPEG-4, притом что изложение здесь далеко не столь подробное. А ведь принципы кодирования видео не меня-ются на протяжении многих лет, только лишь уточняются и уточняются. Правда, профилей разработчика оказалось аж 19 (по сути, надо разрабатывать 19 алгоритмов декодирова-ния).
Но главная относительная неудача стандарта оказалась в том, что его творцы не учитывали потребности рынка. Не так уж много приложений, где требуется кодирование объ-ектов произвольной формы, высокой разрядности цвета, не-стандартной его дискретизации и прочей экзотики. Зато пользователи любят делать цифровые видеоклипы, пересы-лать их по сети, пользоваться услугами цифрового телеви-дения и сервисами видео-по-запросу. Конечно, и для этих приложений MPEG-4 был эффективнее своего предшест-венника, но тут добавились еще проблемы с лицензионной чистотой решений.
В общем, через два года после принятия MPEG-4 мпе-говцы объединились с VCEG и создали новый стандарт – Н.264. Во главу угла данного стандарта поставлена лицен-зионная чистота решений и максимальная эффективность за счет отказа от всякой вышеупомянутой экзотики.

Основные характеристики Н.264
Предполагаемые области применения стандарта Н.264 следующие:
– вещание (кабель, кабельный модем, спутник, DSL, TB);
– хранение на различных носителях (DVD, магнитные диски);
– видеоконференцсвязь (ISDN, Ethernet, LAN, DSL, ра-диосети, мобильные сети, модемы);
– сервисы типа видео по запросу;
– сервисы MMS (DSL, ISDN).
Под эффективностью алгоритма в стандарте Н.264 по-нимается высокая степень сжатия видео при допустимом качестве и робастность битового потока к ошибкам/потерям передачи. Аскетизм Н.264 в отличие MPEG-4 проявляется в том, что здесь предусмотрено всего три профиля:
Baseline – для видеоконференцсвязи;
Extended – для потоковой передачи видео по сети;
Main – для хранения и вещания видео.
Надо отметить, что профиль Extended полностью по-крывает профиль Baseline, тогда как профиль Main находит-ся несколько в стороне.
В стандарте Н.264 реализованы такие основные новые технические решения, как:
1) Для улучшения предсказания:
– компенсация движения на основе малых блоков адап-тивно настраиваемого размера;
– точность компенсации движения до ¼ отсчета;
– компенсация движения на основе одного или более опорных кадров;
– независимость порядка отображения кадров от по-рядка следования опорных кадров;
– возможность использования любого кадра в качестве опорного;
– предсказание с использованием весовых множителей;
– непосредственное пространственное предсказание на основе внутрикадрового кодирования;
– циклическая фильтрация для ликвидации эффекта блочности.
2) Другие решения, повышающие эффективность ко-дирования:
– преобразование блоков малых размеров (4 х 4);
– иерархическое блочное преобразование;
– целочисленные быстрые алгоритмы преобразования; – арифметическое кодирование;
– контекстно-адаптивное энтропийное кодирование.
3) Для повышения помехоустойчивости и гибкости пе-редачи по различным средам:
– новая структура множества параметров;
– синтаксическая структура NAL, позволяющая абстра-гировать сетевые служебные данные от служебных данных кодирования;
– гибко настраиваемый размер слайса;
– произвольный порядок следования слайсов;
– введение в поток повторяющихся слайсов;
– упорядочение данных;
– переключение потоков на основе использования SI/SP синхронизации.
Как и в предшествующих стандартах кодирования ви-део, в Н.264 определены три вещи:
1) синтаксис битового потока представления видео;
2) семантика этого потока;
2) метод декодирования для реконструкции видео.
То есть в стандарте определены лишь выходные после-довательности, но не принципы построения кодера видео-сигнала. Это позволяет производителям соревноваться в создании наилучшего кодера.
Схема кодирования видео в соответствии со стандар-том Н.264, в общем, повторяет схемы кодирования предше-ствующих стандартов. Разницей является разве что наличие на последнем этапе обработки с целью удаления блочности. Алгоритм кодирования (он явно не описан в стандарте) со-стоит из четырех основных компонентов:
– компенсация движения и вычитания текущего кадра из опорного;
– дискретное косинусное преобразование (ДКП) разно-стного кадра;
– квантование коэффициентов преобразования;
– энтропийное кодирование квантованных коэффици-ентов.
Рассмотрим эти компоненты подробнее.

Компенсация движения
Высокая эффективность Н.264 обусловлена улучше-ниями каждого из компонентов. От эффективной компенса-ции движения зависит энергия разностного кадра. Чем точ-нее скомпенсировано это движение, тем меньше энергии, а значит, выше будет коэффициент сжатия. Можно было бы вычислять вектора движения для каждого пиксела, но это сложно, поэтому их вычисляют для прямоугольных блоков. Выгода здесь в том, что изображение также прямоугольно, можно в дальнейшем применить преобразование, например, ДКП. Минусы очевидны: границы объектов обычно не ле-жат на прямоугольнике, движение также, как правило, не бывает горизонтальным или вертикальным. Тем не менее в настоящее время это единственный метод.
С увеличением размера блока увеличивается вычисли-тельная эффективность и уменьшается объем бит, отводи-мый на кодирование векторов движения. Однако одновре-менно ухудшается точность компенсации, а, следовательно, и увеличивается энергия разностного изображения. Таким образом, налицо необходимость оптимизации, и в Н.264 реализован адаптивный выбор размера блока от 4 х 4 до 16 х 16 пиксела, а точность указания вектора доведена до ¼ пиксела (за счет предварительной интерполяции). Если уж кадры совсем не похожи друг на друга, то компенсация движения не используется, а применяется внутрикадровое кодирование.

Преобразование разностного кадра и квантова-ние
Как известно, для преобразования изображения в спек-тральную область могут использоваться различные ортого-нальные преобразования. Целью преобразования является перераспределение энергии изображения: большая ее часть оказывается сосредоточенной в малом числе коэффициен-тов. Наиболее эффективным преобразованием в этом смыс-ле из числа быстрых считается вейвлет-преобразование. Именно его применяют в MPEG-4 для кодирования непод-вижных изображений. Однако вейвлет-преобразование тре-бует больше памяти (надо запомнить весь кадр) и плохо стыкуется с блочной компенсацией движения, поэтому для кодирования видео не применяется.
В MPEG-4 так же, как и в MPEG-2 (а также и в JPEG), применяется ДКП с основным размером блока 8 х 8. В Н.264 используется целочисленное ортогональное преобра-зование над блоками размером 4 х 4, которое аппроксими-рует ДКП. В результате ядро преобразования использует только сложение, вычитание и сдвиги. При последующем масштабировании необходимо для каждого пиксела одно умножение на коэффициент, но эта операция может быть отнесена к дальнейшему квантованию. Вся арифметика вы-числений 16-разрядная, т. е. может быть выполнена на де-шевом микроконтроллере.
Целью квантования является приведение множества значений коэффициентов к небольшому количеству различ-ных значений. Обычно это достигается за счет деления с округлением результата. Однако коэффициенты квантова-ния в Н.264 выбраны так, чтобы избежать вычислительно-сложных делений (вместо этого выполняется умножение с накоплением и сдвиг вправо).
После осуществления квантования коэффициенты пе-реупорядочиваются. В MPEG-4 это либо зигзагообразное сканирование для блоков 8 х 8, либо использование струк-туры нульдерева для вейвлет-коэффициентов. В Н.264 вы-полняется зигзагообразное сканирование для блоков 4 х 4.

Энтропийное кодирование и формирование потока бит
Цель энтропийного кодирования заключается в обозна-чении более коротким кодом более часто встречающуюся последовательность символов (бит). В MPEG-4 для этого выполняется вначале кодирование длин серий (RLE), а за-тем применяется кодирование с переменной скоростью по заранее вычисленным таблицам Хаффмана. Надо отметить, что кодер Хаффмана чувствителен к ошибкам в канале пе-редачи. Кроме того, необходимо, чтобы кодер/декодер рас-полагали одинаковыми таблицами.
В Н.264 в зависимости от профиля применяются либо экспоненциальные коды Голомба, либо контекстно-зависимый арифметический кодер. Преимуществом ариф-метического кодера является более высокая степень сжатия, так как символ может кодироваться дробным числом бит, тогда как кодер Хаффмана может кодировать только целым числом бит.
В качестве транспорта может быть использован MPEG-2, часть 1 которого определяет порядок объединения видео, звука и служебных данных в единый поток. Другим реше-нием является использование протокола реального времени (RTP). NAL-структура потока H.264 как нельзя лучше под-ходит для пакетной передачи в соответствии с этим прото-колом. Еще один вариант – использовать стандарт MPEG-4 часть 6.

Что же лучше?
С момента появления Н.264 проводились многочислен-ные сравнения этого стандарта и MPEG-4. Результаты, как правило, показывали выигрыш в 1–3 дБ стандарта Н.264 в широком диапазоне скоростей кодирования. Визуально ви-део в стандарте Н.264 также выглядит лучше (во многом благодаря использованию деблочного фильтра). Вот типич-ный результат:


Справедливости ради отметим, что для высокотекстурированных изображений большой разницы не наблюдается. Сравнение различных кодеков Н.264 меж-ду собой вы можете посмотреть на сайте [1]. Во многих тес-тах разница по эффективности кодирования между отдель-ными видеокодеками H.264 достигает двух и более раз.
Так что, будь то MPEG-4 или Н.264 – основная эффек-тивность кодеков основана на нюансах реализации. А этих тонкостей столько, что вы не почерпнете их даже из 700-страничной книги [2], с которой я все равно рекомендую вам ознакомиться.



Литература http://compression.ru/video/codec_comparison/ L.Hanzo, P.Cherriman, J.Streit. Video compression and communications. Second Edition. Wiley, 2007. 704 p.

Внимание! Копирование материалов, размещенных на данном сайте допускается только со ссылкой на ресурс http://www.tzmagazine.ru

Рады сообщить нашим читателям, что теперь нашем сайте работает модуль обратной связи. Нам важна ваша оценка наших публикаций! Также вы можете задавать свои вопросы.Наши авторы обязательно ответят на них.
Ждем ваших оценок, вопросов и комментариев!

Комментарии:
Добавить комментарий или задать вопрос

Правила комментирования статей

Версия для печати

Средняя оценка этой статьи: 2.82  (голосов: 11)
Ваша оценка:

назад
|
Реклама
Подписка на новости
Имя
E-mail
Анти-спам код
Copyright © 2008 —2022 «Технологии защиты».