Раздел: Документация
0 ... 15 16 17 18 19 20 21 ... 122 3.3.3. Оценка и компенсация движения на основе блоков На практике широко используется метод компенсации движения, который компенсирует перемещение прямоугольных областей или •блоков» текущего кадра. При этом выполняется следующая процедура для каждого фиксированного блока, состоящего из М х TV пикселов обрабатываемого кадра. 1.Поиск на ссылочном кадре (предыдущем или следующем, ранее закодированном и переданном декодеру) «подходящего» блока из М х TV пикселов. Это делается путем сравнения фиксированного М х TV-блока с некоторыми или со всеми М х TV-блоками области поиска (обычно она представляет собой некий регион с центром в середине этого выбранного блока) и нахождение «самого подходящего» блока. Популярным критерием схожести блоков служит энергия остатка, получаемого вычитанием блока-кандидата из фиксированного М х TV-блока, т.е. выбирается блок-кандидат, минимизирующий энергию остатка. Этот процесс поиска подходящего блока называется оценкой движения. 2.Выбранный кандидат становится прогнозом текущего М х TV-блока и его вычитают из этого блока для получения остаточного М х TV-блока (компенсации движения). 3.Остаточный блок кодируется и передается декодеру, и декодер получает координаты вектора смещения текущего блока по отношению к позиции блока-кандидата (вектор движения). Декодер использует вектор движения для нахождения блока-прогноза, декодирует остаточный блок и складывает его с прогнозом для реконструкции версии исходного блока. Компенсация движения на основе блоков очень популярна по многим причинам. Этот метод достаточно прост и легко поддается программной реализации. Он хорошо вписывается в прямоугольный формат кадров, а также в процедуры преобразования изображений на основе блоков (например, в дискретное косинус-преобразование, см. далее). Компенсация движения определяет достаточно приемлемую временную модель для многих видеопоследовательностей. Имеется, однако, ряд недостатков. Например, «реальные» объекты редко имеют четкие прямоугольные границы. Объекты часто перемещаются на нецелое число пиксельных позиций между кадрами, и многие типы перемещений трудно скомпенсировать, используя методы на основе блоков (например, деформацию объектов, их повороты, изменение масштаба, т.е. приближение или удаление объектов от видеокамеры, сложные движения, такие как клубы дыма). Несмотря на эти недостатки, компенсация движения на основе блоков является базой временных моделей во всех современных стандартах цифрового видеокодирования. 1в16 88 7].[Г] СЬСг Рис. 3.8. Макроблок (4:2:0). 16 Область 16x16 (цветная) 16
3.3.4- Прогноз макроблока с компенсированным движением Макроблок, соответствующий области из 16 х 16 пикселов на кадре, является базисной единицей для прогноза с компенсацией движения во многих важных визуальных кодовых стандартах, включая MPEG-1, MPEG-2, MPEG-4 Visual, Н.263 и Н.264. Для исходного видеоматериала в формате 4:2:0 (см. гл. 2) структура макроблока показана на рис. 3.8. Область из 16 х 16 пикселов исходного кадра состоит из 256 сэмплов яркости (сгруппированные в 4 блока сэмплов 8 х 8), 64 голубых хроматических компонент (один блок 8 х 8) и 64 красных хроматических компонент (8 х 8), что дает ровно шесть блоков размером 8x8. Стандарты MPEG-4 Visual и Н.264 оперируют с кадрами с помощью единиц макроблоков. Оценка движения. Оценка движения макроблока состоит из поиска области пикселов 16 х 16 на ссылочном кадре, который похож на текущий макроблок. Ссылочным кадром является уже декодированный кадр, который хронологически может идти раньше или позже текущего. Область поиска на ссылочном кадре имеет центр в середине положения текущего макроблока. Найденный блок 16 х 16 пикселов, имеющий наименьшее расхождение с текущим макроблоком, выбирается в качестве «подходящего» макроблока (рис. 3.9). Компенсация движения. Выбранный «наилучший» макроблок на ссылочном кадре вычитается из текущего блока, и их разность, называемая остаточным макроблоком (яркости и хроматичности), кодируется и передается вместе с вектором движения, падающим позицию наилучшего макроблока по отношению к текущему макроблоку. Внутри кодера остаточный макроблок кодируется и декодируется, а затем добавляется к наилучшему макроблоку для формирования реконструированного макроблока, который сохраняется в ссылочном буфере для использования в будущих прогнозах компенсации движения. 1*и Рис. 3.9. Оценка движения. Существует много вариаций базового процесса оценки движения и компенсации движения. Ссылочным кадром может быть предыдущий кадр (в хронологическом порядке), будущий кадр или комбинация двух или более ранее декодированных кадров. Если в качеств»! ссылочного выбран будущий кадр, то необходимо его закодировать до текущего кадра (т.е. кадры должны быть закодированы не в хронологическом порядке). Там, где имеется существенное расхождение между ссылочным и текущим кадром (например, при смене сцен), можно кодировать макроблок без компенсации движения. Таким образом, кодер выбирает или моду intra (кодирование без компенсации движения), или моду inter (кодирование с компенсацией движения) для каждого макроблока. Движущиеся объекты на видеосцене редко следуют строго вдоль границ блоков пикселов 16x16, поэтому более эффективным может быть использование переменных размеров блоков для оценки и компенсации движения. Объекты могут также перемещаться на нецелое число пикселов между кадрами (например, на 2,78 пикселов вместо 2,0 в горизонтальном 0 ... 15 16 17 18 19 20 21 ... 122
|