CN102647587A - 运动估计方法和装置 - Google Patents

运动估计方法和装置 Download PDF

Info

Publication number
CN102647587A
CN102647587A CN2011100399592A CN201110039959A CN102647587A CN 102647587 A CN102647587 A CN 102647587A CN 2011100399592 A CN2011100399592 A CN 2011100399592A CN 201110039959 A CN201110039959 A CN 201110039959A CN 102647587 A CN102647587 A CN 102647587A
Authority
CN
China
Prior art keywords
sub
piece
pixel
motion vector
sad
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
CN2011100399592A
Other languages
English (en)
Other versions
CN102647587B (zh
Inventor
付轩
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to CN201110039959.2A priority Critical patent/CN102647587B/zh
Publication of CN102647587A publication Critical patent/CN102647587A/zh
Application granted granted Critical
Publication of CN102647587B publication Critical patent/CN102647587B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

公开了一种运动估计方法和装置。该方法包括:通过在参考图像中进行搜索获取当前宏块中的8×8子块B(i)的最小编码开销Cost(i)以及相应的运动矢量MV(i);利用8×8子块B(0)至B(3)的最小编码开销Cost(0)至Cost(3)中的一个或多个以及运动矢量MV(0)至MV(3)中的一个或多个,获取16×16、16×8、8×16、以及8×8四种宏块分割模式的编码开销;以及从所述四种宏块分割模式中选择编码开销最小的一种对当前宏块进行分割,并将8×8子块B(0)至B(3)中的一个或多个的运动矢量分别作为分割出的一个或多个子块的运动矢量。

Description

运动估计方法和装置
技术领域
本发明涉及图像处理领域,更具体地涉及一种运动估计方法和装置。
背景技术
在视频压缩中,为了更好地去除视频信息的冗余,达到在保持视频质量的同时尽可能提高压缩比的目的,广泛采用了预测编码和变换编码相结合的基于块的混合编码方法。其中,通过变换编码可以将空域图像映射为频域系数从而有效地去除像素间的空间相关性,通过基于运动估计和运动补偿的预测编码可以充分利用相邻帧间的时间相关性来获得较好的压缩性能。
由于块匹配具有较低的硬件复杂度,因此几乎所有的编解码电路的物理组合都把块匹配用于运动估计。为了得到最小的预测误差,在诸如H.264/AVC之类的标准中进行帧间预测时一般采用可变块尺寸模式对每个划分的子块进行运动估计和运动补偿,以得到最佳的匹配块,从而提高压缩效率。
在H.264/AVC的多模式运动估计中,一个16×16的宏块(MB)可以划分为若干个子块。如图1所示,宏块分割模式包括16×16、16×8、8×16、以及8×8;并且对于8×8子块,可以进一步划分成8×4、4×8、4×4块模式。在目前的视频编码器中,大多使用基于菱形搜索的运动估计方法或者基于以8×8子块为基本单位的宏块搜索的运动估计方法来完成对于每个宏块的运动估计。
基于菱形搜索的运动估计方法存在三个问题:A)循环搜索的处理周期不固定,有可能无法在用于一个MB的有限周期中确定该MB的宏块分割模式以及分割出的每个子块的运动矢量;B)菱形搜索可以在小区域中得到最佳结果,但是不能在整个搜索范围中得到最佳结果;C)该方法首先判断整个MB的MV,然后将MB的MV设置为搜索中心,判断每个子块的MV,这个过程比较费时。
基于以8×8子块为基本单位的宏块搜索的运动估计方法存在两个问题:A)由于该方法得出的运动矢量是以8×8块为基本单位的,所以精度不高;B)该方法需要存储所有的中间SAD(绝对误差和)结果,所需的硬件开销大。
发明内容
鉴于以上所述的问题,本发明提出了一种新颖的运动估计方法和装置。
根据本发明的一个实施例的运动估计方法,包括:通过在参考图像中进行搜索获取当前宏块中的8×8子块B(i)的最小编码开销Cost(i)以及相应的运动矢量MV(i),其中i为整数且0≤i≤3;利用8×8子块B(0)至B(3)的最小编码开销Cost(0)至Cost(3)中的一个或多个以及运动矢量MV(0)至MV(3)中的一个或多个,获取16×16、16×8、8×16、以及8×8四种宏块分割模式的编码开销;以及从所述四种宏块分割模式中选择编码开销最小的一种对当前宏块进行分割,并将8×8子块B(0)至B(3)中的一个或多个的运动矢量分别作为分割出的一个或多个子块的运动矢量。
根据本发明的一个实施例的运动估计装置,包括:矢量搜索单元,用于通过在参考图像中进行搜索获取当前宏块中的8×8子块B(i)的最小编码开销Cost(i)以及相应的运动矢量MV(i),其中i为整数且0≤i≤3;开销获取单元,用于利用8×8子块B(0)至B(3)的最小编码开销Cost(0)至Cost(3)中的一个或多个以及运动矢量MV(0)至MV(3)中的一个或多个,获取16×16、16×8、8×16、以及8×8四种宏块分割模式的编码开销;以及运动估计单元,用于从所述四种宏块分割模式中选择编码开销最小的一种对当前宏块进行分割,并将8×8子块B(0)至B(3)中的一个或多个的运动矢量分别作为分割出的一个或多个子块的运动矢量。
根据本发明的运动估计方法和装置可以在有限的处理周期中完成宏块划分模式的选择以及对于每个分割出的子块的运动矢量的搜索。
附图说明
从下面结合附图对本发明的具体实施方式的描述中可以更好地理解本发明,其中:
图1示出了根据本发明一个实施例的运动估计装置的框图;
图2示出了根据本发明一个实施例的运动估计方法的流程图;
图3示出了利用4×4子块的运动搜索获取8×8子块的最小编码开销和相应的运动矢量的过程;
图4示出了在一个时钟周期中完成的4×4子块的运动搜索;以及
图5示出了四种宏块分割模式及相应的运动矢量的示意图。
具体实施方式
下面将详细描述本发明各个方面的特征和示例性实施例。下面的描述涵盖了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说显而易见的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更清楚的理解。本发明绝不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了相关元素、部件和算法的任何修改、替换和改进。
本发明提出了一种新颖的运动估计方法和装置。在本发明中,针对当前宏块中的每个8×8子块搜索参考图像中的所有可能的8×8像素区域,得到针对每个8×8子块的最小编码开销及相应的运动矢量,然后选择适当的宏块分割模式。本发明可以在有限的处理周期中完成宏块分割模式的选择以及对于每个分割出的子块的运动矢量的搜索,并且不需要存储所有的中间SAD结果,同时视频质量是可以接受的。
为了克服基于菱形搜索的运动估计方法的缺陷,本发明在搜索范围中进行全搜索。图1示出了根据本发明一个实施例的运动估计装置的框图。如图1所示,该运动估计装置包括矢量搜索单元102、开销获取单元104、以及运动估计单元106。其中,矢量搜索单元102进一步包括SAD获取模块1022和开销累加模块1024。
矢量搜索单元102通过在参考图像中进行搜索获取当前宏块中的8×8子块B(i)的最小编码开销Cost(i)以及相应的运动矢量MV(i),其中i为整数且0≤i≤3(即,执行步骤S202)。开销获取单元104利用8×8子块B(0)至B(3)的最小编码开销Cost(0)至Cost(3)中的一个或多个以及运动矢量MV(0)至MV(3)中的一个或多个,获取16×16、16×8、8×16、以及8×8四种宏块分割模式的编码开销(即,执行步骤S204)。运动估计单元106从16×16、16×8、8×16、以及8×8四种宏块分割模式中选择编码开销最小的一种对当前宏块进行分割,并将8×8子块B(0)至B(3)中的一个或多个的运动矢量分别作为分割出的一个或多个子块的运动矢量。
其中,当前宏块中的8×8子块B(i)的最小编码开销Cost(i)包括:8×8子块B(i)中的像素相对于以8×8子块B(i)为基准根据运动矢量MV(i)在参考图像中定位的像素区域A(i)中的相同位置的像素的像素值的绝对误差和SADB(i)、以及运动矢量MV(i)的编码开销。
在本发明的一个实施例中,矢量搜索单元102可以进一步包括SAD获取模块1022和开销累加模块1024。其中,SAD获取模块1022用于获取8×8子块B(i)中的4×4子块C(i)中的像素相对于以4×4子块C(i)为基准根据运动矢量MV(i)在参考图像中定位的像素区域D(i)中的相同位置的像素的像素值的绝对误差和SADC(i);开销累加模块用于通过累加4×4子块C(0)至C(3)中的像素相对于像素区域D(0)至D(3)中的相同位置的像素的像素值的绝对误差和SADC(0)至SADC(3)、以及运动矢量MV(i)的编码开销,获取8×8子块B(i)的最小编码开销Cost(i)。下面描述矢量搜索单元102的具体处理过程。
在通常的硬件环境下,存储参考图像的内存在一个时钟周期只能读出参考图像的一个8×8子块,共64个像素,如果用这样的8×8子块来和当前宏块的8×8子块进行SAD值计算,就会和“基于以8×8子块为基本单元的宏块搜索的运动估计法”一样,只能得到精度不高的运动矢量。
在本发明的一个实施例中,计算1个8×8子块在某个搜索位置的编码开销的处理(该处理可以由矢量搜索单元102完成)包括:在四个时钟周期内分别计算组成这个8×8子块的4个4×4子块相对于这个搜索位置的像素区域的SAD值,然后将四个SAD值以及与这个搜索位置相对应的运动矢量的编码开销相加就可以得到这个8×8子块在这个搜索位置的编码开销。
图3示出了根据本发明一个实施例的运动估计方法和装置在一个时钟周期中完成的4×4子块的运动搜索。如图4所示,在一个时钟周期中,可以以一个4×4子块为基准根据16个运动矢量完成对参考图像中的16个搜索位置的搜索。换句话说,在一个时钟周期中,可以以4×4子块为基准根据16个运动矢量在参考图像中定位16个4×4像素区域,并且计算4×4子块相对于16个4×4像素区域中的每一个像素区域的SAD值(即,在一个时钟周期中可以得到分别对应于16个运动矢量的16个SAD值)。
图4示出了根据本发明一个实施例的运动估计方法和装置中使用的利用4×4子块的运动搜索得到8×8子块的最小编码开销和相应的运动矢量的过程。如图4所示,当前宏块可以分割为四个8×8子块B(0)至B(3),并且8×8子块B(0)至B(3)分别可以进一步分割为四个4×4子块C(0)至C(3)、C(4)至C(7)、C(8)至C(11)、以及C(12)至C(15)。需要说明的是,这里的子块的编号仅是为了方便说明,不应该被理解为对本发明的限制。
下面参考图4,说明矢量搜索单元102获取当前宏块中的任意一个8×8子块B(i)的最小编码开销Cost(i)以及相应的运动矢量MV(i)的过程。
如图4中所示,在第一时钟周期中,以8×8子块B(i)中的第0个4×4子块C(j)为基准根据运动矢量mv0至mv15在参考图像(更具体地,参考图像的搜索范围内)中搜索16个4×4像素区域(记为像素区域Dj(mv0)到像素区域Dj(mv15)),并计算4×4子块C(j)相对于像素区域Dj(mv0)至像素区域Dj(mv15)的SAD值SADj(mv0)至SADj(mv15);在第二时钟周期中,以8×8子块B(i)中的第1个4×4子块C(j+1)为基准根据运动矢量mv0至mv15在参考图像中搜索16个4×4像素区域(记为像素区域Dj+1(mv0)到像素区域Dj+1(mv15)),并计算4×4子块C(j)相对于像素区域Dj+1(mv0)至像素区域Dj+1(mv15)的SAD值SADj+1(mv0)至SADj+1(mv15);在第三时钟周期中,以8×8子块B(i)中的第2个4×4子块C(j+2)为基准根据运动矢量mv0至mv16在参考图像中搜索16个4×4像素区域(记为像素区域Dj+2(mv0)到像素区域Dj+2(mv15),并计算4×4子块C(j)相对于像素区域Dj+2(mv0)至像素区域Dj+2(mv15)的SAD值SADj+2(mv0)至SADj+2(mv15);在第四时钟周期中,以8×8子块B(i)中的第3个4×4子块C(j+3)为基准根据运动矢量mv0至mv15在参考图像中搜索16个4×4像素区域(记为像素区域Dj+3(mv0)到像素区域Dj+1(mv15)),并计算4×4子块C(j)相对于像素区域Dj+3(mv0)至像素区域Dj+3(mv15)的SAD值SADj+3(mv0)至SADj+3(mv15)。
当四个时钟周期结束后,可以通过累加得到SADj(mv0)至SADj+3(mv0)、以及运动矢量mv0的编码开销,得出在基于运动矢量mv0以及以8×8子块B(i)为基准根据运动矢量mv0在参考图像中定位的像素区域A(i)对8×8子块B(i)进行编码时的编码开销Costi(mv0)。同理,通过类似的处理,可以得到8×8子块B(i)的编码开销Costi(mv1)至Costi(mv15)。接着,可以选取Costi(mv0)至Costi(mv15)中的最小编码开销和对应的运动矢量,分别记为temp_min_cost和temp_mv。
然后,在第五时钟周期中,以8×8子块B(i)中的第0个4×4子块C(j)为基准根据运动矢量mv16至mv31在参考图像中搜索16个4×4像素区域(记为像素区域Dj(mv16)到像素区域Dj(mv31)),并计算4×4子块C(j)相对于像素区域Dj(mv16)至像素区域Dj(mv31)的SAD值SADj(mv16)至SADj(mv31);在第六时钟周期中,以8×8子块B(i)中的第1个4×4子块C(j+1)为基准根据运动矢量mv16至mv31在参考图像中搜索16个4×4像素区域(记为像素区域Dj+1(mv16)到像素区域Dj+1(mv31)),并计算4×4子块C(j)相对于像素区域Dj+1(mv16)至像素区域Dj+1(mv31)的SAD值SADj+1(mv16)至SADj+1(mv31);在第七时钟周期中,以8×8子块B(i)中的第2个4×4子块C(j+2)为基准根据运动矢量mv16至mv31在参考图像中搜索16个4×4像素区域(记为像素区域Dj+2(mv16)到像素区域Dj+2(mv31),并计算4×4子块C(j)相对于像素区域Dj+2(mv16)至像素区域Dj+2(mv31)的SAD值SADj+2(mv16)至SADj+2(mv31);在第八时钟周期中,以8×8子块B(i)中的第3个4×4子块C(j+3)为基准根据运动矢量mv16至mv31在参考图像中搜索16个4×4像素区域(记为像素区域Dj+3(mv16)到像素区域Dj+1(mv31)),并计算4×4子块C(j)相对于像素区域Dj+3(mv16)至像素区域Dj+3(mv31)的SAD值SADj+3(mv16)至SADj+3(mv31)。
自此,在第五至第八时钟周期中,可以得到8×8子块B(i)的编码开销Costi(mv16)至Costi(mv31)。接着,可以选取Costi(mv16)至Costi(mv31)中的最小编码开销和对应的运动矢量,将Costi(mv16)至Costi(mv31)中的最小编码开销同temp_min_cost进行比较,如果Costi(mv16)至Costi(mv31)中的最小编码开销较小,则将temp_min_cost和temp_mv替换为Costi(mv16)至Costi(mv31)中的最小编码开销和它对应的运动矢量。重复以上的过程,直至完成对搜索范围(即,参考图像)内所有搜索位置的搜索,就可以得到8×8子块B(i)的最小编码开销Cost(i)和它对应的运动矢量MV(i)。
换句话说,可以通过4n(n=参考图像的搜索范围包含的待搜索像素数目/16)个时钟周期获取8×8子块B(i)的最小编码开销Cost(i)和它对应的运动矢量MV(i)。具体地,在第(4m-3)至4m(m取整数且1≤m≤n)时钟周期中获取8×8子块B(i)的编码开销Costi(mv16(m-1))至Costi(mv(16m-1))中的最小编码开销Mini(m),在第(4m+1)至4(m+1)时钟周期中获取8×8子块B(i)的编码开销Costi(mv16m)至Costi(mv(16m+15))中的最小编码开销Mini(m+1),并保存Mini(m)和Mini(m+1)中较小的一个以及它对应的运动矢量。当完成对参考图像的遍历搜索时,即可得出8×8子块B(i)的最小编码开销Cost(i)和它对应的运动矢量MV(i)。
在矢量搜索单元102获取当前宏块中的8×8子块B(0)至B(3)的最小编码开销Cost(0)至Cost(3)以及相应的运动矢量MV(0)至MV(3)之后,开销获取单元104利用8×8子块B(0)至B(3)的最小编码开销Cost(0)至Cost(3)中的一个或多个以及运动矢量MV(0)至MV(3)中的一个或多个,获取16×16、16×8、8×16、以及8×8四种宏块分割模式的编码开销。
具体地,开销获取单元104可以根据以下等式计算16×16、16×8、8×16、以及8×8四种宏块分割模式的编码开销:
(1)16×16的宏块分割模式的的编码开销:
Cost16×16=SADB(0)+SADB(10)+SADB(20)+SADB(30)+mv_cost(mv0_MVP)
其中,SADB(0)表示8×8子块B(0)中的像素相对于像素区域A(0)中的相同位置的像素的像素值的绝对误差和,SADB(10)表示8×8子块B(1)相对于以8×8子块B(1)为基准根据运动矢量MV(0)在参考图像中定位的像素区域A(10)中的相同位置的像素的像素值的绝对误差和、SADB(20)表示8×8子块B(2)中的像素相对于以8×8子块B(2)为基准根据运动矢量MV(0)在参考图像中定位的像素区域A(20)中的相同位置的像素的像素值的绝对误差和,SADB(30)表示8×8子块B(3)相对于以8×8子块B(3)为基准根据运动矢量MV(0)在参考图像中定位的像素区域A(30)中的相同位置的像素的像素值的绝对误差和,以及mv_cost(mv0_MVP)表示运动矢量MV(0)的编码开销。
(2)16×8的宏块分割模式的编码开销:
Cost16×8=SADB(0)+SADB(10)+SADB(2)+SADB(32)+
mv_cost(mv0-MVP)+mv_cost(mv2-MVP)
SADB(0)表示8×8子块B(0)中的像素相对于像素区域A(0)中的相同位置的像素的像素值的绝对误差和,SADB(10)表示8×8子块B(1)相对于以8×8子块B(1)为基准根据运动矢量MV(0)在参考图像中定位的像素区域A(10)中的相同位置的像素的像素值的绝对误差和,SADB(2)表示8×8子块B(2)中的像素相对于像素区域A(2)中的相同位置的像素的像素值的绝对值误差和,SADB(32)8×8表示子块B(3)相对于以8×8子块B(3)为基准根据运动矢量MV(2)在参考图像中定位的像素区域A(32)中的相同位置的像素的像素值的绝对误差和,mv_cost(mv0-MVP)表示运动矢量MV(0)的编码开销,mv_cost(mv2-MVP)表示运动矢量MV(2)的编码开销。
(3)8×16的宏块分割模式的编码开销:
Cost8×16=SADB(0)+SADB(20)+SADB(1)+SADB(31)+
mv_cost(mv0-MVP)+mv_cost(mv1-MVP)
其中,SADB(0)表示8×8子块B(0)中的像素相对于像素区域A(0)中的相同位置的像素的像素值的绝对误差和,SADB(20)表示8×8子块B(2)相对于以8×8子块B(2)为基准根据运动矢量MV(0)在参考图像中定位的像素区域A(20)中的相同位置的像素的像素值的绝对误差和,SADB(1)表示8×8子块B(1)中的像素相对于像素区域A(1)中的相同位置的像素的像素值的绝对值误差和SADB(1),SADB(31)表示8×8子块B(3)相对于以8×8子块B(3)为基准根据运动矢量MV(1)在参考图像中定位的像素区域A(31)中的相同位置的像素的像素值的绝对误差和,mv_cost(mv0-MVP)表示运动矢量MV(0)的编码开销,mv_cost(mv1-MVP)表示运动矢量MV(1)的编码开销。
(4)8×8的宏块分割模式的编码开销:
Cost8×8=SADB(0)+SADB(1)+SADB(2)+SADB(3)+
mv_cost(mv0-MVP)+mv_cost(mv1-MVP)+mv_cost(mv2-MVP)+mv_cost(mv3-MVP)
其中,SADB(0)至SADB(3)表示8×8子块B(0)至B(3)中的像素相对于像素区域A(0)至A(3)中的相同位置的像素的像素值的绝对误差和,mv_cost(mv0-MVP)表示运动矢量MV(0)的编码开销,mv_cost(mv1-MVP)表示运动矢量MV(1)的编码开销,mv_cost(mv2-MVP)表示运动矢量MV(2)的编码开销,mv_cost(mv3-MVP)表示运动矢量MV(3)的编码开销。
需要说明的是,SADB(10)、SADB(20)、SADB(30)、SADB(10)、SADB(32)、SADB(31)等可以由开销获取单元104获取,也可以由其他单元获取。
图5示出了四种宏块分割模式及相应的运动矢量的示意图。如图5所示:1)在选择16×16的宏块分割模式的情况下,运动估计单元将位于当前宏块的左上侧的8×8子块C(0)的运动矢量MV(0)作为当前宏块的运动矢量;2)在选择16×8的宏块分割模式的情况下,运动估计单元将位于当前宏块的左上侧的8×8子块B(0)的运动矢量MV(0)作为从当前宏块分割出的上侧16×8子块的运动矢量,并将位于当前宏块的左下侧的8×8子块B(2)的运动矢量MV(2)作为从当前宏块分割出的下侧16×8子块的运动矢量;3)在选择8×16的宏块分割模式的情况下,将位于当前宏块的左上侧的8×8子块B(0)的运动矢量MV(0)作为从当前宏块分割出的左侧8×16子块的运动矢量,并将位于当前宏块的右上侧的8×8子块B(1)的运动矢量MV(1)作为从当前宏块分割出的右侧8×16子块的运动矢量;4)在选择8×8的宏块分割模式下,将通过上述处理获取的每个8×8子块的运动矢量作为从当前宏块分割出的相应8×8子块的运动矢量。
本发明可以在有限的处理周期中完成宏块划分模式的选择以及对于每个分割出的子块的运动矢量的搜索,并且不需要存储所有的中间SAD结果,同时视频质量是可以接受的。
以上已经参考本发明的具体实施例来描述了本发明,但是本领域技术人员均了解,可以对这些具体实施例进行各种修改、组合和变更,而不会脱离由所附权利要求或其等同物限定的本发明的精神和范围。
根据需要可以用硬件或软件来执行步骤。注意,在不脱离本发明范围的前提下,可向本说明书中给出的流程图添加步骤、从中去除步骤或修改其中的步骤。一般来说,流程图只是用来指示用于实现功能的基本操作的一种可能的序列。
本发明的实施例可利用编程的通用数字计算机、利用专用集成电路、可编程逻辑器件、现场可编程门阵列、光的、化学的、生物的、量子的或纳米工程的系统、组件和机构来实现。一般来说,本发明的功能可由本领域已知的任何手段来实现。可以使用分布式或联网系统、组件和电路。数据的通信或传送可以是有线的、无线的或者通过任何其他手段。
还将意识到,根据特定应用的需要,附图中示出的要素中的一个或多个可以按更分离或更集成的方式来实现,或者甚至在某些情况下被去除或被停用。实现可存储在机器可读介质中的程序或代码以允许计算机执行上述任何方法,也在本发明的精神和范围之内。
此外,附图中的任何信号箭头应当被认为仅是示例性的,而不是限制性的,除非另有具体指示。当术语被预见为使分离或组合的能力不清楚时,组件或者步骤的组合也将被认为是已经记载了。
关于包括以上实施例的实施方式,还公开下述的附记。
附记1.一种运动估计方法,包括:
通过在参考图像中进行搜索获取当前宏块中的8×8子块B(i)的最小编码开销Cost(i)以及相应的运动矢量MV(i),其中i为整数且0≤i≤3;
利用8×8子块B(0)至B(3)的最小编码开销Cost(0)至Cost(3)中的一个或多个以及运动矢量MV(0)至MV(3)中的一个或多个,获取16×16、16×8、8×16、以及8×8四种宏块分割模式的编码开销;以及
从所述四种宏块分割模式中选择编码开销最小的一种对所述当前宏块进行分割,并将所述8×8子块B(0)至B(3)中的一个或多个的运动矢量分别作为分割出的一个或多个子块的运动矢量。
附记2.根据附记1所述的运动估计方法,其特征在于,所述8×8子块B(i)的最小编码开销Cost(i)包括所述8×8子块B(i)中的像素相对于以所述8×8子块B(i)为基准根据所述运动矢量MV(i)在所述参考图像中定位的像素区域A(i)中的相同位置的像素的像素值的绝对误差和SADB(i)、以及所述运动矢量MV(i)的编码开销。
附记3.根据附记1所述的运动估计方法,其特征在于,获取所述8×8子块B(i)的最小编码开销Cost(i)的处理包括:
获取所述8×8子块B(i)中的4×4子块C(i)中的像素相对于以所述4×4子块C(i)为基准根据所述运动矢量MV(i)在所述参考图像中定位的像素区域D(i)中的相同位置的像素的像素值的绝对误差和SADC(i);
通过累加4×4子块C(0)至C(3)中的像素相对于像素区域D(0)至D(3)中的相同位置的像素的像素值的绝对误差和SADC(0)至SADC(3)、以及所述运动矢量MV(i)的编码开销,获取所述8×8子块B(i)的最小编码开销Cost(i)。
附记4.根据附记1所述的运动估计方法,其特征在于,通过累加8×8子块B(0)至B(3)中的像素相对于像素区域A(0)至A(3)中的相同位置的像素的像素值的绝对误差和SADB(0)至SADB(3)、以及运动矢量MV(0)至MV(3)的编码开销,获取8×8的宏块分割模式的编码开销。
附记5.根据附记1所述的运动估计方法,其特征在于,通过累加8×8子块B(0)中的像素相对于像素区域A(0)中的相同位置的像素的像素值的绝对误差和SADB(0)、8×8子块B(1)相对于以8×8子块B(1)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(10)中的相同位置的像素的像素值的绝对误差和SADB(10)、8×8子块B(2)中的像素相对于像素区域A(2)中的相同位置的像素的像素值的绝对值误差和SADB(2)、8×8子块B(3)相对于以8×8子块B(3)为基准根据运动矢量MV(2)在所述参考图像中定位的像素区域A(32)中的相同位置的像素的像素值的绝对误差和SADB(32)、以及运动矢量MV(0)和MV(2)的编码开销,获取16×8的宏块分割模式的编码开销。
附记6.根据附记1所述的运动估计方法,其特征在于,通过累加8×8子块B(0)中的像素相对于像素区域A(0)中的相同位置的像素的像素值的绝对误差和SADB(0)、8×8子块B(2)相对于以8×8子块B(2)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(20)中的相同位置的像素的像素值的绝对误差和SADB(20)、8×8子块B(1)中的像素相对于像素区域A(1)中的相同位置的像素的像素值的绝对值误差和SADB(1)、8×8子块B(3)相对于以8×8子块B(3)为基准根据运动矢量MV(1)在所述参考图像中定位的像素区域A(31)中的相同位置的像素的像素值的绝对误差和SADB(31)、以及运动矢量MV(0)和MV(1)的编码开销,获取8×16的宏块分割模式的编码开销。
附记7.根据附记1所述的运动估计方法,其特征在于,通过累加8×8子块B(0)中的像素相对于像素区域A(0)中的相同位置的像素的像素值的绝对误差和SADB(0)、8×8子块B(1)相对于以8×8子块B(1)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(10)中的相同位置的像素的像素值的绝对误差和SADB(10)、8×8子块B(2)中的像素相对于以8×8子块B(2)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(20)中的相同位置的像素的像素值的绝对误差和SADB(20)、8×8子块B(3)相对于以8×8子块B(3)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(30)中的相同位置的像素的像素值的绝对误差和SADB(30)、以及运动矢量MV(0)的编码开销,获取16×16的宏块分割模式的编码开销。
附记8.根据附记1所述的运动估计方法,其特征在于,在选择16×16的宏块分割模式的情况下,将位于所述当前宏块的左上侧的8×8子块C(0)的运动矢量MV(0)作为所述当前宏块的运动矢量。
附记9.根据附记1所述的运动估计方法,其特征在于,在选择16×8的宏块分割模式的情况下,将位于所述当前宏块的左上侧的8×8子块B(0)的运动矢量MV(0)作为从所述当前宏块分割出的上侧16×8子块的运动矢量,并将位于所述当前宏块的左下侧的8×8子块B(2)的运动矢量MV(2)作为从所述当前宏块分割出的下侧16×8子块的运动矢量。
附记10.根据附记1所述的运动估计方法,其特征在于,在选择8×16的宏块分割模式的情况下,将位于所述当前宏块的左上侧的8×8子块B(0)的运动矢量MV(0)作为从所述当前宏块分割出的左侧8×16子块的运动矢量,并将位于所述当前宏块的右上侧的8×8子块B(1)的运动矢量MV(1)作为从所述当前宏块分割出的右侧8×16子块的运动矢量。
附记11.一种运动估计装置,包括:
矢量搜索单元,用于通过在参考图像中进行搜索获取当前宏块中的8×8子块B(i)的最小编码开销Cost(i)以及相应的运动矢量MV(i),其中i为整数且0≤i≤3;
开销获取单元,用于利用8×8子块B(0)至B(3)的最小编码开销Cost(0)至Cost(3)中的一个或多个以及运动矢量MV(0)至MV(3)中的一个或多个,获取16×16、16×8、8×16、以及8×8四种宏块分割模式的编码开销;以及
运动估计单元,用于从所述四种宏块分割模式中选择编码开销最小的一种对所述当前宏块进行分割,并将所述8×8子块B(0)至B(3)中的一个或多个的运动矢量分别作为分割出的一个或多个子块的运动矢量。
附记12.根据附记11所述的运动估计装置,其特征在于,所述8×8子块B(i)的最小编码开销Cost(i)包括所述8×8子块B(i)中的像素相对于以所述8×8子块B(i)为基准根据所述运动矢量MV(i)在所述参考图像中定位的像素区域A(i)中的相同位置的像素的像素值的绝对误差和SADB(i)、以及所述运动矢量MV(i)的编码开销。
附记13.根据附记11所述的运动估计装置,其特征在于,所述矢量搜索单元包括:
SAD获取模块,用于获取所述8×8子块B(i)中的4×4子块C(i)中的像素相对于以所述4×4子块C(i)为基准根据所述运动矢量MV(i)在所述参考图像中定位的像素区域D(i)中的相同位置的像素的像素值的绝对误差和SADC(i);
开销累加模块,用于通过累加4×4子块C(0)至C(3)中的像素相对于像素区域D(0)至D(3)中的相同位置的像素的像素值的绝对误差和SADC(0)至SADC(3)、以及所述运动矢量MV(i)的编码开销,获取所述8×8子块B(i)的最小编码开销Cost(i)。
附记14.根据附记11所述的运动估计装置,其特征在于,所述开销获取单元通过累加8×8子块B(0)至B(3)中的像素相对于像素区域A(0)至A(3)中的相同位置的像素的像素值的绝对误差和SADB(0)至SADB(3)、以及运动矢量MV(0)至MV(3)的编码开销,获取8×8的宏块分割模式的编码开销。
附记15.根据附记11所述的运动估计装置,其特征在于,所述开销获取单元通过累加8×8子块B(0)中的像素相对于像素区域A(0)中的相同位置的像素的像素值的绝对误差和SADB(0)、8×8子块B(1)相对于以8×8子块B(1)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(10)中的相同位置的像素的像素值的绝对误差和SADB(10)、8×8子块B(2)中的像素相对于像素区域A(2)中的相同位置的像素的像素值的绝对值误差和SADB(2)、8×8子块B(3)相对于以8×8子块B(3)为基准根据运动矢量MV(2)在所述参考图像中定位的像素区域A(32)中的相同位置的像素的像素值的绝对误差和SADB(32)、以及运动矢量MV(0)和MV(2)的编码开销,获取16×8的宏块分割模式的编码开销。
附记16.根据附记11所述的运动估计装置,其特征在于,所述开销获取单元通过累加8×8子块B(0)中的像素相对于像素区域A(0)中的相同位置的像素的像素值的绝对误差和SADB(0)、8×8子块B(2)相对于以8×8子块B(2)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(20)中的相同位置的像素的像素值的绝对误差和SADB(20)、8×8子块B(1)中的像素相对于像素区域A(1)中的相同位置的像素的像素值的绝对值误差和SADB(1)、8×8子块B(3)相对于以8×8子块B(3)为基准根据运动矢量MV(1)在所述参考图像中定位的像素区域A(31)中的相同位置的像素的像素值的绝对误差和SADB(31)、以及运动矢量MV(0)和MV(1)的编码开销,获取8×16的宏块分割模式的编码开销。
附记17.根据附记11所述的运动估计装置,其特征在于,所述开销获取单元通过累加8×8子块B(0)中的像素相对于像素区域A(0)中的相同位置的像素的像素值的绝对误差和SADB(0)、8×8子块B(1)相对于以8×8子块B(1)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(10)中的相同位置的像素的像素值的绝对误差和SADB(10)、8×8子块B(2)中的像素相对于以8×8子块B(2)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(20)中的相同位置的像素的像素值的绝对误差和SADB(20)、8×8子块B(3)相对于以8×8子块B(3)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(30)中的相同位置的像素的像素值的绝对误差和SADB(30)、以及运动矢量MV(0)的编码开销,获取16×16的宏块分割模式的编码开销。
附记18.根据附记11所述的运动估计装置,其特征在于,在选择16×16的宏块分割模式的情况下,所述运动估计单元将位于所述当前宏块的左上侧的8×8子块C(0)的运动矢量MV(0)作为所述当前宏块的运动矢量。
附记19.根据附记11所述的运动估计装置,其特征在于,在选择16×8的宏块分割模式的情况下,所述运动估计单元将位于所述当前宏块的左上侧的8×8子块B(0)的运动矢量MV(0)作为从所述当前宏块分割出的上侧16×8子块的运动矢量,并将位于所述当前宏块的左下侧的8×8子块B(2)的运动矢量MV(2)作为从所述当前宏块分割出的下侧16×8子块的运动矢量。
附记20.根据附记11所述的运动估计装置,其特征在于,在选择8×16的宏块分割模式的情况下,所述运动估计单元将位于所述当前宏块的左上侧的8×8子块B(0)的运动矢量MV(0)作为从所述当前宏块分割出的左侧8×16子块的运动矢量,并将位于所述当前宏块的右上侧的8×8子块B(1)的运动矢量MV(1)作为从所述当前宏块分割出的右侧8×16子块的运动矢量。

Claims (10)

1.一种运动估计方法,包括:
通过在参考图像中进行搜索获取当前宏块中的8×8子块B(i)的最小编码开销Cost(i)以及相应的运动矢量MV(i),其中i为整数且0≤i≤3;
利用8×8子块B(0)至B(3)的最小编码开销Cost(0)至Cost(3)中的一个或多个以及运动矢量MV(0)至MV(3)中的一个或多个,获取16×16、16×8、8×16、以及8×8四种宏块分割模式的编码开销;以及
从所述四种宏块分割模式中选择编码开销最小的一种对所述当前宏块进行分割,并将所述8×8子块B(0)至B(3)中的一个或多个的运动矢量分别作为分割出的一个或多个子块的运动矢量。
2.根据权利要求1所述的运动估计方法,其特征在于,所述8×8子块B(i)的最小编码开销Cost(i)包括所述8×8子块B(i)中的像素相对于以所述8×8子块B(i)为基准根据所述运动矢量MV(i)在所述参考图像中定位的像素区域A(i)中的相同位置的像素的像素值的绝对误差和SADB(i)、以及所述运动矢量MV(i)的编码开销。
3.根据权利要求1所述的运动估计方法,其特征在于,获取所述8×8子块B(i)的最小编码开销Cost(i)的处理包括:
获取所述8×8子块B(i)中的4×4子块C(i)中的像素相对于以所述4×4子块C(i)为基准根据所述运动矢量MV(i)在所述参考图像中定位的像素区域D(i)中的相同位置的像素的像素值的绝对误差和SADC(i);
通过累加4×4子块C(0)至C(3)中的像素相对于像素区域D(0)至D(3)中的相同位置的像素的像素值的绝对误差和SADC(0)至SADC(3)、以及所述运动矢量MV(i)的编码开销,获取所述8×8子块B(i)的最小编码开销Cost(i)。
4.根据权利要求1所述的运动估计方法,其特征在于,通过累加8×8子块B(0)至B(3)中的像素相对于像素区域A(0)至A(3)中的相同位置的像素的像素值的绝对误差和SADB(0)至SADB(3)、以及运动矢量MV(0)至MV(3)的编码开销,获取8×8的宏块分割模式的编码开销。
5.根据权利要求1所述的运动估计方法,其特征在于,通过累加8×8子块B(0)中的像素相对于像素区域A(0)中的相同位置的像素的像素值的绝对误差和SADB(0)、8×8子块B(1)相对于以8×8子块B(1)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(10)中的相同位置的像素的像素值的绝对误差和SADB(10)、8×8子块B(2)中的像素相对于像素区域A(2)中的相同位置的像素的像素值的绝对值误差和SADB(2)、8×8子块B(3)相对于以8×8子块B(3)为基准根据运动矢量MV(2)在所述参考图像中定位的像素区域A(32)中的相同位置的像素的像素值的绝对误差和SADB(32)、以及运动矢量MV(0)和MV(2)的编码开销,获取16×8的宏块分割模式的编码开销。
6.根据权利要求1所述的运动估计方法,其特征在于,通过累加8×8子块B(0)中的像素相对于像素区域A(0)中的相同位置的像素的像素值的绝对误差和SADB(0)、8×8子块B(2)相对于以8×8子块B(2)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(20)中的相同位置的像素的像素值的绝对误差和SADB(20)、8×8子块B(1)中的像素相对于像素区域A(1)中的相同位置的像素的像素值的绝对值误差和SADB(1)、8×8子块B(3)相对于以8×8子块B(3)为基准根据运动矢量MV(1)在所述参考图像中定位的像素区域A(31)中的相同位置的像素的像素值的绝对误差和SADB(31)、以及运动矢量MV(0)和MV(1)的编码开销,获取8×16的宏块分割模式的编码开销。
7.根据权利要求1所述的运动估计方法,其特征在于,通过累加8×8子块B(0)中的像素相对于像素区域A(0)中的相同位置的像素的像素值的绝对误差和SADB(0)、8×8子块B(1)相对于以8×8子块B(1)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(10)中的相同位置的像素的像素值的绝对误差和SADB(10)、8×8子块B(2)中的像素相对于以8×8子块B(2)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(20)中的相同位置的像素的像素值的绝对误差和SADB(20)、8×8子块B(3)相对于以8×8子块B(3)为基准根据运动矢量MV(0)在所述参考图像中定位的像素区域A(30)中的相同位置的像素的像素值的绝对误差和SADB(30)、以及运动矢量MV(0)的编码开销,获取16×16的宏块分割模式的编码开销。
8.根据权利要求1所述的运动估计方法,其特征在于,在选择16×16的宏块分割模式的情况下,将位于所述当前宏块的左上侧的8×8子块C(0)的运动矢量MV(0)作为所述当前宏块的运动矢量。
9.根据权利要求1所述的运动估计方法,其特征在于,在选择16×8的宏块分割模式的情况下,将位于所述当前宏块的左上侧的8×8子块B(0)的运动矢量MV(0)作为从所述当前宏块分割出的上侧16×8子块的运动矢量,并将位于所述当前宏块的左下侧的8×8子块B(2)的运动矢量MV(2)作为从所述当前宏块分割出的下侧16×8子块的运动矢量。
10.根据权利要求1所述的运动估计方法,其特征在于,在选择8×16的宏块分割模式的情况下,将位于所述当前宏块的左上侧的8×8子块B(0)的运动矢量MV(0)作为从所述当前宏块分割出的左侧8×16子块的运动矢量,并将位于所述当前宏块的右上侧的8×8子块B(1)的运动矢量MV(1)作为从所述当前宏块分割出的右侧8×16子块的运动矢量。
CN201110039959.2A 2011-02-16 2011-02-16 运动估计方法和装置 Expired - Fee Related CN102647587B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110039959.2A CN102647587B (zh) 2011-02-16 2011-02-16 运动估计方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110039959.2A CN102647587B (zh) 2011-02-16 2011-02-16 运动估计方法和装置

Publications (2)

Publication Number Publication Date
CN102647587A true CN102647587A (zh) 2012-08-22
CN102647587B CN102647587B (zh) 2015-01-21

Family

ID=46660135

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110039959.2A Expired - Fee Related CN102647587B (zh) 2011-02-16 2011-02-16 运动估计方法和装置

Country Status (1)

Country Link
CN (1) CN102647587B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109302613A (zh) * 2018-10-26 2019-02-01 西安科锐盛创新科技有限公司 带宽压缩中基于宏块分割的预测方法
CN109496431A (zh) * 2016-10-13 2019-03-19 富士通株式会社 图像编码/解码方法、装置以及图像处理设备
CN110139100A (zh) * 2019-05-16 2019-08-16 东莞职业技术学院 多图像运动估计的扩展块匹配及运动矢量估计算法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1717051A (zh) * 2004-06-09 2006-01-04 美国博通公司 高级视频编码帧内预测的系统和方法
JP2007266679A (ja) * 2006-03-27 2007-10-11 Victor Co Of Japan Ltd 動画像符号化装置
CN101527854A (zh) * 2009-01-20 2009-09-09 源见科技(苏州)有限公司 帧间模式选择方法
CN101562750A (zh) * 2009-05-25 2009-10-21 腾讯科技(深圳)有限公司 视频编码快速模式选择装置及方法
CN101783951A (zh) * 2010-03-02 2010-07-21 西安交通大学 基于人类视觉系统的视频编码帧间预测模式快速确定方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1717051A (zh) * 2004-06-09 2006-01-04 美国博通公司 高级视频编码帧内预测的系统和方法
JP2007266679A (ja) * 2006-03-27 2007-10-11 Victor Co Of Japan Ltd 動画像符号化装置
CN101527854A (zh) * 2009-01-20 2009-09-09 源见科技(苏州)有限公司 帧间模式选择方法
CN101562750A (zh) * 2009-05-25 2009-10-21 腾讯科技(深圳)有限公司 视频编码快速模式选择装置及方法
CN101783951A (zh) * 2010-03-02 2010-07-21 西安交通大学 基于人类视觉系统的视频编码帧间预测模式快速确定方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109496431A (zh) * 2016-10-13 2019-03-19 富士通株式会社 图像编码/解码方法、装置以及图像处理设备
CN109302613A (zh) * 2018-10-26 2019-02-01 西安科锐盛创新科技有限公司 带宽压缩中基于宏块分割的预测方法
CN110139100A (zh) * 2019-05-16 2019-08-16 东莞职业技术学院 多图像运动估计的扩展块匹配及运动矢量估计算法

Also Published As

Publication number Publication date
CN102647587B (zh) 2015-01-21

Similar Documents

Publication Publication Date Title
TWI812564B (zh) 運動向量預測
TWI759389B (zh) 用於視訊寫碼之低複雜度符號預測
US10701391B2 (en) Motion vector difference (MVD) prediction
CN103931196B (zh) 帧间预测方法及其装置
CN102833533B (zh) 视频解码装置和视频解码方法
JP5855013B2 (ja) 映像符号化の方法及び装置
TW202013975A (zh) 仿射的運動矢量差精度
CN109804627A (zh) 图像编码/解码方法和设备
KR20180019688A (ko) 픽처 예측 방법 및 픽처 예측 장치
CN103609125A (zh) 用于对多视点视频的运动矢量进行编码和解码的方法和设备
CN107105283B (zh) 动态图像预测解码装置及方法
CN102811346B (zh) 编码模式选择方法和系统
CN111201795B (zh) 存储访问窗口和用于运动矢量修正的填充
CN108353176A (zh) 在图像编译系统中的基于amvr的图像编译方法和装置
KR20210019097A (ko) 모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩
ES2532857A2 (es) Método para inducir un bloque candidato de fusión y dispositivo que usa el mismo
CN104025587A (zh) 动图像编码装置、动图像编码方法及动图像编码程序,以及动图像解码装置、动图像解码方法及动图像解码程序
CN105637874B (zh) 解码多视图视频的视频解码装置和方法
JPWO2012120661A1 (ja) 動画像符号化方法及び動画像復号化方法
JP2012191298A (ja) 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム
CN107360433A (zh) 一种帧间预测编码方法和装置
CN102647587B (zh) 运动估计方法和装置
CN111316646B (zh) 候选mv列表构建方法和装置
CN103139562B (zh) 运动估计方法和装置
CN102377995A (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: 20150121

Termination date: 20190216

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