Компенсация движения является одной из важнейших составных частей стандартов MPEG-2 (рисунок 9.5). Метод компенсационного предсказания движения позволяет значительно уменьшить временную избыточность видеопотока. Если следующий кадр содержит сдвинутые части предыдущего кадра, то в этом случае выгодно передавать не весь кадр, а только информацию о движении и изменении сдвинутого пикселя. Ввиду высокой пространственной корреляции достаточно передавать один общий вектор движения для макроблока размером 16 ´16 пикселей [20-22].
Рисунок 9.5 - Иллюстрация принципа компенсации движения
Для корректного восстановления видеопотока последовательность декодирования кадров должна отличаться от последовательности их передачи и показа зрителю. Так как внутри группы кадров, состоящей обычно из 12 кадров, каждый B кадр восстанавливается по окружающим его P кадрам (в начале и конце группы - по I и Р), а в свою очередь каждый Р кадр - по предыдущему Р (или I) кадру, I кадры могут быть восстановлены независимо от других, они являются опорными для всех P и B кадров группы.
|
|
На рисунке9.6 приведена общая схема гибридного кодера. Видеопоследовательность кодируется кадр за кадром. Видеокодер обрабатывает кадр Fn и производит закодированный (сжатый) битовый поток, а декодер использует этот битовый поток для построения реконструированного кадра F'n, который чаще всего не идентичен исходному кадру Fn. Большинство функций декодера, имеются в кодере.
Имеется два основных пути прохождения данных в кодере: кодирование и реконструкция.
Процесс кодирование производится в следующем порядке:
1) Очередной видеокадр Fn подаётся на вход кодера и обрабатывается там макроблоками (соответствующими областям из 16 ´16 сэмплов яркости и хроматичности).
2) Кадр Fn сравнивается со ссылочным кадром, например, с ранее закодированным кадром F'n- 1. Функция оценки движения находит в F'n- 1, (или в интерполированной по подсэмплам версии кадра F'n-1)область 16 ´ 16, которая больше других «похожа» на текущий макроблок в Fn (при этом используется некоторый критерий схожести макроблоков). Смещение текущего макроблока по отношению к положению выбранного ссылочного макроблока записывается в вектор движения VM.
3)На основе выбранного вектора движения VM строится прогноз компенсированного движения P (область 16 ´ 16, выбранная функцией оценки движения).
Рисунок 9.6 - Кодер гибридной модели
4) Макроблок P вычитается из текущего макроблока, и их разность D называется остаточным макроблоком.
5) Макроблок D преобразуется с помощью ДКП. Обычно макроблок D делится на подблоки 8´8 или 4 ´ 4, и каждый подблок преобразуется отдельно.
|
|
6) Каждый подблок квантуется (X).
7) Для коэффициентов ДКП всех подблоков делается переупорядочение и результат кодируется символами «серия - значение».
8) Коэффициенты, векторы движения и связанные с ними информационные заголовки каждого макроблока кодируются энтропийным кодером для получения выходного сжатого битового потока.
Реконструкция данных предусматривает всего два шага:
1) Для каждого квантованного макроблока X делается его деквантование и обратное преобразование для получения декодированного остаточного макроблока D’. Заметим, что процедура квантования не является обратимой, поэтому макроблок D’ в большинстве случаев не совпадает с D (то есть здесь вносится искажение).
2) Прогноз компенсации движения P складывается с D’ для получения реконструированного макроблока, который сохраняется в реконструированном кадре F’n.