分数像素运动估计方法和系统转让专利

申请号 : CN201010248913.7

文献号 : CN102377995B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 付轩

申请人 : 富士通株式会社

摘要 :

本发明公开了一种分数像素运动估计方法和系统。该分数像素运动估计方法用于估计当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量,并且包括:比较参考帧中选定的整像素运动矢量的开销、以及整像素运动矢量周围的四个非中心半像素运动矢量的开销;选择整像素运动矢量和所述四个非中心半像素运动矢量中开销最小的一个作为用于搜索1/4像素运动矢量的搜索基准矢量;比较搜索基准矢量的开销、以及搜索基准矢量周围的1/4像素运动矢量的开销;选择搜索基准矢量和所述1/4像素运动矢量中开销最小的一个作为当前像素块相对于参考像素块的运动矢量。

权利要求 :

1.一种分数像素运动估计方法,用于估计当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量,包括:

比较所述参考像素块中选定的整像素运动矢量的开销、以及所述整像素运动矢量周围的四个非中心半像素运动矢量的开销;

选择所述整像素运动矢量和所述四个非中心半像素运动矢量中开销最小的一个作为用于搜索1/4像素运动矢量的搜索基准矢量;

比较所述搜索基准矢量的开销、以及所述搜索基准矢量周围的与中心半像素不相关的

1/4像素运动矢量的开销;以及

选择所述搜索基准矢量和所述1/4像素运动矢量中开销最小的一个作为所述当前像素块相对于所述参考像素块的运动矢量。

2.根据权利要求1所述的分数像素运动估计方法,其特征在于,当选择所述整像素运动矢量作为所述搜索基准矢量时,比较所述整像素运动矢量的开销、以及所述整像素运动矢量周围的所有八个1/4像素运动矢量的开销,并选择所述整像素运动矢量和所述八个

1/4像素运动矢量中开销最小的一个作为所述当前像素块相对于所述参考像素块的运动矢量。

3.根据权利要求1所述的分数像素运动估计方法,其特征在于,所述整像素运动矢量为(imv_x,imv_y),所述四个非中心半像素运动矢量为(imv_x-1/2,imv_y)、(imv_x+1/2,imv_y)、(imv_x,imv_y-1/2)、以及(imv_x,imv_y+1/2),当选择半像素运动矢量(imv_x-1/2,imv_y)或(imv_x+1/2,imv_y)作为所述搜索基准矢量(hmv_x,hmv_y)时,比较所述搜索基准矢量的开销、以及所述搜索基准矢量周围的六个1/4像素运动矢量(hmv_x-1/4,hmv_y-1/4)、(hmv_x-1/4,hmv_y)、(hmv_x-1/4,hmv_y+1/4)、(hmv_x+1/4,hmv_y-1/4)、(hmv_x+1/4,hmv_y)、(hmv_x+1/4,hmv_y+1/4)的开销,并选择所述搜索基准矢量和所述六个1/4像素运动矢量中开销最小的一个作为所述当前像素块相对于所述参考像素块的运动矢量。

4.根据权利要求1所述的分数像素运动估计方法,其特征在于,所述整像素运动矢量为(imv_x,imv_y),所述四个非中心半像素运动矢量为(imv_x-1/2,imv_y)、(imv_x+1/2,imv_y)、(imv_x,imv_y-1/2)、以及(imv_x,imv_y+1/2),当选择半像素运动矢量(imv_x,imv_y-1/2)或(imv_x,imv_y+1/2)作为所述搜索基准矢量(hmv_x,hmv_y)时,比较所述搜索基准矢量的开销、以及所述搜索基准矢量周围的六个1/4像素运动矢量(hmv_x-1/4,hmv_y-1/4)、(hmv_x,hmv_y-1/4)、(hmv_x+1/4,hmv_y-1/4)、(hmv_x-1/4,hmv_y+1/4)、(hmv_x,hmv_y+1/4)、(hmv_x+1/4,hmv_y+1/4)的开销,并选择所述搜索基准矢量和所述六个1/4像素运动矢量中开销最小的一个作为所述当前像素块相对于所述参考像素块的运动矢量。

5.一种分数像素运动估计系统,用于估计当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量,包括:

第一开销比较单元,被配置为比较所述参考像素块中选定的整像素运动矢量的开销、以及所述整像素运动矢量周围的四个非中心半像素运动矢量的开销;

基准矢量选择单元,被配置为选择所述整像素运动矢量和所述四个非中心半像素运动矢量中开销最小的一个作为用于搜索1/4像素运动矢量的搜索基准矢量;

第二开销比较单元,被配置为比较所述搜索基准矢量的开销、以及所述搜索基准矢量周围的与中心半像素不相关的1/4像素运动矢量的开销;以及

运动矢量选择单元,被配置为选择所述搜索基准矢量和所述1/4像素运动矢量中开销最小的一个作为所述当前像素块相对于所述参考像素块的运动矢量。

6.根据权利要求5所述的分数像素运动估计系统,其特征在于,在所述基准矢量选择单元选择所述整像素运动矢量作为所述搜索基准矢量的情况下,所述第二开销比较单元比较所述整像素运动矢量的开销、以及所述整像素运动矢量周围的所有八个1/4像素运动矢量的开销,并且所述运动矢量选择单元选择所述整像素运动矢量和所述八个1/4像素运动矢量中开销最小的一个作为所述当前像素块相对于所述参考像素块的运动矢量。

7.根据权利要求5所述的分数像素运动估计系统,其特征在于,所述整像素运动矢量为(imv_x,imv_y),所述四个非中心半像素运动矢量为(imv_x-1/2,imv_y)、(imv_x+1/2,imv_y)、(imv_x,imv_y-1/2)、以及(imv_x,imv_y+1/2),当所述基准矢量选择单元选择半像素运动矢量(imv_x-1/2,imv_y)或(imv_x+1/2,imv_y)作为所述搜索基准矢量(hmv_x,hmv_y)时,所述第二开销比较单元比较所述搜索基准矢量的开销、以及所述搜索基准矢量周围的六个1/4像素运动矢量(hmv_x-1/4,hmv_y-1/4)、(hmv_x-1/4,hmv_y)、(hmv_x-1/4,hmv_y+1/4)、(hmv_x+1/4,hmv_y-1/4)、(hmv_x+1/4,hmv_y)、(hmv_x+1/4,hmv_y+1/4)的开销,并且所述运动矢量选择单元选择所述搜索基准矢量和所述六个1/4像素运动矢量中开销最小的一个作为所述当前像素块相对于所述参考像素块的运动矢量。

8.根据权利要求5所述的分数像素运动估计系统,其特征在于,所述整像素运动矢量为(imv_x,imv_y),所述四个非中心半像素运动矢量为(imv_x-1/2,imv_y)、(imv_x+1/2,imv_y)、(imv_x,imv_y-1/2)、以及(imv_x,imv_y+1/2),当所述基准矢量选择单元选择半像素运动矢量(imv_x,imv_y-1/2)或(imv_x,imv_y+1/2)作为所述搜索基准矢量(hmv_x,hmv_y)时,所述第二开销比较单元比较所述搜索基准矢量的开销、以及所述搜索基准矢量周围的六个1/4像素运动矢量(hmv_x-1/4,hmv_y-1/4)、(hmv_x,hmv_y-1/4)、(hmv_x+1/4,hmv_y-1/4)、(hmv_x-1/4,hmv_y+1/4)、(hmv_x,hmv_y+1/4)、(hmv_x+1/4,hmv_y+1/4)的开销,并且所述运动矢量选择单元选择所述搜索基准矢量和所述六个1/4像素运动矢量中开销最小的一个作为所述当前像素块相对于所述参考像素块的运动矢量。

9.一种编码器,包括权利要求5至8中任一项所述的分数像素运动估计系统。

说明书 :

分数像素运动估计方法和系统

技术领域

[0001] 本发明涉及视频处理领域,更具体地涉及一种分数像素运动估计方法和系统。

背景技术

[0002] 在高清电视(HDTV)和摄像机等视频处理设备中,视频压缩标准H.264被广泛采用。在H.264编码器中,运动估计占用了大量计算任务,并且会对视频质量产生很大影响。分数像素运动估计是一种改善压缩率和视频质量的技术,其中分数像素的像素值(例如,亮度值)是通过对整像素的像素值(例如,亮度值)进行内插得出的,并且分数像素运动矢量是根据分数像素的像素值估计得出的。在H.264标准中,分数像素运动矢量是1/4像素精度的,所以在整像素运动矢量周围存在很多可能的分数像素运动矢量候选。
[0003] 在传统的分数像素运动估计过程中,首先对整像素运动矢量周围的所有8个半像素运动矢量进行搜索,以找出最佳的半像素运动矢量;然后对最佳的半像素运动矢量周围的所有8个1/4像素运动矢量进行搜索,以找出最佳的1/4像素运动矢量。在整像素运动矢量周围的8个半像素运动矢量中,中心半像素运动矢量的计算最为复杂,并且一些1/4像素运动矢量是从中心半像素运动矢量计算得出的,所以传统的分数像素运动估计需要消耗较多的滤波器电路和静态随机存储器(SRAM)来对半像素运动矢量和1/4像素运动矢量进行内插和存储,从而导致处理时间增加。
[0004] 对于诸如手机、个人数字助理(PDA)之类的移动设备而言,较小的电路尺寸和较低的功耗非常重要,并且处理时间对于实时高清(HD)编码来说非常紧迫。

发明内容

[0005] 鉴于以上所述的一个或多个问题,本发明提供了一种新颖的分数像素运动估计方法和系统。
[0006] 根据本发明实施例的分数像素运动估计方法用于估计当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量,并且包括:比较参考像素块中选定的整像素运动矢量的开销、以及整像素运动矢量周围的四个非中心半像素运动矢量的开销;选择整像素运动矢量和所述四个非中心半像素运动矢量中开销最小的一个作为用于搜索1/4像素运动矢量的搜索基准矢量;比较搜索基准矢量的开销、以及搜索基准矢量周围的1/4像素运动矢量的开销;以及选择搜索基准矢量和所述1/4像素运动矢量中开销最小的一个作为当前像素块相对于参考像素块的运动矢量。
[0007] 根据本发明实施例的分数像素运动估计系统用于估计当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量,并且包括:第一开销比较单元,被配置为比较参考像素块中选定的整像素运动矢量的开销、以及整像素运动矢量周围的四个非中心半像素运动矢量的开销;基准矢量选择单元,被配置为选择整像素运动矢量和所述四个非中心半像素运动矢量中开销最小的一个作为用于搜索1/4像素运动矢量的搜索基准矢量;第二开销比较单元,被配置为比较搜索基准矢量的开销、以及搜索基准矢量周围的1/4像素运动矢量的开销;以及运动矢量选择单元,被配置为选择搜索基准矢量和所述1/4像素运动矢量中开销最小的一个作为当前像素块相对于参考像素块的运动矢量。
[0008] 在根据本发明实施例的分数像素运动估计方法和系统中,省去了对中心半像素运动矢量及其周围的1/4像素运动矢量的处理,从而节省了硬件开销和处理时间。

附图说明

[0009] 从下面结合附图对本发明的具体实施方式的描述中可以更好地理解本发明,其中:
[0010] 图1示出了整像素、垂直半像素、水平半像素、中心半像素、以及1/4像素的分布图;
[0011] 图2示出了根据本发明实施例的分数像素运动估计方法的流程图;
[0012] 图3示出了根据本发明实施例的分数像素运动估计系统的框图;
[0013] 图4示出了在选择整像素运动矢量(imv_x,imv_y)作为用于搜索1/4像素运动矢量的搜索基准矢量(hmv_x,hmv_y)时的情况;
[0014] 图5示出了在选择水平半像素运动矢量(imv_x+1/2,imv_y)或(imv_x-1/2,imv_y)作为选择作为搜索基准矢量(hmv_x,hmv_y)时的情况;
[0015] 图6示出了在选择垂直半像素运动矢量(imv_x,imv_y+1/2)或(imv_x,imv_y-1/2)作为搜索基准矢量(hmv_x,hmv_y)时的情况;以及
[0016] 图7示出了本发明描述的H.264编码器中的分数像素运动估计的硬件框图。

具体实施方式

[0017] 下面将详细描述本发明各个方面的特征和示例性实施例。下面的描述涵盖了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说显而易见的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更清楚的理解。本发明绝不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了相关元素、部件和算法的任何修改、替换和改进。
[0018] 图1示出了整像素、垂直半像素、水平半像素、中心半像素、以及1/4像素的分布图。下面为了说明方便,除非需要区别垂直半像素和水平半像素进行说明,否则将垂直半像素和水平半像素统称为非中心半像素。另外,这里所说的整像素、半像素、以及1/4像素只存在于参考帧(即,参考像素块)中。当前像素块(即,当前帧)中只存在整像素,没有半像素和1/4像素。下面提到的整像素运动矢量、半像素运动矢量和1/4像素运动矢量是指参考帧中的参考像素块相对于当前帧中的对应于该参考像素块的当前像素块的运动矢量。参考像素块与对应于其的当前像素块之间的残差是用参考像素块的整像素、半像素、或者1/4像素的像素值减掉当前像素块的整像素的像素值计算出来的。
[0019] 对于图1中所示的垂直半像素P(x,y+1/2),可以通过利用6抽头滤波器对垂直方向中与垂直半像素P(x,y+1/2)最接近的6个整像素的像素值进行处理来得出垂直半像素P(x,y+1/2)的像素值(如等式1所示):
[0020] P(x,y+1/2)=Clip((P(x,y-2)-5*P(x,y-1)+20*P(x,y)+20*P(x,y+1)-5*P(x,y+2)+P(x,y+3)+16)>>5) (1)
[0021] 对于图1中所示的水平半像素P(x+1/2,y),可以通过利用6抽头滤波器对水平方向中与水平半像素P(x+1/2,y)最接近的6个整像素的像素值进行处理来得出水平半像素P(x+1/2,y)的像素值(如等式2所示):
[0022] P(x+1/2,y)=Clip((P(x-2,y)-5*P(x-1,y)+20*P(x,y)+20*P(x+1,y)-5*P(x+2,y)+P(x+3,y)+16)>>5) (2)
[0023] 对于图1中所示的中心半像素P(x+1/2,y+1/2),可以通过利用6抽头滤波器对水平或垂直方向中与中心半像素P(x+1/2,y+1/2)最接近的6个半像素的像素值进行处理来得出中心半像素P(x+1/2,y+1/2)的像素值(如等式3或4所示):
[0024] P(x+1/2,y+1/2) = Clip(((P(x+1/2,y-2)-5*P(x+1/2,y-1)+20*(P(x-2,y)-5*P(x-1,y)+20*P(x,y)+20*P(x+1,y)-5*P(x+2,y)+P(x+3,y))+20*(P(x-2,y+1)-5*P(x-1,y+1)+20*P(x,y+1)+20*P(x+1,y+1)-5*P(x+2,y+1)+P(x+3,y+1))-5*P(x+1/2,y+2)+P(x+1/2,y+3)+512)>>10) (3)
[0025] 或者
[0026] P(x+1/2,y+1/2) = Clip(((P(x-2,y+1/2)-5*P(x-1,y+1/2)+20*(P(x,y-2)-5*P(x,y-1)+20*P(x,y)+20*P(x,y+1)-5*P(x,y+2)+P(x,y+3))+20*(P(x+1,y-2)-5*P(x+1,y-1)+20*P(x+1,y)+20*P(x+1,y+1)-5*P(x+1,y+2)+P(x+1,y+3))-5*P(x+2,y+1/2)+P(x+3,y+1/2))+512)>>10) (4)
[0027] 对于图1中所示的1/4像素P(x+1/4,y)、P(x,y+1/4)、P(x+1/2,y+1/4)、P(x+1/4,y+1/2)、以及P(x+1/4,y+1/4)中的任意一个1/4像素,可以通过对与该1/4像素最接近的两个半像素的像素值、或者一个整像素的像素值和一个半像素的像素值进行双线性插值来得出它的像素值(如等式5至10所示):
[0028] P(x+1/4,y)=(P(x,y)+P(x+1/2,y)+1)>>1 (5)[0029] P(x,y+1/4)=(P(x,y)+P(x,y+1/2)+1)>>1 (6)[0030] P(x+1/2,y+1/4)=(P(x+1/2,y)+P(x+1/2,y+1/2)+1)>>1 (7)[0031] P(x+1/4,y+1/2)=(P(x,y+1/2)+P(x+1/2,y+1/2)+1)>>1 (8)[0032] P(x+1/4,y+1/4)=(P(x+1/2,y)+P(x,y+1/2)+1)>>1 (9)[0033] 从以上的推导可以看出,计算中心半像素以及中心半像素周围的1/4像素的像素值非常耗费时间和硬件。由于分数像素运动矢量是根据分数像素的像素值估计得出的,所以与中心半像素及其周围的1/4像素有关的运动矢量的计算也非常耗费时间和硬件。如果省去中心半像素和中心半像素周围的1/4像素上的运动估计,则可以节省处理时间和硬件。
[0034] 本发明提出了一种不需要计算中心半像素运动矢量及其周围的1/4像素运动矢量的分数像素运动矢量估计方法,以节省硬件开销和处理时间。
[0035] 图2示出了根据本发明实施例的用于估计当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量的分数像素运动矢量估计方法的流程图。如图2所示,该分数像素运动矢量估计方法包括:S202,比较参考像素块中选定的整像素运动矢量的开销、以及该整像素运动矢量周围的四个非中心半像素运动矢量的开销;S204,选择该选定的整像素运动矢量及其周围的四个非中心半像素运动矢量中开销最小的一个作为用于搜索1/4像素运动矢量的搜索基准矢量;S206,比较搜索基准矢量的开销、以及搜索基准矢量周围的1/4像素运动矢量的开销;以及S208,选择搜索基准矢量及其周围的1/4像素运动矢量中开销最小的一个作为当前像素块相对于参考像素块的运动矢量。
[0036] 图3示出了根据本发明实施例的用于估计当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量的分数像素运动估计系统。如图3所示,该分数像素运动估计系统包括第一开销比较单元302、基准矢量选择单元304、第二开销比较单元306、以及运动矢量选择单元308。
[0037] 其中,第一开销比较单元302比较参考像素块中选定的整像素运动矢量的开销、以及该整像素运动矢量周围的四个非中心半像素运动矢量的开销(即,执行步骤S202)。基准矢量选择单元304选择该选定的整像素运动矢量及其周围的四个非中心半像素运动矢量中开销最小的一个作为用于搜索1/4像素运动矢量的搜索基准矢量(即,执行步骤S204)。第二开销比较单元306比较搜索基准矢量的开销、以及搜索基准矢量周围的1/4像素运动矢量的开销(即,执行步骤S206)。运动矢量选择单元308选择搜索基准矢量及其周围的1/4像素运动矢量中开销最小的一个作为当前像素块相对于参考像素块的运动矢量(即,执行步骤S208)。
[0038] 参考像素块中任意一个整像素运动矢量、非中心半像素运动矢量、或者1/4像素运动矢量的开销例如可以是当前像素块中的整像素与参考像素块中的相应整像素、非中心半像素、或者1/4像素的像素值的残差绝对值之和(SAD)或残差经变换后的绝对值之和(SATD)(其模拟了比特流当中残差的编码开销)与参考像素块中的相应整像素、非中心半像素、或者1/4像素的运动矢量的编码开销的总和。
[0039] 在这里,为了方便说明,假设选定的整像素运动矢量为(imv_x,imv_y),该选定的整像素运动矢量周围的四个非中心半像素运动矢量为(imv_x-1/2,imv_y)、(imv_x+1/2,imv_y)、(imv_x,imv_y-1/2)、以及(imv_x,imv_y+1/2)。
[0040] 图4示出了在选择整像素运动矢量(imv_x,imv_y)作为用于搜索1/4像素运动矢量的搜索基准矢量(hmv_x,hmv_y)时的情况。如图4中所示,由于整像素运动矢量周围的所有8个1/4像素运动矢量可以由整像素运动矢量和水平/垂直半像素运动矢量简单得出,所以在本实施例中搜索所有的8个1/4像素运动矢量。如果8个1/4像素运动矢量中开销最小的1/4像素运动矢量的开销小于搜索基准矢量(即,整像素运动矢量)的开销,则将该开销最小的1/4像素运动矢量设置为当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量;否则将整像素运动矢量设置为当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量。
[0041] 换句话说,比较整像素运动矢量的开销、以及整像素运动矢量周围的所有八个1/4像素运动矢量的开销,并且选择整像素运动矢量及其周围的所有八个1/4像素运动矢量中开销最小的一个作为当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量。
[0042] 图5示出了在选择水平半像素运动矢量(imv_x+1/2,imv_y)或(imv_x-1/2,imv_y)作为选择作为搜索基准矢量(hmv_x,hmv_y)时的情况。如图5中所示,由于1/4像素运动矢量(hmv_x,hmv_y+/-1/4)与中心半像素运动矢量(imv_x+1/2,imv_y+/-1/2)或(imv_x-1/2,imv_y+/-1/2)有关,所有本实施例不搜索这2个1/4像素运动矢量,而搜索其他的6个1/4像素运动矢量(hmv_x-1/4,hmv_y-1/4)、(hmv_x-1/4,hmv_y)、(hmv_x-1/4,hmv_y+1/4)、(hmv_x+1/4,hmv_y-1/4)、(hmv_x+1/4,hmv_y)、(hvm_x+1/4,hmv_y+1/4)(即,与中心半像素运动矢量不相关的1/4像素运动矢量)。如果这6个1/4像素运动矢量中的开销最小的1/4像素运动矢量的开销小于搜索基准矢量的开销,则将该开销最小的1/4像素像素运动矢量设置为当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量,否则将作为搜索基准矢量的半像素运动矢量设置为当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量。
[0043] 换句话说,比较作为搜索基准矢量(hmv_x,hmv_y)的水平半像素运动矢量(imv_x+1/2,imv_y)或(imv_x-1/2,imv_y)的开销、以及搜索基准矢量周围的与中心半像素运动矢量不相关的6个1/4像素运动矢量的开销,并选择搜索基准矢量和与中心半像素运动矢量不相关的6个1/4像素运动矢量中开销最小的一个作为当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量。
[0044] 图6示出了在选择垂直半像素运动矢量(imv_x,imv_y+1/2)或(imv_x,imv_y-1/2)作为搜索基准矢量(hmv_x,hmv_y)时的情况。如图6中所示,由于1/4像素运动矢量(hmv_x+/-1/4,hmv_y)与中心半像素运动矢量(imv_x+/-1/2,imv_y+1/2)或(imv_x+/-1/2,umv_y-1/2)相关,所以本实施例不搜索这两个1/4像素运动矢量,而搜索其他6个1/4像素运动矢量(hmv_x-1/4,hmv_y-1/4)、(hmv_x,hmv_y-1/4)、(hmv_x+1/4,hmv_y-1/4)、(hmv_x-1/4,hmv_y+1/4)、(hmv_x,hmv_y+1/4)、(hmv_x+1/4,hmv_y+1/4)(即,与中心半像素运动矢量不相关的1/4像素运动矢量)。如果这6个1/4像素运动矢量中的开销最小的1/4像素运动矢量的开销小于搜索基准矢量的开销,则将该开销最小的1/4像素像素运动矢量设置为当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量;否则将作为搜索基准矢量的半像素运动矢量设置为当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量。
[0045] 换句话说,比较作为搜索基准矢量(hmv_x,hmv_y)的水平半像素运动矢量(imv_x,imv_y+1/2)或(imv_x,imv_y-1/2)的开销、以及搜索基准矢量周围的与中心半像素运动矢量不相关的6个1/4像素运动矢量的开销,并选择搜索基准矢量和与中心半像素运动矢量不相关的6个1/4像素运动矢量中开销最小的一个作为当前帧中的当前像素块相对于参考帧中的参考像素块的运动矢量。
[0046] 图7示出了本发明描述的H.264编码器中的分数像素运动估计的硬件框图。如图7中所示,在已知整像素运动矢量的前提下,半像素内插滤波器根据参考帧中的参考像素块中的整像素的像素值,滤波得到所有相关的半像素的像素值,并将结果存入半像素SRAM;
开销计算和比较模块通过计算整像素运动矢量的开销及其周围的4个非中心半像素运动矢量的开销,选出开销最小的运动矢量作为用于搜索1/4像素运动矢量的基准运动矢量;
1/4像素滤波器模块根据这个基准运动矢量,读入参考像素块中的对应的整像素的像素值和半像素的像素值,通过双线性插值得到相应的1/4像素的像素值,并送入开销计算和比较模块计算1/4像素运动矢量的开销;开销计算和比较模块比较了基准运动矢量的开销和所有候选1/4像素运动矢量的开销,选出开销最小的运动矢量作为最终的运动矢量(即,分数像素运动矢量对应的分数像素所在的参考像素块相对于当前帧中的相应的当前像素块的运动矢量)输出,同时该运动矢量被送入运动矢量预测值(MVP)计算模块计算下一个像素块的运动矢量预测值,该运动矢量预测值将被开销计算和比较模块用来估算候选运动矢量的运动矢量开销。
[0047] 以上描述了根据本发明实施例的分数像素运动估计方法和系统。但是本领域技术人员应该明白,以上的功能单元的划分只是本发明的一种逻辑功能划分示例,相同或相近似的功能可以根据需要由不同的逻辑单元实现,也可以由同一个逻辑单元实现。
[0048] 以上已经参考本发明的具体实施例来描述了本发明,但是本领域技术人员均了解,可以对这些具体实施例进行各种修改、组合和变更,而不会脱离由所附权利要求或其等同物限定的本发明的精神和范围。
[0049] 根据需要可以用硬件或软件来执行步骤。注意,在不脱离本发明范围的前提下,可向本说明书中给出的流程图添加步骤、从中去除步骤或修改其中的步骤。一般来说,流程图只是用来指示用于实现功能的基本操作的一种可能的序列。
[0050] 本发明的实施例可利用编程的通用数字计算机、利用专用集成电路、可编程逻辑器件、现场可编程门阵列、光的、化学的、生物的、量子的或纳米工程的系统、组件和机构来实现。一般来说,本发明的功能可由本领域已知的任何手段来实现。可以使用分布式或联网系统、组件和电路。数据的通信或传送可以是有线的、无线的或者通过任何其他手段。
[0051] 还将意识到,根据特定应用的需要,附图中示出的要素中的一个或多个可以按更分离或更集成的方式来实现,或者甚至在某些情况下被去除或被停用。实现可存储在机器可读介质中的程序或代码以允许计算机执行上述任何方法,也在本发明的精神和范围之内。
[0052] 此外,附图中的任何信号箭头应当被认为仅是示例性的,而不是限制性的,除非另有具体指示。当术语被预见为使分离或组合的能力不清楚时,组件或者步骤的组合也将被认为是已经记载了。