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