ГлавнаяПроектыФотографияМатериалыКарта узлаО себе(версия для печати)

Цифровой формат видеозаписи MPEG-2

читайте также по теме: Стандарты видеозаписи
Можно сказать, что цифровая революция свершилась окончательно, и хранение аудио/видео информации не в цифровом виде считается расточительством. Но объем данных, требуемый для представления аудио, а тем более видео, очень внушителен, поэтому для хранения в цифровом виде используют различные методы сжатия. Рассмотрим один из наиболее успешных форматов представления видеоинформации MPEG-2.

Цифровой формат видеозаписи M.P.E.G.-2 (Motion Picture Expert Group)

Для представления видеопотока в цифровом виде пришлось решить немало проблем. Большие сложности составила проблема совместимости с существующими аналоговыми форматами (PAL, SECAM, NTSC). Стандарт CCIRR-601 определил базовые характеристики для видеопотоков 720×576×25 кадров/сек (совместимость с PAL), 720×480×30 (совместимость с NTSC). Для хранения такого количества данных требуются огромные ресурсы, поэтому очевидно, что необходимо применять сжатие информации. Но сжимать видеоизображения без потерь невозможно из-за большой энтропии, поэтому приходится применять алгоритм сжатия с потерями качества.

Структура потока

Иерархия потока выделяет несколько уровней: собственно сам видеоряд (sequence), группа кадров (GOP, Group Of Pictures), срез (slice), макроблок (macroblock) и блок (block). Видеоряд начинается с заголовка, содержит одну или несколько групп кадров и заканчивается суффиксом (end-of-sequence code). Группы кадров, содержащие свои собственные заголовки, позволяют осуществлять быструю навигацию в потоке.

Кадр является единицей кодирования информации видеоряда. Кадр состоит из трех прямоугольных матриц, одна из которых содержит информацию о яркости (Y — luminance), а две другие о насыщенности (Cb — blue chrominance, Cr — red chrominance) синего и красного цветов элементов изображения. Матрица Y имеет вдвое меньшую ширину и высоту по отношению к размерам кадра, а матрицы Cb и Cr — в 4 раза. Вообще-то, допускается кодирование с соотношениями: 4:2:0, 4:2:2 и 4:4:4. Где 4:2:0 означает, что матрицы Cb и Cr имеют половинное разрешение по вертикали и по горизонтали, то есть они меньше в 4 раза. 4:2:2 — матрицы цветности имеют уменьшенное в два раза разрешение только по горизонтали, и 4:4:4 — Cb и Cr имеют полное разрешение. Срез — это один или более смежных макроблоков, которые упорядочены слева-направо и сверху-вниз. Группирование макроблоков в срез позволяет усилить устойчивость к сбоям и ошибкам в потоке. Макроблок представляет собой квадратный 16×16 фрагмент кадра и состоит из четырех Y блоков, одного Cb и одного Cr блока. В свою очередь блок представляет собой квадратную матрицу 8×8 яркости или насыщенности.

Типы кадров

Формат MPEG использует следующие 3 типа кадров в группе:

Вступительные (опорные) кадры представляют собой сжатые по алгоритму, аналогичному JPEG, кадры изображения. Они несут смысл опорных кадров в группе, так как по ним можно построить другие кадры. Для увеличения степени сжатия анализируется корреляция кадров, вычисляется разница как с предыдущими кадрами, так и со следующими. Разница текущего кадра со вступительным оформляется в виде дельта-кадра (P-Picture), если в группе более одного дельта-кадра, то все последующие дельта-кадры «опираются» на предыдущие, соответственно. Кадры, «опирающиеся» как на предыдущие, так и на последующие, аппроксимируют разницу кадров (B-Picture).

Основные этапы кодирования

Перво-наперво, кадр изображения разбивается на макроблоки и блоки. В зависимости от выбранной модели сжатия количество блоков в макроблоке может отличаться. Каждому Y, Cb и Cr блоку сопоставляется матрица соответствующего размера.

Далее над матрицами производится прямое дискретное косинус-преобразование (пДКП, fDCT, forward Discrete Cosine Transform) каждого 8×8 блока (разложение в спектр). Одномерное ДКП по n дискретным значениям амплитуды сигнала формирует вектор длины n, состоящий из коэффициентов разложения. То есть рассматривая строку матрицы как вектор значений амплитуды некоего сигнала, можно применить одномерное ДКП. В результирующем векторе сначала будут находиться низкочастотные, а в конце — высокочастотные компоненты сигнала.

Dst k   =   7 i   =   0 c i   ·   Src i   ·   cos   π 8   k   +   1 2   i ,

где c 0   =   128 , c 1 . . 7   =   2 .

После обработки строк матриц, ДКП применяется для столбцов.

Dst k   =   7 i   =   0 c i   ·   Src 8i   ·   cos   π 8 k   +     1