Изобретение относится к способу и устройству для оценки (определения) движения и, в частности к способу и устройству для детальной оценки движения, в которых используется величина отклонения, генерируемая при оценке движения, для определения вектора движения особенно при использовании метода дифференциальной импульсно-кодовой модуляции (ДИКМ) для кодирования сигнала цифрового изображения.
В принципе существует ряд способов кодирования для более эффективного сжатия передаваемых данных в устройстве обработки сигнала изображения, использующем последовательные сигналы цифрового изображения, таком как телевизор высокой четкости (ТВЧ), цифровой видеомагнитофон, средства массовой информации и т. д. Метод ДИКМ кодирует сигнал цифрового изображения, используя корреляцию данных, которая существует между соседними кадрами сигнала изображения.
В случае кодирования разностного сигнала соседними кадрами, возникающего со временем при использовании метода ДИКМ, отрицательным фактором является то, что для движущегося изображения необходимо кодировать значительно больший объем данных, чем для неподвижного изображения. Однако путем обнаружения места перемещения некоторого блока из предыдущего кадра в определенный блок текущего (настоящего) кадра, т.е. наилучшего сходства между определенным изображением текущего кадра и некоторым изображением предыдущего кадра, можно выполнить эффективное сжатие (уплотнение) данных, так как значения разности сигнала подобных блоков между кадрами минимальны. Следовательно при определении перемещения с помощью системы ДИКМ кодируется информация о разности между заранее определенным блоком изображения предыдущего кадра и соответствующим ему блоком изображения текущего кадра, за счет этого увеличивается эффективность передачи. В способе определения движения вектор движения представляет собой направление движения и модуль (вектор) блока изображения путем сравнения блока изображения внутри (в рамках) текущего кадра с соответствующим блоком изображения предыдущего кадра.
Существует ряд способов для определения движения единичного пикселя (элемента изображения). В принципе поскольку движение между двумя кадрами со временем может составить точную, но малую (величину) в один полный пиксель, при коррекции движения могут возникать погрешности в том случае, если используется вектор движения величиной в один пиксель. Следовательно для уменьшения погрешности коррекции движения используется вектор движения величиной в неполный пиксель. Для определения движения используется единица в полупиксель как один из методов определения неполных пикселей. Прежде всего кратко будет описан способ определения полупикселей в соответствии с обычным способом.
Устройство (фиг. 1) содержит формирователь 1 блоков размером N1 x N2 для приема сигнала изображения предыдущего кадра и создания блока изображения, состоящего из N1 x N2 пикселей, формирователь 2 зоны поиска размером M1 x M2 для приема сигнала изображения предыдущего кадра и создания блока изображения, состоящего из M1 x M2 пикселей, первый блок 3 поиска для приема сигналов изображения, выходящих из формирователя 1 блоков размером N1 x N2 и из формирователя 2 зоны поиска размером M1 x M2, и для определения первого вектора движения MVI в один пиксель, блок 4 интерполяции полупикселей для приема сигналов изображения, выходящих из формирователя 2 зоны поиска размером M1 x M2 и первого блока 3 поиска, и для расчета величины сигнала изображения в окрестности величиной в один полупиксель опорных пикселей, используя блок изображения в предыдущем кадре, который определен первым вектором движения MV1, полученным из первого блока 3 поиска, и блоки изображения, которые получаются при перемещении блока изображения на расстояние в один пиксель, второй блок 5 поиска для приема сигналов изображения, выходящих из формирователя 1 блоков размером N1 x N2 и блока 4 интерполяции полупикселей, и для выдачи второго вектора движения MV2 в полупиксель, суммирующий блок 6 для приема и суммирования выходных сигналов MV1, MV2 от первого блока 3 поиска и второго блока 5 поиска и выдачи вектора движения MV.
Формирователь 1 блоков размером N1 x N2 получает сигнал изображения текущего кадра и хранит входной сигнал в емкости (памяти) размером N1 x N2 блоков. Одновременно с вводом изображения текущего кадра формирователь 2 зоны поиска размером M1 x M2 получает сигнал изображения предыдущего кадра и создает зону поиска размером M1 x M2. Первый блок 3 поиска перемещает блок размером N1 x N2 текущего кадра на один пиксель в пределах зоны поиска предыдущего кадра. При сравнении информации об одном пикселе (в один пиксель) между двумя блоками первый вектор движения MV1 в один пиксель рассчитывается с помощью размещения блока в пределах зоны поиска, где среднеквадратическое отклонение или среднее абсолютное отклонение минимально. Первый вектор движения MV1 в один пиксель, генерируемый первым блоком 3 поиска, является входным сигналом для суммирующего блока 6 и блока 4 интерполяции полупикселей. Блок 4 интерполяции полупикселей выполняет линейную интерполяцию опорных пикселей заданного блока в пределах предыдущего кадра с помощью первого вектора движения MV1 в один пиксель и окружающих пикселей, рассчитывает величины полупикселей и затем выдает рассчитанные величины второму блоку 5 поиска.
На фиг. 2 знак "O" показывает интервалы размером в один пиксель, а знак "X" показывает интервалы размером в полупиксель. Второй блок 5 поиска перемещает блок изображения предыдущего кадра, соответствующий первому вектору движения MV1 в один пиксель, по всем направлениям соответственно на полупиксель, находит позицию с минимальной погрешностью коррекции движения среди позиций "X" полученных восьми векторов движения размером в полупиксель и первого вектора движения MV1 и выдает одну из компонент вектора (-1/2, 0,1/2), т. е. точно контролируемое значение в полупиксель. Суммирующий блок 6 суммирует первый вектор движения MV1 в один пиксель, выходящий из первого блока 3 поиска, и второй вектор движения MV2 в полупиксель, выходящий из второго блока 5 поиска, таким образом выдавая полный вектор движения MV для определения движения. Например, суммирующий блок 6 суммирует горизонтальную компоненту (-1/2) второго вектора движения MV2 в полупиксель, поступающего из второго блока 5 поиска, и вектор движения (MV = (x, y)) в пиксель, поступающий из первого блока 3 поиска, а затем определяет вектор движения (MV = (x-1/2, y)).
При вышеописанном обычном способе определяется положение блоков, используя вектор движения в один пиксель, выполняется линейная интерполяция соответствующих значений пикселей между заданным блоком и окружающими блок пикселями. Способ использует интерполированные величины в полупиксель и величины в один пиксель текущего кадра, заданные вектором движения в один пиксель, и выбирает наиболее похожий блок среди восьми позиций смещения на величину в полупиксель, обозначенных знаком "X" на фиг. 2. Следовательно недостатком обычного способа является слишком долгая обработка данных для определения вектора в полупиксель.
Для решения данной проблемы целью настоящего изобретения является разработка способа определения движения, который делает возможным выполнение более детальной коррекции движения, с помощью которого при использовании значений отклонений для определения векторов движения между кадрами генерируются значения отклонений в соответствии с результатом сравнения данных между заданным блоком изображения предыдущего кадра, определенным с помощью вектора движения в один пиксель, и блоками изображения, полученными при смещении блока изображения по всем направлениям соответственно на один пиксель, сравниваются генерированные отклонения и определяется вектор движения в полупиксель.
Другая цель настоящего изобретения предусматривает разработку устройства для определения движения, чтобы сделать возможной более детальную коррекцию движения, с помощью которого при использовании значений для определения векторов движения между кадрами генерируются значения отклонений в соответствии с результатом сравнения данных между заданными блоками изображения предыдущего кадра, определенными с помощью вектора движения в один пиксель, и блоками изображения, полученными при смещении блока изображения по всем направлениям соответственно на один пиксель, сравниваются генерированные отклонения и определяется вектор движения в полупиксель.
Цель настоящего изобретения достигается за счет применения способа сравнения сигнала изображения между соседними кадрами и оценки движения изображения. Способ включает стадии создания первого блока изображения, содержащего сигнал изображения текущего кадра, и второго блока изображения, содержащего сигнал изображения предыдущего кадра; сравнения сигнала изображения множества блоков изображения, которые содержатся во втором блоке изображения и имеют размер блока, равный первому блоку изображения, с сигналом изображения внутри первого блока изображения и генерирования ряда величин отклонений; определения первого вектора движения в один пиксель, используя генерированные величины отклонений; сравнения сигналов изображения блока опорного изображения, а именно блока изображения предыдущего кадра, соответствующего первому вектору движения, и окружающих блоков изображения, которые генерируются путем перемещения блока опорного изображения по всем направлениям на один пиксель, с сигналом изображения первого блока изображения и выдачи величин отклонений, полученных в результате сравнения; формирования второго вектора движения в полупиксель, используя генерированные величины отклонений; и суммирования первого и второго векторов движения.
Следующая цель настоящего изобретения достигается за счет применения устройства для сравнения сигнала изображения между соседними кадрами и определения движения изображения. Устройство включает блок для приема сигнала изображения текущего кадра и для создания первого блока изображения; блок для приема сигнала изображения предыдущего кадра и для создания второго блока изображения; блок поиска для приема сигналов изображения, выходящих из формирователя первого блока изображения и формирователя второго блока изображения, определения первого вектора движения в один пиксель, сравнения сигналов изображения окружающих блоков изображения, которые генерируются перемещением опорного блока изображения внутри предыдущего кадра, соответствующего определенному первому вектору движения, по всем направлениям на один пиксель, и опорного блока изображения с сигналом изображения первого блока изображения и генерирования значений отклонений, получаемых в результате сравнения; блок управления полупикселями для приема сигналов отклонений, выходящих из блока поиска, и генерирования второго вектора движения в полупиксель; блок для приема первого и второго векторов движения, их сложения и выдачи результата.
На фиг. 1 показана блок-схема обычного устройство для определения движения; на фиг. 2 - схема концептуального представления для демонстрации единичного пикселя и полупикселя; на фиг. 3 - блок-схема устройства для определения движения согласно предпочтительному варианту воплощения настоящего изобретения; на фиг. 4 - подробная блок-схема контроллера горизонтальных полупикселей на фиг. 3; на фиг. 5 - схемы концептуального представления, иллюстрирующие способ определения векторов движения в полупиксель в контроллере горизонтальных полупикселей.
Вектор движения заданного блока, соответствующего зоне поиска предыдущего кадра, в текущем кадре обозначается MV = (x, y). Здесь вектор движения MV имеет горизонтальную компоненту x вектора движения и вертикальную компоненту y вектора движения. Ниже настоящее изобретение будет описано, используя полупиксель как один из видов неполного пикселя.
Фиг. 3 представляет собой блок-схему устройства для определения движения согласно предпочтительному варианту исполнения настоящего изобретения.
Устройство (фиг. 3) включает формирователь 31 блоков размером N1 x N2 для приема сигнала изображения текущего кадра и создания блоков изображения, состоящий из N1 x N2 пикселей; формирователь 32 зоны поиска размером M1 x M2 для приема сигналов изображения предыдущего кадра и создания блоков изображения, состоящих из M1 x M2 пикселей; блок поиска для приема сигналов изображения, выходящих из формирователя 31 блоков размером N1 x N2 и формирователя 32 зоны поиска размером M1 x M2, для определения первого вектора движения MV1 в один пиксель, для сравнения данных между пятью блоками изображения, генерируемым путем перемещения блока размером N1 x N2 по всем направлениям соответственно на один пиксель в центре опорного пикселя внутри предыдущего кадра, соответствующего определенному первому вектору движения MV1, и блоком изображения внутри текущего кадра и для генерирования значений отклонений, соответствующих результату сравнения; блок 34 управления полупикселями для приема отклонений, выходящих из блока 33 поиска, и для расчета второго вектора движения MV2 в интервале размером в полупиксель, вертикально и горизонтально базирующемся на опорном пикселе; и суммирующий блок 37 для приема первого вектора движения MV1 из блока 33 поиска и второго вектора движения MV2 из блока 34 управления полупикселями, для суммирования и выдачи их. Блок 34 управления полупикселями включает контролер 35 горизонтальных полупикселей для определения горизонтальной компоненты второго вектора движения MV2 и контролер 35 (36) вертикальных полупикселей для определения вертикальной компоненты второго вектора движения MV2.
При поступлении сигнала изображения соседних по времени кадров формирователь 31 блоков размером N1 x N2 принимает сигнал изображения текущего кадра и сохраняет входной сигнал в блоке размером N1 x N2. Одновременно с вводом сигнала изображения текущего кадра формирователь 32 зоны поиска размером M1 x M2 принимает сигнал изображения предшествующего кадра и сохраняет его в блоке размером M1 x M2, большем, чем блок размером N1 x N2. Блок 33 поиска соответственно принимает сигналы изображения, сохраненные в блоке размером M1 x M2 и в блоке размером N1 x N2, выходящие из формирователя 32 зоны поиска размером M1 x M2 и формирователя 31 блоков размером N1 x N2.
Погрешность определения движения, получаемая при определении вектора движения в один полный пиксель, обозначается P0. Погрешности оценки движения, генерируемые путем перемещения по всем направлениям на один пиксель соответственно на базе определенного вектора движения, обозначаются соответственно , P-1 и P1. Для расчета погрешностей определения движения используется средняя абсолютная погрешность или среднеквадратическая погрешность. Уравнения для расчета погрешностей определения горизонтального движения (P0, P1, P-1) с помощью средней абсолютной погрешности (отклонения) следующие:
Здесь Y представляет собой сигнал изображения текущего кадра, Y' - сигнал изображения предшествующего кадра, а N1= N2=N представляет собой размер блока. Вышеприведенные уравнения соответствуют блоку в (k, l) тактов от вершины левой стороны кадров. Погрешности оценки вертикального движения могут быть рассчитаны с помощью того же метода, что и вышеприведенное уравнение.
Блок 33 поиска сравнивает в рамках единичного пикселя абсолютную величину отклонения между блоком изображения текущего кадра и множеством блоков изображения, имеющихся в пределах зоны поиска предыдущего кадра и обладающих такими же размерами, и рассчитывает погрешности оценки движения с помощью результата сравнения. Первый вектор движения MV1 в один пиксель определяется местоположением блока, где отклонение при оценке движения минимально, и поступает к суммирующему блоку 37. Блок 33 поиска рассчитывает отклонения (P-1, P1, P0, ) при оценке движения с помощью опорного блока изображения в рамках предыдущего кадра, определенного с помощью вектора движения в полный пиксель, и ряда блоков изображения, окружающих опорный блок изображения на расстоянии одного пикселя. Далее рассчитанные отклонения (P-1, P1, P0, ) при оценке движения выдаются для ввода в устройство 34 управления полупикселями. В способе по настоящему изобретению горизонтальная и вертикальная компоненты вектора движения в полупиксель определяются одновременно и отдельно. Однако поскольку контроллер 35 горизонтальных полупикселей и контроллер 36 вертикальных полупикселей используют один и тот же способ, будет рассмотрен только способ определения горизонтальной компоненты вектора движения в полупиксель.
Фиг. 4 показывает подробную блок-схему контроллера горизонтальных полупикселей по фиг. 3.
Устройство (фиг. 4) включает три терминала ввода 41 - 43 для приема отклонений (P1, P0, P-1) при оценке движений; первый сумматор A1 для сложения и выдачи входного сигнала P1 первого терминала ввода 41 и входного сигнала P0 второго терминала ввода 42; второй сумматор A2 для сложения и выдачи сигнала P0 второго терминала ввода 42 и входного сигнала P-1 третьего терминала ввода 43; первый компаратор CMPI, связавший заранее определенный терминал ввода с терминалом вывода первого сумматора A1, для сравнения и выдачи входных сигналов; второй компаратор CMP2, связавший заранее определенный терминал ввода с терминалом вывода второго сумматора A2, для сравнения и выдачи входных сигналов; второй умножитель M2 для умножения выходного сигнала первого сумматора A1 на заданный коэффициент и выдачи умноженной величины на вход второго компаратора CMP2; первый умножитель M1 для умножения выходного сигнала второго сумматора A2 на заданный коэффициент и выдачи умноженной величины на вход первого компаратора CMP1; вентиль (логический элемент) ИЛИ-НЕ для выходных сигналов компараторов CMP1, CMP2. Далее устройство содержит три терминала вывода 44 - 46 для распознавания каждого из выходных сигналов, выходящих из первого компаратора CMP1, вентиля ИЛИ-НЕ и второго компаратора CMP2.
Отклонения (P1, P0, P-1) при оценке движения, выходящие из блока 33 поиска, поступают на вход контроллера 35 горизонтальных полупикселей блока 34 управления полупикселями. Затем первый сумматор A1 вычитает входной сигнал P0 от второго терминала ввода 42 из входного сигнала P1 от первого терминала ввода 41. Второй сумматор A2 вычитает входной сигнал P0 от второго терминала ввода 42 из входного сигнала P-1 от третьего терминала ввода 43. Первый и второй умножители M1, M2 умножают каждый из входных сигналов на заданный коэффициент и выдают умноженный результат компараторам CMP1, CMP2, соответственно соединенным с выходами умножителей. Величина разности (a) между P0 и P-1 и величина разности (b) между P0 и P1 поступают соответственно на вход второго компаратора CMP2 и первого компаратора CMP1. Таким образом первый компаратор CMP1 сравнивает и выдает выходные сигналы от первого сумматора A1 и первого умножителя M1. Второй компаратор CMP2 сравнивает и выдает выходные сигналы от второго сумматора A2 и второго умножителя M2.
Фиг. 5 представляет собой схемы концептуального представления, иллюстрирующие способ определения векторов движения в полупиксель в контроллере 35 горизонтальных полупикселей. Фиг. 5 показывает, что вектор движения в полупиксель находится слева от вектора движения MV в один пиксель и что вектор движения MV в полупиксель находится справа от вектора движения в один пиксель.
На фиг. 5, где P1 больше, чем P-1 (то есть B больше A), вектор движения MV размещается на расстоянии примерно 1/2 влево от первого вектора движения MV1 в один пиксель.
На фиг. 5 в случае, когда P1 больше, чем P-1 на основании P0, имеется сигнал высокого уровня только на выходе 44 первого компаратора CMP1. Таким образом контроллер 35 горизонтальных полупикселей выдает "-1/2" - значение горизонтальной компоненты второго вектора движения MV2. В случае, когда P-1 больше, чем P1 на основании P0, имеется сигнал высокого уровня только на выходе 46 второго компаратора CMP2. Таким образом контроллер 35 горизонтальных полупикселей выдает "1/2" - значение горизонтальной компоненты второго вектора движения MV2. Когда P1 и P-1 на основании P0 равны друг другу, на всех выходах двух компараторов CMP1 и СМР2 образуются только сигналы низкого уровня. Следовательно вентиль NOR ИЛИ-НЕ получает сигналы низкого уровня и его выходной сигнал становится сигналом высокого уровня. Соответственно горизонтальная компонента второго вектора движения MV2 становится равной "0".
Суммирующий блок 37 принимает второй вектор движения MV2 и складывает его с первым вектором движения MV1 в один пиксель, полученным из блока 33 поиска, определяя таким образом второй вектор движения MV2 в полупиксель.
Способ и устройство для определения движения в соответствии с настоящим изобретением выполняют сравнение сигналов изображения блоков изображения предыдущего кадра, соответствующих вектору движения, определенному среди значений отклонений, используемых для определения вектора движения в один пиксель, и окружающих блоков изображения, которые генерируются путем перемещения опорного блока изображения по всем направлениям соответственно на один пиксель, с сигналом изображения блоков текущего кадра, оценка движения которого выполняется, и затем генерируют значения отклонений в соответствии с результатом сравнения. При сравнении генерированных значений отклонений в вертикальном направлении определяется вертикальная компонента вектора движения в полупиксель. При сравнении генерированных значений отклонений в горизонтальном направлении определяется горизонтальная компонента вектора движения в полупиксель. Соответственно настоящее изобретение приводит к большей эффективности и уменьшению объема обрабатываемых данных для определения вектора движения в полупиксель.
Способ и устройство для оценки движения, предусматривающие сравнение сигналов изображения блоков изображения предыдущего кадра, соответствующих вектору движения, определенному среди значений отклонений, используемых для определения вектора движения в один пиксель, и окружающих блоков изображения, которые образуют путем смещения опорного блока изображения по всем направлениям соответственно на один пиксель, с сигналом изображения блоков изображения текущего кадра, оценку движения которого выполняют, и затем в соответствии с результатом сравнения генерирует значения отклонений. При сравнении генерированных значений отклонений в вертикальном направлении определяют вертикальную компоненту вектора движения в полупиксель. При сравнении генерированных значений отклонений в горизонтальном направлении определяют горизонтальную компоненту вектора движения в полупиксель. Соответственно настоящее изобретение ведет к большей эффективности сокращения объема информации, обрабатываемой для определения вектора движения в полупиксель. 2 с. и 4 з.п. ф-лы, 5 ил.
US, патент, 4937666, кл | |||
Очаг для массовой варки пищи, выпечки хлеба и кипячения воды | 1921 |
|
SU4A1 |
EP, заявка А, 0420653, кл | |||
Очаг для массовой варки пищи, выпечки хлеба и кипячения воды | 1921 |
|
SU4A1 |
EP, заявка А2, 0467040, кл | |||
Очаг для массовой варки пищи, выпечки хлеба и кипячения воды | 1921 |
|
SU4A1 |
Авторы
Даты
1998-08-10—Публикация
1993-02-06—Подача