Cтандарты MPEG и их история

Дата обновления: 03 Ноября 2009
2009-11-03T20:40
Audiophile's Software

Автор: Александр Радзишевский (Alex Y. Radzishevsky)
Copyright (C) 1998-2007, Alex Y. Radzishevsky


Аббревиатура 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 - универсализованный стандарт работы с мультимедиа информацией, предназначенный для обработки, фильтрации и управления мультимедиа информацией. Не является новым стандартом кодирования, а представляет собой лишь переработанный и измененный набор инструментов для работы с мультимедиа данными.

По порядку.

1) Рассмотрим комплект 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 без необходиомсти перекодирования, а лишь просто средствами извлечения одного слоя данных и большого файла. Чуть подробнее о кодеке SLS:
http://www.chiariglione.org/mpeg/technologies/mp04-sls/

 

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

 

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

 
   
Категория: Теория | Автор: | Добавил: Audiophile
Просмотров: 12300 | Теги: MP3, audio, mp4, video, AAC, MPEG| Рейтинг: 4.0/5, голосов: 1
Комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]