6.6.1. Слои SP и SISP- и SI-слои представляют собой слои, закодированные специальным способом, которые обеспечивают, помимо всего прочего, эффективное переключение между видеопотоками и организуют быстрый случайный доступ для видеодекодеров [10]. Общее требование к потоковым приложениям заключается в обеспечении возможности декодеру переключаться между одним или несколькими кодированными потоками. Например, один и тот же видеоматериал кодируется на нескольких битовых скоростях для передачи по Интернету, и декодер сначала пытается декодировать самый высокоскоростной видеопоток, который он может получить, а потом ему может понадобиться переключиться на более низкую скорость видеопотока, например из-за падения пропускной способности сети.
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-слоев.
Рис. 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) по ранее декодированным сэмплам реконструируемого кадра. Этот слой можно использовать, например, при переключении от одной последовательности к другой (в этом случае нет смысла строить прогноз компенсации движения, так как нет корреляции между двумя этими последовательностями).
|