В процессе MPEG кодирования устраняются избыточные видеоданные в серии рядом расположенных кадров.
Два соседних кадра обычно содержат много одинаковых элементов изображения. Информация в них отличается на малую часть от всей информации содержащейся в кадре. Производится сжатие видео, при котором используются не все данные каждого видеокадра, а динамика изменений кадров, так как в большинстве последовательных кадров одного видео-сюжета фон почти не изменяется, а хорошо заметные изменения происходят на переднем плане.
Например, происходит плавное перемещение небольшого объекта на фоне неизменного заднего плана. В этом случае полная информация о изображении сохраняется только для опорных изображений. Для остальных кадров оцифровывается только разностная информация: о положении объекта, направлении и величине его смещения, о новых элементах фона, открывающихся за объектом по мере его движения. Причем эта разностная информация вычисляется не только по сравнению с предыдущими изображениями, но и с последующими (поскольку именно в них по мере движения объекта открывается ранее скрытая часть фона).
Процесс сокращения данных производится следующим образом. Прежде всего создается опорный кадр (I, Intra frame).
Опорные I-кадры используются для восстановлении остальных кадров и размещаются последовательно через каждые 10-15 кадров. Только некоторые фрагменты кадров, которые находятся между I-кадрами, успевают измениться, и именно эти изменения фиксируются в процессе сжатия.
Кроме I-кадров, в MPEG различают еще два типа кадров:
предсказуемые кадры (P, Predicted), содержащие разность текущего изображения с предыдущим I кадром или с учетом смещений отдельных фрагментов;
двунаправленные предсказуемые кадры (B, Bidirectionally-predictive), содержащие только отсылки к предыдущим или последующим кадрам типа I или P с учетом смещений отдельных фрагментов.
I-кадры составляют основу MPEG потока и через них осуществляется случайный доступ к какому-либо отрывку видео. Сами I-кадры для обеспечения визуально высокого качества сжимаются незначительно.
P-кадры кодируются относительно предыдущих кадров (I или P) и используются как сравнительный образец для дальнейшей последовательности P-кадров. В этом случае достигается высокий уровень сжатия.
B-кадры кодируются с высокой степенью сжатия. Для привязки B-кадров к видеопоследовательности необходимо использовать не только предыдущее, но и последующее изображение. B-кадры никогда не используются для сравнения.
I, P, B кадры объединяются в группы (GOP- Group Of Pictures), представляющие собой минимальный повторяемый набор последовательных кадров, например:
Кадры состоят из макроблоков, представляющих собой небольшие фрагменты изображения размером 16 × 16 пикселов. Процессор MPEG-энкодера анализирует кадры и ищет идентичные или очень близкие макроблоки, сравнивая базовый и последующие кадры. В результате сохраняются только данные о различиях между кадрами, называемые вектором смещения (vector movement code). Макроблоки, которые не содержат изменений, игнорируются, и количество данных для передачи, таким образом, значительно снижается. Для снижения влияния ошибок при передаче данных последовательные макроблоки объединяют в независимые друг от друга разделы (slices). В свою очередь каждый макроблок состоит из шести блоков, четыре из которых несут информацию о яркости (Y), а остальные 2 блока несут информацию цветоразностных сигналов (U/V). Блоки являются базовыми единицами, над которыми осуществляются основные математические операции кодирования, например, дискретно-косинусное преобразование.
Используются схемы блоков 4:2:0 или для студийного (вещательного) качества 4:2:2.
Это важный момент, требующий более подробного пояснения:
Полезно знать, что полученные от видеокамеры цветовые RGB данные, могут быть эквивалентно представлены как сумма яркостного сигнала (Y) и двух цветоразностных сигналов (U и V), называемых хроматическими. Яркостной сигнал Y определяет яркость точки. Цветоразностные сигналы U и V вместе с Y-сигналом позволяют полностью восстановить исходные RGB данные.
Y вычисляется из RGB данных по формуле: Y = 0.299R + 0.587G + 0.114B
U и V сигналы вычисляются так: U = R - Y, а V = B – Y
При приёме сигнала происходит обратный процесс:
RGB данные вычисляются так: R = Y + U; B = Y + V; G = Y - 0.509U - 0.194V
Известно, что информация хроматических данных может быть сокращена в большей степени, чем яркостная информация, без видимого ущерба для качества восприятия изображения человеком.
Для видео стандартного разрешения используется рекомендация 601 [3] CCIR, определяющая - как компонентный (YUV) видео сигнал может быть оцифрован, чтобы сформировать дискретные пикселы.
Специалистами часто используются термины формат 4:2:2 и формат 4:2:0, чтобы описать структуру осуществления выборки цифрового изображения:
- формат 4:2:2 означает, что частота горизонтальных выборок хроматических данных сокращена в два раза по сравнению с яркостными данными;
- формат 4:2:0 означает, что частота как горизонтальных так и вертикальных выборок хроматических данных сокращена в два раза по сравнению с яркостными данными.
Согласно рекомендации 601 CCIR, активная область оцифрованного телевизионного кадра (SD) представлена 576 линиями по 720 пикселей в каждой, с частотой кадров 25 гц. При использовании по 8 битов для записи значения каждого из яростных и хроматических параметров (Y, U/V), полный размер потока оцифрованного некомпрессированного видео будет следующим для схем 4:2:2 и 4:2:0:
В то же время, видео сжатое MPEG 2-кодером до потока всего 5-6 Мб/с визуально воспринимается как совершенное высококачественное изображение.
Таким образом MPEG кодеры сокращают следующие видео данные:
сокращается временная избыточность (кодируется только разностная информация).
сокращается пространственная избыточность путем исключения мелких деталей там где при просмотре сюжета это визуально не заметно.
сокращается незначащая часть данных цветности.
Кроме сокращения данных в процессе MPEG кодирования повышается информационная плотность результирующего цифрового потока путем использования эффективного математического кода для его описания.