Алгоритмы MPEG4 и JPEG2000 — какой лучше?


PDF версия

В статье рассматриваются две наиболее популярные технологии сжатия видеоданных — MPEG-4 Part 10 и JPEG2000, их сильные и слабые стороны, а также возможности их применения в различных приложениях. Публикация представляет собой перевод [1].

Введение

В прошлые годы видеозапись и ее распространение стали достаточно простым делом благодаря появлению новых стандартов видеосжатия и распаковки (восстановления) данных. Аналоговые видеоприложения традиционно требовали больших инвестиций в инфраструктуру, чтобы обеспечить необходимый функционал для записи и распространения даже при очень малом количестве каналов и использовании видеостандарта старшего поколения PAL/NTSC.
С появлением видеостандарта HD (High Definition) намного более высокие скорости передачи данных, записываемых и передаваемых в цифровом виде, потребовали разработки новых технологий.
Задача разработки новой системы решается и с помощью трансиверов с гигабитными скоростями передачи данных по отдельным каналам (а не за счет усложнения инфраструктуры путем введения дополнительных параллельных каналов), и с помощью аппаратных (или программных) кодеров и декодеров, которые позволяют уменьшить ширину полосы на каждый канал видеоданных и сократить потребность в памяти. В итоге уменьшается время разработки и совокупная стоимость системы.
В этой статье рассматриваются две наиболее популярные технологии — MPEG-4 Part 10 (лицензируемый стандарт сжатия видео Advanced Video Coding (AVC) и ITU-T H.264) и JPEG2000. Оба этих кодека имеют относительные преимущества и недостатки, поэтому, прежде чем сравнивать результаты отдельных тестов, следует сначала проанализировать их возможности, чтобы понять, для каких приложений эти кодеки лучше всего пригодны. При этом мы не будем анализировать аудио- и другие соответствующие метаданные.

Технология кодека

В основе работы любого видеокодека лежит принцип сокращения избыточной (невидимой глазом) информации в изображении, благодаря чему до некоторой степени уменьшается количество данных, используемых для представления изображения. Если данные сжать в еще большей мере, то восстановленное изображение будет содержать артефакты, природа которых зависит от алгоритма сжатия и распаковки, а также содержимого изображения. Артефакты, появившиеся при сжатии данных с помощью одного кодека, могут быть в чем-то более предпочтительными по сравнению со случаем использования другого кодека.
Ограничения на ширину полосы сети являются очень важным предметом анализа. Если используется традиционная сетевая инфраструктура, следует понимать, что она не в состоянии обеспечить достаточное количество каналов для передачи HD-видео даже в случае применения технологии Gigabit Ethernet, что связано с требованиями к памяти. Поскольку для некоторых приложений требуется, чтобы видеоданные хранились в памяти несколько дней, возникает необходимость в больших объемах памяти жестких дисков, что увеличивает стоимость системы. При этом речь идет не столько о цене самого запоминающего устройства, сколько о возможности извлечения носителя с данными, записанными, например, на бортовую видеокамеру военного самолета, для последующего анализа информации в наземном пункте. В
Следует понимать, что все кодеки имеют свои достоинства и недостатки. При выборе конкретного алгоритма разработчик должен учитывать все требования приложения, а также то, что не существует идеально работающих кодеков.

MPEG-4 Part 10

Стандарт видеосжатия MPEG-4 Part 10 (Motion Picture Experts Group — Группа экспертов по видео) появился в 2003 г., т.е. несколько позднее, чем JPEG2000. MPEG-4 предназначен для кодирования и декодирования видеофильмов, а не для выполнения тех же операций над неподвижными изображениями. Применение кодека MPEG-4 сопряжено с потерями, т.к. восстановленные изображения всегда хуже по качеству оригиналов.
Принцип, лежащий в основе кодирования MPEG-4, заключается в работе кодека над группой изображений, которые можно отнести к трем разным типам. Тип “I-кадр” (кадр с внутренним кодированием) представляет собой отдельный сжатый кадр, который находится в начале каждой группы изображений. Два других типа изображений предопределяют изменения (при смене кадров) между всеми I-кадрами. Первым типом кадра со ссылкой на предыдущее изображение является P-кадр (предсказанный кадр), в котором указана разница между текущим и предшествующем кадрами. В B-кадре содержится информация о разности между текущим кадром, предшествующим и последующим кадрами.
В результате сжатия изображения требования к полосе пропускания уменьшаются, т.к. используется только часть информации из каждого кадра “I-frame”. Для уменьшения полосы пропускания канала длина группы изображений увеличивается для каждого конкретного кадра. При этом снижается и качество изображений, т.к. требуется более глубокая степень прогнозирования. Более того, по мере уменьшения числа кадров “I-frame” в видеопотоке он становится менее редактируемым (см. рис. 1).

 

Рис. 1. Пример внутри- и межкадрового кодирования

Степень выраженности этого эффекта зависит от исходного материала. Если изображения от кадра к кадру меняются в очень незначительной мере, например, при воспроизведении заката солнца или больших площадей одного цвета, межкадровые изменения невелики, благодаря чему достигается требуемый коэффициент уплотнения и более точное восстановление изображений. В случае сжатия кадров из кинофильмов, где одна сцена быстро сменяется другой и в кадре присутствуют быстро перемещающиеся объекты, междкадровое предсказание работает плохо. По этой причине стандарт MPEG-4 Part 10 широко используется в видеоконференциях, где за счет малых изменений от кадра к кадру поддерживается очень невысокая скорость передачи потоковых данных.

JPEG2000

JPEG2000 — преемник стандарта JPEG (Joint Photographic Experts Group — объединенная группа экспертов по фотографии), который появился в начале 1990-х гг. для кодирования и хранения неподвижных изображений. Стандарт Motion JPEG2000 работает еще и с движущимися изображениями. В отличие от стандарта MPEG-4, использующего меж- и внутрикадровое кодирование, в JPEG применяется только внутрикадровое кодирование. Это значит, что каждый кадр сжимается отдельно, и кодер не учитывает информацию о предыдущих и последующих изображениях. В отличие от MPEG-4, JPEG2000 может работать с потерями и без них. Дискретное вейвлетное преобразование, составляющее основу этого алгоритма, использует либо реверсивный фильтр (без потерь), либо нереверсивный фильтр (с потерями), но обеспечивает более высокий коэффициент сжатия для каждого случая.
Благодаря тому, что каждый кадр сжимается отдельно, у кодека JPEG2000 имеется ряд преимуществ перед
MPEG-4. Например, время задержки, требуемое для сжатия кадра, короче, т.к. этот кодек не использует информацию о разнице между предшествующим и последующим кадрами. Поскольку при кодировании кадры не пропускаются, между каждым кадром кодированного и декодированного видеопотока существует прямая корреляция, что позволяет редактировать видеоматериал. Недостаток кодека JPEG2000 в том, что он обязан кодировать и передавать каждый кадр по отдельности, в отличие от алгоритма MPEG-4, который отправляет только данные о разнице между кадрами. Это значит, что при использовании кодека JPEG2000 требования к ширине полосы канала и объему памяти выше. Алгоритм JPEG2000 является более устойчивым к ошибкам при передаче данных, чем MPEG-4: небольшая потеря данных в потоке JPEG2000 менее заметна по сравнению со случаем применения MPEG-4.
Механизм декодирования JPEG2000 более ресурсоемкий, чем MPEG-4. Это значит, что хотя JPEG2000 и декодируется с помощью программного обес­печения, например, на стандартном центральном процессоре ПК, нагрузка на хост-процессор увеличивается, затрудняя решение других задач или приводя в крайних случаях к потере кадров. Следовательно, при использовании кодека JPEG2000 необходимо применять аппаратный декодер, чтобы ускорить выполнение операций.

Экспериментальные результаты

Чтобы количественно определить качество сжатия каждого из двух кодеков в зависимости от размеров файла, была создана экспериментальная установка для кодирования разных типов материалов с различными скоростями сжатия. Результаты оценивались по размеру сжатого файла и качеству видеоданных после их восстановления. В обоих случаях использовалась плата для аппаратного сжатия на базе стандартной платформы персонального компьютера, а для распаковки применялся программный кодек (хотя частота передачи кадров уменьшается при распаковке методом JPEG2000, на размере файла и качестве изображений это обстоятельство не сказывается). Цель эксперимента состояла, главным образом, не в сравнении качества сжатия двух кодеков, а в том, чтобы определить требования к размеру памяти и качеству восстановленных изображений для конкретного исходного материала.
В эксперименте использовалось открытое приложение VLC для воспроизведения видео, которое было запущено на ноутбуке с выходом HDMI. Для испытаний были выбраны три типа исходных видеоматериалов, каждый из которых воспроизводился три раза в течение 5 мин. В каждом из этих случаев выбиралось разное качество сжатия. Разрешение при воспроизведении с помощью ноутбука во всех трех случаях было 720p при 60 кадр./с.
Исходные видеоматериалы были выбраны для тестирования каждого кодека по такому параметру как скорость сжатия и качество восстановленных файлов. В качестве первого видеоматериала использовался файл NASA, кадры которого содержали множество динамических сцен, а контраст между сменяющими друг друга кадрами был достаточно велик. Второй файл (NATURE) содержал меньшее число сцен с движущимися объектами; смена цветов в кадрах происходила не в очень широком динамическом диапазоне. Наконец, третий материал с изображением радарного видеодисплея позволил проверить способность обоих кодеков обрабатывать текстовые и графические данные.
Для тестирования выходного сигнала кодека MPEG-4 на ноутбук был подан входной DVI-сигнал (после преобразования HDMI-DVI) с аппаратного кодека MPEG-4 H.264 SPMC компании Curtiss-Wright Controls Embedded Computing, управляемого стандартным ПК. Качество кодека выбирается в диапазоне коэффициента сжатия 1–51. Поскольку номинальное значение кодека равно 30, в эксперименте были выбраны величины 15, 30 и 45.
Аналогично, в случае с кодеком JPEG2000 использовалась плата Curtiss-Wright XMC-280 со входом DVI. Поскольку качество кодека определяется скоростью передачи данных, тестирование проводились на скоростях 30, 20 и 10 Мбит/с, причем с использованием того же видеоматериала, что и в случае с MPEG-4.
Обе платы видеозахвата со входом DVI, оснащенные программным обеспечением Sentric2 версии 1.8.1, работали под управлением ОС Ubuntu 10.4 LTS. В интересах корректного сравнения оба кодека работали в режиме с потерями.
Результаты обоих экспериментов представлены в таблице 1.

 

Таблица 1. Пример межкадрового и внутрикадрового кодирования

 

MPEG-4

JPEG2000

Размер файла, Мбайт

Коэффициент сжатия 15

Коэффициент сжатия 30

Коэффициент сжатия 45

30 Мбит/с

20 Мбит/с

10 Мбит/с

Высокая энтропия (NASA)

451

67

17

1100

730

378

Средняя энтропия (NATURE)

387

56

19

1000

714

375

Синтезированная графика и текст (SOFT SCAN)

81

35

17

1100

702

349

 

MPEG-4

При коэффициенте сжатия равном 15 изображения, восстановленные с помощью кодека MPEG-4, воспринимаются невооруженным глазом почти естественными. При большем коэффициенте сжатия, например 30, в некоторых частях изображения появляются артефакты в виде мозаики, а кадры подергиваются. Однако эти эффекты не так велики, и видеоизображение имеет относительно неплохое качество. При еще большем сжатии видеокадры распадаются на пикселы, они сменяют друг друга с существенно меньшей скоростью, и качество видео падает.
Фрагменты с ошибками кодирования при воспроизведении заметно выделяются теми участками, где картинка не была восстановлена, в результате чего появляются одноцветные полосы шириной 15–20 пикселов. Следует заметить, что размеры файлов во всех трех случаях совпадают при максимальном сжатии видеоматериалов.

JPEG2000

С точки зрения качества, кодек JPEG2000 очень хорошо работает на 30 Мбит/с. Это значит, что восстановленные видеоданные практически идентичны исходным. При 20 Мбит/с качество немного ухудшается — в изображении появляется однородный шум, однако его объекты имеют четко очерченные края. На 10 Мбит/с шум становится более выраженным, вызывая размытость изображения во всем кадре. В отличие от случая применения MPEG-4, изображение самого низкого качества, восстановленное кодеком JPEG2000, по-прежнему выглядит вполне пригодным, а объекты хорошо различаются.

Выводы

Полученные результаты однозначно свидетельствуют о том, что у стандарта MPEG-4 менее жесткие требования к передаче потокового видео по сети и хранению данных. Однако кодек JPEG2000 обеспечивает лучшее качество изображения. Применение этого кодека намного выгоднее за счет того, что он совершает меньше ошибок при передаче и кодировании данных, а благодаря его покадровой природе видеоданными можно легко манипулировать в сжатом виде. С этой точки зрения, MPEG-4 представляет собой «цифровой формат VHS», который не поддается редактированию.
Хотя нельзя напрямую сравнивать два кодека из-за разных методов сжатия, в целом понятно, что использование JPEG2000 ухудшает качество восстановленных изображений в гораздо меньшей мере во всем диапазоне параметров сжатия, однако требует относительно большего объема памяти и ширины полосы пропускания сети при передаче данных или потокового видео.
В некоторых приложениях оба кодека находят свое применение. Например, компания Curtiss-Wright недавно получила заказ на такое решение, которое обеспечило бы в реальном времени передачу потокового видеосигнала от датчиков системы видеонаблюдения удаленным операторам по территориально распределенной сети. Полоса пропускания этой сети была очень мала, а видеозапись высокого качества требовалось хранить для последующего анализа. Система была реализована с помощью двух кодеков: MPEG-4 кодировал видеопоток в реальном времени, передавая его операторам, тогда как видео формата JPEG2000 сохранялось на дисковом массиве типа RAID.

Литература
1. Comparison of MPEG4 (H.264) and JPEG2000 Video Compression and Decomp­res­sion Algorithms//www.cwcembedded.com.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *