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

Ссылочные снимки

В-слои используют два списка ранее закодированных ссылочных снимков – список 0 и список 1, в которых хранятся снимки с близкими и давними сроками. Оба списка могут хранить прошлые и будущие сжатые снимки, которые будут демонстрироваться до или после текущего кадра.

Список 0: ближайший снимок в прошлом (в хронологическом порядке) индексируется нулем, за которым следуют другие прошлые снимки (с возрастанием счетчика снимков), а потом будущие снимки (по отношению к текущему снимку).

Список 1: ближайший будущий снимок имеет индекс 0, за ним следуют другие будущие снимки (с увеличением счетчика снимков), а потом прошлые снимки.

Выбранный индекс посылается в виде слова экспоненциального кода Голомба, и поэтому самым эффективным выбором ссылочного индекса (с наименьшим кодовым словом) будет индекс 0 (то есть предыдущий закодированный снимок из списка 0 или следующий снимок из списка 1).

Опции прогноза

Части макроблоков из В-слоев могут быть спрогнозированы одним из следующих способов: прямая мода, компенсация движения по снимкам из списка 0, компенсация движения по снимкам из списка 1 или двунаправленный прогноз компенсации движения одновременно по спискам 0 и 1. Для каждого блока деления макроблока можно выбрать различные моды прогнозирования (табл. 3.15).

Таблица 3.15

Опции прогнозов для макроблоков в-слоев

Блоки

Опции

1616

Прямая, список 0, список 1 или двунаправленная

168 или 816

Список 0, список 1 или двунаправленная (выбираются отдельно для каждого блока)

88

Прямая, список 0, список 1 или двунаправленная (выбираются отдельно для каждого блока)

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

Двунаправленный прогноз

В моде двунаправленного прогноза ссылочный блок, имеющий размер текущего блока или подблока, строится по спискам 0 и 1 ссылочных снимков. Из каждого списка 0 и 1 извлекается по одной ссылочной области (значит, потребуется два вектора движения), и каждый блок-прогноз вычисляется как среднее значение соответствующих прогнозируемых областей из списков 0 и 1.

Векторы движения списков 0 и 1 двунаправленных прогнозов макроблоков или блоков сами прогнозируются по обратным векторам движения, которые имеют такое же временнóе направление. Например, вектор текущего макроблока, указывающий на кадр в прошлом, прогнозируется по другим соседним векторам, которые также указывают на прошлые кадры.

Прямой прогноз

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

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

В пространственной прямой моде списки 0 и 1 прогнозированных векторов вычисляются следующим образом. Если близкий макроблок или его часть в списке 1 ссылочных снимков имеет вектор движения, который меньше, чем 1/2 яркостного пикселя по абсолютной величине, то один или оба прогнозируемые векторы обнуляются. В противном случае прогнозные списки 0 и 1 векторов используются для совершения двунаправленной компенсации движения. Во временнóй прямой моде декодер выполняет следующие шаги [33]:

  1. Найти ссылочный снимок списка 0 для близкого макроблока или его части на снимке списка 1. Эта ссылка списка 0 становится ссылкой первого списка для текущего макроблока или его части.

  2. Найти вектор MVсписка 0 для близкого макроблока или его части на снимке списка 1.

  3. Перемасштабировать вектор MVс помощью «расстояния» – порядкового счетчика снимков между текущим снимком и снимком списка 1: это будет новый векторMV1 списка 1.

  4. Перемасштабировать вектор MVс помощью «расстояния» – порядкового счетчика снимков между текущим снимком и снимком списка 0: это будет новый векторMV0 списка 0.

Эти моды слегка модифицируются, когда, например, прогнозные ссылочные макроблоки или их части недоступны или они кодируются в моде intra.

Соседние файлы в папке 399_Mamchev-Cifrovoe_televizionnoe_veschanie_2012