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

Цифровой формат видеозаписи 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= 128

c
1..7
=
2

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

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

c=
1
1024
c
1..7
=
1
1024
·
2

В итоге получается матрица коэффициентов разложения, которая в левом верхнем углу содержит низкочастотные составляющие, а правом нижнем — высокочастотные.

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

После квантования часть коэффициентов из-за выравнивания сравняется, а большинство малых коэффициентов округлится до нуля, образовав подобласти с нулевым значением. Это обстоятельство позволяет произвести упаковку длинных цепочек одинаковых значений методом группового кодирования (RLE, Run Length Encoding). Для этого квадратная матрица преобразуется зиг-заг обходом в вектор, и цепочки повторяющихся коэффициентов упаковываются в пары (длина, значение).

В формате MJPEG и MPEG-1 используется обычный для JPEG зиг-заг обход, но в MPEG-2 используется немного другой способ. Такой модифицированный обход повышает эффективность группового кодирования для чересстрочного видеопотока.

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

Характеристики потока

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

КачествоРазрешение и частота кадров<Пикселов/секМак. ширина потокаОбласть применения
Низкое352 × 240 × 303.05 M4 Мб/секCIF, аналогично бытовым видеозаписям
Среднее720 × 480 × 3010.40 M15 Мб/секCCIR 601, студийное телевидение
Высокое 14401440 × 1152 × 3047.00 M60 Мб/сек4× 601, студийное телевидение высокой четкости (HDTV)
Высокое1920 × 1080 × 3062.70 M80 Мб/секSMPTE 240 std, кинопроизводство

8 декабря 2000—29 апреля 2001
Максим Проскурня
Источники: Beginners Guide For MPEG-2 standard
1997–2024 Axofiber, axofiber.info