Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy

.pdf
Скачиваний:
258
Добавлен:
15.03.2016
Размер:
23.26 Mб
Скачать

Глава14. Стандарты кодирования динамических изображений

двумерное дискретное преобразование и квантование коэффициентов преобразования;

статистическое кодирование данных.

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

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

В данном разделе рассмотрены синтаксис и структура видеопотока вышеуказанных стандартов.

Рекомендация ITU-T H.261 [5.28] была разработана для передачи видеоинформации при уровнях битового потока p × 64 кбита/с, где p может меняться от 1 до 30. Возможные приложения стандарта H.261 включают, например, видеотелефонную связь или видеоконференции в реальном масштабе времени. Стандарт включает как кодирование отдельных кадров в стиле JPEG, так и использование компенсации движения для устранения временной корреляции между кадрами. Таким образом, он относится к гибридным системам сжатия, использующим два метода устранения избыточности информации — в пространственной и временной областях. Методика аудиокодирования не включается в рамки стандарта H.261, но подразумевается использование одной из рекомендаций по аудиокодированию серии G, перечисленных в ITU-T H.320 [5.50] для узкополосных видеотелефонных систем (narrow-band visual telephone systems) и терминального оборудования (terminal equipment).

Форматы исходных данных — CIF и QCIF

Для того чтобы обеспечить преобразование данных различных визуальных сервисов к единому стандарту, был разработан формат CIF (common intermediate format, общий промежуточный формат). Для яркостной компоненты Y разрешение составляет 288 пикселов по вертикали и 360 пикселов по горизонтали, из которых не используются по четыре крайних пиксела слева и справа для обеспечения кратности 16. Используется цветовая модель — 4 : 2 : 0 с серединным расположением пикселов цветности. Таким образом, для яркости используется разрешение 352×288 (область значимых пикселов), а для обеих цветоразностных компонент разрешение 176 × 144. Используется также формат QCIF с половинным разрешением по горизонтали и по вертикали — 176×144 для яркости и 88×72 для цветности. Чересстрочная развертка не применяется. Иногда используется специальный формат CIF-NTSC, содержащий 240 вместо 288 строк, поскольку стандарт NTSC предусматривает меньшее разрешение поперек воспроизводимого растра.

Частота кадров по умолчанию составляет 30 000/1001 ≈ 29,97 кадров/сек, но может быть и понижена до 15 или 10 кадров/сек. Декодер должен быть способен

14.1. H.261 — первый стандарт видеокодирования МСЭ

Рис. 14.1. Структурная схема кодера стандарта H.261

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

Алгоритм кодирования

На рис. 14.1 приведена структурная схема кодирующего устройства [5.28]. Стандарт не специфицирует конкретных методов сжатия, и поиск наиболее

эффективных алгоритмов сжатия из набора возможностей является задачей разработчиков кодера. Отметим, что для передачи CIF-изображения по каналу DS0 (64 кбита/сек) степень сжатия должна превышать 300 : 1.

В целом в алгоритме кодирования можно выделить следующие этапы: 1. Входной поток подвергается предварительной обработке:

если исходное изображение передается в виде чересстрочных полей, то из них формируются кадры с прогрессивной разверткой; кадры передискретизуются до формата CIF или QCIF;

производится преобразование RGB в YDCRCB ; пикселы исходного изображения представляются восемью битами (от 0 до 255);

производится преобразование из формата цветности 4 : 4 : 4 в 4 : 2 : 0 (двукратная горизонтальная и вертикальная поддискретизация цветоразност-

Глава14. Стандарты кодирования динамических изображений

ных компонентов); для устранения возможных искажений в виде появления ложных элементов на границе объектов (aliasing) или смещения позиции (shifting) может применяться низкочастотная префильтрация.

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

3.Находятся ошибки предсказания движения, которые представляются девятью битами (от −256 до +255).

4.Проводится анализ информации о движении и принимается решение о способе кодирования макроблока.

5.В зависимости от результатов предыдущей стадии или исходный, или разностный сигнал подвергается дискретному косинусному преобразованию.

6.Осуществляется квантование коэффициентов ДКП. Количество возможных коэффициентов квантования — один для коэффициента ДКП с индексом (0,0) (так называемый DC-коэффициент) блоков без предсказания (INTRA-блоков)

и31 для всех остальных коэффициентов. Для всех коэффициентов ДКП макроблока (кроме INTRA DC) используется один коэффициент квантования. INTRA DC-коэффициент квантуется линейно с шагом 8 и без «мертвой зоны», остальные квантователи также линейны, но имеют «мертвую зону» около нуля, шаг квантования — четное число в диапазоне от 2 до 62. Восстанавливаемые после обратного квантования, ОДКП и предсказания значения пикселов ограничиваются в диапазоне 0 ÷ 255, т. е. значения, меньшие нуля, заменяются нулем, а значения, большие 255, заменяются на 255.

7.Z-упорядочивание и кодирование кодами переменной длины. На этом этапе необходимо строить выходной поток данных, поддерживая заданное значение битового потока, для чего требуется специальный алгоритм выбора уровня квантования. Этот алгоритм использует обратную связь между степенью заполнения буфера кодера и уровнем квантования коэфициентов: если заполнение буфера оказывается больше заданной пороговой величины, то уменьшается точность передачи данных.

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

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

Синтаксис видеопотока

Стандартом предусмотрено разбиение битового потока на четыре уровня [5.27]: уровень кадра, уровень группы блоков, уровень макроблока, уровень блока.

Уровень кадра состоит из заголовка и данных для групп блоков.

Заголовок кадра содержит стартовый код кадра (20 битов, 0000 0000 0000 0001 0000), временную метку кадра (5 битов — номер кадра), информацию о типе кадра (6 битов) и, возможно, дополнительную информацию (0/8/16 · · · + 1 бит).

Кадр состоит из 12 групп блоков (396 макроблоков) — для формата CIF или из 3 групп блоков (99 макроблоков) для формата QCIF.

14.1. H.261 — первый стандарт видеокодирования МСЭ

Группа блоков (33 макроблока) охватывает область 176×48 пикселов яркости и соответствующие им 88×24 пиксела цветоразностных сигналов.

Уровень группы блоков (GOB) состоит из заголовка и данных макроблоков. Заголовок группы блоков содержит стартовый код (16 битов, 0000 0000 0000 0001), номер группы блоков в кадре (4 бита), код коэффициента квантования (5 битов) и, возможно, дополнительную информацию (0/8/16 · · · + 1 бит).

Уровень макроблока (16 × 16 пикселов, 4 блока яркости; 8 × 8 пикселов, по 1 блоку цветности, всего 6 блоков) состоит из заголовка макроблока и данных блоков. Заголовок макроблока содержит адрес (код переменной длины с уникальным префиксом от 1 до 11 битов), тип (код переменной длины от 1 до 10 битов), код коэффициента квантования, если это определено типом макроблока (5 битов), горизонтальная и вертикальная компоненты вектора движения в дифференциальном виде, если это определено типом макроблока (код переменной длины от 1 до 11 битов), трафарет передаваемых блоков, если это определено типом макроблока (код переменной длины от 3 до 9 битов).

Тип макроблока определяет следующие параметры: с предсказанием (INTER) или без предсказания (INTRA); передается ли коэффициент квантования, или он не отличается от коэффициента квантования предыдущего макроблока; с компенсацией движения (передается вектор движения) или без нее; передаются ли коэффициенты блоков; используется ли фильтр при предсказании движения.

Макроблок содержит шесть блоков — четыре блока яркости и по одному цветоразностному блоку. Коэффициенты блока переупорядочены из двумерного в одномерный вид по определенному закону (так называемое Z-упорядочивание).

Уровень блока состоит из кодов коэффициентов блока (от 2 до 14 или 20 битов) и кода окончания блока (2 бита).

Коэффициенты блока в Z-порядке кодируются с помощью методики run-length: одним кодом обозначается последовательность нулей (run) и ненулевое значение после них (level). Наиболее часто встречающиеся пары кодируются кодами переменной длины, а остальные — специальным кодом (ESCAPE-код, 6 битов), за которым идут 6-битный код количества нулей (run) и 8-битный код ненулевого значения (level). Последние нули блока отбрасываются, и передается код конца блока.

Кодирование I-блоков. Процедура кодирования I-блоков похожа на методику кодирования неподвижных блоков стандарта JPEG. Однако в отличие от JPEG уровень квантования может быть переменным, и коэффициент квантования подбирается кодером.

Кодирование P-блоков. Процедура кодирования P-блоков гораздо сложнее процедуры кодирования I-блоков. Кодер должен выбрать метод кодирования макроблока. В этом случае также стандарт не предписывает какого-либо алгоритма, оставляя это на усмотрение разработчиков кодера. В описанных реализациях [5.51, 5.52] данный алгоритм осуществляется в несколько стадий.

1. Принимается решение, следует ли использовать компенсацию движения (MC/no MC decision), так как в случае отсутствия движения используется разность между текущим макроблоком и его несмещенным базовым макроблоком (формально это можно считать нулевым вектором движения). Тем самым достигается экономия за счет того, что вектор движения не передается. Для этого вычисляются сумма несмещенной разности между текущим макроблоком и его

Глава14. Стандарты кодирования динамических изображений

базовым макроблоком (то есть с нулевым вектором движения):

 

 

 

D1 =

|X(i, j) − X (i, j)|/256,

 

(14.3)

где X(i, j) — значения

яркостных пикселов в текущем кадре, X

(i, j) — значения

 

 

 

 

 

яркостных пикселов в опорном кадре, суммирование проводится по всем яркост-

ным пикселам макроблока, и та же сумма — для разности с вектором движения

(n, m):

 

 

 

 

 

 

 

D2 =

|X(i, j) − X (i + n, j + m)|/256.

 

(14.4)

На основе ряда

численных экспериментов была получена эмпирическая кривая

 

 

 

 

 

 

выбора решения (рис. 14.2), которую в силу ее простоты и малых численных

затрат часто используют разработчики коммерческих реализаций кодера [5.51].

Граничные точки на кривой считаются относящимися к области отсутствия ком-

пенсации.

 

 

 

 

 

 

 

 

 

 

Кривая имеет сложную форму в области не-

 

 

 

 

больших значений разностей, так как любое лож-

 

 

 

 

ное движение фона, вызванное медленным движе-

 

 

 

 

нием перемещающихся объектов, является крайне

 

 

 

 

нежелательным эффектом, заметно ухудшающим

 

 

 

 

визуальное качество изображения.

 

 

 

 

В P-блоках вектор движения передается с по-

 

 

 

 

мощью разностного кодирования, что обеспечивает

 

 

 

 

значительную экономию для изображений с дви-

 

 

 

 

жением, вызванным перемещением камеры, в кото-

 

 

 

 

рых векторы движения для большинства макроб-

 

 

 

 

локов будут примерно одинаковыми.

Рис. 14.2. Кривая выбора реше-

2. После получения информации об оптималь-

ном варианте компенсации движения кодер реша-

ния о компенсации движения

 

 

 

 

 

ет, следует ли ее использовать (т. е. использовать

нулевой или ненулевой вектор движения и кодировать разностный сигнал) или

кодировать исходный макроблок как I-блок (INTRA/NON-INTRA mode decision).

Это можно было бы сделать, сравнив количество битов, необходимое для пере-

дачи кодированной информации о макроблоке с компенсацией движения и без

нее при одинаковом коэффициенте квантования. Однако ввиду значительных

вычислительных затрат на эту процедуру на основе численных экспериментов

была получена эмпирическая кривая выбора решения о внутрикадровом или

межкадровом кодировании на основе сравнения дисперсий текущего макроблока

и разностного сигнала (рис. 14.3) [5.52]. Граничные точки на кривой считаются

относящимися к области межкадрового предсказания.

 

 

3. Дисперсия V1 для текущего макроблока вычисляется по следующей фор-

муле:

V1 = X2(i, j)/2562 − X(i, j)/256 2

 

 

 

,

(14.5)

а дисперсия V2 — для разностного сигнала, полученного с учетом принятого ре-

шения о компенсации движения, т. е. с использованием вектора движения (n, m),

нулевого или ненулевого, по следующей формуле:

 

 

 

V2 = (X(i, j) − X (i + n, j + m))2/256.

 

(14.6)

14.2. H.263. Видеокодирование для систем связи с низкой пропускной способностью

 

Исходя из рис. 14.3, внутрикадровое кодиро-

 

 

вание имеет смысл выполнять для макроблоков

 

 

с относительно меньшей дисперсией и относи-

 

 

тельно большой среднеквадратичной ошибкой

 

 

предсказания.

 

 

Для устранения блокинг-эффекта, связан-

 

 

ного с компенсацией движения, может произ-

 

 

водиться фильтрация. Спецификация фильтра

 

 

установлена стандартом. Фильтрация осуществ-

 

 

ляется для каждого блока в макроблоке (как

 

 

яркостных, так и цветоразностных блоков), для

 

 

которого выбран режим с фильтрацией. Как

Рис. 14.3. Кривая выбора решения

показали эксперименты, фильтрация ошибок в

кодере после компенсации движения дает луч-

о внутри или межкадровом кодиро-

вании

 

шие результаты, чем постфильтрация в декодере

 

 

[5.51].

 

 

4.После квантования коэффициентов ДКП некоторые блоки имеют все нулевые коэффициенты, и данный блок не требуется кодировать (coded/not coded decision). В заголовке макроблока записывается информация о том, какие именно блоки подлежат кодированию (CBP, coded block pattern).

5.В заключение принимается решение, следует ли изменять коэффициент квантования, установленный по умолчанию (quant/no quant decision). Визуальное восприятие изображения будет улучшаться, если применять переменный коэффициент квантования в зависимости от детальности в блоке и свойств зрительного анализатора при их восприятии. С другой стороны, уровень квантования должен выбираться исходя из требования обеспечения равномерности битового потока. Хотя данный вопрос является одним из наиболее существенных для улучшения визуального восприятия восстанавливаемого изображения, его однозначное решение до сих пор не найдено. Предлагаемые методы, основанные на оценке дисперсии и активности блока, величины нулевого коэффициента ДКП

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

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

Рекомендация ITU-T Н.263 определяет методику кодирования и декодирования движущихся изображений для систем передачи аудиовизуальной информации по каналам с низкой пропускной способностью [5.42]. Алгоритм кодирования аналогичен алгоритму из Рекомендации ITU-T Н.261 и является гибридным. Он использует межкадровое предсказание для устранения временной избыточности и кодирование с преобразованием остатков предсказания для устранения

Глава14. Стандарты кодирования динамических изображений

пространственной избыточности видеосигнала. Кодер может обрабатывать кадры пяти стандартных размеров: subQCIF, QCIF, CIF, 4CIF, 16CIF, предсказание движения может осуществляться с точностью до половины пиксела (в отличие от кодера, соответствующего Рекомендации Н.261, который поддерживает только два размера кадров, QCIF и CIF, и предсказание движения с точностью до пиксела). Кодек, соответствующий Рекомендации Н.263, может также поддерживать ряд дополнительных возможностей, улучшающих кодирование, в том числе: неограниченные векторы движения, арифметическое кодирование, улучшенное предсказание, РВ-кадры. Эти дополнительные возможности могут использоваться отдельно или вместе.

Режим с неограниченными векторами движения позволяет векторам движения указывать на области вне границ кадра. При этом отсутствующие пикселы заменяются граничными. Такой режим дает заметное повышение эффективности кодирования при движении объектов через границы кадра, особенно для малых форматов кадра.

Режим арифметического кодирования вместо кодирования кодами переменной длины позволяет сократить выходной поток данных при том же качестве восстанавливаемых изображений.

Врежиме улучшенного предсказания используется метод компенсации движения с перекрывающимися блоками для составляющей яркости предсказываемых кадров. Для части макроблоков могут использоваться четыре векторы движения — по одному на каждый блок яркости. Четыре вектора обеспечивают лучшее предсказание, но занимают больше места в выходном потоке, и, следовательно, кодер должен определять целесообразность использования четырех векторов для каждого конкретного макроблока. Использование этого режима дает существенное повышение качества кодирования, особенно учитывая то, что компенсация движения с перекрытием блоков приводит к уменьшению блокинг-эффекта

идругих артефактов кодирования.

Врежиме РВ-кадров вместе с Р-кадром может передаваться В-кадр — кадр, содержащий макроблоки с двунаправленным предсказанием (относительно предыдущего и текущего Р-кадров). В этом режиме кадровая скорость может быть существенно увеличена при незначительном росте скорости выходного битового потока. Размер закодированного кадра не должен превышать заданной в Рекомендации величины, которая зависит от размеров кадра.

Опорная частота кадров, номинальные значения яркости и цветности, формат представления цветности такие же, как в Рекомендации Н.261. В дополнение к двум стандартным размерам кодируемых кадров, описанным в Рекомендации Н.261 (QCIF и CIF), добавлены еще три размера кадра — subQCIF (128 ×96 пикселов яркости и 64 × 48 пикселов цветоразностных компонент), 4CIF (704 × 576

и352 × 288) и 16CIF (1408 × 1152 и 704 × 576).

Соотношение размеров сторон пиксела одинаково для всех форматов кадра

исоставляет, как и в Рекомендации Н.261, 43 × 288352 . Соотношение размеров сторон кадра составляет 4:3 для всех форматов, кроме subQCIF.

Все декодеры должны иметь возможность декодировать кадры формата subQCIF

иQCIF, остальные форматы являются необязательными. Кодер должен иметь возможность обрабатывать кадры одного из вышеперечисленных обязательных размеров.

14.2. H.263. Видеокодирование для систем связи с низкой пропускной способностью

Алгоритм кодирования в Рекомендации Н.263 аналогичен алгоритму, описанному в Рекомендации Н.261, однако имеются некоторые отличия.

Группы блоков состоят из k × 16 строк, где k зависит от формата кадра: 1 — для subQCIF, QCIF и CIF, 2 — для 4CIF, 4 — для 16CIF. То есть группа блоков состоит из одного, двух или четырех рядов макроблоков. Количество групп блоков в кадре составляет 6 — для формата subQCIF, 9 — для QCIF, 18 — для CIF, 4CIF и 16CIF. Данные для группы блоков состоят из заголовка, который может быть пустым, и данных макроблоков, составляющих группу блоков. Кадр может быть закодирован и без разбиения на группы блоков.

Компенсация движения производится с точностью полпиксела, возможна передача одного или четырех векторов движения для макроблока, возможна передача уточнения вектора движения для макроблока В-составляющей РВ-кадров. Стандартный диапазон векторов движения — [−16; +15, 5], в режиме неограниченных векторов движения полный диапазон изменения векторов — [−31, 5; +31, 5], но значение вектора движения не может отличаться от предсказателя на величину вне диапазона [−16; +15, 5]. В случае использования режима неограниченных векторов движения и/или улучшенного предсказания вектор движения может указывать за границы кодируемой части кадра.

Процедура квантования не отличается от описанной в Рекомендации Н.261. В отличие от Н.261 стартовые коды в потоке Н.263 должны быть выровнены по границе байта.

Иерархическая структура потока Н.263 аналогична структуре потока Н.261, но заголовки и данные различных уровней несколько отличаются.

Уровень кадра состоит из заголовка кадра, данных групп блоков и, возможно, кода окончания видеопоследовательности и дополнительных битов для выравнивания по границе байта следующего стартового кода. Заголовок кадра содержит: стартовый код (22 бита); временную метку (8 битов); информацию о типе кадра (13 битов), содержащую размер кадра, тип кадра (I, P, PB), флаги использования дополнительных режимов кодирования; код коэффициента квантования (5 битов); флаг включения многоточечного режима (1 бит); номер потока при включенном многоточечном режиме (2 бита); временную метку В-составляющей для РВ-кадра (3 бита); код уточнения коэффициента квантования В-составляющей для РВ-кадра (2 бита); флаг дополнительной информации (1 бит) и, возможно, дополнительную информацию (0/8/16 . . . битов).

Уровень группы блоков (GOB) состоит из заголовка (возможно, пустого) и данных макроблоков. Заголовок группы блоков содержит: биты выравнивания по границе байта (от 0 до 7 битов); стартовый код (17 битов); номер группы (5 битов); номер потока при включенном многоточечном режиме (2 бита); идентификатор кадра, одинаковый для всех групп блоков в кадре (2 бита); код коэффициента квантования (5 битов).

Уровень макроблока состоит из заголовка макроблока и данных блоков. Заголовок макроблока содержит: индикатор кодирования макроблока (1 бит, если он равен 1, то информация о данном макроблоке не передается); код типа макроблока и трафарета присутствия кодов блоков цветности (от 1 до 9 битов); код типа В-блоков для РВ-кадров (1–2 бита); трафарет присутствия кодов В-блоков для РВ-кадров (6 битов); код трафарета присутствия кодов блоков яркости (2–6 битов); код уточнения коэффициента квантования (2 бита); коды горизонтальной

Глава14. Стандарты кодирования динамических изображений

ивертикальной компонент вектора движения для макроблоков с предсказанием движения (1–13 битов); коды горизонтальной и вертикальной компонент второго, третьего и четвертого векторов движения для макроблоков с четырьмя векторами движения (1–13 битов); коды горизонтальной и вертикальной компонент вектора движения В-макроблока РВ-кадра (1–13 битов).

Уровень блока содержит закодированную информацию о блоках. В макроблоках кадров I- и Р-типа содержится по 6 блоков (4 блока яркости и два цветоразностных), а в РВ-кадрах — 12 (еще 6 блоков В-составляющей кадра). Нулевой коэффициент I-макроблока присутствует в потоке всегда, наличие кодов остальных коэффициентов блоков указывается в заголовке макроблока в информации о типе и/или в трафаретах присутствия блоков. Перед кодированием коэффициенты блока располагаются в Z-порядке (см. описание Рекомендации Н.261). Нулевой коэффициент I-макроблока кодируется кодом постоянной длины 8 битов, остальные коэффициенты кодируются кодами переменной/постоянной длины следующим образом: каждое «событие» заменяется кодом; «событие» состоит из длины цепочки нулей (run), значения ненулевого коэффициента после цепочки нулей (level) и признака окончания блока (цепочка нулей, которой оканчивается блок, отбрасывается). Наиболее часто встречающиеся «события» кодируются кодами переменной длины, остальные — 22-битным кодом, состоящим из 7 битов признака кодирования кодами постоянной длины (ESCAPE-код), 1 бита признака окончания блока (last), 6 битов run и 8 битов level.

Векторы движения макроблоков в стандартном режиме кодирования передаются в дифференциальном виде с использованием предсказания. Предсказатель вектора движения определяется по медианному значению векторов трех соседних макроблоков (рис. 14.4).

Рис. 14.4. Алгоритм предсказания вектора движения макроблоков

Векторы движения для цветоразностных компонент макроблоков в два раза меньше, чем для яркостных компонент. Для получения предсказания с точностью до полпиксела используется линейная интерполяция промежуточных значений пикселов в опорном кадре.

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

14.2. H.263. Видеокодирование для систем связи с низкой пропускной способностью

на значения на границе. Второе — увеличение диапазона возможных значений вектора движения.

Диапазон [−16; 15, 5] расширяется до [−31, 5; 31, 5] при некотором ограничении: если предсказатель вектора лежит в диапазоне [−16; 15, 5], то значение вектора отличается от предсказателя не более чем на [−16; 15, 5].

Стандарт предусматривает уточнение векторов движения четырех блоков каждого макроблока (рис. 14.5).

Рис. 14.5. Алгоритм предсказания векторов движения четырех блоков

Врежиме арифметического кодирования все процедуры кодирования кодами переменной длины заменяются на неадаптивное арифметическое кодирование нулевого порядка. Таблицы вероятностей для инициализации процессов кодирования/декодирования стандартизованы. При этом немного меняется синтаксис уровня блока — особым образом кодируются первые три «события» (last-run- level).

Режим улучшенного предсказания включает компенсацию движения с перекрытием макроблоков и использование четырех векторов движения на макроблок. В этом режиме также возможен выход вектора движения за границы кадра, но расширенный диапазон векторов движения возможен лишь при совместном использовании этого режима и режима неограниченных векторов движения. Предсказание движения с перекрытием макроблоков используется только для Р-макроблоков в Р- и РВ-кадрах. При использовании четырех векторов движения на макроблок (по одному для каждого блока яркости) вектор движения для цветоразностных компонент получается как среднее арифметическое этих четырех векторов.

Врежиме РВ-кадров возможна передача кадров нового типа — РВ-кадров (рис. 14.6). Такой кадр состоит из двух кадров — Р-кадра и кадра с двунаправленным предсказанием, опорными для которого являются предыдущий Р- или I-кадр (предсказание вперед) и текущий Р-кадр (предсказание назад). В таких кадрах возможно использование I-макроблоков, но при этом внутрикодируемым является только макроблок Р-кадра, а макроблок В-кадра кодируется с предсказанием. В этом случае для I-макроблоков передается вектор (вектора) движения, который относится только к В-кадру. Макроблок в РВ-кадре состоит из 12 блоков — 6 блоков Р-кадра и 6 блоков В-кадра.