Формат MPEG — спецификация и возможности

В настоящее время у каждого любителя видео имеется возможность для создания собственной домашней видеостудии на базе персонального компьютера. Известно, что при работе с видеофайлами возникает необходимость обработки и хранения очень больших объемов информации, например одна минута цифрового видеосигнала с разрешением SIF (сопоставимым с VHS) и цветопередачей true color (миллионы цветов), займет (288 x 358) пикселов x 24 бита x 25 кадров/с x 60 c = 442 Мб, то есть на носителях, используемых в современных ПК, таких, как компакт-диск (CD-ROM, около 650Мб) или жеский диск (несколько десятков гигабайт) сохранить полноценное по времени видео, записанное в таком формате не удастся. С помощью MPEG-сжатия объем видеоинформации можно заметно уменьшить без заметной деградации изображения. О том, как работает MPEG и какие еще он имеет применения, и пойдет речь далее.

MPEG

Слово MPEG является сокращением от Moving Picture Expert Group — названия экспертной группы ISO, действующая в направлении разработки стандартов кодирования и сжатия видео- и аудио- данных. Официальное название группы — ISO/IEC JTC1 SC29 WG11. Часто аббревиатуру MPEG используют для ссылки на стандарты, разработанные этой группой. На сегодняшний день известны следующие:

  • MPEG-1 предназначен для записи синхронизированных видеоизображения (обычно в формате SIF, 288 x 358) и звукового сопровождения на CD-ROM с учетом максимальной скорости считывания около 1.5 Мбит/с. Качественные параметры видеоданных, обработанных MPEG-1, во многом аналогичны обычному VHS-видео, поэтому этот формат применяется в первую очередь там, где неудобно или непрактично использовать стандартные аналоговые видеоносители.
  • MPEG-2 предназначен для обработки видеоизображения соизмеримого по качеству с телевизионным при пропускной способности системы передачи данных в пределах от 3 до 15 Мбит/с, а в профессиональной аппаратуре используют потоки скоростью до 50 Мбит/с. На технологии, основанные на MPEG-2, переходят многие телеканалы, сигнал сжатый в соответствии с этим стандартом транслируется через телевизионные спутники, используется для архивации больших объемов видеоматериала.
  • MPEG-3 — предназначался для использования в системах телевидения высокой четкости (high-defenition television, HDTV) со скоростью потока данных 20-40 Мбит/с , но позже стал частью стандарта MPEG-2 и отдельно теперь не упоминается. Кстати, формат MP3, который иногда путают с MPEG-3, предназначен только для сжатия аудиоинформации и полное название MP3 звучит как MPEG-Audio Layer-3.
  • MPEG-4 — задает принципы работы с цифровым представлением медиа-данных для трех областей: интерактивного мультимедиа (включая продукты, распространяемые на оптических дисках и через Сеть), графических приложений (синтетического контента) и цифрового телевидения.

КАК ПРОИСХОДИТ СЖАТИЕ

Базовым объектом кодирования в стандарте MPEG является кадр телевизионного изображения. Поскольку в большинстве фрагментов фон изображения остается достаточно стабильным, а действие происходит только на переднем плане, сжатие начинается с создания исходного кадра. Исходные (Intra) кадры кодируются только с применением внутрикадрового сжатия по алгоритмам, аналогичным используемым в JPEG. Кадр разбивается на блоки 8х8 пикселов. Над каждым блоком производится дискретно-косинусное преобразование (ДКП) с последующим квантованием полученных коэффициентов. Вследствии высокой пространственной корелляции яркости между соседними пикселами изображения, ДКП приводит к концентрации сигнала в низкочастотной части спектра, который после квантования эффективно сжимается с использованием кодирования кодами переменной длины. Обработка предсказуемых (Predicted) кадров производится с использованием предсказания вперед по предшествующим исходным или предсказуемым кадрам. Кадр разбивается на макроблоки 16х16 пикселов, каждому макроблоку ставится в соответствие наиболее похожий участок изображения из опорного кадра, сдвинутый на вектор перемещения. Эта процедура называется анализом и компенсацией движения. Допустимая степень сжатия для предсказуемых кадров превышает возможную для исходных в 3 раза. В зависимости от характера видеоизображения, кадры двунаправленной интерполяции (Bi-directional Interpolated ) кодируются одним из четырех способов: предсказание вперед; обратное предсказание с компенсацией движения — используется когда в кодируемом кадре появляются новые объекты изображения; двунаправленное предсказание с компенсацией движения; внутрикадровое предсказание — при резкой смене сюжета или при высокой скорости перемещения злементов изображения. С двунаправленными кадрами связано наиболее глубокое сжатие видеоданных, но, поскольку высокая степень сжатия снижает точность восстановления исходного изображения, двунаправленние кадры не используются в качестве опорных. Если бы коэффициенты ДКП передавались точно, восстановленное изображение полностью совпадало бы с исходным. Однако ошибки восстановления коэффициентов ДКП, связванные с квантованием, приводят к искажениям изображения. Чем грубее производится квантование, тем меньший объем занимают коэффициенты и тем сильнее сжатие сигнала, но и тем больше визуальных искажений.

Благодаря тому, что MPEG разрабатывается в такой авторитетной организацией как ISO и является достаточно универсальным методом сжатия (может использоваться в видеозаписи, телевещании, домашнем видеомонтаже, мультимедийных программах (обучающих, игровых) телеконференциях создании видеороликов для презентаций в Интернет) он стал доминирующим стандартом сжатия цифрового видео, избавив от необходимости использования множества существовавших до него несовместимых способов сжатия видео.

Как работает MPEG-видео

Цветное цифровое изображение из сжимаемой последовательности переводится в цветовое пространство YUV (YCbCr). Компонента Y представляет собой интенсивность, а U и V — цветность. Так как человеческий глаз менее восприимчив к цветности, чем к интенсивности, то разрешений цветовых компонент может быть уменьшено в 2 раза по вертикали, или и по вертикали и по горизонтали. К анимации и высококачественному студийному видео уменьшение разрешения не применяется для сохранения качества, а для бытового применения, где потоки более низкие, а аппаратура более дешевая, такое действие не приводит к заметным потерям в визуальном восприятии, сохраняя в то же время драгоценные биты данных.
image001.gif

image002.gif

image003.gif
Основная идея всей схемы — это предсказывать движение от кадра к кадру, а затем применить дискретное косинусное преобразование (ДКП), чтобы перераспределить избыточность в пространстве. ДКП выполняется на блочках 8х8 точек, предсказание движения выполняется на канале интенсивности (Y) на блоках 16х16 точек, или, в зависимости от характеристик исходной последовательности изображении (черезстрочная развертка, содержимое), на блоках 16х8 точек. Другими словами, данный блок 16х16 точек в текущем кадре ищется в соответствующей области большего размера в предыдущих или последующих кадрах. Коэффициенты ДКП (исходных данных или разности этого блока и ему соответствующего) квантуются, то есть делятся на некоторое число, чтобы отбросить несущественные биты. Многие коэффициенты после такой операции оказываются нулями. Коэффициент квантизации может изменяться для каждого "макроблока" (макроблок — блок 16х16 точек из Y-компонент и соответсвующие блоки 8х8 в случае отношения YUV 4:2:0, 16х8 в случае 4:2:2 и 16х16 в случае 4:4:4. Коэффициенты ДКП, параметры квантизации, векторы движения и пр. кодируется по Хаффману с использованием фиксированных таблиц, определенных стандартом. Закодированные данные складываются в пакеты, которые формируют поток согласно синтаксису MPEG.

Соотношение и типы кадров

Существует три типа закодированных кадров. I-фремы — это кадры, закодированные как неподвижные изображения — без ссылок на последующие или предыдущие. Они используются как стартовые. P-фреймы — это кадры, предсказанные из предыдущих I- или P-кадров. Каждый макроблок в P-фрейме может идти с вектором и разностью коэффициентов ДКП от соответствующего блока последнего раскодированного I или P, или может быть закодирован как в I, если не соответствующего блока не нашлось.

И, наконец, существуют B-фреймы, которые предсказаны из двух ближайших I или P-фреймов, одного предыдущего и другого — последующего. Соответсвующие блоки ищутся в этих кадрах и из них выбирается лучший. Ищется прямой вектор, затем обратный и вычисляется среднее между соответствующими макроблоками в прошлом и будущем. Если это не работает, то блок может быть закодирован как в I-фрейме.

Последовательность раскодированных кадров обычно выглядит как
I B B P B B P B B P B B I B B P B B P B ...

Здесь 12 кадров от I до I фрейма. Это основано на требовании произвольного доступа, согласно которому начальная точка должна повторяться каждые 0.4 секунды. Соотношение P и B основано на опыте.

Чтобы декодер мог работать, необходимо, чтобы первый P-фрейм в потоке встретился до первого B, поэтому сжатый поток выглядит так:
0 x x 3 1 2 6 4 5 ...
где числа — это номера кадров. xx может не быть ничем, если это начало последовательности, или B-фреймы -2 и -1, если это фрагмент из середины потока.
Сначала необходимо раскодировать I-фрейм, затем P, затем, имея их оба в памяти, раскодировать B. Во время декодирования P показывается I-фрейм, B показываются сразу, а раскодированный P показывается во время декодирования следующего.

Алгоритм MPEG-компрессии аудио

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

Звук разбивается на спектральные блоки с помощью гибридной схемы, которая объединяет синусные и полосные преобразования, и психоакустической модели, описанной на языке этих блоков. Все, что может быть убрано или сокращено, убирается и сокращается, а остаток посылается в выходной поток. В действительности, все выглядит несколько сложнее, поскольку биты должны распределяться между полосами. И, конечно же, все, что посылается, кодируется с сокращением избыточности.

Потоки, частоты и размеры кадров

Как MPEG-1, так и MPEG-2, могут быть применены к широкому классу потоков, частот и размеров кадров. MPEG-1, знакомый большинству людей, позволяет передавать 25 кадров/с с разрешением 352x288 в PAL или 30 кадр/с с разрешением 352x240 в NTSC при величине потока менее 1.86 Мбит/с — комбинация, известная как "Constrained Parameters Bitstreams". Это цифры введены спецификацией White Book для видео на CD ( VideoCD ).

Фактически, синтаксис позволяет кодировать изображения с разрешением до 4095х4095 с потоком до 100 Мбит/с. Эти числа могли бы быть и бесконечными, если бы не ограничение на количество бит в заголовках.

С появлением спецификации MPEG-2, самые популярные комбинации были объединены в уровни и профили. Самые общие из них:

  • Source Input Format (SIF), 352 точки x 240 линий x 30 кадр/с, известный также как Low Level (LL) — нижний уровень, и
  • "CCIR 601" (например 720 точек/линию x 480 линий x 30 кадр/с), или Main Level — основной уровень.

Компенсация движения заменяет макроблоки макроблоками из предыдущих картинок
Предсказания макроблоков формируются из соответсвующих 16х16 блоков точек (16х8 в MPEG-2) из предыдущих восстановленных кадров. Никаких ограничений на положение макроблока в предыдущей картинке, кроме ее границ, не существует.
image004.gif

Исходные кадры — reference — (из которых формируются предсказания) показаны безотносительно своей закодированной формы. Как только кадр раскодирован, он становится не набором блоков, а обычным плоским цифровым изображением из точек.

image005.gif

В MPEG размеры отображаемой картинки и частота кадров может отличаться от закодированного в потоке. Например, перед кодированием некотрое подмножество кадров в исходной последовательности может быть опущено, а затем каждый кадр фильтруется и обрабатывается. При восстановлении интерполированы для восстановления исходного размера и частоты кадров. Фактически, три фундаментальных фазы (исходная частота, кодированная и показываемая) могут отличаться в параметрах. Синтаксис MPEG описывает кодированную и показываемую частоту через заголовки, а исходная частота кадров и размер известен только кодеру. Именно поэтому в заголовки MPEG-2 введены элементы, описывающие размер экрана для показа видеоряда.
В I-фрейме макроблоки должны быть закодированы как внутренние — без ссылок на предыдущие или последующие, если не используются масштабируемые режимы. Однако, макроблоки в P-фрейме могут быть как внутренними, так и ссылаться на предыдущие кадры. Макроблоки в B-фрейме могут быть как внутренними, так и ссылаться на предыдущий кадр, последующий или оба. В заголовке каждого макроблока есть элемент, определяющий его тип.
image006.gif

Без компенсации движения:
image007.gif

С компенсацией движения:
image008.gif

Пропущенные макроблоки в P-фреймах:
image009.gif

Пропущенные макроблоки в B-фреймах:
image010.gif
Последовательность кадров может иметь любую структуру размещения I, P и B фреймов. В промышленной практике принято иметь фиксированную последовательность (вроде IBBPBBPBBPBBPBB), однако, более мощные кодеры могут оптимизировать выбор типа кадра в зависимости от контекста и глобальных характеристик видеоряда.
Каждый тип кадра имеет свои преимущества в зависимости от особенностей изображения (активность движения, временные эффекты маскирования,...).
Например, если последовательность изображений мало меняется от кадра к кадру, есть смысл кодировать больше B-фреймов, чем P. Поскольку B-фреймы не используются в дальнейшем процессе декодирования, они могут быть сжаты сильнее, без влияния на качество видеоряда в целом.
Требования конкретного приложения также влияют на выбор типа кадров: ключевые кадры, переключение каналов, индексирование программ, восстановление от ошибок и т.д.
При сжатии видео используются следующие статистические характеристики:
1. Пространственная корреляция: дискретное косинусное преобразование 8х8 точек.
image011.gif
2.Особенности человеческого зрения — невосприимчивость к высокочастотным составляющим: скалярное квантование коэффициентов ДКП с потерей качества.
image012.gif






3. Большая пространственная корреляция изображения в целом: предсказание первого низкочастотного коэффициента преобразования в блоке 8х8 (среднее значение всего блока).

4. Статистика появления синтаксических элементов в наиболее вероятном кодируемом потоке: оптимальное кодирование векторов движения, коэфициентов ДКП, типов макроблоков и пр.

5. Разряженная матрица квантованных коэффициентов ДКП: кодирование повторяющихся нулевых элементов с обозначением конца блока.

6. Пространственное маскирование: степень квантования макроблока.

7. Кодирование участков с учетом содержания сцены: степень квантования макроблока.

8. Адаптация к локальным характеристикам изображения: кодирование блоков, тип макроблока, адаптивное квантование.

9. Постоянный размер шага при адаптивном квантовании: новая степень квантования устанавливается только специальным типом макроблока и не передается по умолчанию.

10. Временная избыточность: прямые и обратные векторы движения на уровне макроблоков 16х16 точек.

11. Кодирование ошибки предсказаний макроблоков с учетом восприятия: адаптивное квантование и квантование коэффициентов преобразования.

12. Малая ошибка предсказания: для макроблока может быть сигнализированно отсутствие ошибки.

13. Тонкое кодирование ошибки предсказания на уровне макроблоков: каждый из блоков внутри макроблока может быть кодирован или пропущен.

14. Векторы движения — медленное движение фрагмента изображения со сложным рисунком: предсказание векторов движения.

15. Появления и исчезновения: прямое и обратное предсказание в B-фреймах.

16. Точность межкадрового предсказания: билинейно интерполированные (фильтрованные) разности блоков. В реальном мире движения объектов от кадра к кадру редко попадают на границы точек. Интерполяция позволяет выяснить настоящее положение объекта, зачастую увеличивая эффективность сжатия на 1 дБ.
image013.gif

17. Ограниченная активность движения в P-фреймах: пропущенные макроблоки. Когда вектор движения и ошибка предсказания нулевые. Пропущенные макроблоки очень желательны в кодированном потоке, поскольку не занимают битов, кроме как в заголовке следующего макроблока.

18. Компланарное движение в B-фреймах: пропущенные макроблоки. Когда вектор движения тот же, а ошибка предсказания нулевая.


Ваша оценка: Нет Средняя: 5 (3 голоса)