Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


3.6. Гибридная модель DPCM/DCT видеокодека

Большинство стандартов видеокодирования, реализованных после 1990 года, основаны на некоторой единой модели видеокодека, которая включает оценку движения и компенсацию высоких частот (эта конструкция обозначается сокращением DPCM), стадию преобразования и энтропийный кодер. Такую конструкцию часто называют гибридной моделью DPCM/DCT. Любой кодек, совместимый со стандартами Н.261, Н.263, MPEG-1, MPEG-2, MPEG-4 Visual и Н.264, должен содержать в себе соответствующее семейство базисных функций кодирования и декодирования (при этом имеются значительные различия между их реализациями и приложениями).

На рис. 3.50 и 3.51 приведены общие схемы гибридного кодера и декодера DPCM/DCT. Видеокодер обрабатывает кадр  и производит закодированный (сжатый) битовый поток, а декодер использует этот битовый поток (показанный справа на рисунках) для построения реконструированного кадра , который чаще всего неидентичен исходному кадру . Рисунки специально расположены так, чтобы подчеркнуть общие блоки в кодере и декодере. Большинство функций декодера, на самом деле, имеются в кодере (причина этого будет объяснена позже).

Рис. 3.50. Кодер DPCM/DCT.

Рис. 3.51. Декодер DPCM/DCT.

Поток данных кодера. Имеется два основных пути прохождения данных в кодере: слева направо (кодирование) и справа налево (реконструкция). Поток кодирования состоит в следующем.

1. Входной видеокадр  подается на вход кодера и обрабатывается там макроблоками (соответствующими областям из 16 х 16 сэмплов яркости и хроматичности).

2. Кадр  сравнивается с ссылочным кадром, например с ранее закодированным кадром . Функция оценки движения находит в , (или в интерполированной по подсэмплам версии кадра ) область 16 х 16, которая больше других «похожа» на текущий макроблок в  (при этом используется некоторый критерий схожести макроблоков). Смещение текущего макроблока по отношению к положению выбранного ссылочного макроблока записывается в вектор движения .

3. На основе выбранного вектора движения  строится прогноз компенсированного движения  (область 16 х 16, выбранная функцией оценки движения).

4. Макроблок  вычитается из текущего макроблока, и их разность  называется остаточным макроблоком.

5. Макроблок  преобразуется с помощью DCT. Обычно макроблок  делится на подблоки 8x8 или 4 х 4, и каждый подблок преобразуется отдельно.

6. Каждый подблок квантуется ().

7. Для коэффициентов DCT всех подблоков делается переупорядочение и результат кодируется символами «серия-значение».

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

Поток реконструкции данных.

1. Для каждого квантованного макроблока  делается его деквантование и обратное преобразование для получения декодированного остаточного макроблока . Заметим, что процедура квантования не является обратимой, поэтому макроблок  в большинстве случаев не совпадает с  (т.е. здесь вносится искажение).

2. Прогноз компенсации движения  складывается с  для получения реконструированного макроблока, который сохраняется в реконструированном кадре .

Поток данных декодера.

1. Сжатый поток битов декодируется энтропийным декодером для извлечения из него коэффициентов преобразования, векторов движения и заголовков каждого макроблока.

2. Обращается кодирование «серия-значение», и делается обычное упорядочение коэффициентов. В результате получается квантованный преобразованный макроблок .

3. Макроблок деквантуется, и к результату применяется обратное преобразование DCT, что дает остаточный макроблок .

4. Декодированный вектор движения используется для нахождения позиции области 16 х 16 на предыдущем (ссылочном) кадре , копия которого хранится декодером. Эта область становится прогнозом с компенсацией движения .

5. Макроблок  прибавляется к , и получается восстановленный макроблок, который сохраняется на своей позиции на декодированном кадре .

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

Из рисунков, а также из приведенных объяснений видно, что кодер содержит в себе часть функций декодера (деквантование, IDCT, реконструкция). Это необходимо, чтобы быть уверенным в том, что и кодер, и декодер работают с одними и теми же ссылочными кадрами  для получения прогноза компенсации движения.

 



<< ПредыдущаяОглавлениеСледующая >>