Главное


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

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

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

с0=128 с1 7=2^1/2

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

c0=l/1024 c1 7=c0*2^l/2

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

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

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

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

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

Матрица квантования для вступительного кадра

Зиг-заг обход Зиг-заг обход

MPEG-1 MPEG-2

Рисунок 8 - К вопросу об основных этапах кодирования по стандарту MPEG

Другие статьи по теме

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

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

Диспетчерский контроль движения поездов
Диспетчерский контроль движения поездов позволяет диспетчеру видеть на световом табло участка в каждый момент времени местонахождение всех поездов и состояние входных, выходных светофоро ...

www.techspirit.ru © 2019