Технологии оценки движения
Иллюстрации
Показать всеИзобретение относится к технологиям обработки видеоданных и изображений и, в частности, к устройству и способу оценки движения. Техническим результатом является снижение вычислительной нагрузки при оценке движения. Указанный технический результат достигается тем, что предложен способ определения вектора движения между опорным изображением и текущим изображением, содержащий этапы, на которых: определяют с помощью модуля расчета множество значений нижней границы измеренной ошибки для блока в сохраненном текущем изображении, в котором каждое из значений нижней границы измеренной ошибки соответствует сохраненному положению поиска в сохраненном опорном изображении; определяют пороговое значение разделения с использованием значений нижней границы измеренной ошибки для блока в сохраненном текущем изображении; выбирают множества положений кандидатов из множества положений поиска на основе определенного порогового значения разделения; идентифицируют одно из положений кандидатов как положение согласования для блока в текущем изображении; и определяют с помощью модуля расчета вектор движения на основе блока в текущем изображении и в положении согласования. 4 н. и 20 з.п. ф-лы, 6 ил.
Реферат
Область техники, к которой относится изобретение
Настоящее изобретение относится к технологиям оценки движения и, в частности, к устройству и способу оценки.
Уровень техники
В устройствах все чаще встречается возможность обработки видеоданных и изображений. Например, многие портативные и стационарные устройства в настоящее время имеют возможность съемки, отображения, кодирования и/или сжатия изображений для видеоприложений. Такие возможности часто накладывают существенную нагрузку на ресурсы устройства, такие как его возможность обработки и возможности его запоминающего устройства.
В результате, такие операции, как видеокодирование могут перевести к невозможности выполнения устройством дополнительных задач, и/или уменьшают время работы устройства от батареи. В соответствии с этим, необходимы технологии для улучшения эффективности таких операций.
Краткое описание чертежей
На чертежах, одинаковыми номерами ссылочных позиций обозначены идентичные, функционально аналогичные и/или структурно аналогичные элементы. Чертеж, на котором элемент появляется впервые, обозначен самой левой цифрой (цифрами) в номере ссылочных позиций. Настоящее изобретение будет описано со ссылкой на приложенные чертежи, на которых:
на фиг.1 показана схема примерного устройства;
на фиг.2 показана схема примерных кадров;
на фиг.3 показана блок-схема последовательности операций, представляющая примерные операции;
на фиг.4 показана схема примерного варианта осуществления;
на фиг.5 показана блок-схема последовательности операций, представляющая примерные операции; и
на фиг.6 показана схема примерного варианта выполнения, которая может быть включена в модуль кодирования изображения.
Подробное описание изобретения
Варианты осуществления направлены на технологии оценки движения. Например, варианты осуществления могут определять нижние граничные измеренные значения ошибки для блока в текущем изображении, где каждое из значений нижних граничных измеренных значений ошибки соответствует положению поиска в опорном изображении. На основе порогового значения разделения, множество положений кандидатов могут быть идентифицированы по положению поиска. Положение согласования затем идентифицируют по положениям кандидата. На основе положения согласования определяют вектор движения.
Благодаря использованию таких технологий могут быть предпочтительно достигнуты улучшения в вычислительной эффективности расчетов.
В данном описании делается ссылка на "один вариант осуществления" или "вариант осуществления", что означает, что определенное свойство, структура или характеристики, описанные в связи с вариантом осуществления, включены в, по меньшей мере, один вариант осуществления. Таким образом, появляющиеся фразы "в одном варианте осуществления" или "в варианте осуществления" в различных местах в данном описании не обязательно все обозначают один и тот же вариант осуществления. Кроме того, конкретные свойства, структуры или характеристики могут быть скомбинированы любым соответствующим способом в одном или больше вариантах осуществления.
На фиг.1 показана схема примерного устройства 100, в котором могут использоваться технологии, описанные здесь. Такое устройство может включать в себя различные элементы. Например, на фиг.1 показано устройство 100, включающее в себя источник 102 изображения и модуль 104 кодирования изображения. Эти элементы могут быть воплощены в аппаратных средствах, программных средствах или в любой их комбинации.
Источник 102 изображения обеспечивает значение пикселя для модуля 104 кодирования изображения. Более конкретно, на фиг.1 показано, что эти значения пикселя могут быть размещены в виде потока 122 сигнала, который представляет одно или больше изображений. Таким образом, поток 122 сигнала может содержать последовательность кадров или полей, имеющих множества значений пикселя. Каждый кадр/поле (также называемые изображениями) может соответствовать определенному времени или временному интервалу. В вариантах осуществления поток 122 сигнала является цифровым. В качестве альтернативы, поток 122 сигнала может быть аналоговым.
В вариантах осуществления источник 102 изображения может содержать носитель информации (например, запоминающее устройство), который содержит, например, видеосодержание и/или изображения. В качестве альтернативы, источник 104 изображений может содержать среду передачи данных, в которой модуль 104 кодирования изображения обеспечивает поток 122 сигнала. Такая среда передачи данных может быть проводной или беспроводной.
В качестве дополнительной альтернативы источник 102 изображения может содержать компоновку из элементов, которая снимает изображение и генерирует соответствующие сигналы. Например, в вариантах осуществления источник 102 изображения может включать в себя оптический узел и датчик изображения.
Такой оптический узел может включать в себя одно или больше оптических устройств (например, объектив, зеркала, и т.д.) для проецирования изображения в пределах поля обзора на множество элементов датчика в пределах датчика изображения. Кроме того, оптический узел может включить в себя механизм (механизмы) для управления компоновкой его оптического устройства (устройств). Например, такие механизмы могут управлять операциями фокусирования, установкой диафрагмы, операциями изменения масштаба изображения, скорости затвора, эффективным фокусным расстоянием и т.д. Вариант осуществления, однако, не ограничен этими примерами.
Такой датчик изображения может включать в себя массив элементов датчика (например, датчики, на основе комплиментарного метало-оксидного полупроводника (CMOS), приборы с зарядовой связью (CCD), и т.д.). Такие элементы могут генерировать аналоговые сигналы интенсивности (например, напряжения), которые соответствуют свету, падающему на датчик. Кроме того, датчик изображения также может включать в себя аналого-цифровой преобразователь (преобразователи) ADC, который преобразует аналоговые сигналы интенсивности в цифровые кодированные значения интенсивности. В свою очередь, датчик изображения может передавать такие значения в потоке 122 сигнала.
Модуль 104 кодирования изображения кодирует (например, сжимает) сигналы изображения, передаваемые в потоке 122 сигнала, для получения кодированного сигнала 124. Такое кодирование может выполняться в соответствии с одной или больше технологиями. Например, в модуле 104 кодирования изображения могут использоваться различные технологии сжатия для использования избыточности (например, пространственной избыточности и/или временной избыточности), присущей потоку 122 сигнала. Такие технологии могут включать в себя алгоритмы сопоставления блоков.
Алгоритмы сопоставления блоков (ВМА), подразумевают определение вектора движения (также называемого здесь вектором смещения). Вектор движения оценивает горизонтальное и вертикальное смещение блока от опорного изображения до текущего изображения. Определение таких векторов движения также называется оценкой движения. В соответствии с этим, на фиг.1 показан модуль 104 кодирования изображения, который включает в себя модуль 106 оценки движения.
Модуль 106 оценки движения определяет вектор движения для блоков (например, макроблоков) в пределах изображений или кадров. В свою очередь, модуль 104 кодирования изображения может включать эти вектора движения в кодированный сигнал 124.
В вариантах осуществления модуль 104 кодирования изображения может соответствовать, например, одному или больше стандартам Экспертной группы по вопросам движущегося изображения (MPEG), такому как MPEG-2 и/или MPEG-4. Также, модуль 104 кодирования изображения, может соответствовать одному или больше стандартам, установленным Международным союзом электросвязи (ITU) Сектор стандартизации связи (ITU-T). Примеры таких стандартов включают в себя Н.261, Н.263, и Н.264. Однако варианты осуществления не ограничены этими примерами.
Как описано выше, модуль 104 кодирования изображения, генерирует кодированный сигнал 124 из исходного потока 122 сигнала. В свою очередь, устройство 100 может сохранять кодированный сигнал 122 на носителе информации (например, в запоминающем устройстве). Устройство 100 также может декодировать и выводить (например, отображать) кодированный сигнал 124. Кроме того, устройство 100 может передавать кодированный сигнал 124 в удаленное устройство через одну или больше сетей (не показаны). После приема удаленное устройство может сохранять, декодировать, и/или выводить (например, отображать) соответствующие изображения.
Устройство 100 может быть воплощено в различных устройствах, таких как переносное устройство или встроенная система. Примеры таких устройств включают в себя мобильные беспроводные телефоны, телефоны системы голос по IP (VoiP), персональные компьютеры (PC), карманные персональные компьютеры (PDA), и цифровые камеры. Кроме того, такая система также может быть воплощена в виде видеотелефонов наземной линии, в которых используются стандартные телефонные коммутируемые сети общего пользования (PSTN), телефонные линии цифровой сети с комплексными услугами (ISDN) и/или сети пакетной передачи данных (например, локальные вычислительные сети (LAN), Интернет и т.д.). Варианты осуществления, однако, не ограничиваются этими примерами.
Операции различных вариантов осуществления могут быть дополнительно описаны со ссылкой на следующие чертежи и сопровождающие примеры. Некоторые чертежи могут включать в себя логический поток. Хотя такие чертежи, представленные здесь, могут включать в себя определенный логический поток, следует понимать, что логический поток просто представляет собой пример того, как может быть воплощена общая функция, описанная здесь. Кроме того, заданный логический поток не обязательно должен выполняться в представленном порядке, если только не будет указано другое. Кроме того, заданный логический поток может быть воплощен как аппаратный элемент, программный элемент, выполняемый процессором, или любая его комбинация. Варианты осуществления не ограничиваются этим контекстом.
Как описано выше, варианты осуществления могут генерировать кодированные сигналы изображения из не кодированных данных пикселя. Например, модуль 104 кодированного изображения по фиг.1 может использовать технологии кодирования, в которых применяется временная избыточность между последовательными изображениями. Такие аспекты настоящего изображения могут быть представлены со ссылкой на предыдущее опорное изображение.
Например, такие технологии кодирования могут определять вектора движения, ассоциированные с блоками (например, макроблоками) в текущем изображении или кадре. Более конкретно, каждый вектор движения представляет смещение, выполненное соответствующим блоком, между предыдущим опорным изображением и текущим изображением.
"Сумма абсолютных различий" (SAD), получила широкое распространение и принята как основа (или как средство измерения) для определения векторов движения. Это связано с ее простотой и понятным воплощением. SAD может быть рассчитана как представлено ниже в Уравнении (1).
S A D ( m , n ) = ∑ i = 0 N - 1 ∑ j = 0 N - 1 | c u r r e n t ( i , j ) -reference ( i + m , j + n ) | ( 1 )
В Уравнении (1): m и n представляют смещение между текущим блоком и предыдущим опорным блоком в направлениях x и y, соответственно; current (i, j) представляет значение текущего изображения в положении i, j; и reference (i+m, j+n) представляет значение предыдущего изображения в положении i+m, j+n.
В соответствии с этим, SAD по Уравнению (1) обеспечивает набор значений для определенного блока. В частности Уравнение (1) представляет, что SAD представляет собой функцию вектора смещения (вектор смещения, имеющий компоненты m и n).
Алгоритм, называемый алгоритмом согласования полного блока поиска (FSBMA), обеспечивает простой способ выполнения оценки движения. Такой алгоритм подразумевает расчет SAD для каждого m и n в области поиска (также называется окном поиска), и выбора значений m и n, которые позволяют получить минимальное значение SAD как "наилучший" вектор движения. К сожалению, FSBMA требует большого объема расчетов.
Однако существуют другие технологии, которые являются менее требовательными. Например, алгоритмы оценки движения FAST (например, поиск по ромбу, трехэтапный поиск и четырехэтапный поиск) повышают эффективность расчетов, в результате расчета только некоторых точек внутри области поиска опорного кадра. Тем не менее, такие алгоритмы быстрого поиска проявляют недостаток, называемый "проблемой локального минимума". Эта проблема может не позволить получить вектора движения с "наилучшим минимумом".
Алгоритм последовательного устранения преодолевает проблему локального минимума. Также, этот алгоритм удобен для воплощения в виде аппаратных средств. Алгоритм последовательного воплощения, который является менее требовательным к объему вычислений, чем FSBMA, находит наилучшие минимальные вектора движения с "минимальной ошибкой". Алгоритм последовательного устранения основан на математическом неравенстве, предоставленном ниже, в Выражении (2).
SAD ( m , n ) = ∑ i = 0 N-1 ∑ j = 0 N-1 | current ( i , j ) -reference ( i + m , j + n ) | ≥ | ∑ i = 0 N-1 ∑ j = 0 N-1 current ( i , j ) - ∑ i = 0 N-1 ∑ j = 0 N-1 reference ( i + m , j + n ) | = SSAD ( m , n ) ( 2 )
Как показано в Выражении (2), SSAD (m, n) (подвыборка функции SAD) обеспечивает нижнюю границу для SAD (m, n). Кроме того, для данной точки SSAD (m, n) требует меньших расчетов, чем SAD (m, n). Таким образом, алгоритм последовательного устранения вначале рассчитывает SSAD (m, n) для заданной точки. Если рассчитанное значение SSAD (m, n) не позволяет получить требуемую нижнюю границу для соответствующего значения SAD (m, n) (то есть, если рассчитанное значение SSAD (m, n) не меньше, чем текущее известное минимальное значение SAD), то более объемные вычисления SAD (m, n) для этой точки пропускают.
Алгоритм называемый, алгоритмом глобального устранения, аналогичен алгоритму последовательного устранения, поскольку в нем также используется SSAD (m, n), как нижняя граница для SAD (m, n). Например, алгоритм глобального устранения рассчитывает SSAD (m, n) для ряда положений поиска (обозначенных целым числом P) и сортирует их так, как показано ниже в Выражении (3).
{ S S A D 0 ≤ S S A D 1 ≤ S S A D 2 ≤ S S A D M - 1 ≤ S S A D M ≤ S S A D P - 1 ≤ S S A D P } ( 3 )
Затем, алгоритм глобального устранения находит наилучшее положение поиска M<<P с минимальными значениями SSAD. Эти положения поиска обозначены как (mi, ni) в Выражении (4), представленном ниже.
( m i , n i ) = { ( m , n ) | SSAD ( m , n ) ≤ SSAD M } ( 4 )
После того, как эти положения поиска будут идентифицированы, алгоритм глобального устранения рассчитывает SAD (m, n) для каждого из M положений поиска. Затем, идентифицируют положение с минимальной SAD среди M кандидатов. Это положение раскрывает вектора движения MV, в соответствии с Выражением (5), представленным ниже.
MV = { ( u , ν ) | SAD ( u , ν ) ≤ SAD ( m i , n i ) , ∀ i < M } ( 5 )
Основной недостаток алгоритма глобального устранения состоит в том, что для него требуется сортировать значения SSAD (m, n) всех P точек поиска внутри поиска области. Таким образом, такой алгоритм может требовать объемных вычислений.
В вариантах осуществления используются алгоритм, который называется здесь алгоритмом двухуровневого целого. Как и алгоритм глобального устранения, алгоритм двухуровневого целого использует корреляцию между значениями SSAD и SAD. Однако, в отличие от глобального алгоритма устранения, алгоритм двухуровневого целого не требует сортировки значения SSAD для всех P точек. В результате может быть получен выигрыш в эффективности расчетов.
Алгоритм двухуровневого целого идентифицирует пороговое значение T, которое разделяет значение SSAD на первый и второй набор. Первый набор включает все SSAD (m, n) значения, которые меньше или равны T. В отличие от этого, второй набор включает в себя все значения SSAD (m, n), которые больше T.
Пороговое значение T может быть идентифицировано таким образом, что, оно позволяет получить множество элементов в первом наборе, которые близки к требуемому значению M. Таким образом, в вариантах осуществления, T зависит от выбранного значения M.
Алгоритм двухуровневого целого обеспечивает высокую вероятность успеха при поиске "наилучшего" вектора движения. Выражение (6), представленное ниже, представляет критерии для точек в пределах первого набора (mi, ni). Также, Выражение (7) представляет, что количество точек в пределах первого набора может изменяться от М на величину Δ.
( m i , n i ) = { ( m , n ) | SSAD ( m , n ) ≤ T } ( 6 )
| ( m i , n i ) | = M ± Δ ( 7 )
Одна технология для поиска T включает в себя использование ограниченного диапазона поиска. Выражение (8) представляет, что этот ограниченный диапазон поиска имеет нижний предел Tmin и верхний предел Tmax.
T ∈ [ T min , T max ] ( 8 )
В вариантах осуществления Tmin может быть выбрано как минимум всех значений SSAD, в то время как Tmax может быть выбрано, как среднее значение всех значений SSAD. Эти варианты выбора представлены ниже в Выражениях (9) и (10).
T max = 1 P ∑ i = 0 P S S A D ( m i , n i ) ( 10 )
Такой выбор Tmax может быть основан, например, на неравенстве Маркова, в представленном Выражении (11).
P ( | x | ≥ a ) ≤ E ( | x | ) a , a > 0 ( 11 )
Например, M может быть выбрано таким образом, что оно составляет 10% от суммы P точек. Путем моделирования набора всех P значений SSAD как положительного случайного переменного значения X, имеющего дискретное однородное распределение, применение неравенства Маркова (подставление T вместо a) обеспечивает анализ Выражений (12) и (13). Этот анализ показывает, что среднее значение SSAD всех точек P обеспечивает соответствующую верхнюю границу для T (то есть, Tmax).
P ( | x | ≥ T ) = 0 . 9 ( 12 )
0.9 ≤ E ( | x | ) T → T ≤ E ( | x | ) 0 . 9 ( 13 )
В вариантах осуществления, после того, как Tmin и Tmax будут идентифицированы, может быть определено наилучшее пороговое значение T. Это определение может подразумевать использование двоичного алгоритма поиска.
В вариантах осуществления значения SAD и SSAD могут быть основаны на отдельных значениях пикселя. Однако, в дополнительных вариантах осуществления, значения SAD и SSAD могут быть основаны на суммах, соответствующих блокам пикселей. Пример такой технологии представлен на фиг.2.
В частности, на фиг.2 показана схема, представляющая текущий кадр 202, опорный кадр 204 и обрабатываемый опорный кадр 206. Текущий кадр 202 включает в себя микроблок 208. Этот микроблок представляет собой область в пределах текущего кадра 202, которая имеет ширину 16 пикселей на высоту 16 пикселей (16×16).
С целью расчета SAD и SSAD значения пикселей в пределах микроблоков могут быть скомбинированы для повышения эффективности расчетов. Например, множество подблоков 4×4 существует в пределах микроблока 208. Каждое из значений пикселей подблока суммируют для генерирования соответствующего значения для микроблока 208. Таким образом, микроблок 208 может быть представлен как массив размером 4×4 значений (то есть, значения для каждого подблока).
Этот принцип показан на фиг.2 в виде представления 220 с увеличением микроблока 206. В этом представлении, микроблок 208 показан как массив сумм размером 4×4. Каждая из этих сумм (представлено ниже в Выражении 14) представляет собой значение пикселя, суммарное для соответствующего подблока размером 4×4:
∑ i , j 4 × 4 x ( i , j ) ( 14 )
Таким образом, на основе технологии, значения SSAD макроблока 208, могут быть рассчитаны, как показано ниже в Выражении (15)
S S A D ( m , n ) = ∑ j = 1 4 ∑ i = 1 4 | ‖ c u r r e n t i , j 4 × 4 ‖ - ‖ reference ( m , n ) i , j 4 × 4 ‖ | ≤ S A D 16 × 16 ( m , n ) ; ( 15 )
где: ‖ X i , j 4 × 4 ‖ = ∑ i , j 4 × 4 x ( i , j )
Варианты осуществления могут дополнительно улучшить эффективность расчета путем расчета значений пикселя подблока для всего опорного кадра. Эти расчеты выходят за пределы размера опорного кадра на размер используемого подблока. Например, на фиг.2 показан с увеличением опорный кадр 206, имеющий высоту H+4 и ширину W+4. В пределах этого увеличенного опорного кадра показано окно 210 поиска, в котором может быть выполнен поиск вектора движения.
На фиг.3 представлен вариант осуществления логического потока. В частности на фиг.3 иллюстрируется логический поток 300, который может представлять операцию, выполняемую одним или больше вариантами осуществления, описанными здесь. Хотя на фиг.3 представлена определенная последовательность, другие последовательности также можно использовать. Также представленные операции могут выполняться в различных параллельных и/или последовательных комбинациях.
Поток, показанный на фиг.3 подразумевает оценку векторов движения для микроблоков в пределах текущего изображения (кадра). Эти вектора движения основаны на опорном изображении (в кадре). На фиг.3 показано, что, в блоке 302, все суммы подблоков (например, подблок размером 4×4) рассчитывают для опорного изображения.
В блоке 304, выбирают микроблок в пределах текущего изображения. На основе такого выбора определяют значение нулевого смещения SAD в блоке 306. Такое значение SAD обозначено как минимальное значение SAD. Как обозначено блоком 308, операция переходит к блоку 316, если это значение SAD будет меньше, чем заданное выходное пороговое значение. В противном случае, операция переходит к блоку 310.
Множества значений SSAD рассчитывают в блоке 310. Это может содержать, например, расчет всех значений SSAD в пределах используемого окна поиска.
В блоке 312 определяют пороговое значение разделения. Это может содержать определение порогового значения T, как описано выше со ссылкой на Выражения (6)-(13).
На основе определенного порогового разделения идентифицируют M положений поиска. В соответствии с этим, в блоке 314, значения SAD рассчитывают для каждого из этих положений поиска. На основе этих значений SAD (и значения SAD нулевого смещения, определенного в блоке 306), минимальное значение SAD обновляют в блоке 316.
В соответствии с этим, в блоке 318, определяют вектор движения для выбранного макроблока. Такой вектор движения соответствует минимальному значению SAD.
В блоке 320 определяют, все ли макроблоки в пределах текущего изображения были выбраны. Если нет, тогда операция возвращается в блок 304 для выбора дополнительного макроблока. В противном случае, операция переходит к блоку 322. В блоке 322, следующее изображение (например, кадр), выбирают как общее изображение. В свою очередь, операции, такие как описаны здесь могут быть снова выполнены.
На фиг.4 показана схема примерного варианта 400 воплощения. Такой вариант воплощения может выполнять такие технологии оценки движения, как технологии по фиг.3. В соответствии с этим, варианты 400 воплощения могут быть включены в модуль 104 кодированного изображения по фиг.1.
Варианты 400 воплощения могут включать в себя различные элементы. Например, на фиг.4 показано воплощение, включающее в себя носитель 402 сохранения, модуль 404 выбора блока, и модуль 406 расчета вектора. Эти элементы могут быть воплощены в аппаратных средствах, программных средствах или в любой их комбинации.
Носитель 402 сохранения может содержать данные для множества изображений или кадров. Например, носитель 402 сохранения сохраняет данные пикселя для текущего кадра и данные пикселя для опорного кадра. Носитель 402 сохранения может включать в себя, например, запоминающее устройство и/или другие типы материальных устройств сохранения. Примеры запоминающего устройства и таких устройств сохранения предоставлены ниже.
Модуль 404 выбора блока выбирает блок (например, макроблок), в пределах текущего изображения. Как обозначено на фиг.4, такой выбор приводит к тому, что индикатор 420 выбора передают в носитель 402 сохранения. На основе этого индикатора выбора носитель 402 сохранения обеспечивает данные для модуля 406 расчета вектора. В частности на фиг.4 представлен носитель 402 сохранения, предоставляющий данные 422 опорного изображения, данные 424 текущего изображения и данные 426 текущего изображения.
Модуль 406 расчета вектора рассчитывает вектор 438 движения для блока, выбранного модулем 402 выбора блока. Такой расчет может быть выполнен в соответствии с технологиями, описанными здесь. Как показано на фиг.4, модуль 404 расчета вектора включает в себя модуль 408 суммирования подблока, модуль 410 расчета SSAD, модуль 412 расчета SAD, модуль 414 определения порогового значения, модуль 416 минимального выбора и модуль 418 определения вектора движения. Как описано выше, эти элементы могут быть воплощены в аппаратных средствах, программных средствах или в любой их комбинации.
На фиг.4 показано, что модуль 408 суммирования подблока принимает данные 422 опорного изображения с носителя 402 сохранения. На основе этих данных, модуль 408 суммирования подблока рассчитывает суммы 427 подблока, которые передают в модуль 410 расчета SSAD и в модуль 412 расчета SAD.
Модуль 410 расчета SSAD принимает суммы 427 подблока и данные 424 текущего изображения. Из этой информации модуль 410 расчета SSAD рассчитывает значения 428 SSAD, как описано здесь. Такие значения SSAD могут соответствовать величинам смещениям в пределах окна поиска. Как показано на фиг.4, модуль 410 расчета SSAD передает значения 428 SSAD в модуль 414 определения порогового значения.
После приема этой информации модуль 414 определения порогового значения определяет пороговое значение разделения для значения SSAD. Например, модуль 414 определения порогового значения может определять T, как описано выше со ссылкой на Выражения (6)-(13). На основе этого определения, модуль 414 определения порогового значения возвращает пороговое значение 430 в модуль 410 расчета SSAD.
В ответ на это пороговое значение, модуль 410 расчета SSAD передает индикаторы 432 смещения в модуль 430 расчета SAD. Эти индикаторы соответствуют значениям SSAD, которые соответствуют пороговому значению 430. Таким образом, модуль 410 расчета SSAD может передать M±Δ индикаторы в модуль 412 расчета SAD.
На фиг.4 показано, что модуль 412 расчета SAD принимает данные 422 опорного изображения и данные 426 текущего изображения. На основе этой информации, модуль 412 расчета SAD рассчитывает значения SAD для каждого из индикаторов 432 смещения. Кроме того, как описано выше со ссылкой на фиг.3, модуль 412 расчета SAD может рассчитывать значение SAD нулевого смещения. Результаты этих расчетов передают в модуль 416 выбора минимума в качестве значений 434 SAD.
Модуль 416 выбора минимума сортирует значения 434 SAD и идентифицирует минимальное значение SAD. Исходя из этого, модуль 416 выбора минимума генерирует индикатор 436 смещения, соответствующий минимальному значению SAD. Как показано на фиг.4, этот индикатор передают в модуль 418 определения вектора движения. На основе индикатора 436 модуль 418 определения вектора движения определяет вектор 438 движения.
В приведенном выше описании представлена технология для выполнения оценки движения. На фиг.5 показана блок-схема последовательности операций, представляющая свойства таких технологий. В частности, на фиг.5 иллюстрируется логический поток 500, который может представлять операции, выполняемые одним или больше вариантами осуществления, описанными здесь. Хотя на фиг.5 показана определенная последовательность, могут использоваться другие последовательности. Также, представленные операции могут быть выполнены в различных параллельных и/или последовательных комбинациях.
В блоке 502 множество значений нижней границы измеренной ошибки (например, значения SSAD) рассчитывают для блока в текущем изображении. Каждое из этих значений нижней границы показателя ошибки соответствует положению поиска в опорном изображении.
В блоке 504 множество положений кандидатов выбирают из множества положений поиска. Этот выбор может быть основан на пороговом значении разделения, таком как T, которое описано выше со ссылкой на Выражения (6)-(13). В соответствии с этим, варианты осуществления могут определять пороговое значение разделения на основе значений нижней границы измеренной ошибки, рассчитанных в блоке 502. Также, эти положения кандидатов могут включать в себя положение нулевого смещения (например, как описано со ссылкой на блок 306 на фиг.3).
Из этих положений кандидатов идентифицируют положение соответствия в блоке 506. Такая идентификация может включать в себя определение измеренных значений ошибки (например, значения SAD) для каждого из положений кандидатов, и идентификацию минимального измеренного значения ошибки.
В блоке 508, определяют вектор движения на основе блока в текущем изображении и соответствующий блок.
Эти операции могут быть выполнены для множества блоков в текущем изображении. Более того, может быть сгенерировано кодированное изображение, которое включает в себя вектора движения (как сгенерированные выше) для одного или больше блоков.
Как описано выше, технологии, описанные здесь, могут использоваться в контексте изображения/видеокодирования. Например, на фиг.1 показан модуль 104 кодированного изображения.
На фиг.6 показано примерное воплощение 600, которое может быть включено в модуль 104 кодирования изображения. Такое воплощение может вклю