Стандарт сжатия MPEG

Новое поколение стандартов сжатия работает эффективнее и выдает лучшее качество картинки. Пока вы думали, что уже знакомы со всеми последними стандартами MPEG, такими, как MPEG-2 и MPEG-4, комитет MPEG старательно разрабатывал новую серию международных стандартов, названных MPEG-A, MPEG-B и т. д. 

Пока вы думали, что уже знакомы со всеми последними стандартами MPEG, такими, как MPEG-2 и MPEG-4, комитет MPEG старательно разрабатывал новую серию международных стандартов, названных MPEG-A, MPEG-B и т. д. Но если основной функцией старых инструментов было сжатие, большинство новых стандартов объединяют многие существующие MPEG технологии, формируя совместное решение для конкретного применения. MPEG-A и другие, происходящие от него стандарты, были созданы для того, чтобы за счет нормативных спецификаций достигать взаимодействия, и быть использованными изначально не предусмотренными способами.

Аббревиатура MPEG расшифровывается как «Moving Picture Coding Experts Group», дословно — «Группа экспертов по кодированию подвижных изображений». MPEG ведет свою историю с января 1988 года, она была создана Международной организацией стандартов (International Standards Organization или сокращенно ISO) и Международной электротехнической комиссией (International Electro-Technical Commission или сокращенно IEC). Группа была образована для создания стандартов кодирования подвижных изображений и аудио информации. Начиная с первого собрания в мае 1988 года группа начала расти и выросла до необычайно плотной группы специалистов. Обычно, в собрании MPEG принимают участие около 350 специалистов из более чем 200 компаний. Встречи проводятся около трех раз в году. БольшАя часть участников MPEG — это индивидуальные специалисты, занятые в тех или иных научных и академических учреждениях. Это из области истории. Теперь о практике. На сегодняшний день MPEG разработаны следующие стандарты и алгоритмы:

  • MPEG-1 (ноябрь 1992) — стандарт кодирования, хранения и декодирования подвижных изображений и аудио информации;
  • MPEG-2 (ноябрь 1994) — стандарт кодирования для цифрового телевидения;
  • MPEG-4 — стандарт для мультимедиа приложений: версия 1 (октябрь 1998) и версия 2 (декабрь 1999);
  • MPEG-7 — универсализованный стандарт работы с мультимедиа информацией, предназначенный для обработки, фильтрации и управления мультимедиа информацией. Не является новым стандартом кодирования, а представляет собой лишь переработанный и измененный набор инструментов для работы с мультимедиа данными.

Исторически сложилось так, что MPEG поддерживал большое разнообразие решений путем определения профилей. Профиль в MPEG представляет собой множество инструментов части MPEG стандарта (подмножество синтакса). Он помогает достичь компромисса между функциональностью и сложностью для соответствующих классов приложений. Таким образом, в то время, когда каждый из перечисленных MPEG стандартов использует различные профили, которые в совокупности формируют видеокодек с определенными свойствами, новые стандарты группируются в разные технологии, которые могут иметь разные применения. Фактически, при попытке сделать MPEG по-настоящему универсальным, многие из этих технологий пришли извне существующей области MPEG стандартов. Этот опыт комбинирования технологий разных стандартов уже существует во многих сферах применения, включая ATSC и DVD.

MPEG-A

MPEG-A это формат мультимедийных приложений (Multimedia Application Format (MAF). Он описывает некоторое количество приложений, таких как формат архивирования Professional Archival Application Format. Например, рассмотрим проигрыватель MPEG-A Music Player MAF и программу для просмотра изображений Photo Player MAF, как это показано на рисунке.

MPEG_640

Эти спецификации не только включают элементы некоторых MPEG, но также и JPEG стандартов.

MPEG комитет рассчитывает и дальше развивать новые форматы Application Format и добавлять их к стандартам, сохраняя совместимость с новыми технологиями. Особо важно в этом процессе то, что можно значительно уменьшить объем работы, необходимой для разработки и утверждения новых продуктов и сервисов. Это происходит за счет того, что MPEG стандарты появятся со ссылками на реализацию программных функций, которые могут быть использованы для быстрого развития соответствующих продуктов и сервисов.

MPEG-B

Системные технологии MPEG-B представляют собой кодирующие инструменты, такие как кодер Reconfigurable Video Coding (RVC), MPEG формат для XML, дескрипторный язык Bitstream Syntax Description Language (BSDL) и инструмент для обработки потока Dynamic Adaptive Streaming через HTTP (DASH). MPEG-B RVC включает в себя два стандарта – Codec Configuration Representation и Video Tool Library, разработанных в 2009 году. Video Tool Library отличается набором функциональных единиц Functional Units (FUs), которые описывают видео декодирующие процессы как трансформации блоков данных, компенсацию движения и энтропийное декодирование.

Язык Decoder Description Language (DDL) определяет дальнейшую структуру видео декодера, а формат закодированного потока битов определяется с использованием языка Bitstream Syntax Description Language (BSDL). Оба они относятся к стандарту Codec Configuration Representation. В действии RVC не только позволяет создавать кодеки из разных составляющих блоков, но также позволяет произвольно указывать взаимосвязи этих блоков.

С такой гибкостью реконфигураций может показаться, что декодер, полностью реализированный в программном обеспечении может быть более универсальным, чем аппаратный декодер. Хотя это может быть ценным для персональных компьютеров и подобных устройств, специальные высокоскоростные сигнальные процессоры очень часто являются более эффективными решениями. Причиной тому служит их низкоуровневая структура, которая может быть впоследствии более оптимизирована. Тем не менее, RVC не является преимуществом для полупроводниковых кремниевых разработок, таких как логическая матрица Field-Programmable Gate Array (FPGA), которая легко и недорого производится с помощью RVC инструментов.

MPEG-C

MPEG-C (2006) объединяет различные элементы, включая точную спецификацию для целостного вывода обратных дискретных косинусных преобразований и возможности для применения в стереоскопическом видео (SSV). Первое, хотя и кажется технически не осуществимым, на самом деле представляет собой способ качественного кодирования, основанного на трансформации блоков. Напомним, что DCT это один из простых инструментов, которые используются в самых обычных видеосжимающих кодеках. Если точность DCT-обратного-DCT каскада (такого, который используется в процессе кодирования-декодирования) совместима со спецификацией MPEG-C, то можно достигнуть более высокого уровня передачи изображений (меньше блочных артефактов). Или, возможно, больший интерес для перспективных пользователей MPEG-C представляет новая SSV спецификация. Чтобы максимально увеличить взаимодействие между провайдерами контента, вещателями и производителями дисплеев, MPEG-C SSV определяет стандартный формат для сжатия 2D+depth видео.

Применения, требующие кодирования карты глубин, поддерживаются соответствующими элементами, мобильные дисплеи также предусмотрены. Функции спецификации включают низкий уровень потерь, обратную совместимость и повторное использование существующих MPEG и других стандартов (включая MPEG-2 и AVC), гибкость в отношении схемы сжатия, своевременная доступность, простота и независимость дисплея.

MPEG-D, MPEG-E и MPEG-H

MPEG-D применим с различными аудио технологиями, включая объемный звук, пространственное кодирование, объединенное голосовое/аудио кодирование. MPEG-E – это новый стандарт (M3W), поддерживающий загрузку мультимедиа и работу с ними. MPEG-H это высокоэффективный видеокодек (HEVC), который дает существенно увеличенное видеосжатие. HEVC предназначен, чтобы вполовину снижать битрейт по сравнению с такими кодеками, как AVC. Также предусмотрен широкий диапазон применений.

MPEG-M

Стандарт MPEG-M eXtensible Middleware (MXM) используется для расширения использования цифрового медиа контента, производственных мультимедиа применений и устройств. MXM предоставляет спецификацию стандарта для связующих архитектур и технологий, связующих API (интерфейсов прикладного программирования) и связующих протоколов. Хотя этот стандарт был разработан без использования стандартных MPEG технологий, MXM нацелен на применение в аудио/видео медиа и для последовательной обработки этих медиа.

Разработчики MXM считают, что их продукт предоставит быстрый и экономически выгодный путь перехода на инновационные бизнес-модели, так как все звенья цепи наращивания стоимости основаны на одном и том же комплекте технологий. Хотя это звучит провокационно, но пользователи MPEG-M могут выбирать части MXM стандарта, которые подходят к конкретному применению (речь идет о профилях).

MPEG-U

MPEG-U Rich Media User Interface это спецификация, которая предоставляет стандартный протокол для создания интерфейса пользователя, включая графические элементы, их собственные интерфейсы и менеджеры. Единственное достоинство этого стандарта это интероперабельность графических элементов от различных сервисных провайдеров. Также возможно создание персонализированных пользовательских интерфейсов.

MPEG-V

MPEG-V делает более доступным новый набор стандартов, определяя форматы и протоколы для «информационного обмена с виртуальными мирами». Он обеспечивает обмен данными между виртуальными мирами, а также между ними и реальным миром. Интерфейс для пользователей предусмотрен с акцентом на сенсорной информации и форматах данных для взаимодействия устройств.

Рассмотрим комплект MPEG-1 (ISO/IEC 11172-3). Этот комплект, в соответствии со стандартами ISO, включает в себя три алгоритма различного уровня сложности: Layer (уровень) I, Layer II и Layer III. Общая структура процесса кодирования одинакова для всех уровней. Вместе с тем, не смотря на схожесть уровней в общем подходе к кодированию, уровни различаются по целевому использованию и внутренним механизмам (что во многом определяет степень схожести алгоритмов, «вышедших» из MPEG-1). Для каждого уровня определен свой формат записи бит-потока и свой алгоритм декодирования. Алгоритмы MPEG основаны в целом на изученных свойствах восприятия звуковых сигналов слуховым аппаратом человека (то есть кодирование производится с использованием так называемой «психоакустической модели»).

Комплект MPEG-1 предусмотрен для кодирования сигналов, оцифрованных с частотой дискретизации 32, 44.1 и 48 КГц. Как было указано выше, комплект MPEG-1 имеет три уровня (Layer I, II и III). Эти уровни имеют различия в обеспечиваемом коэффициенте сжатия и качестве звучания получаемых потоков. Layer I позволяет сигналы 44.1 КГц / 16 бит хранить без ощутимых потерь качества при скорости потока 384 Кбит/с, что составляет 4-х кратный выигрыш в занимаемом объеме; Layer II обеспечивает такое же качество при 194 Кбит/с, а Layer III – при 128 (или 112). Выигрыш Layer III очевиден, но скорость компрессии при его использовании самая низкая (надо отметить, что при современных скоростях процессоров это ограничение уже не заметно). Фактически, Layer III позволяет сжимать информацию в 10-12 раз без ощутимых потерь в качестве.

Кратко об алгоритме кодирования. Входной цифровой сигнал сначала разбивается на частотные подполосы. Дальнейший процесс зависит от Layer’a.

В случае Layer III сигнал раскладывается на частотные составляющие в каждой полосе (косинусное преобразование, MDCT). Дальнейшая обработка сигнала нацелена на упрощение сигнала с целью переквантования коэффициентов спектра. Полученный спектр очищается от заведомо неслышных составляющих – низкочастотных шумов и наивысших гармоник, то есть фактически фильтруется. На следующем этапе производится значительно более сложныйпсихоакустический анализ слышимого спектра частот. Это делается в том числе с целью выявления и удаления «замаскированных» частот (частот, которые не воспринимаются слуховым аппаратом в виду их приглушения другими частотами), резких всплесков и проч. После всех этих манипуляций из цифрового аудио сигнала исключается больше половины информации. Кроме этого, базируясь на том, что человеческое ухо способно различать направление звучания только средних частот, то в случае, когда кодируется стерео сигнал, его можно превратить в совмещенный стерео (joint stereo). Это значит, что фактически происходит отделение верхних и нижних частот и их кодирование в моно варианте (средние частоты остаются в режиме стерео). Далее, в случае появления, например,  «тишины» в одном из каналов, «пустующее» место заполняется информацией либо повышающей качество другого канала, либо просто не поместившейся до этого. В довершение ко всему проводится сжатие уже готового бит-потока упрощенным аналогом алгоритма Хаффмана (Huffman), что позволяет также значительно уменьшить занимаемый потоком объем.

В случае Layer II идея упрощения сигнала остается той же, однако переквантованию подвергаются не коэффициенты MDCT, а амплитудный сигнал в каждой частотной подполосе.

В июле 2001 компании Coding Technologies и Tomson Mulimedia анонсировали продолжение кодека MP3 (MPEG-1 Layer III) — MP3 Pro. Этот кодек представляет собой доработанный вариант MP3. Подробнее об этом кодеке можно прочесть в обсуждении вопроса о существующих аудио кодеках.

 

2) Стандарт MPEG-2 был специально разработан для кодирования ТВ сигналов вещательного телевидения, поэтому на рассмотрении MPEG-2 мы бы не останавливались, если бы в апреле 1997 этот комплект не получил «продолжение» в виде алгоритма MPEG-2 AAC (MPEG-2 Advanced Audio Coding – продвинутое аудио кодирование, ISO/IEC 13818-7). Стандарт MPEG-2 AAC стал результатом кооперации усилий института Fraunhofer, компаний Sony, NEC и Dolby. MPEG-2 AAC является технологическим приемником MPEG-1. Поскольку между опубликованием MPEG-2 AAC и его стандартизацией прошло достаточно времени, свет увидели несколько разновидностей этого алгоритма: Homeboy AAC, AT&T a2b AAC, Astrid/Quartex AAC, Liquifier AAC, FAAC (Freeware Audio Coder), Mayah AAC, PsyTEL AAC, QuickTime AAC, Sorenson и другие (некоторые из этих кодеров даже не полностью соответствовали стандарту — например, Astrid/Quartex и HomeBoy AAC). Процесс стандартизации AAC был достаточно длинным, поэтому многие из приведенных кодеров первоначально были (а, многие, и до сих пор) не совместимы между собой в формате выходного потока.

Надо сказать, что помимо MPEG-2 AAC, стандарт MPEG-2 предусматривает MPEG-2 BC (backward compatible — обратно совместимый), являющийся фактически многоканальной версией (до 5 каналом + 1 дополнительный) аудио кодека MPEG-1.

Также, как и в комплекте аудио стандартов кодирования MPEG-1, в основе алгоритма AAC лежит психоакустический анализ сигнала. Вместе с тем, алгоритм AAC имеет в своем механизме множество дополнений, направленных на улучшение качества выходного аудио сигнала. В частности, используется другой тип преобразований, улучшена обработка шумов, изменен банк фильтров, а также улучшен способ записи выходного бит-потока. Кроме того, AAC позволяет хранить в закодированном аудио сигнале т.н. «водяные знаки» (watermarks) – информацию об авторских правах. Эта информация встраивается в бит-поток при кодировании таким образом, что уничтожить ее становится невозможно не разрушив целостность аудио данных. Эта технология (в рамках Multimedia Protection Protocol) позволяет контролировать распространение аудио данных (что, кстати, является препятствием на пути распространения самого алгоритма и файлов, созданных с помощью него). Следует отметить, что алгоритм AAC не является обратно совместимым (NBC – non backwards compatible) с уровнями MPEG-1 не смотря на то, что он представляет собой продолжение (доработку) MPEG-1 Layer I, II, III.

MPEG-2 AAC предусматривает три различных профиля кодирования:
1. Main
2. LC (Low Complexity)
3. SSR (Scalable Sampling Rate).

В зависимости от того, какой профиль используется во время кодирования, изменяется время кодирования и качество получаемого цифрового потока. Наивысшее качество звучания (при самой медленной скорости компрессии) обеспечивает основной Main профиль. Это связано с тем, что профиль Main включает в себя все механизмы анализа и обработки входного потока. Профиль LC упрощен, что сказывается на качестве звучания получаемого потока, сильно отражается на скорости компрессии и, что более важно, декомпрессии. Профиль Main обеспечивает более качественную компресиию по сравнению с LC, однако эта разница в качестве не оправдывает разницу затрат мощности процессора при компрессии в Main и LC. По этой причине профиль LC используется намного более широко, чем Main.

Профиль SSR (Scalable Sampling Rate) кодирует данные в несколько «слоев» (layers) от очень низкого битрейта к высшим битрейтам (вплоть до lossless-компрессии). Такой подход позволяет, например, транслирующим серверам передавать пользователям аудио на нужном битрейте без необходимости транскодирования данных.

Говоря о качестве звука, можно сказать, что поток AAC (Main) 96 Кбит/с обеспечивает качество звучания, аналогичное потоку MPEG-1 Layer III 128 Кбит/с. При компрессии AAC 128 Кбит/с, качество звучания ощутимо превосходит MPEG-1 Layer III 128 Кбит/с.

 

3) Стандарт MPEG-4 — это особая статья. MPEG-4 не является просто алгоритмом сжатия, хранения и передачи видео или аудио информации. MPEG-4 — это новый способ представления информации, это — объектно-ориентированное представление мультимедиа данных. Стандарт оперирует объектами, организует из них иерархии, классы и прочее, выстраивает сцены и управляет их передачей. Объектами могут служить как обычные аудио или видео потоки, так и синтезированные аудио и графические данные (речь, текст, эффекты, звуки…). Такие сцены описываются на специальном языке. Не будем останавливаться подробно на этом стандарте — это тема отдельного обширного обсуждения. Следует только сказать, что в качестве средств компрессии аудио в MPEG-4 (ISO/IEC 14496-3) используется комплекс нескольких стандартов аудио кодирования: улучшенный алгоритм MPEG-2 AAC, алгоритм TwinVQ, а также алгоритмы кодирования речи HVXC (Harmonic Vector eXcitation Coding) — для битрейтов 2-4 Кбит/с и CELP (Code Excited Linear Predictive) — для битрейтов 4-24 Кбит/с. Кроме того, MPEG-4 предусматривает множество механизмов обеспечения масштабируемости и предсказания. Однако в целом, стандарт MPEG-4 AAC, предусматривающий правила и алгоритмы кодирования аудио, является продолжением MPEG-2 AAC. MPEG-4 AAC стандартизует следующие типы объектов (именно так называются профили в MPEG-4 AAC):

MPEG-4 AAC LC (Low Complexity)
MPEG-4 AAC Main
MPEG-4 AAC SSR (Scalable Sampling Rate)
MPEG-4 AAC LTP (Long Term Prediction)
MPEG-4 Version 2
MPEG-4 Version 3 (включая HE-AAC)
MPEG-4 ALS (Audio Lossless Coding)
MPEG-4 SLS (Scalable Llossless coding)

Как видно, первые три позаимствованы у MPEG-2 AAC, четвертый же является новшеством.
LTP основан на методах предсказания сигнала и является более сложным алгоритмом, нежели остальные, что сильно сказывается на скорости компрессии.
Version 2 — это пакет стандартов, расширающих некоторые механизмы кодирования стандарта MPEG-4.
Version 3 — это еще одно расширение стандарта MPEG-4. Основным нововведением в стандарт MPEG-4, введенным Version 3, является стандартизация (в мая 2003) алгоритма HE-AAC (High Efficiency AAC), известного также под именем aacPlus. Существуют две версии HE-AAC: HE-AAC v1 (базисная версия, включающая технологию aacPlus), а также HE-AAC v2 — расширение HE-AAC с поддержкой Parametric Stereo (PS).

Инструментарий MPEG-4 AAC содержит несколько интересных технологий. Напримери, PNS — Perceptual Noise Substitution. Суть PNS довольно проста. Основываясь на идее, что один шум можно подменить другим, искусственным, PNS предполагает подмену шума, присутствующего в кодируемом сигнале, другим шумом, искусственным. Это позволяет генерировать искусственный шум на стадии декомпрессии сигнала (воспроизведении) и не передавать настоящий шум сигнала. Иными словами, при кодировании исходного сигнала происходит регистрация шума и запоминание его основных параметров (вместо непосредственного кодирования шумового сигнала), а на стадии воспроизведения — генерация искусственного шума вместо настоящего.

 

MPEG-4 ALS — стандарт беспотерьного кодирования, утвержденный и включенный в MPEG-4 в конце 2005 года. MPEG-4 ALS разработан корпорацией NTT, его разработка велась с 2002 года. Цитата с iXBT: «В MPEG-4 ALS включен ряд технологий, в том числе коэффициенты PARCOR, предложенные NTT более 30 лет назад, а также технологические новшества, созданные в рамках сотрудничества между NTT и Токийским университетом. Партнерами NTT в процессе стандартизации выступили Технический Университет Берлина, североамериканская корпорация RealNetwoks и сингапурская I2R.» Основные характеристики MPEG-4 ALS:

• Поддержка PCM (ИКМ)-потоков с разрешением до 32 бит и самыми разными частотами дискретизации (включая 16/44.1, 16/48, 24/48, 24/96, 24/192);
• Многоканальная/мультитрековая поддержка до 65536 каналов;
• Поддержка данных в формате 32-bit IEEE с плавающей точкой.

Важно заметить, что стандарт MPEG-4 AAC расширяется. К нему добавляются и наверняка еще будут добавлены дополнительные типы объектов.

Немаловажно заметить, что по состоянию на март 2006 года можно сказать, что внедрение и использование различными разработчиками профайлов Main и LTP остановлено или прекращено. Основным «рабочим» профайлом можно считать профайл LC.

 

MPEG-4 SLS (Scalable Lossless coding) — совместная разработка Infocomm Research и института Fraunhofer. MPEG-4 SLS никак не связан с MPEG-4 ALS. Расширение SLS предусматривает аудио поток с несколькими уровнями данных, позволяющий его декодирование как в беспотерьном виде (точное декодирование исходного аудио потока), так и в потерьном виде на низком битрейте. Иными словами, поток в формате SLS легко масштабируем в том смысле, что качество декодируемого сигнала находится в зависимости от того, «сколько данных» из этого потока, было использовано для декодирования. Поток MPEG-4 SLS стандартным неспециализированным MPEG-4-плеером воспринимается как в формате MPEG-4 AAC LC. Более того, из файла в формате SLS можно извлечь файл в формате AAC LC без необходиомсти перекодирования, а лишь просто средствами извлечения одного слоя данных и большого файла.

 

4) Стандарт MPEG-7 вообще в корне отличается от всех иных стандартов MPEG. Стандарт разрабатывался не для установления каких-то рамок для передачи данных или типизации и описания данных какого-то конкретно рода. Стандарт предусмотрен как описательный, предназначенный для регламентации характеристик данных любого типа, вплоть до аналоговых. Использование MPEG-7 предполагается  в тесной связи с MPEG-4.

 

Для удобства обращения со сжатыми потоками, все алгоритмы MPEG разработаны таким образом, что позволяют осуществлять декомпрессию (восстановление) и воспроизведение потока одновременно с его получением (download) – потоковая декомпрессия «на лету» (stream playback). Эта возможность очень широко используются в Интернет, где скорость передачи информации ограничена, а с использованием подобных алгоритмов появляется возможность обрабатывать информацию прямо во время ее получения не дожидаясь окончания передачи.

Следующее поколение стандарта уже на подходе…

 

Источник