3.3.3. Оценка и компенсация движения на основе блоковНа практике широко используется метод компенсации движения, который компенсирует перемещение прямоугольных областей или "блоков" текущего кадра. При этом выполняется следующая процедура для каждого фиксированного блока, состоящего из • Поиск на ссылочном кадре (предыдущем или следующем, ранее закодированном и переданном декодеру) «подходящего» блока из • Выбранный кандидат становится прогнозом текущего • Остаточный блок кодируется и передается декодеру, и декодер получает координаты вектора смещения текущего блока по отношению к позиции блока-кандидата (вектор движения). Декодер использует вектор движения для нахождения блока-прогноза, декодирует остаточный блок и складывает его с прогнозом для реконструкции версии исходного блока. Компенсация движения на основе блоков очень популярна по многим причинам. Этот метод достаточно прост и легко поддается программной реализации. Он хорошо вписывается в прямоугольный формат кадров, а также в процедуры преобразования изображений на основе блоков (например, в дискретное косинус- преобразование, см. далее). Компенсация движения определяет достаточно приемлемую временную модель для многих видеопоследовательностей. Имеется, однако, ряд недостатков. Например, «реальные» объекты редко имеют четкие прямоугольные границы. Объекты часто перемещаются на нецелое число пиксельных позиций между кадрами, и многие типы перемещений трудно скомпенсировать, используя методы на основе блоков (например, деформацию объектов, их повороты, изменение масштаба, т.е. приближение или удаление объектов от видеокамеры, сложные движения, такие как клубы дыма). Несмотря на эти недостатки, компенсация движения на основе блоков является базой временных моделей во всех современных стандартах цифрового видеокодирования.
|