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

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


5.3.2.2. Вазовые инструменты кодирования

I- VOP. Прямоугольный объект I-VOP - зто кадр, закодированный в моде intra (без прогноза по другому VOP). Стадии кодирования и декодирования показаны на рис. 5.7.

DCT и IDCT: Блоки 8x8 сэмплов яркости и хроматичности преобразуются с помощью прямого косинус-преобразования на стадии кодирования, а обратное косинус-преобразование применяется при декодировании блоков 8x8 (см. § 3.4).

Квантование: Стандарт MPEG-4 Visual специфицирует метод деквантования («обратного квантования») квантованных коэффициентов преобразования при декодировании. Этот метод контролируется параметром квантователя QP, который может принимать значения от 1 до 31 (большие величины QP делают больший шаг квантования, а значит, производят большее сжатие и вносят больше искажений). Стандарт описывает два метода деквантования — «метод 2» (основной) и «метод 1» (более гибкий, но и более сложный). Метод 2 обращает процедуру квантования следующим образом. Коэффициент DC макроблока, закодированного модой intra, деквантуется по формуле

                  (5.1)

где  - квантованный коэффициент; DC - деквантованный коэффициент; dc_scaler - параметр, задаваемый стандартом. В моде с коротким заголовком (см. далее) параметр dc_scaler равен 8 (т.е. все квантованные intra-DC коэффициенты умножаются на 8), а в других случаях параметр dc_scaler вычисляется по табл. 5.4 в зависимости от величины QP. Все остальные коэффициенты преобразования (включая АС и inter-DC) деквантуются по следующим правилам:

     (5.2)

где  - квантованный коэффициент;  - деквантованный коэффициент. Знак  совпадает со знаком . Прямое квантование стандартом не задается.

Таблица 5.4. Величины параметра dc_scale в зависимости от QP.

Тип блока

QP < 4

5 < QP < 8

9 < QP < 24

25 < QP

Яркость

8

2  х QP

QP + 8

2  х QP - 16

Хроматичность

8

(QP + 13)/2

(QP + 13)/2

QP-6

Сканирование зигзагом: Делается переупорядочение матрицы квантованных коэффициентов DCT по зигзагу (см. § 3.4).

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

Энтропийный кодер: Информационный заголовок и последовательность триплетов («конец», «серия», «значение») представляются кодами переменной длины VLC. Эти коды подобны кодам Хаффмана, и они задаются стандартным образом на основании предварительных вычислений вероятностей или частот появления соответствующих кодируемых элементов.

Закодированный объект I-VOP состоит из заголовка VOP, необязательного пакетного заголовка и кодированных макроблоков. Каждый макроблок кодируется заголовком, который задает тип макроблока, определяет, какие блоки макроблока содержит кодированные коэффициенты, сигнализирует о смене параметра квантования и т.п. Далее следуют коэффициенты всех блоков 8x8.

При декодировании из последовательности кодов VLC извлекаются квантованные коэффициенты преобразования, которые деквантуются, после чего применяется обратное преобразование IDCT. В итоге получается восстановленный I-VOP (рис. 5.7).

Р-VOP. Объект Р-VOP кодируется в моде прогноза inter с помощью ранее закодированного объекта I-VOP или P-VOP (ссылочный VOP). Стадии кодирования и декодирования показаны на рис. 5.8.

Оценка и компенсация движения: Схема компенсации движения построена на основе анализа макроблоков пикселов 16 х 16 (см. гл. 3). Смещение текущего макроблока по отношению к компенсирующему макроблоку на ссылочном кадре (вектор движения) может иметь полупиксельное разрешение. Прогнозируемые сэмплы на полупиксельных позициях вычисляются с помощью билинейной интерполяции реальных сэмплов на целочисленных позициях. Разработка метода оценки движения (выбора «наилучшего» вектора движения) оставлена проектировщикам кодеков. Подходящий макроблок (прогноз) вычитается из текущего макроблока для получения остаточного макроблока (он называется прогнозом компенсации движения. МСР, Motion-Compensated Prediction, см. рис. 5.8).

После компенсации движения остаточный макроблок преобразуется с помощью DCT, квантуется, переупорядочивается, представляется элементами «серия-значение» и, наконец, кодируется энтропийным кодером. Квантованный остаток деквантуется и обращается кодером для получения своей копии декодированного макроблока (он будет использоваться для прогнозов компенсации движения следующих P-VOP). Закодированный P-VOP состоит из заголовка VOP, необязательного заголовка видеопакета и кодированных макроблоков, содержащих заголовок (на этот раз включающий закодированные разности векторов движения), и кодированные остаточные коэффициенты каждого блока 8x8.

Декодер формирует макроблок прогноза компенсации движения на основе принятого вектора движения и своей копии ссылочного VOP. Декодированный остаток добавляется к прогнозу для получения реконструированного макроблока (он называется реконструкцией компенсации движения. MCR, Motion-Compensated Reconstruction, см. рис. 5.8).

Макроблоки P-VOP можно кодировать как в моде inter (с прогнозом компенсации движения из ссылочного VOP), так и в моде intra (без прогноза компенсации движения). Как правило, мода inter дает лучшее сжатие макроблока, а мода intra может быть полезной в областях, для которых не находится достаточно похожего макроблока в предыдущем VOP, например около границ видеокадров, где появляются новые объекты сцены.

Короткий заголовок. Инструмент «короткий заголовок» обеспечивает совместимость видеостандартов MPEG-4 Visual и ITU-T Н.263. Объекты I-VOP и P-VOP, закодированные в моде с коротким заголовком, имеют идентичный синтаксис с изображениям типа I и Р базовой моды Н.263. Это означает, что объекты I-VOP и P-VOP стандарта MPEG-4 Visual будут правильно декодироваться декодерами Н.263 и, наоборот, битовый поток Н.263 будет корректно обрабатываться кодеками MPEG-4 Visual.

В моде с коротким заголовком макроблоки VOP организованы в группы блоков GOB (Group Of Blocks), каждый из которых состоит из одного или нескольких полных рядов макроблоков. Каждый GOP может (опционно) начинаться маркером ресинхронизации (код фиксированной длины, который дает возможность декодеру сделать подстройку в случае возникновения ошибки, см. § 5.3.2.4).

 

 



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