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

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


3.3.6. Подпиксельная компенсация движения

На рис. 3.16 показана часть ссылочной области крупным планом. В некоторых случаях лучший прогноз компенсации движения можно построить на основе интерполированных (промежуточных) положений сэмплов на ссылочном кадре. На рис. 3.17 ссылочная область сэмплов яркости проинтерполирована по половине сэмпла, при этом, возможно, удастся найти лучшее совпадение для текущего макроблока, делая поиск по проинтерполированным сэмплам. Подпиксельная оценка и компенсация движения использует при поиске промежуточные пиксельные позиции наряду с целыми позициями.

Рис. 3.16. Крупным план части ссылочной области.

Рис. 3.17. Ссылочная область, проинтерполированная по полупикселам.

Кодер ищет позицию, которая обеспечит наилучшее совпадение макроблоков (т.е. минимизирует энергию остатка) на основе целых и дробных значении позиции для прогноза компенсированного движения. Рисунок 3.18 иллюстрирует оценку движения с четвертьпиксельной точностью. На первой стадии ищется лучшее совпадение текущего макроблока по целочисленной решетке сэмплов (круги). Затем кодер делает поиск по позициям полупикселов сразу после найденной позиции (квадраты) в целях улучшения совпадения, а затем, если необходимо, совершает поиск с шагом в четверть пиксела (треугольники) для нахождения еще лучшего совпадения. Потом делается вычитание из текущего блока или макроблока его наилучшего прогноза, смещение (вектор компенсации движения) которого может быть кратно целым, половинам или четвертям пикселов.

Рис. 3.18. Оценка движения по целым, полу- и четверть-пикселам.

Таблица 3.1. Величины SAE для остаточных кадров после компенсации движения (блоки 16 х 16).

 

Без

 

Подпикселы

 

Последовательность

компенсации

Целые

Половины

Четверти

Violin. QCIF

171 945

153 475

128 320

113 744

Grasses. QCIF

248 316

245 784

228 952

215 585

Carphone. QCIF

102 418

73 952

56 492

47 780

Остаточная область на рис. 3.19 построена на основе блоков сэмплов размером 4 х 4 с использованием интерполяции по полусэмплам. Она имеет меньшую остаточную энергию, чем на рис. 3.15. Этот подход можно далее распространить на сетку, проведенную с шагом в четверть сэмпла, для получения еще меньшей мощности остаточной области (рис. 3.20). В общем случае более «тонкая» интерполяция дает лучшие характеристики компенсации движения (с меньшой разностью) при существенном увеличении объема вычислений. Это явление ослабевает с уменьшением шага интерполяции. Интерполяции по полусэмплам обеспечивает существенный выигрыш по сравнению с целыми сэмплами, по четвертям сэмплов дает более умеренный результат, а интерполяция с шагом в 1/8 сэмпла дает еще меньшее улучшение и т.д.

Рис. 3.19. Разность блоки 4x4, полупиксельная компенсация

Рис. 3.20. Разность (блок 4x4 четвертьпиксельная компенсация).

Примеры улучшения эффективности, достигаемого при подпиксельной оценке и компенсации движения, приведены в табл. 3.1. Ссылочный кадр с компенсацией движения (предыдущий кадр последовательности) вычтен из текущего кадра, и энергия этой разности (вычисленная с помощью суммы абсолютных погрешностей SAE, Sum of Absolute Errors) приведена в таблице Наименьшая SAE указывает на самую лучшую компенсацию движения. Во всех случаях подпиксельные компенсации движения дают лучший результат по сравнению с целопиксельной компенсацией. Самое заметное улучшение происходит при переходе от целых к половинным пикселам. Четвертые и восьмые доли пикселов далее дают менее значительные результаты. Последовательность Grasses отображала очень сложное движение, которое нельзя эффективно скомпенсировать, что привело к высоким значениям SAE. Движения на картинках Violin и Carphone были менее сложными, и компенсация движения обеспечила малые SAE.

Рис. 3.21. Векторы движения (блоки 16 х 16, целые пикселы).

Поиск подходящих блоков 4 х 4 с интерполяцией по четвертьпикселам является более сложной задачей по сравнению с использованием блоков 16 х 16 без интерполяции. Помимо существенного возрастания сложности вычислений приходится платить за кодирование большего числа векторов движения для последующей реконструкции изображения. При уменьшении размера блока приходится передавать больше векторов. Также больше битов необходимо использовать для представления векторов движения по полупикселам и четвертьпикселам, так как приходится кодировать не только целые, но и дробные (т.е. 0,5 и 0,25) части компонент этих векторов. На рис. 3.21 нарисованы целочисленные векторы движения, которые необходимо пересылать вместе с соответствующей остаточной областью на рис. 3.13. Векторы движения, необходимые для восстановления остаточного кадра ни рис. 3.20 (размер блока 4 х 4), изображены на рис. 3.22, которых в 16 больше, чем на рис. 3.21, и которые необходимо представлять дробными числами DX и DY с точностью в четверть пиксела. Поэтому необходимо компромиссное решение для получения эффективного сжатия, связанное с более сложной схемой компенсации движения, так как более точная компенсация требует больше бит для кодирования поля векторов, но меньше бит для кодирования остаточного кадра, в то время как меньшая точность компенсации использует меньше бит для поля векторов, но больше бит для кадра остатка.

Рис. 3.22. Векторы движения (блоки 4x4, четвертьпикселы).

 



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