logo
Лекции по ЦО АВС

4.6.1 Общее описание

Несмотря на большую гибкость стандарта, позволяющую для различных приложений менять в широких пределах значения большинства его параметров (такие как разрешение изображений, аспектное отношение, частота кадров), его разработчики первоначально были ориентированы на использование в качестве основного носителя кодированной информации компакт-дисков (CD-ROM) со скоростью передачи данных 150 Кб/с. В результате базовый алгоритм (MPEG 1) ограничивает скорость передачи диапазоном 150-225 Кб/с, разрешение изображений (кадров) как 352х288 (PAL) или 320х240 (NTSC), частоту их смены 25 (PAL) или 30 (NTSC). Далее для простоты мы ограничимся рассмотрением PAL-системы.

MPEG-компрессия использует следующие основные идеи:

• устранение временной избыточности видео, учитывающее тот факт, что в пределах коротких интервалов времени большинство фрагментов сцены оказываются неподвижными или незначительно смещаются по полю; • устранение пространственной избыточности изображений подавлением мелких деталей сцены, несущественных для ее визуального восприятия человеком;  •  использование более низкого цветового разрешения при YUV-представлении изображений (Y -яркость, U и V - цветоразностные сигналы) - установлено, что глаз менее чувствителен к пространственным изменениям оттенков цвета по сравнению с изменениями яркости;  •  повышение информационной плотности результирующего цифрового потока путем выбора оптимального математического кода для его описания (например, использование более коротких кодовых слов для наиболее часто повторяемых значений).

Изображения в MPEG-последовательности подразделяются на следующие типы:

 • I (intra), играющие роль опорных при восстановлении остальных изображений по их разностям;  •  Р (predicted), содержащие разность текущего изображения с предыдущим I или Р с учетом смещений отдельных фрагментов;  •  В (bidirectionally predicted), содержащие разность текущего изображения с предыдущим и последующим изображениями типов I или Р с учетом смещений отдельных фрагментов;

Изображения объединяются в группы (GOP - Group Of Pictures), представляющие собой минимальный повторяемый набор последовательных изображений, которые могут декодированы независимо от других изображений в последовательности. Типичной является группа вида

(I0 В1 В2 РЗ В4 В5 Р6 В7 В8 Р9 В10 В11)(I12 В13 В14 Р15 В16 В17 Р18...)

в которой I-тип повторяется каждые полсекунды. Обратим внимание, что в изображении РЗ основная часть фрагментов сцены предсказывается на основании соответствующих смещенных фрагментов изображения I0. Собственно кодированию подвергаются только разности этих пар фрагментов. Аналогично Р6 "строится" на базе РЗ, Р9 - на базе Р6 и т.д. В то же время большинство фрагментов В1 и В2 предсказываются как полусумма смещенных фрагментов из I0 и РЗ, В4 и В5 -из РЗ и Р6, В7 и В8 - из Р6 и Р9 и т.д. В то же время В-изображения не используются для предсказания никаких других изображений. В силу зависимости изображений в процессе их кодирования меняется порядок следования. Для вышеприведенной последовательности он будет следующим:

I0 РЗ В1 В2 Р6 В4 В5 Р9 В7 В8 I12 В10 В11 Р15 В13 В14 Р18 В16 В17... .

Ясно, что точность кодирования должна быть максимальной для I, ниже - для P минимальной - для В. Установлено, что для типичных сцен хорошие результаты достигаются при отведении числа бит для I в 3 раза больше, чем для Р, и для Р в 2-5 раз больше, чем для В. Эти отношения уменьшаются для динамичных сцен и увеличиваются для статичных.

Отдельные изображения состоят из макроблоков. Макроблок - это основная структурная единица фрагментации изображеия. Он соответствует участку изображения размером 16х16 пикселей. Именно для них определяются вектора смещения относительно I - или Р-изображений. Общее число макроблоков в изображении - 396. Для повышения устойчивости процесса восстановления изображений к возможным ошибкам передачи данных последовательные макроблоки объединяют в независимые друг от друга разделы (slices), максимальным числом до 396. В предельном случае "чистой" передачи на изображение приходится всего один раздел из 396 макроблоков. В свою очередь каждый макроблок состоит из шести блоков, четыре из которых несут информацию о яркости Y, а по одному определяют цветовые U- и V-компоненты. Каждый блок представляет собой матрицу 8х8 элементов. Блоки являются базовыми структурными единицами, над которыми осуществляются основные операции кодирования, в том числе выполняется дискретное косинусное преобразование (DCT - discrete cosine transform) и квантование полученных коэффициентов.

Упрощенно процесс MPEG-кодирования сводится к следующему. На этапе предварительной обработки входной видеосигнал оцифровывается и форматируется согласно заданному размеру 352х288 и цветовой выборке 2:1 (на каждые 2 Y-отсчета по горизонтали и вертикали приходится по одному U- и V-отсчету). После этого кодер делает выбор структуры группы (она может меняться в процессе кодирования в зависимости от содержания видео и разрешенного объема передаваемой информации), задает типы всех изображений и по необходимости меняет их последовательность. Далее для I -изображений он осуществляет DCT каждого макроблока. Для Р- и В-изображений он сначала оценивает вектора смещения - по одному на макроблок для Р (для предсказания вперед) и по 2 для В (вперед и назад). Затем, сравнивая число бит, необходимое для кодирования макроблока как в случае предсказания его значений на основе соответствующих макроблоков из предыдущего (для Р) и последующего (для В) изображений, так и без оного предсказания, кодер по каждому макроблоку принимает отдельное решение и осуществляет DCT - либо собственных значений макроблока, либо его разностных (относительно предсказанных) значений. После этого полученные коэффициенты DCT подвергаются квантованию с переменным шагом - более высоким частотам задается больший шаг. В результате большинство высокочастотных коэффициентов принимают нулевые значения, что позволяет математически эффективно их кодировать. Изменяя масштаб квантования, кодер реализует компромисс между качеством кодированных изображений (тем хуже, чем больше масштаб) и объемом передаваемой информации (тем меньше, чем больше масштаб). Это особенно важно для систем с фиксированной пропускной способностью. Поскольку в видео информационная насыщенность изображений меняется со временем, то кодер должен постоянно отслеживать реальный объем передаваемых данных и оперативно менять масштаб квантования (и, конечно, значения других параметров). Безусловно, этот процесс не может быть абсолютно точным, поэтому кодер (как и декодер) обладает буфером памяти, в который предварительно записывается переменный поток данных, и из которого этот поток передается с заданной скоростью. Чем больше размер этого буфера, тем большие изменения объема данных на изображение относительно среднего уровня допускаются. В стандарте буфер установлен как 327 680 бит (40 Кб), что при скорости 200 Кб/с соответствует 0,2 с. Таким образом, кодер должен следить за реальным состоянием буфера, не допуская его переполнения (часть данных будет потеряна) или не дополнения (качество передаваемых изображений будет неоправданно низким). В результирующем потоке кодер должен передавать как собственно математически закодированные значения коэффициентов DCT, так и выбранные значения всех параметров кодировки (вид матрицы квантования и ее масштаб, тип предсказания макроблока и значения векторов смещения, структуру группы и т.д.). Декодеру остается сравнительно простая работа - принять в буфер и расшифровать (шифр задан стандартом) полученную информацию, осуществить обратные преобразования и отобразить полученное видео на мониторе.

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

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4