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

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


6.4.2. Организация ссылочных снимков

Ранее закодированные снимки сохраняются в ссылочном буфере (буфере декодированных снимков DPB. Decoded Picture Buffer) как кодером, так и декодером. Кодер и декодер строят список закодированных ранее снимков, а именно список 0 ссылочных снимков для его использования в прогнозах компенсации движения макроблоков в моде inter слоя Р. При прогнозировании слоя Р в списке 0 могут находиться снимки, идущие до или после текущего снимка в порядке их хронологической демонстрации на дисплее. В этом списке могут содержаться ссылочные снимки как с близкими сроками, так и с давними сроками. По умолчанию принято, что закодированные снимки реконструируются кодером и сохраняются с пометкой «снимок с близким сроком», что означает недавнее кодирование снимка, который становится доступным для прогноза. Снимки с близкими сроками идентифицируются с помощью их номера кадра. Снимки с давними сроками обычно являются более старыми; их тоже можно использовать при прогнозировании, и они идентифицируются переменной LongTermPicNum. Такие снимки хранятся в буфере DPB вплоть до их явного удаления или замены.

Когда снимок кодируется и реконструируется (кодером) или декодируется (декодером), он помещается в буфер декодированных снимков. При этом он или помечается как «неиспользуемый для ссылок» (следовательно, он не будет участвовать в прогнозах), или помечается как «снимок с близким сроком», или помечается как «снимок с давним сроком», или просто выводится на дисплей. По умолчанию, снимки с близкими сроками в списке 0 упорядочиваются от наибольших к наименьшим значениям переменной PicNum (эта переменная определяется по номеру кадра), а снимки с давними сроками упорядочиваются от наименьшего к наибольшему значению переменной LongTermPicNum. Кодер может подавать сигнал об установлении порядка ссылочных снимков, принятого по умолчанию. При добавлении каждого нового снимка в список с близкими сроками в позицию 0 индексы всех остальных снимков этого списка увеличиваются на 1. Если число снимков с близкими и давними сроками равно максимальному допустимому числу ссылочных кадров, то самый старый снимок с близким сроком (имеющий наибольший индекс) удаляется из буфера (эта процедура называется контролем памяти скользящим окном). В результате кодер и декодер имеют «окно» из N ссылочных снимков с близкими сроками, в которое входит текущий снимок и еще (N-1) ранее закодированных снимков.

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

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

Пример

Организация ссылочных снимков (Р-слой).

Номер текущего кадра = 250

Число ссылочных кадров = 5

Операция

Список ссылочных снимков

 0            1          2            3           4

Начальное состояние

 

 

-

-

 

Кодировать кадр 250

250

 

 

 

 

Кодировать кадр 251

251

250

 

-

 

Кодировать кадр 252

252

251

250

 

 

Кодировать кадр 253

253

252

251

250

 

Присвоить 251 LongTermPicNum 0

253

252

250

0

0

Кодировать кадр 254

254

253

252

250

4

Присвоить 253 LongTermPicNum 4

254

252

250

0

4

Кодировать кадр 255

255

254

252

0

4

Присвоить 255 LongTermPicNum 3

254

252

0

3

4

Кодировать кадр 256

256

254

0

3

4

 (Заметим, что в этом примере числа 0, 3 и 4 отвечают декодированным кадрам 251, 255 и 253 соответственно.)

Мгновенная очистка снимка декодера. Кодер посылает закодированный снимок IDR (Instantaneous Decoder Refresh, мгновенная очистка декодера), который состоит из слоев I и SI, для очищения содержимого буфера ссылочных кадров. При получении снимка IDR декодер помечает все снимки в ссылочном буфере как «неиспользуемые для ссылок». Все последующие переданные слои можно будет декодировать без ссылок на любой кадр, декодированный до снимка IDR. Первый снимок кодируемой видеопоследовательности также является снимком IDR.

Таблица 6.3. Типы карт распределения макроблоков по группам слоев.

Тип

Имя

Описание

0

Перемещение

Серии макроблоков по группам слоев распределяются по очереди (см. рис. 6.6)

1

Рассеивание

Макроблоки рассеиваются по снимку (см. рис 6.7)

2

Передний план

и задний план

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

 

3

Квадрат и его

внешность

Строится «квадрат» в центре кадра (его размеры контролируются кодером), который образует группу 0, а все остальные макроблоки объединяются в группу 1 (см. рис. 6.9)

 

4

Растровый

порядок

Группа 0 состоит из макроблоков в последовательности растрового сканирования, начиная из верхнего левого угла, а группа 1 из всех остальных макроблоков (рис. 6.9)

 

5

Стирание

Группа 0 состоит из макроблоков в вертикальном растровом сканировании, начиная из верхнего левого угла, а группа 1 - из всех остальных макроблоков (рис. 6.9)

6

Явное

описание

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

 

 



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