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

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


5.4.2.2. Статическое кодирование "спрайтов"

На рис. 5.46 приведены три кадра некоторой видеопоследовательности. Видно, что задний план (рис. 5.47) остается неизменным на этих кадрах (видеокамера не меняет своего положения). В этом случае можно закодировать задний план в виде статического "спрайта». Статическим «спрайтом» называется текстурное изображение, которое может перемещаться и деформироваться только в некоторых ограниченных пределах. Эти движения компенсируют изменения положения видеокамеры такие как панорамная съемка, наклоны, повороты и приближение или удаление камеры В типичном сценарии «спрайт» может быть существенно шире видимой в кадре части сцены. При смене направления «взгляда» видеокамеры кодер передает параметры, определяющие то, как следует переместить или деформировать «спрайт» для показа соответствующей видимой области декодированной сцены. На рис. 5.48 изображен «спрайт» заднего плана (большая область) и показаны части «спрайта», попадающие в кадр видеокамеры в разные моменты видеосъемки. По ходу действия «спрайт перемещается поворачивается и наклоняется в соответствии с изменением видимой области в кадре видеокамеры. «Спрайт» может иметь произвольную форму (рис. 5.48) или быть прямоугольным.

Рис. 5.46. Последовательность кадров.

Рис. 5.47. «Спрайт» заднего плана.

Использование кодирования статического «спрайта» отображается в заголовке VOL с помощью переменной sprite_enable, которой присваивается значение Static. Первым объектом VOP будет «спрайтовый» VOL в моде I-VOP, за которым следует ряд объектов S-VOP (статистические «спрайтовые» VOP). Заметим, что объекты S-VOP кодируются не так, как объекты с глобальной компенсацией движения S(GMC)-VOP (которые описаны в § 5.3.3). Существует два метода передачи и обращения со «спрайтами»: «базовый» «спрайт» (передаваемый целиком в начале видеопоследовательности) и «спрайт» с «малой задержкой по времени» (обновляемый по ходу передачи видеоряда).

Базовый «спрайт». Первый VOP (I-VOP) содержит в себе весь «спрайт», закодированный так же, как и «обычный» I-VOP. «Спрайт» может быть шире видимой на экране области (это нужно для охвата перемещений камеры). На стороне декодера «спрайт» помещается в «спрайтовый буфер» и не отображается сразу на экране. Все следующие VOP данного VOL являются объектами типа S-VOP. Видеообъект S-VOP имеет до четырех параметров трансформации, которые используются для перемещения содержимого «спрайтового» буфера при отображении на экране нужного заднего плана. Число параметров трансформации на один S-VOP (их не более четырех) выбирается в заголовке VOL. Оно отражает степень гибкости при трансформировании «спрайтового» буфера. Один параметр на S-VOP задает лишь линейные перемещения (т.е. один вектор движения на весь «спрайт»), два или три параметра обеспечивают аффинное преобразование «спрайта» (т.е. повороты и преобразования подобия), а четыре параметра задают проективные преобразования (наклоны, повороты со смещением камеры и т.п.).

Рис. 5.48. «Спрайт» заднего плана и три разных «взгляда» видеокамеры.

"Спрайт» с малой задержкой по времени. Передача всего «спрайта» в базовой моде в начале VOL может вызвать существенную временную задержку, так как «спрайт» может иметь значительно большие размеры, чем отображаемая на экране область. Мода с малой задержкой позволяет кодеру сначала посылать часть «спрайта» и/или его версию низкого качества, а потом подновлять и улучшать «спрайт» по мере передачи всего VOL. Первый I-VOP содержит часть или весь «спрайт» (по умолчанию закодированный с уменьшенным качеством для экономии полосы передачи) вместе с информацией о размерах всего «спрайта».

Каждая подпоследовательность объектов I-VOP может содержать параметры трансформации (как в базовой моде) и один или несколько «кусков» «спрайта». Этот «кусок» покрывает прямоугольную область «спрайта». Кроме того, в нем содержатся данные макроблоков которые строят часть «спрайта», ранее еще не декодированную, или улучшают качество уже декодированной части "спрайта». В первом случае макроблоки кодируются в моде intra (включая информацию о форме, если «спрайт» не прямоугольный), а во втором случае они кодируются в моде inter с использованием прямого прогноза по предыдущему содержимому «спрайтового» буфера (но без векторов движения и информации о форме).

Рис. 5.49. «Спрайт» с малой задержкой: декодированный I-VOP.

Рис. 5.50. «Спрайт» с малой задержкой: первый случай.

Пример

"Спрайт», показанный на рис. 5.47, необходимо передать в моде с малой задержкой по времени. Начальный I-VOP содержит низкокачественную версию части «спрайта», приведенную на рис. 5.49, где изображено содержимое «спрайтового» буфера после декодирования этого I-VOP. Объект S-VOP доставляет новый кусок «спрайта», закодированный в моде с улучшенным качеством (рис. 5.50), с помощью которого расширяется «спрайтовый» буфер (рис. 5.51). Следующий S-VOP несет остаточный кусок (рис. 5 52), который используется для улучшения качества верхней левой части текущего «спрайтового» буфера. После этого исправления «спрайтовый" буфер выглядит так, как показано на рис. 5.53. Наконец, последний S-VOP содержит четыре параметра трансформации, помощью которых делается поворот и меняется перспектива (рис. 5.54).

Рис. 5.51. «Спрайт» с малой задержкой: содержимое буфера (1).

Рис. 5.52. «Спрайт» с малой задержкой: второй случай.

Рис. 5.53. «Спрайт» с малой задержкой одержимое буфера (2).

Рис. 5.54. «Спрайт» с малой задержкой содержимое буфера (3).

 



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