DC-коэффициенты блоков цветоразностных составляющих кодируются на основе значений соответствующих блоков предыдущих макроблоков. Вначале каждого слоя, а также если предыдущий макроблок был пропущен, это значение также устанавливается в половину максимума.
Часто применяют также нормирование DC-коэффициентов, устанавливая опорное значение в нуль и «центрируя» их вокруг нуля, а не вокруг половины максимального значения.
Далее коэффициенты кодируются кодером длин серий и кодером Хаффмана. Кодер генерирует последовательности бит в соответствии с заранее заданными таблицами, в которых указаны не все возможные комбинации. В случае отсутствия нужной комбинации используются ESC-последовательности, также задаваемые таблично. Запись дополнительной информации возможна за счет варьирования кодовыми словами энтропийного кодера.
В конце каждого блока передается символ окончания блока.
Основное сжатие достигается за счет межкадрового кодирования видео, заключающееся в предсказании одних кадров на основе других. Понятно, что должны существовать некие опорные кадры, на основе которых ведется предсказание, и предсказываемые кадры. Предсказание может вестись на основе предыдущего кадра или на основе предыдущего и последующего кадра. В соответствии с этим выделяют три типа кадров:
- I-тип – кодируются автономно аналогично неподвижным изображениям, как было рассмотрено ранее. Так как эти кадры нужны для обеспечения произвольного доступа к видео, они должны появляться в последовательности не реже 2 раз в секунду, а если кодируемая сцена высоко динамична, то и чаще;
- Р-тип – предсказываются на основе ближайшего предыдущего кадра I-типа или Р-типа;
- В-тип - предсказываются на основе ближайших предыдущего и последующего кадров I-типа или Р-типа. Эти кадры обеспечивают наибольшее сжатие и шумоподавление (так как происходит усреднение). Обычно эти кадры не идут подряд.
Алгоритмы кодирования В-кадров зависят от характера исходного изображения. Предусмотрено четыре способа кодирования. В одном применяется компенсация движения и предсказание вперед по ближайшим предшествующим опорным I- или Р-кадрам, в другом - компенсация движения и обратное предсказание по ближайшим последующим I- или Р-кадрам. Обратное предсказание используется в тех случаях, когда в кодируемом В кадре появляются новые объекты изображения. Третий алгоритм - компенсация движения и двунаправленное предсказание, при котором опорными являются предшествующий или последующий I- или Р-кадры. И, наконец, это внутрикадровое предсказание без компенсации движения. Такое кодирование нужно при резкой смене передаваемых сюжетов, а также при больших скоростях перемещения объектов ТВ изображения. С В-кадрами связано наиболее глубокое сжатие видеоданных. Поскольку высокая степень сжатия снижает точность восстановления исходного изображения, В-кадры не используются в качестве опорных. Ошибки при их декодировании не распределяются по другим кадрам.
Очевидно, что точность кодирования получается максимальной для I-кадров, ниже для Р-кадров и минимальной для В-кадров.
Типичным является следующий порядок кодирования I, Р, В кадров: В кодере вырабатываются группы кадров, состоящие из 12 чередующихся кадров: I0, B1, B2, P3, B4, B5, P6, B7, B8, P9, B10, B11, I12, B13, B14, P15 и т. д. Возможен и другой порядок следования кадров.
При передаче по каналу связи порядок следования I, Р и В кадров меняется. В декодер в начале поступают опорные I- и Р-кадры, без которых нельзя начать декодирование. Типичным является следующий порядок передачи I-, P-, B-кадров: I0, P3, B1, B2, P6, B4, B5, P9, B7, B8, I12, B10, B11 - P15, B13 и т. д.
Когда поля кодируются самостоятельно, то они следуют в последовательности один за другим. При этом если первое поле P(B)-типа, то и второе P(B)-типа. Если первое поле I-типа, то второе может быть I- или P-типа.
В последовательности может не содержаться кадров P-, B- или I-типа. Если в последовательности нет кадров B-типа, то порядок отображения кадров при декодировании естественный. Если кадры B-типа имеются, то выполняется переупорядочивание согласно следующим правилам:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.