CN102172030A - 运动估计技术 - Google Patents

运动估计技术 Download PDF

Info

Publication number
CN102172030A
CN102172030A CN2009801398348A CN200980139834A CN102172030A CN 102172030 A CN102172030 A CN 102172030A CN 2009801398348 A CN2009801398348 A CN 2009801398348A CN 200980139834 A CN200980139834 A CN 200980139834A CN 102172030 A CN102172030 A CN 102172030A
Authority
CN
China
Prior art keywords
value
piece
error metrics
present image
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2009801398348A
Other languages
English (en)
Other versions
CN102172030B (zh
Inventor
D·布金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN102172030A publication Critical patent/CN102172030A/zh
Application granted granted Critical
Publication of CN102172030B publication Critical patent/CN102172030B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/567Motion estimation based on rate distortion criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Analysis (AREA)

Abstract

公开了用于运动估计的技术。例如,实施例可确定当前图像中块的误差度量下界值,其中误差度量下界值中的每一个对应于参考图像中的搜索位置。基于分离阈值,可从搜索位置中标识多个候选位置。然后从候选位置标识匹配位置。基于匹配位置,确定运动向量。

Description

运动估计技术
背景技术
让许多设备具有视频和图像处理能力正变得越来越普遍。例如,很多便携和固定设备现在能够捕捉、显示、编码和/或压缩视频应用的图像。这些能力通常将大量负载施加在设备的资源上,诸如其处理和存储资源上。
结果,诸如视频编码之类的操作可导致设备不能执行另外的任务和/或设备电池寿命的减少。因此,需要用于改进这种操作的效率的技术。
附图简述
在附图中,相似的附图标记一般指示相同、功能类似和/或结构类似的元件。其中元件第一次出现的附图由附图标记中最左面的数字指示。将参考附图描述本发明,附图中:
图1是示例性装置的图;
图2是示例性帧的图;
图3是示出示例性操作的流程图;
图4是示例性实现方式的图;
图5是示出示例性操作的流程图;以及
图6是可包括在图像编码模块内的示例性实现方式的图。
具体实施方式
实施例提供用于运动估计的技术。例如,实施例可确定当前图像中块的误差度量下界值,其中误差度量下界值中的每一个对应于参考图像中的搜索位置。基于分离阈值,可从搜索位置标识多个候选位置。然后从候选位置标识匹配位置。基于匹配位置,确定运动向量。
通过利用这种技术,可有利地实现计算效率的提高。
贯穿此说明书,对“一个实施例”或“一实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包含于至少一个实施例中。因此,在本说明书通篇中的多个位置中短语“在一个实施例中”或“在实施例中”的出现不一定全部指的是同一实施例。而且,特定特征、结构、或特性可按照任何合适的方式在一个或多个实施例中组合。
图1是利用了本文公开的技术的示例性装置100的示图。该装置可包括各种元件。例如,图1示出装置100包括图像源102和图像编码模块104。这些元件可以硬件、软件或其任何组合实现。
图像源102向图像编码模块104提供像素值。更具体地,图1示出可将这些像素值安排到信号流122中,该信号流122表示一个或多个图像。因此,信号流122可包括具有多个像素值的帧或字段的序列。每个帧/字段(也称为图像)可对应于特定的时间或时间间隔。在实施例中,信号流122是数字的。或者,信号流122可以是模拟的。
在实施例中,图像源102可包括存储例如视频内容和/或图像的存储介质(例如,存储器)。或者,图像源104可包括向图像编码模块104提供信号流122的通信介质。这种通信介质可以是有线的或无线的。
又或者,图像源102可包括用于捕捉图像并生成对应信号的元件的布置。例如,在实施例中,图像源102可包括光学组件和图像传感器。
这种光学组件可包括一个或多个光学设备(例如,透镜、反射镜等)以将视场内的图像投影到图像传感器内的多个传感器元件上。此外,光学组件可包括控制其光学设备的布置的机构。例如,这种机构可控制聚焦操作、光圈设置、缩放操作、快门速度、有效焦距等。然而,各实施例不限于这些示例。
这种图像传感器可包括传感器元件(例如,互补金属氧化物半导体(CMOS)传感器、电荷耦合器件(CCD)等)的阵列。这些元件可生成模拟强度信号(例如,电压),其对应于入射到传感器上的光。此外,图像传感器还可包括将模拟强度信号转换成数字编码的强度值的模数转换器ADC。进而,图像传感器可在信号流122中传送这些值。
图像编码模块104编码信号流122中传送的图像信号以产生经编码的信号124。这种编码可根据一种或多种技术。例如,图像编码模块104可利用各种压缩技术以利用信号流122所固有的冗余(例如,空间冗余和/或时间冗余)。这些技术可包括块匹配算法。
块匹配算法(BMA)包括确定运动向量(在本文中也称为位移向量)。运动向量估计块从参考图像至当前图像的水平和垂直位移。这些运动向量的确定也被称为运动估计。因此,图1示出包括运动估计模块106的图像编码模块104。
运动估计模块106确定图像或帧内的块的运动向量(例如,宏块)。进而,图像编码模块104可将这些运动向量包括在经编码的信号124中。
在实施例中,图像编码模块104可遵循例如一个或多个运动图像专家组(MPEG)标准,诸如MPEG-2和/或MPEG-4。同样,图像编码模块104可遵循国际电信联盟(ITU)电信标准化部门(ITU-T)建立的一个或多个标准。这种标准的例子包括H.261、H.263和H.264。然而,各实施例不限于这些示例。
如上所述,图像编码模块104从数据流122生成经编码的信号124。进而,装置100可将经编码的信号122存储在存储介质中(例如存储器)。装置100还可解码并输出(例如显示)经编码的信号124。此外,装置100可将经编码的信号124经由一个或多个网络(未示出)发送到远程设备。在接收后,远程设备可存储、解码和/或输出(例如显示)对应的图像。
装置100可被实现在各种设备中,诸如手持装置或嵌入式系统。这种设备的示例包括移动无线电话、IP语音(VoiP)电话、个人计算机(PC)、个人数字助理(PDA)和数码相机。此外,这种系统还可被实现在基于陆线的视频电话中,这种视频电话采用标准公共交换电话网络(PSTN)电话线、集成数字服务网络(ISDN)电话线和/或分组网络(例如,局域网(LAN)、因特网等)。然而,各实施例不限于这些示例。
各实施例的操作将参考以下附图和示例进一步描述。一些附图可包括逻辑流程。尽管此处呈现的这些附图可包括特定的逻辑流程,但可以认识到,该逻辑流程仅仅提供如何实现此处所述的一般功能的示例。此外,除非另外指出,不一定必须按照所呈现的顺序执行给定的逻辑流程。另外,给定的逻辑流程可由硬件元件、由处理器执行的软件元件或其任意组合来实现。实施例不限于该上下文。
如上所述,实施例可从未经编码的像素数据生成经编码的图像信号。例如,图1的图像编码模块104可采用编码技术,该编码技术利用连续图像之间的时间冗余。因此,可参考前一参考图像来表示当前图像的各方面。
例如,这些编码技术可确定与当前图像或帧中的块(例如,宏块)相关联的运动向量。更具体地,每个运动向量表示对应块在前一参考图像和当前图像之间作出的位移。
绝对差之和(SAD)作为用于确定运动向量的基础(或度量)已经获得广泛的采用。这是由于其简单和直接的实现方式。可计算SAD,如以下方程式(1)所表达的。
SAD ( m , n ) = Σ i = 0 N - 1 Σ j = 0 N - 1 | current ( 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的值。
因此方程式(1)的SAD提供特定块的一组值。具体地,方程式(1)示出SAD是位移向量的函数(位移向量具有分离m和n)
称为全搜索块匹配算法(FSBMA)的算法提供一种用于执行运动估计的简单方式。这种算法包括针对搜索区(也称为搜索窗口)内的每个m和n计算SAD并且将得到最小SAD的m和n的值选作“最好”的运动向量。不幸的是,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 = 1 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)的下界。例如,全局排除算法针对数个搜索位置(由整数P指定)计算SSAD(m,n),并且按以下表达式(3)所示方式对其排序。
{SSAD0≤SSAD1≤SSAD2≤SSADM-1≤SSADM≤SSADP-1≤SSADP}    (3)
然后,全局排除算法得到具有最小SSAD值的最佳M<<P搜索位置。这些搜索位置在以下的表达式(4)中被指示为(mi,ni)。
(mi,ni)={(m,n)|SSAD(m,n)≤SSADM}                     (4)
在标识这M个搜索位置后,全局排除算法针对M个搜索位置中的每一个计算SAD(m,n)。然后,标识M个候选中具有最小SAD的位置。根据以下的表达式(5),该位置揭示运动向量MV。
MV = { ( u , v ) | SAD ( u , v ) &le; SAD ( m i , n i ) , &ForAll; i < M } - - - ( 5 )
全局排除算法的主要缺点是它需要对搜索区内的所有P个搜索点的SSAD(m,n)值排序。因此,这种算法计算代价很高。
实施例采用在本文中称为双-层整数算法的算法。类似于全局排除算法,双-层整数算法利用SSAD和SAD值之间的相关性。然而,与全局排除算法不同,双-层整数算法不需要对所有P个点的SSAD值排序。结果,可获得计算效率方面的收益。
双-层整数算法标识了用于将SSAD值分成第一组和第二组的阈值T。第一组包括小于或等于T的所有SSAD(m,n)值。相反,第二组包括大于T的所有SSAD(m,n)值。
可标识阈值T,使得它得到在第一组中若干个接近期望值M的元素。因此,在实施例中,T取决于所选的M值。
在得到“最好的”运动向量方面,双-层整数算法提供了很高的成功概率。以下表达式(6)示出第一组(mi,ni)内点的标准。而且,表达式(7)示出第一组内的点的个数可与M相差一个量值Δ。
(mi,ni)={(m,n)|SSAD(m,n)≤T}        (6)
|(mi,ni)|=M±Δ                       (7)
得到T的一种技术包括利用有限的搜索范围。
表达式(8)示出这种有限的搜索范围具有下限Tmin和上限Tmax
T∈[Tmin,Tmax]                         (8)
在实施例中,可将Tmin选为所有SSAD值的最小值,而可将Tmax选为所有SSAD值的平均值。以下在方程式(9)和(10)中表达这些选择。
T min = { SSAD ( u , v ) | SSAD ( u , v ) &le; SSAD ( m i , n i ) , &ForAll; i < P } - - - ( 9 )
T max = 1 P &Sigma; i = 0 P SSAD ( m i , n i ) - - - ( 10 )
Tmax的这种选择可基于例如表达式(11)中提供的马尔可夫不等式。
P ( | x | &GreaterEqual; a ) &le; E ( | x | ) a , a > 0 - - - ( 11 )
例如,可选择M使得它是全部P个点的10%。通过将所有P个SSAD值的组建模为具有离散均匀分布的正随机变量X,马尔可夫不等式(T取代a)的应用提供表达式(12)和(13)的分析。这种分析示出所有P个点的平均SSAD值为T提供了适当的上届(即,Tmax)。
P(|x|≥T)=0.9                 (12)
0.9 &le; E ( | x | ) T &RightArrow; T &le; E ( | x | ) 0.9 - - - ( 13 )
在实施例中,一旦标识出Tmin如和Tmax,可确定最佳T阈值。这种确定可包括采用二进制搜索算法。
在实施例中,SAD和SSAD值可基于各个像素值。然而,在其它实施例中,SAD和SSAD值可基于与像素块对应的和。在图2中提供这种技术的示例。
具体地,图2是示出当前帧202、参考帧204和经处理的参考帧206的示图。当前帧202包括宏块208。这种宏块表示当前帧202中16个像素宽乘16个像素高(16x16)的区域。
为了计算SAD和SSAD,可组合宏块内的像素值以增加计算效率。例如,多个4x4子块存在于宏块208内。每个子块像素值相加以生成宏块208的对应值。因此,宏块208可表示为多个值的4x4阵列(即每个子块对应一个值)。
该原理在图2中通过宏块206的放大表示220来示出。在该表示中,宏块208示为多个和的4x4阵列。这些和中的每一个(以下在表达式14中提供)是对应的4x4子块的像素值总和:
&Sigma; i , j 4 &times; 4 x ( i , j ) - - - ( 14 )
因此,基于技术,可计算宏块208的SSAD值,如以下表达式(15)所示
SSAD ( m , n ) = &Sigma; j = 1 4 &Sigma; i = 1 4 | | | current i , j 4 &times; 4 | | - | | reference ( m , n ) i , j 4 &times; 4 | | | &le; SAD 16 &times; 16 ( m , n ) ; - - - ( 15 )
其中 | | X i , j 4 &times; 4 | | = &Sigma; i , j 4 &times; 4 x ( i , j )
通过对整个参考帧计算子块像素值实施例可进一步提高计算效率。这些计算延伸超过参考帧尺寸达所采用的子块的尺寸。例如,图2示出放大的参考帧206具有高度H+4和宽度W+4。该放大参考帧内是搜索窗口210,可在该搜索窗口210内寻求运动向量。
图3示出逻辑流程的一个实施例。具体地,图3示出逻辑流程300,它表示由本文描述的一个或多个实施例执行的操作。尽管图3示出特定的顺序,但可采用其它顺序。同样,可按各种并行和/或顺序的组合执行所描述的操作。
图3的流程包括为当前图像(帧)内的宏块估计运动向量。这些运动向量基于参考图像(帧)。图3示出在框302,对于参考图像计算所有子块(例如4x4子块)和。
在框304,选择当前图像内的宏块。基于这种选择,在框306确定零位移SAD值。该SAD值被指定为最小SAD值。如框308所指示的,如果该SAD值小于预定退出阈值则操作进行到框316。否则,操作进行到框310。
在框310计算多个SSAD值。这可包括例如在采用的搜索窗口内计算所有SSAD值。
在框312,确定分离阈值。这可包括确定阈值T,如上参考表达式(6)至(13)所述。
基于确定的分离阈值,标识M个搜索位置。因此,在框314,为这些搜索位置中的每一个计算SAD值。基于这些SAD值(以及在框306处确定的零位移SAD值),在框316更新最小SAD值。
因此,在框318,为所选宏块确定运动向量。该运动向量对应于最小SAD值。
在框320,确定是否已经选择当前图像内的所有宏块。如果没有,则操作返回到框308以便选择其它宏块。否则,操作进行到框322。在框322,选择下一图像(例如帧)作为当前帧。进而,可再次执行诸如本文描述的那些操作。
图4是示例性实现方式400的图。该实现方式可执行诸如图3的技术之类的运动估计技术。因此,实现方式400可包括在图1的图像编码模块104内。
装置400可包括各个元件。例如,图4示出包括存储介质402、块选择模块404和向量计算模块406的实现。这些元件可以硬件、软件或其任何组合实现。
存储介质402可存储多个图像或帧的数据。例如,存储介质402存储当前帧的像素数据和参考帧的像素数据。存储介质402可包括例如存储器和/或其它类型的有形存储介质。以下提供存储器和这些存储设备的示例。
块选择模块404选择当前帧内的块(例如宏块)。如图4所指示的,这种选择得到被发送到存储介质402的选择指示符420。基于这种选择指示符,存储介质402将数据提供给向量计算模块406。具体地,图4示出提供参考图像数据422、当前图像数据424和当前图像数据426的存储介质402。
向量计算模块406计算由块选择模块402选择的块的运动向量438。这种计算可根据本文描述的技术。如图4所示,向量技术模块404包括子块求和模块408、SSAD技术模块410、SAD技术模块412、阈值确定模块414、最小值选择模块416和运动向量确定模块418。如上所述,这些元件可以硬件、软件或其任何组合实现。
图4示出子块求和模块408从存储介质402接收参考图像数据422。基于该数据,子块求和模块408计算子块和427,并将其发送到SSAD计算模块410和SAD计算模块412。
SSAD计算模块410接收子块和427和当前图像数据424。根据该信息,SSAD计算模块410计算SSAD值428,如本文所述。这种SSAD值可对应于搜索窗口内的位移。如图4所示,SSAD计算模块410将SSAD值428发送至阈值确定模块414。
在接收到该信息后,阈值确定模块414确定SSAD值的分离阈值。例如,阈值确定模块414可确定T,如上参考表达式(6)至(13)所述。基于这种确定,阈值确定模块414将阈值430返回给SSAD确定模块410。
响应于该阈值,SSAD计算模块410将位移指示符432发送至SAD计算模块430。这些指示符对应于符合阈值430的SSAD值。因此SSAD计算模块410可将M±Δ指示符发送到SAD计算模块412。
图4示出SAD计算模块412接收参考图像数据422和当前图像数据426。基于该信息,SAD计算模块412针对每个位移指示符432计算SAD值。另外,如上参考图3所述,SAD计算模块412可计算零位移SAD值。这些计算的结果被发送到最小值选择模块416并作为SAD值。
最小值选择模块416对SAD值434排序并且标识最小SAD值。由此,最小值选择模块416生成与最小SAD值对应的位移的指示符436。如图4所示,该指示符被发送到运动向量确定模块418。基于指示符436,运动向量确定模块418确定运动向量438。
上述描述提供用于执行运动估计的技术。图5是示出这种技术的特征的另一个流程图。具体地,图5示出逻辑流程500,它表示由本文描述的一个或多个实施例执行的操作。尽管图5示出特定的顺序,但可采用其它顺序。同样,可按各种并行和/或顺序的组合执行所描述的操作。
在框502,针对当前图像中的块计算多个误差度量下界值(例如,SSAD值)。这些误差度量下界值中的每一个对应于参考图像中的搜索位置。
在框504,从多个搜索位置中选择多个候选位置。这种选择可基于诸如T这样的分离阈值,上文结合表达式(6)至(13)对此进行过描述。因此,实施例可基于框502处计算的误差度量下界值来确定分离阈值。同样,这些候选位置可包括零位移位置(例如,参考图3的框306所述)。
从这些候选位置,在框506标识匹配位置。这种标识可包括针对每个候选位置确定误差度量值(例如SAD值)以及标识最低的误差度量值。
在框508,确定基于当前图像中的块和匹配块的运动向量。
可对当前图像中的多个块执行这些操作。此外,可生成经编码的图像,包括一个或多个块的运动向量(如上生成的)。
如上所述,可在图像/视频编码背景中采用本文描述的技术。例如,图1示出图像编码模块104。
图6示出可包括在图像编码模块104中的示例性实现方式600。该实现方式可包括各种元件,诸如编码器602、帧存储模块604和参数设置模块607。然而,实施例不限于这些元件。
编码器602可采用基于混合变换的运动补偿编码方案。然而,实施例不限于该示例。这种编码方案可使用空间和时间冗余以减少表示图像所需的数据量。因此,编码器602可遵循例如一个或多个运动图像专家组(MPEG)标准,诸如MPEG-2和/或MPEG-4。同样,编码器602可遵循国际电信联盟(ITU)电信标准化部门(ITU-T)建立的一个或多个标准。这种标准的例子包括H.261、H.263和H.264。
图6示出编码器602包括正向部分605和重构部分606。正向部分605接收未压缩的图像信息并以经编码(例如,经压缩)形式输出该信息。然而,正向部分605依赖重构部分606来提供用于编码的预测信息。
帧存储模块604存储诸如帧的图像信号。这些帧例如可从诸如图像传感器104之类的图像传感器接收。此外,参考图4,帧存储模块204可提供存储介质402的特征。另外,帧存储模块604存储从编码器602接收的重构帧。因此,帧存储模块604可包括诸如存储器的存储介质。以下提供存储介质的示例。
再次参考编码器602,图6示出其正向部分可包括图1的运动估计模块106。此外,正向部分205可包括组合(例如求差)节点610、正向变换模块612、量化模块614、编码模块616和选择内预测模块618。同样,图6示出重构部分606可包括运动补偿模块620、内预测模块622、路由模块624、逆量化模块626、逆变换模块628、组合(例如求和)节点630和环内解块滤波器632。
图6示出帧存储模块604将当前帧650(也示为Fn)提供给正向部分605。此外,帧存储模块604向正向部分605提供参考帧652(在图6中也示为
Figure BPA00001346889900101
)然而,可选择地提供一个以上的参考帧。编码器602以诸如16x16图像像素区之类的宏块为单位处理这些帧(然而,对于间预测编码可按可变大小区域的形式处理参考帧)。例如,图6示出对应于当前帧Fn的宏块Bn。
编码器602可按内预测模式或间预测模式编码这些块中的每一个。这些模式中的每一个采用预测块,其示为图6中P。而且,对于这些模式中的每一种,预测块P的生成是基于用作参考的重构帧的。
在内预测模式中,模块622从之前已经被编码、解码和重构的当前帧n中的采样形成预测块Pintra。在图6中这些采样被示为可根据各种模式执行内预测。因此,模块618为Fn内的每个块选择这些模式之一,基于这种选择,内预测模块622生成预测块。
在间预测模式中,模块620通过应用运动补偿预测技术从一个或多个参考帧形成预测块Pinter。例如,图6示出参考帧652,该参考帧652是之前编码和重构的帧
Figure BPA00001346889900112
然而,可将两个或更多个经编码和重构的帧用作参考帧。
间预测模式采样运动估计模块608和运动补偿模块620。运动估计模块608为当前帧Fn内的一个或多个块估计运动向量。这些运动向量是基于参考帧内的对应块的。在实施例中,运动估计模块106可按以上参考图4描述的方式实现。然而,如上所述,帧存储模块204可选择地提供存储介质402的特征。
对于帧Fn内的每个块,运动补偿模块620基于参考帧内的对应块产生预测块Pinter。根据由运动估计模块608估计的运动向量确定该对应块。
如图6所示,路由模块624选择Pinter或Pintra作为预测块P。这种选择可基于帧Fn和一个或多个其它帧的特性。进而,组合节点610计算(当前帧Fn内的)当前宏块Bn和预测宏块P之差。这产生残差或差宏块Dn。正向变换模块612(例如利用4x4块变换)将Dn变换成一组变换系数。进而,这些系数通过量化模块614量化成经量化的系数X。这些经量化的系数被发送到编码模块616,该编码模块616可对它们进行重排序或熵编码。
结果,编码模块616输出宏块Bn的经压缩的信息流658。在图1的背景下,经压缩的信息流658可被包括在经编码的信号124中。经压缩的信息流658可包括经编码的系数以及用于解码宏块的辅助信息。这种辅助信息的示例包括宏块预测模式、量化器步长、描述如何运动补偿宏块的运动向量信息等。可按多种方式处理流658。例如,可将信息流658发送至远程设备和/或存储在存储介质中。
如上所述,重构部分606可包括运动补偿模块620、内预测模块622、路由模块624、逆量化模块626、逆变换模块628、组合节点630和解块滤波器632。
逆量化模块626从量化模块614接收经量化的宏块系数X并对它们重新定比例。这些经重新定比例的系数被发送到逆变换模块628,该逆变换模块628对该系数执行逆变换(例如,逆4x4块变换)以获得差宏块Dn′。Dn′可不等于原始的差宏块Dn。这是因量化模块614所引入的失真导致的。
图6示出差宏块Dn′与预测宏块P组合以产生重构的宏块uBn′。该重构的宏块是原始宏块的失真版本。为了减少这种失真,将解块滤波器632施加到原始宏块。而且,解块滤波器632将宏块重构到经构成的帧654(也示为
Figure BPA00001346889900121
)中。
如本文所述,各实施例可利用硬件元件、软件元件或其任何组合实现。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微型芯片、芯片组等。
软件的示例可包括软件成分、程序、应用软件、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、规程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、数值、符号或其任意组合。
例如,可使用机器可读介质或者制品来实现一些实施例,这些介质或者制品可存储指令或者指令集,这些指令或指令集在由机器执行时可使该机器根据实施例来执行方法和/或操作。这种机器可包括,例如,任何适当的处理平台、计算平台、计算装置、处理装置、计算系统、处理系统、计算机、处理器等,且可使用硬件和/或软件的任何适当的组合来实现。
机器可读介质或制品可包括,例如任何适当类型的存储器单元、存储器装置、存储器制品、存储器介质、存储装置、存储制品、存储介质、和/或存储单元,例如,存储器、可移除或者不可移除介质、可擦除或者不可擦除介质、可写或者可重写介质、数字或模拟介质、硬盘、软盘、压缩盘只读存储器(CD-ROM)、可记录压缩盘(CD-R)、可重写压缩盘(CD-RW)、光盘、磁介质、光磁介质、可移除存储器卡或盘、各种类型的数字多用盘(DVD)、录像带、磁带等。指令可包括任何适当类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、加密代码等,且使用任何适当的高级、低级、面向对象、可视化、编译和/或解释编程语言来实现。
尽管以上已经描述了本发明的各个实施例,但应当理解,它们是作为示例而非限定给出的。
例如,本文描述的技术不限于采用SSAD值和SAD值。例如,可采用其它误差度量下界值和误差度量。而且,实施例不限于采用16x16宏块或4x4子块。此外,实施例可采用(基于马尔可夫不等式的技术之外的)各种技术以确定分离阈值。
因此,对相关领域技术人员显而易见的是,在不背离本发明的精神和范围的情况下可在形式和细节方面作出各种变化。因此,本发明的宽度和范围不应由上述示例性实施方式中的任何一个来限制,而应当只根据所附权利要求书及其等效物来限定。

Claims (20)

1.一种方法,包括:
确定当前图像中的块的多个误差度量下界值,其中所述误差度量下界值中的每一个对应于参考图像中的搜索位置;
基于分离阈值,从多个搜索位置中选择多个候选位置;
将候选位置之一标识为当前图像中的块的匹配位置;以及
基于当前图像中的块和匹配位置,确定运动向量。
2.如权利要求1所述的方法,其特征在于,所述误差度量下界值中的每一个是经二次采样的绝对差之和(SSAD)值。
3.如权利要求1所述的方法,其特征在于,所述标识包括:
计算每个候选位置的误差度量;以及
选择误差度量中的最小值。
4.如权利要求3所述的方法,其特征在于,所述多个候选位置包括零位移位置。
5.如权利要求3所述的方法,其特征在于,所述误差度量中的每一个是绝对差之和(SAD)值。
6.如权利要求3所述的方法,其特征在于,还包括确定分离阈值。
7.如权利要求1所述的方法,其特征在于,还包括至少基于运动向量来编码当前图像。
8.一种装置,包括:
存储介质,用于存储当前图像和参考图像的像素数据;
块选择模块,用于选择当前图像内的块;以及
向量计算模块,用于:
确定所选的块的多个误差度量下界值,其中所述误差度量下界值中的每一个对应于参考图像中的搜索位置;
基于分离阈值从多个搜索位置中选择多个候选位置;
将候选位置之一标识为当前图像中的块的匹配位置;以及
基于当前图像中的块和匹配位置来确定运动向量。
9.如权利要求8所述的装置,其特征在于,所述误差度量下界值中的每一个是经二次采样的绝对差之和(SSAD)值。
10.如权利要求8所述的装置,其特征在于,误差度量中的每一个是绝对差之和(SAD)值。
11.如权利要求8所述的装置,其特征在于,向量计算模块还确定所述分离阈值。
12.一种装置,包括:
存储介质,用于存储当前图像和参考图像的像素数据;
编码器,用于对当前图像进行编码,其中所述编码器包括运动估计模块以生成图像内的块的运动向量;以及
其中所述运动估计模块包括向量计算模块,用于:
确定所选的块的多个误差度量下界值,其中所述误差度量下界值中的每一个对应于参考图像中的搜索位置;
基于分离阈值从多个搜索位置中选择多个候选位置;
将候选位置之一标识为当前图像中的块的匹配位置;以及
基于当前图像中的块和匹配位置来确定运动向量。
13.如权利要求12所述的装置,其特征在于,所述误差度量下界值中的每一个是经二次采样的绝对差之和(SSAD)值。
14.如权利要求12所述的装置,其特征在于,误差度量中的每一个是绝对差之和(SAD)值。
15.如权利要求12所述的装置,其特征在于,向量计算模块还确定所述分离阈值。
16.一种包括机器可访问介质的制品,所述机器可访问介质上存储了指令,当所述指令被机器执行时导致机器:
确定当前图像中的块的多个误差度量下界值,其中所述误差度量下界值中的每一个对应于参考图像中的搜索位置;
基于分离阈值从多个搜索位置中选择多个候选位置;
将候选位置之一标识为当前图像中的块的匹配位置;以及
基于当前图像中的块和匹配位置来确定运动向量。
17.如权利要求16所述的制品,其特征在于,当所述指令被机器执行时导致机器确定所述分离阈值。
18.如权利要求16所述的制品,其特征在于,所述误差度量下界值中的每一个是经二次采样的绝对差之和(SSAD)值。
19.如权利要求16所述的制品,其特征在于,误差度量中的每一个是绝对差之和(SAD)值。
20.如权利要求16所述的制品,其特征在于,所述多个候选位置包括零位移位置。
CN200980139834.8A 2008-12-31 2009-12-22 运动估计技术 Expired - Fee Related CN102172030B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/346,979 2008-12-31
US12/346,979 US8358696B2 (en) 2008-12-31 2008-12-31 Motion estimation techniques
PCT/US2009/069159 WO2010078146A2 (en) 2008-12-31 2009-12-22 Motion estimation techniques

Publications (2)

Publication Number Publication Date
CN102172030A true CN102172030A (zh) 2011-08-31
CN102172030B CN102172030B (zh) 2015-02-25

Family

ID=42284946

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980139834.8A Expired - Fee Related CN102172030B (zh) 2008-12-31 2009-12-22 运动估计技术

Country Status (9)

Country Link
US (1) US8358696B2 (zh)
JP (1) JP5328936B2 (zh)
CN (1) CN102172030B (zh)
DE (1) DE112009004282T5 (zh)
FI (1) FI125159B (zh)
GB (1) GB2478437B (zh)
RU (1) RU2516220C2 (zh)
SG (1) SG172408A1 (zh)
WO (1) WO2010078146A2 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8358696B2 (en) 2008-12-31 2013-01-22 Intel Corporation Motion estimation techniques
US9654792B2 (en) 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US8917769B2 (en) 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
US8462852B2 (en) 2009-10-20 2013-06-11 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
KR101931653B1 (ko) 2011-07-06 2018-12-21 에스케이플래닛 주식회사 멀티캐스트 기반 컨텐츠 전송 시스템 및 방법
CN106131572B (zh) * 2011-07-06 2019-04-16 Sk 普兰尼特有限公司 高速地估算运动的图像编码装置、运动估算设备和方法
CN106061376B (zh) * 2014-03-03 2020-07-28 瓦里安医疗系统公司 用于患者位置监测的系统和方法
US10354394B2 (en) 2016-09-16 2019-07-16 Dolby Laboratories Licensing Corporation Dynamic adjustment of frame rate conversion settings
US10977809B2 (en) 2017-12-11 2021-04-13 Dolby Laboratories Licensing Corporation Detecting motion dragging artifacts for dynamic adjustment of frame rate conversion settings

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000333184A (ja) * 1999-03-17 2000-11-30 Matsushita Electric Ind Co Ltd 動きベクトル検出方法,動きベクトル検出装置,及びデータ記録媒体
US6842483B1 (en) * 2000-09-11 2005-01-11 The Hong Kong University Of Science And Technology Device, method and digital video encoder for block-matching motion estimation
CN1708131A (zh) * 2004-06-07 2005-12-14 普诚科技股份有限公司 压缩数字动画计算量的方法
CN1805544A (zh) * 2005-01-13 2006-07-19 普诚科技股份有限公司 频域内用于位移估算的区块匹配

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247355A (en) * 1992-06-11 1993-09-21 Northwest Starscan Limited Partnership Gridlocked method and system for video motion compensation
KR100207390B1 (ko) * 1995-09-15 1999-07-15 전주범 계층적인 움직임 추정기법을 이용하는 음직임 벡터 검출방법
US5761398A (en) 1995-12-26 1998-06-02 C-Cube Microsystems Inc. Three stage hierarchal motion vector determination
RU2137194C1 (ru) * 1998-07-15 1999-09-10 Дворкович Александр Викторович Способ анализа векторов движения деталей в динамических изображениях
US6438254B1 (en) * 1999-03-17 2002-08-20 Matsushita Electric Industrial Co., Ltd. Motion vector detection method, motion vector detection apparatus, and data storage media
JP3611507B2 (ja) * 2000-05-30 2005-01-19 松下電器産業株式会社 動きベクトル検出装置
US7424058B1 (en) * 2000-09-28 2008-09-09 Autodesk, Inc. Variable bit-rate encoding
US7227896B2 (en) * 2001-10-04 2007-06-05 Sharp Laboratories Of America, Inc. Method and apparatus for global motion estimation
US7023921B2 (en) * 2002-08-06 2006-04-04 Motorola, Inc. Method and apparatus for determining block match quality
US7145950B2 (en) 2003-07-14 2006-12-05 Primax Electronics Ltd. Method of motion vector determination in digital video compression
JP4139342B2 (ja) * 2004-03-10 2008-08-27 日本電信電話株式会社 動きベクトル検出方法、動きベクトル検出装置、動きベクトル検出プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4793070B2 (ja) 2006-04-12 2011-10-12 ソニー株式会社 動きベクトル探索方法及び装置
US8358696B2 (en) 2008-12-31 2013-01-22 Intel Corporation Motion estimation techniques

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000333184A (ja) * 1999-03-17 2000-11-30 Matsushita Electric Ind Co Ltd 動きベクトル検出方法,動きベクトル検出装置,及びデータ記録媒体
US6842483B1 (en) * 2000-09-11 2005-01-11 The Hong Kong University Of Science And Technology Device, method and digital video encoder for block-matching motion estimation
CN1708131A (zh) * 2004-06-07 2005-12-14 普诚科技股份有限公司 压缩数字动画计算量的方法
CN1805544A (zh) * 2005-01-13 2006-07-19 普诚科技股份有限公司 频域内用于位移估算的区块匹配

Also Published As

Publication number Publication date
FI20115686A (fi) 2011-06-30
JP5328936B2 (ja) 2013-10-30
JP2012514423A (ja) 2012-06-21
US8358696B2 (en) 2013-01-22
US20100166072A1 (en) 2010-07-01
RU2516220C2 (ru) 2014-05-20
WO2010078146A2 (en) 2010-07-08
WO2010078146A3 (en) 2010-09-30
GB201105544D0 (en) 2011-05-18
CN102172030B (zh) 2015-02-25
SG172408A1 (en) 2011-07-28
RU2011131988A (ru) 2013-02-10
GB2478437A (en) 2011-09-07
GB2478437B (en) 2014-08-27
FI125159B (fi) 2015-06-30
DE112009004282T5 (de) 2012-10-04

Similar Documents

Publication Publication Date Title
CN102172030B (zh) 运动估计技术
US11178421B2 (en) Method and apparatus for encoding/decoding images using adaptive motion vector resolution
TWI565298B (zh) 利用畫面內矩形區塊估測模式的視訊編解碼方法及其裝置
KR100770726B1 (ko) 동화상 압축 부호화 방법과 동화상 압축 부호화 장치 및 그 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
CN101999229B (zh) 用于视频译码中的运动补偿的高级内插技术
JP4568887B2 (ja) ビデオ圧縮方法
RU2665877C2 (ru) Способ и устройство обработки изображения
TW201830972A (zh) 用於視訊寫碼之低複雜度符號預測
CN102172022A (zh) 使用内插滤波器及偏移的数字视频译码
CN104394418B (zh) 一种视频数据编码、解码的方法及装置
KR101128533B1 (ko) 화상 부호화 방법 및 복호 방법, 그들의 장치, 그들의 프로그램과 프로그램을 기록한 기록매체
CN101416524A (zh) 运动估计搜索范围和扩展的运动矢量范围的动态选择
CN101990760A (zh) 用于视频译码中的运动补偿的高级内插技术
US20220046268A1 (en) Method and apparatus for encoding/decoding images using adaptive motion vector resolution
CN104041048A (zh) 利用跳过模式进行视频编码和解码的方法和设备
CN102577388A (zh) 图像处理装置和方法
CN105191309A (zh) 用于下一代视频编码的内容自适应预测距离分析器和分层运动估计系统
TW201043039A (en) Image encoding apparatus, method, and program, and image decoding apparatus, method, and program
CN102422643A (zh) 图像处理装置、方法和程序
CN101218829A (zh) 动态图像编码装置、动态图像编码方法、动态图像编码程序、动态图像解码装置、动态图像解码方法以及动态图像解码程序
CN105474642A (zh) 使用频域差对图像集合进行重新编码
CN101663895B (zh) 使用所估计译码成本的视频译码模式选择
JP2004241957A (ja) 画像処理装置および符号化装置とそれらの方法
CN102026002B (zh) 帧率下采样转码方法和装置以及矢量重建方法和装置
CN106165428A (zh) 数据编码和解码

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150225

Termination date: 20181222

CF01 Termination of patent right due to non-payment of annual fee