21. Нахождение векторов движенияЭта процедура обычно занимает много времени, поэтому ее следует тщательно оптимизировать. Обозначим через В текущий блок предыдущего кадра. Задача заключается в нахождении близкого к нему блока текущего кадра. Обычно этот поиск делается не по всему изображению, а по некоторой области вокруг В, которая задается с помощью параметров dx, dy. Эти параметры задают максимальное расстояние по горизонтали и вертикали в пикселах. Если блок В – это квадрат со стороной в b пикселов, то область поиска состоит из (b+2dx)(b+2dy) пикселей (рис. 2), среди которых можно определить (2dx+1)(2dy+1) частично перекрывающихся квадратов длиной b пикселей. Рис. 1. Общая схема видеокодера Рис. 2. Пример области поиска вектора движения Для того, чтобы определять подобен или нет один блок на другой, необходимо определить меру сходства блоков. Причем эта процедура должна быть простой и быстрой, но, вместе с тем, надежной. На практике обычно используют следующие меры. Средняя абсолютная разность, которая вычисляется по формуле , где - пиксел блока В; - пиксел блока-кандидата С. Для вычисления данной меры для одной позиции блоков необходимо произвести операций вычитания и взятия модуля числа. Эта мера соответственно вычисляется для каждого возможного положения (2dx+1)(2dy+1) блока-кандидата С до тех пор, пока она не будет превышать значение некоторого заданного порога . Если для блока В не находится подходящего блока С, то блок В кодируется без компенсации движения. Другой мерой расхождения может служить СКО, вычисляемой по формуле .
|