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

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


6.6.1. Слои SP и SI

SP- и SI-слои представляют собой слои, закодированные специальным способом, которые обеспечивают, помимо всего прочего, эффективное переключение между видеопотоками и организуют быстрый случайный доступ для видеодекодеров [10]. Общее требование к потоковым приложениям заключается в обеспечении возможности декодеру переключаться между одним или несколькими кодированными потоками. Например, один и тот же видеоматериал кодируется на нескольких битовых скоростях для передачи по Интернету, и декодер сначала пытается декодировать самый высокоскоростной видеопоток, который он может получить, а потом ему может понадобиться переключиться на более низкую скорость видеопотока, например из-за падения пропускной способности сети.

Пример

Декодер декодирует поток А и хочет переключиться на поток В (рис. 6.48). Для простоты предположим, что каждый кадр закодирован в виде отдельного слоя и его прогноз делается по одному (предыдущему) ссылочному кадру. После декодирования Р-слоев А0 и A1 декодер желает переключиться на поток B и декодировать слои В2 и B3 и т.д. Если все слои потока В закодированы в виде Р-слоев, то декодер не будет располагать правильными ссылочными кадрами для реконструкции слоя В2 (поскольку он был спрогнозирован по слою B1, которого не было в потоке А). Возможное решение заключается в использовании I-слоев для кодирования кадров В2. Поскольку такие кадры кодируются без прогнозов по другим кадрам, их можно декодировать независимо от предыдущих кадров потока В, и кодер может безболезненно переключиться с потока А на поток В, как показано на рис. 6.49. Такое переключение можно организовать периодически вставляя в битовый поток I-слои для создания в нем «точек переключения». Однако I-слои требуют для своей передачи большего объема данных, чем Р-слоев, в результате чего будет образовываться нежелательное резкое повышение скорости кодирования в этих точках переключения.

SP-слои были разработаны для обеспечения переключений между подобными кодированными видеопоследовательностями (например, для кодирования одного и того же видеоконтента с разными битовыми скоростями), но без недостатка увеличения битовой скорости при использовании I-слоев (рис. 6.49). В точке переключения (кадр 2 в каждой последовательности) ставятся три SP-слоя, каждый из которых кодируется с использованием прогноза компенсации движения (что делает их более эффективными по сравнению с I-слоями). SP-слой А2 можно декодировать с помощью ссылочного снимка A1, а слой В2 - с помощью снимка В1. Ключевым элементом процесса переключения служит SP-слой АВ2 (он называется переключающим SP-слоем), который построен таким образом, что его можно декодировать с использованием ссылочного снимка А1 для получения декодированного кадра В2 (т.е. выход декодера В2 будет идентичен, как если бы ему предшествовал кадр В1). В каждой точке переключения требуется поместить SP-слой (на самом деле еще один SP-слой ВА2, который будет необходим при переключении в обратном направлении), однако это займет меньший информационный объем, чем кодирование А2 и В2 как I-слоев. В табл. 6.18 перечислены шаги, которые необходимо совершить декодеру при переключении с потока А на поток В.

Таблица 6.18. Переключение c потока А на поток В с помощью SP-слоев.

Вход декодера

Ссылочный МС

Выход декодера

Р-слой А0

[более ранний кадр]

Декодир. кадр А0

Р-слой A1

Декодир. кадр А0

Декодир. кадр A1

SP-слой АВ2

Декодир. кадр A1

Декодир. кадр В2

Р-слой В3

Декодир. кадр В2

Декодир. кадр В3

Рис. 6.50. Кодирование SP-слоя А2 (упрощенно).

Рис. 6.51. Кодирование SP-слоя В2 (упрощенно).

Рис. 6.52. Декодирование SP-слоя А2 (упрощенно).

На рис. 6.50 показана упрощенная блок-схема процесса кодирования SP-слоя А2, при котором совершается вычитание версии с компенсацией движения А'1 (декодированного кадра A1) из кадра А2, за которым следует кодирование получившегося остатка. В отличие от «обычного» Р-слоя вычитание производится в области преобразования (после совершения преобразования блока). SP-слой В2 кодируется аналогично (см. рис. 6.51). Декодер, имея предыдущий кадр A1, может декодировать SP-слой А2, как показано на рис. 6.52. Отметим, что эти блок-схемы были упрощены. На практике требуются еще шаги квантования и деквантования во избежание разночтений кодера и декодера. Более подробно этот процесс описан в [11].

Рис. 6.53. Кодирование SP-слоя АВ2 (упрощенно).

Рис. 6.54. Декодирование SP-слоя АВ2 (упрощенно).

Кодирование (упрощенное) SP-слоя АВ2 показано на рис. 6.53. Кадр В2 (это кадр потока, куда происходит переключение) преобразуется, и прогноз компенсации движения строится по А'1 (это кадр потока, откуда идет переключение). Блок МС на этой блок-схеме пытается обнаружить наилучшее совпадение для каждого макроблока кадра В2, используя в качестве ссылки кадр А1. Прогноз компенсации движения преобразуется, затем вычитается из преобразованного В2 (т.е. в случае слоя SP вычитание производится в области преобразования). Остаток (после вычитания) квантуется, кодируется и посылается.

Декодер, который ранее декодировал А'1, может декодировать SP-слой АВ2 для построения B'2 (рис. 6.54). Кадр А'1 прогнозируется с компенсацией движения (с помощью вектора движения, закодированного как часть AB2), преобразуется и прибавляется к декодированному и деквантованному остатку, после чего к результату применяется обратное преобразование для получения В'2.

Рис. 6.55. Быстрый переход вперед с использованием SP-слоев.

Если потоки А и В представляют собой версии одной и той же видеопоследовательности, закодированной с разными битовыми скоростями, то прогноз компенсации движения кадра В2 по кадру А'1 (SP-слой АВ2) должен быть достаточно эффективным. Дополнительные исследования показывают, что использование SP-слоев при переключении между различными версиями одной и той же последовательности является значительно более эффективным, чем вставка I-слоев в точках переключения. Другое применение SP-слоев заключается в обеспечении случайного доступа и функционирования по типу VCR. Например, SP-слой и переключающий SP-слой помещаются вместо кадра 10 (см. рис. 6.55). Декодер может быстро перейти вперед от кадра А0 к кадру А10, продекодировав А0, а затем продекодировав переключающий SP-слой А0-A10 для получения А10, прогнозируя его по А0.

Расширенный профиль поддерживает еще один тип переключающих слоев, а именно SI-слои. Эти слои используются так же, как и SP-слои, за исключением того, что прогнозы формируются в модах прогнозов intra-блоков 4x4 (см. § 6.4.6.1) по ранее декодированным сэмплам реконструируемого кадра. Этот слой можно использовать, например, при переключении от одной последовательности к другой (в этом случае нет смысла строить прогноз компенсации движения, так как нет корреляции между двумя этими последовательностями).

 



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