采用自适应搜索策略的快速多帧运动估计的制作方法

文档序号:7610557阅读:124来源:国知局
专利名称:采用自适应搜索策略的快速多帧运动估计的制作方法
背景技术
运动补偿经常与图像数据压缩编码结合使用。采用运动补偿的图像数据压缩编码技术的一个实例是已经提出的H.264标准(更正式地称为高级视频编码(AVC)标准,由国际标准化组织(ISO)的运动图像专家组和国际电信联盟的电信标准化部门(ITU-T)的视频编码专家组(VCEG)联合形成的联合视频小组(JVT)开发)。在H.264编码中,将矩形块的像素数据从先前帧的参考块中减去,并且对得到的差值信息进行变换以得到系数数据。量化该系数数据,然后对得到的信息重新排序并进行熵编码,以用于传输和/或记录。
为了利用视频信号中的时间冗余性,即使是在图像中存在运动和/或相机移动时,参考块也可以在图像帧中从当前正在编码的块处进行位移。参考块的位移称为“运动补偿”。“运动估计”过程确定在先前帧中(在搜索窗中)哪个像素块与当前正在编码的块最佳匹配。在当前编码的块和先前帧中最佳匹配块之间的位移用“运动矢量”表示,其是运动估计过程得到的结果。运动矢量包含在“边信息”中,“边信息”与当前块的经过变换、量化、重新排序、熵编码的差值信息一起发送。运动补偿使得在当前像素块与参考块之间的差值最小化,从而能够使得需要发送/记录的数据量最小化。
运动补偿视频压缩编码的一个问题是编码所需的处理量。运动估计可以包括处理负荷的相当大的一部分,特别是采用所谓的“全搜索”算法时。还提出了所谓的“快速搜索”算法,其中采用了缩小的搜索图形(pattern),轻微降低了图像质量。


图1是根据一些实施例的图像数据处理系统的高级别方框图;图2是图1中系统的图像数据压缩编码部分的方框图;
图3采用功能块的形式示出了图2的压缩编码部分的操作;图4A-4C共同形成流程图,示出了图2的压缩编码部分根据一些实施例所执行的运动估计过程;图5示意性地示出了图4A-4C的运动估计过程中,在一些情况中使用的六角形搜索图形;以及图6示意性地示出图4A-4C的运动估计过程中,在另一些情况中使用的十字(cross)搜索图形。
具体实施例方式
图1是根据一些实施例的图像数据处理系统100的方框图。图像数据处理系统100包括压缩编码部分102,其是根据一些实施例提供的。系统110还包括图像数据帧源104。图像数据帧源耦合到压缩编码部分,用来为压缩编码部分提供图像数据帧序列。图像数据帧源可以是,例如摄像机、电视电影、数字视频磁带再生设备等。
系统100还包括传输信道106。压缩编码部分耦合到传输信道,用来提供经过压缩编码的图像数据。传输信道还可以用于将经过压缩编码的图像数据发送到另一位置和/或者将经过压缩编码的图像数据存储到记录介质(未单独示出)上。
图2是图像数据压缩编码部分102的实施例的方框图。压缩编码部分102可以包括处理器202。处理器202可以是例如通用处理器,诸如常规微处理器,以及/或者数字信号处理器(DSP)。压缩编码部分102还可以包括存储设备204,其耦合到处理器。存储设备204可以存储程序指令,所述程序指令控制处理器,使得处理器根据如下所述的一些实施例执行图像数据压缩编码。
压缩编码部分还可以包括工作存储器206(即,RAM-随机存取存储器),其耦合到处理器202。
在另一实施例中,压缩编码部分102可以实现为特定用途集成电路(ASIC),其配置为根据如下所述的一些实施例执行图像数据压缩编码。
图3采用功能块的形式示出了压缩编码部分102的操作。
在图3中,当前正在压缩编码的输入图像数据帧用302表示。根据H.264标准,可以分别处理每个“宏块”(16×16的像素块)。此外,如果有利的话,每个宏块可以再分为8×16、16×8或者8×8的块。如果还有利的话,每个8×8的块还可以再分为8×4、4×8或者4×4的块。
无论是否进行了再分,每个宏块都可以采用“帧内”模式或者“帧间”模式(即,帧内预测或者帧间预测)进行编码。304表示对特定块选择了帧内模式。用开关306表示在帧间预测的参考块和帧内的预测参考块之间进行选择。开关306的输出是预测的参考块。预测的参考块是从重建的帧中取出的,该重建的帧在帧内预测308的情况中是当前处理的帧(未滤波),或者是已经在312处进行了滤波并存储在314中的先前帧310,其也可能是与一个或多个其他先前帧一起存储在314中。
在一些实施例中,可以从中选择最大到5个的先前帧,来在帧间模式中提供预测的参考块。这5个先前帧可以按照与时间相反的顺序称为“Ref0”、“Ref1”、“Ref2”、“Ref3”和“Ref4”。Ref0可以是在输入的图像数据帧序列中在当前正在压缩编码的帧之前最紧邻的帧;Ref1可以是在该图像数据帧序列中在Ref0之前最紧邻的帧;Ref2可以是在该图像数据帧序列中在Ref1之前最紧邻的帧;Ref3可以是在该图像数据帧序列中在Ref2之前最紧邻的帧;以及Ref4可以是在该图像数据帧序列中在Ref3之前最紧邻的帧。
如316所示,可以对参考帧运用运动估计算法,为在当前帧中的当前块或者子块寻找在参考帧中的最佳匹配块或者子块。以下阐述了根据一些实施例提供的运动估计算法的细节。除了以下所述的运动估计算法之外,图3中所示的全部压缩编码过程整体上可以根据常规原理,例如在H.264标准中所阐述的原理来执行。
采用由运动估计过程316所产生的运动矢量,可以对参考帧进行运动补偿318,来选择参考块。通过开关功能306,可以将参考块施加到差值功能320,差值功能320从当前正在压缩编码的块中减去参考块。(注意,在帧内模式中,是采用来自当前帧的参考块。)采用块变换(如322所示)对通过从当前编码的块中减去参考块而生成的差值数据块进行变换,并量化所得到的变换系数,如324所示。然后对量化的变换系数重新排序(块326)以提高编码效率,然后对其进行熵编码(块328)。在该点处,已经得到了压缩比特流,其包括经过量化、重新排序、熵编码的变换系数,以及标识例如预测模式、量化步长、块大小、运动矢量等等的边信息。然后将该比特流传送到网络提取层(NAL),用于传输或存储。
重建分支过程330得到量化的变换系数,并进行逆量化(块332),然后对解量化的数据进行逆变换(块334),生成差值数据。在求和功能336处,将差值数据与参考块相加,生成重建的块。所得到的重建的块可以用于在308处的帧内预测,或者与其他块合并来形成重建的帧,在312对重建的帧进行滤波,并在314将其存储为用于帧间预测的参考帧。
图4A-4C共同形成示出图3的运动估计算法316的流程图,如根据一些实施例所提供的。
在图4A中,块402表示对于当前正在压缩编码的图像数据帧的一个宏块开始运动估计算法。块404表示将运动估计算法运用到每个可能的不同块或子块大小或形状,以允许从使得差值数据量最小化的角度来选择最优块大小/形状。在一些实施例中,块大小选择循环404考虑16×16、8×16、16×8、8×8、4×8、8×4和4×4的块大小/形状中的每一个。考虑不同块大小的顺序可以遵循从16×16到4×4的大小下降的顺序,以便可以利用上层的运动矢量信息。
在块大小选择循环404中嵌套了参考帧循环406,参考帧循环406使得对于当前块/子块考虑完整的参考帧组或者截短的参考帧组。在一些实施例中,完整的参考帧组包括Ref0、Ref1、Ref2、Ref3和Ref4,截短的参考帧组包括Ref0、Ref1和Ref2。根据一些实施例,根据以下描述的准则来在完整的参考帧组和截短的参考帧组之间进行选择。从另一个角度看,可以考虑Ref0、Ref1和Ref2形成第一参考帧组,在一些实施例中在所有情况下都要对其进行检查,而可以考虑Ref3和Ref4形成第二(实际中是更早的)参考帧组,在这些实施例中,有时不对其进行检查。Ref0可以称为是第一参考帧组中的帧中的“最后一个”;Ref1可以称为是第一参考帧组中的帧中的“中间一个”;Ref2可以称为是第一参考帧组中的帧中的“最早一个”;Ref3可以称为是第二参考帧组中的“后一个”;Ref4可以称为是第二参考帧组中的“前一个”。考虑参考帧的顺序可以如在本段中第二句中所述(即,首先考虑最近的)。
如在此所用的和附带的权利要求中所用的,“参考帧组”不是必须要包含一个以上的帧。
因此,对于当前正在压缩编码的宏块而言,对于正在考虑的整个宏块或者子宏块,以及对于当前正在考虑的参考帧,要进行以下过程。首先,在块408,对于在将运动估计算法运用到当前正在考虑的参考帧时所生成的运动矢量,执行统计分析。可以预期运动矢量大致服从对称指数分布。可以假设运动矢量在X方向和Y方向上独立,从而使得组合概率分布可以定义为PMV(x,y)=PX(x)PY(y) (1)在此,Px(x)和PY(y)分别是运动矢量在X方向和Y方向上的概率分布。Px(x)和PY(y)可以服从如下定义的指数分布P(n)=λ,n=0时 (2a)P(n)=(1/2)λβ|n|,n不等于0时(2b)从概率分布的物理意义的角度看,等式(2)应该满足在搜索窗口中的概率总和为1的限制。换而言之,如果搜索窗口大小为W,则对于在范围-W到W中的n,P(n)的总和等于1。
运动矢量的均值绝对值MVmean可以定义为对于在范围-W到W中的n的P(n)(|n|+1)的总和。
从上述中,可以获得以下λ=1/MVmean(3a)β=1-(1/MVmean) (3b)当前正在考虑的参考帧中的运动矢量的概率分布模型可以从MVmean导出。(如本领域技术人员所熟知的,变量的“概率分布模型”也可以称为“概率模型”或者“分布模型”,其是可变的且相关的概率的范围。)由于在通常的帧序列中,MVmean变化的相当慢,因此MVmean可以用作预测未来帧(例如当前正在编码的帧)的特征的参数。运动矢量很可能分布在菱形区域中。因此,可以找到至少99%的运动矢量所在的最小菱形区域。即,可以得到值M,其是使得对于在范围-M到M中的n的P(n)的总和不小于0.99的最小值。该条件还可以表示为λ(1+β+β2+...+βM)>=0.99 (4)要注意的是,表达式λ(1+β+β2+...+βM)可以根据MVmean的值计算,因为λ和β都是用MVmean项来表达的(等式(3))。
该过程所得到M的值还可以称为“ADL”(自适应菱形长度)。根据上述结果计算出的对当前正在考虑的参考帧的ADL是块408的统计分析的输出。
在块410,聚集一组候选运动矢量。在一些实施例中,该运动矢量组包括以下所有(A)从当前正在压缩编码的帧的每一个以下所述的块而来的相应运动矢量(总计3个)当前考虑的块上方的块、当前考虑的块右上方的块和当前考虑的块左侧的块;要知道的是,这三个块都与当前考虑的块相邻;(B)作为当前编码的块的超集的每个块的相应运动矢量(如果当前考虑的块是宏块自身,则不存在作为其超集的块;但是例如,如果当前考虑块是8×16的块,则当前编码的帧的16×16的宏块是当前考虑的块的超集;类似的,如果当前考虑的块是8×8的块,则当前考虑的块的超集是16×16、8×16和16×6的块);(C)在Ref0中的在大小上和图像帧中的位置上与当前考虑的像素块相对应的像素块的运动矢量;以及(D)若干候选运动矢量的超集,其中,每个候选运动矢量都是通过将定标(scaling)系数施加给在Ref1、Ref2、Ref3和Ref4中每一个中的在大小上和图像帧中的位置上与当前考虑的像素块相对应的像素块的相应运动矢量。在每种情况中的定标系数可以与参考帧与当前帧之间的时间上的距离成比例。
在判断块412,确定彼此相等的候选运动矢量的最大数量,并且确定该运动矢量数量是否超过阈值。如果是,则如414所示,认为该一般性的运动矢量是当前考虑的块的运动矢量。反之,则当前正在考虑的块的运动估计继续到判断块416(图4B)。在判断块416,确定当前考虑的像素块是否是零块(所有的像素数据都等于0)。如果是,则认为零运动矢量是当前考虑的像素块的运动矢量,如418所示。反之,则检查其中一个候选运动矢量的所指示的每个参考像素块,确定当前考虑的像素块与当前检查的参考像素块之间的差值。暂时将与最小差值相对应的候选运动矢量选择作为(如420所示)当前考虑的像素块或者当前帧的运动矢量,并如下所述对其进行进一步搜索,以找到最佳匹配的参考像素块。
接下来,在判断块422确定在420临时选择的候选运动矢量是否是零运动矢量。如果是,则如424所示,使用如下所述的十字搜索图形在当前考虑的参考帧中进行块匹配搜索,以找到最佳匹配的参考像素块。反之,则根据块408的统计分析(图4A)并且可能基于其他因素来确定是否希望小搜索区域(判断425)。例如,作为初步测试,获得对于在当前编码的帧中的每一个以下所列的相邻像素块的相应运动矢量的平均值当前考虑的像素块上方的块、当前考虑的像素块右上方的块和当前考虑的像素块左侧的块。如果该平均值假设至少等于4,则采用如下所述的六角形搜索图形进行进一步的块匹配搜索。反之,则将在408所计算的ADL与一个阈值(即,4)进行比较,如果ADL至少等于该阈值,则采用六角形搜索图形(如图4B的426所示)。反之(即,如果ADL<该阈值),则采用十字搜索图形,如428所示。
图5示意性地示出了六角形搜索图形的一个实例。在IEEETransactions on Circuits and Systems for Video Technology,Vol.12,no5,2002年5月,349-355页,Ce Zhu等人的“Hexagon-Based SearchPattern for Fast Block Motion Estimation”中也描述了六角形搜索图形的一个实例。
在图5中,网格的每个交叉点都对应于在当前考虑的参考帧中的一个像素位置。在初始六角形搜索图形中心处的搜索开始点502对应于在420(图4B)暂时选择的候选运动矢量所指示的像素位置。继续参考图5,其他6个像素点504、506、508、510、512、514中的每一个构成了初始六角形搜索图形的平衡,这6个像素中的每一个或者是横向距离搜索开始点502两个像素,或者是距离搜索开始点502向上或向下两个像素且横向距离一个像素。将与这七个初始搜索点相对应的各个(候选)参考像素块分别和当前正在考虑进行编码的像素块进行比较,然后,与和当前正在考虑进行编码的像素块最佳匹配的候选参考像素块相对应的搜索点确定为“获胜者”。对于本实例,假设点506是获胜者。然后在获胜者的方向上进行六角形搜索图形的扩展,在该情况下得到附加的搜索点516、518和520。然后确定在这三个新点和先前获胜者506之中的获胜者。还是对于本实例,假设点520是新的获胜者。再次在该新获胜者的方向上扩展搜索图形,在该情况下得到新的搜索点522、524、526。再次将这些新的搜索点和最新的获胜者进行比较。现在假设在这新的一轮中,点520仍然是获胜者。从而,将紧接着获胜者520上方、下方、两侧的小图形中的4个点528、530、532和534相互比较,并且与520进行比较,将在这5个点中的获胜者选择作为当前正在考虑进行编码的像素块的运动矢量。
以上所述的六角形搜索图形在需要遍历相对大的区域时能够提供有效的搜索。作为六角形搜索图形的另一实例,由502、504、506、508、510、512和514形成的图形可以围绕点502旋转90度,以提供替换的初始六角形搜索图形。
在图6中示意性地示出了十字搜索图形的实例。
在图5中,网格的交叉点每个都对应于在当前考虑的参考帧中的一个像素位置。搜索开始点602对应于在420(图4B)暂时选择的候选运动矢量所指示的像素位置。继续参考图6,初始十字搜索(即十字形状)形状的平衡包括4个点604、606、608和610,这4个点在紧接着开始点602的上方、下方和两侧。将与这5个初始搜索点相对应的各个(候选)参考像素块分别与当前正在考虑进行编码的像素块进行比较,然后与和当前正在考虑进行编码的像素块最佳匹配的候选参考像素块相对应的搜索点确定为获胜者。对于本实例,假设点604是获胜者。然后在获胜者的方向上进行十字搜索图形的扩展,在该情况下得到额外的搜索点612、614和616。然后,确定在这3个新搜索点和先前获胜者604中的获胜者。再次对于本实例,假设点612是新获胜者。再次在获胜者的方向上扩展搜索图形,得到新的搜索点618、620。(如果614是获胜者,则将会有3个新搜索点)。接下来假设在考虑点618和620时612还是优胜者,从而搜索结束,并将612选择作为当前正在考虑进行编码的像素块的运动矢量。
以上所述的十字搜索图形在需要遍历相对小的区域时能够提供有效的搜索。在一些实施例中,至少部分地根据在当前正在编码的帧之前的参考帧中的运动矢量的统计分布,可以自适应地在六角形图形和十字图形中选择很可能更好的搜索图形。这可以利用在较早帧中的运动矢量分布的时间预测值来预测在当前帧中的可能分布。可替换地,可以使用4之外的阈值。
一旦已经对正在处理的当前帧中的像素块和当前正在考虑的参考帧确定了运动矢量,接下来就确定(判断块430,图4C)是否完成了参考帧循环。这可以包括确定是否应该通过例如从考虑中省略Ref3和Ref4来缩短参考帧循环。当已经完成了对Ref2的考虑时,就可以进行上述后者的确定步骤,在该时刻,已经为当前帧的当前像素块,对于Ref0、Ref1和Ref2确定了各个运动矢量。
在一些实施例中,如果满足以下条件就可以跳过Ref3和Ref4的考虑(A)|(2×MVref0)-MVRef1|<TMV;(B)|(3×MVref0)-MVRef2|<TMV;(C)CostRef0<CostRef1;以及(D)CostRef0<CostRef2;在上面一组条件中,MVref0是为当前编码的像素块确定的相对于Ref0的运动矢量;MVref1是为当前编码的像素块确定的相对于Ref1的运动矢量;MVref2是为当前编码的像素块确定的相对于Ref2的运动矢量;TMV是用于参考帧循环缩短判断的阈值(在一些实施例中,TMV可以等于4)。另外,“Cost”是代价函数,其测量对当前编码的像素块进行编码的代价,其是当前编码的像素块相对于为该帧所确定的运动矢量所指向的在各个参考帧中的参考像素块的差值。换而言之,“Cost”函数表示了在当前编码的像素块与各个参考帧中所提议的参考像素块之间的块匹配程度。还应该理解的是,对于上述4个条件是否满足的确定构成了对于参考Ref0、Ref1和Ref2对于当前帧(更具体的,当前帧的当前像素块)所执行的运动估计的结果的评估。在其他实施例中,这种运动估计的评估可以采用其他方式执行。
如果所有4个条件都满足,则可以得出结论Ref1和Ref2的考虑不会得到比Ref0更好的块匹配,并且Ref3和Ref4的考虑几乎不可能得到更好的块匹配。因此确定应该通过跳过Ref3和Ref4的考虑来缩短参考帧循环,以便节省处理资源并加快运动估计的完成。
因此,在判断块430,如果刚刚考虑的参考帧是Ref4,或者如果刚刚考虑的参考帧是Ref2且满足对于缩短参考帧循环的条件,则参考帧循环结束。如果参考帧循环没有结束,则图4A-4C的过程返回到图4A中的408,然后考虑下一个(即下一个更早的)参考帧。如果参考帧循环结束,则过程从判断块430(图4C)进入判断块432。
应该理解的是,在一些实施例中,潜在考虑的参考帧的总数可以是5以外的值,和/或者当根据考虑较晚的参考帧的结果确保可以跳过参考帧时所跳过的参考帧数量可以是2以外的值。
在判断块432,考虑是否已经为当前编码的像素宏块考虑了所有不同的块大小/形状。如果没有,则图4A-4C的过程返回406,并考虑下一个块大小/形状。反之(即,如果已经考虑了所有的块大小/形状),则过程进入图4C中的块434。
在块434,为编码当前像素宏块选择最佳的块大小/形状(得到最佳匹配的块大小/形状)。在一些实施例中,这可以根据常规实现来完成。还应该理解的是,从所考虑的各种参考帧的各个参考块中为块的每个大小/形状选择最佳匹配参考块。这也可以根据常规实现来完成。因此现在完成了当前宏块的运动估计,并且现在可以将图4A-4C的过程应用到当前帧的下一个宏块上。
采用参考图4A-4C所述的过程,运动估计可以比其他“快速”运动估计算法执行的更加迅速,并且在图像质量方面可以得到可比拟的结果。
该运动估计算法的各种部分的执行顺序可以从图4A-4C中的顺序中进行改变。
在块424(图4B)中的块匹配搜索图形的选择并不局限于在2个搜索图形中选择,可以在六角形搜索图形和十字搜索图形之外的其他搜索图形中进行选择。
在此所述的几个实施例仅仅是为了说明的目的。在此所述的各种特征不需要一起使用,这些特征中的任何一个或多个可以结合到单个实施例中。因此,本领域技术人员应该从本说明书中认识到可以实现具有各种更改和变化的其他实施例。
权利要求
1.一种方法,包括检查在第一图像数据帧中的运动补偿所采用的运动矢量的统计分布,所述检查步骤用于生成在所述第一帧中所述运动矢量的分布模型;以及至少部分地根据所述分布模型,选择对于第二图像数据帧所使用的块匹配搜索图形,所述第二帧在图像数据帧序列中是在所述第一帧之后。
2.如权利要求1所述的方法,其中,所述选择步骤包括在六角形搜索图形和十字搜索图形之间进行选择。
3.如权利要求1所述的方法,其中,所述检查步骤包括计算在所述第一帧中的运动补偿所采用的运动矢量的平均值。
4.如权利要求1所述的方法,其中,所述检查步骤包括计算包含在所述第一帧中的运动补偿所采用的运动矢量的至少99%的菱形区域的大小。
5.如权利要求1所述的方法,还包括确定对于所述第二帧的像素数据块所使用的运动矢量,所述确定步骤采用所选择的块匹配搜索图形执行。
6.如权利要求5所述的方法,还包括对所述第二帧的所述像素数据块执行运动补偿压缩编码,所述运动补偿压缩编码利用了所述的对于所述第二帧的像素数据块所使用的运动矢量。
7.一种方法,包括确定第一图像数据帧的特征;以及根据所确定的特征,在对于第二图像数据帧所使用的第一块匹配搜索图形和对于所述第二图像数据帧所使用的第二块匹配搜索图形之间进行选择,所述第二帧在图像数据帧序列中紧邻着所述第一帧之后。
8.如权利要求7所述的方法,其中,所述确定步骤包括分析所述第一帧的运动矢量的统计分布。
9.如权利要求7所述的方法,其中,所述选择步骤包括在六角形搜索图形和十字搜索图形之间进行选择。
10.如权利要求7所述的方法,还包括,确定对于所述第二帧的像素数据块所使用的运动矢量,所述确定步骤采用所选择的块匹配搜索图形执行。
11.如权利要求10所述的方法,还包括,对所述第二帧的所述像素数据块执行运动补偿压缩编码,所述运动补偿压缩编码利用了所述的对于所述第二帧的像素数据块所使用的运动矢量。
12.一种方法,包括执行对于图像数据帧序列中当前帧的第一运动估计,所述第一运动估计参考第一参考帧组执行,所述第一参考帧组在所述图像数据帧序列中是在所述当前帧之前;评估所述第一运动估计的结果;以及根据所述评估结果,确定是否执行对于所述当前帧的第二运动估计,所述第二运动估计参考不同于所述第一参考帧组的第二参考帧组执行,所述第二参考帧组在所述图像数据帧序列中是在所述第一参考帧组之前。
13.如权利要求12所述的方法,其中所述第一参考帧组包括在所述图像数据帧序列中紧邻着所述当前帧之前的3个参考帧;以及所述第二参考帧组包括在所述图像数据帧序列中紧邻着所述第一参考帧组之前的2个参考帧。
14.如权利要求13所述的方法,其中,所述评估步骤包括将参考所述第一参考帧组中的中间一个帧所获得的第一运动矢量与参考所述第一参考帧组中最晚的一个帧所获得的第二运动矢量的倍数之间的差值和一个阈值进行比较。
15.如权利要求13所述的方法,其中,所述评估步骤包括将参考所述第一参考帧组中的最早的一个帧所获得的第一运动矢量与参考所述第一参考帧组中最晚的一个帧所获得的第二运动矢量的倍数之间的差值和一个阈值进行比较。
16.如权利要求13所述的方法,其中,所述评估步骤包括将参考所述第一参考帧组中的中间一个帧所获得的块匹配程度与参考所述第一参考帧组中的最晚的一个帧所获得的块匹配程度进行比较。
17.如权利要求13所述的方法,其中,所述评估步骤包括将参考所述第一参考帧组中的最早的一个帧所获得的块匹配程度与参考所述第一参考帧组中的最晚的一个帧所获得的块匹配程度进行比较。
18.如权利要求13所述的方法,其中,所述评估步骤包括将参考所述第一参考帧组中的最晚的一个帧所获得的第一运动矢量的2倍与参考所述第一参考帧组中的中间一个帧所获得的第二运动矢量之间的差值和一个阈值进行比较;将所述第一运动矢量的3倍与参考所述第一参考帧组中的最早的一个帧所获得的第三运动矢量之间的差值和所述阈值进行比较;将参考所述第一参考帧组中的中间一个帧所获得的块匹配程度与参考所述第一参考帧组中的最晚的一个帧所获得的块匹配程度进行比较;以及将参考所述第一参考帧组中的最早的一个帧所获得的块匹配程度与参考所述第一参考帧组中的最晚的一个帧所获得的块匹配程度进行比较。
19.如权利要求12所述的方法,其中,所述第一参考帧组至少包括两个帧。
20.如权利要求19所述的方法,其中,所述评估步骤包括将参考所述第一参考帧组中的较早的一个帧所获得的块匹配程度与参考所述第一参考帧组中的较晚的一个帧所获得的块匹配程度进行比较。
21.如权利要求19所述的方法,其中,所述评估步骤包括计算通过从参考所述帧中较早的一个帧所获得的第二运动矢量的倍数中减去参考所述帧中较晚的一个帧所获得的第一运动矢量所得到的差值。
22.如权利要求21所述的方法,其中,所述评估步骤还包括将所述差值与一个阈值比较。
23.一种设备,包括存储介质,具有存储在其上的指令,当机器执行所述指令时,实现以下步骤检查在第一图像数据帧中的运动补偿所采用的运动矢量的统计分布,所述检查步骤用于生成在所述第一帧中所述运动矢量的分布模型;以及至少部分地根据所述分布模型,选择对于第二图像数据帧所使用的块匹配搜索图形,所述第二帧在图像数据帧序列中是在所述第一帧之后。
24.如权利要求23所述的设备,其中,所述选择步骤包括在六角形搜索图形和十字搜索图形之间进行选择。
25.如权利要求23所述的设备,其中,所述检查步骤包括计算包含在所述第一帧中的运动补偿所采用的运动矢量的至少99%的菱形区域的大小。
26.一种方法,包括对图像数据帧序列中的当前帧中的第一像素块确定多个候选运动矢量,所述候选运动矢量包括以下中的至少两个(a)与所述第一像素块相邻的像素块的运动矢量;(b)作为所述第一像素块的超集的像素块的运动矢量;(c)第二像素块的运动矢量,所述第二像素块是在所述图像数据帧序列中紧邻着所述当前帧之前的第一参考图像数据帧的一部分,所述第二像素块在所述第一参考帧中具有与在所述当前帧中的所述第一像素块的位置相对应的位置;以及(d)第三像素块的定标的运动矢量,所述第三像素块是第二参考帧的一部分,所述第二参考帧在所述图像数据帧序列中在所述第一参考帧之前,所述第三像素块在所述第二参考帧中具有与在所述当前帧中的所述第一像素块的位置相对应的位置;确定所述多个候选运动矢量中相同运动矢量的数量;以及将所述数量与一个阈值比较。
27.如权利要求26所述的方法,还包括如果所述数量超过所述阈值,则设定所述第一像素块的运动矢量的值,所述值等于所述相同的候选运动矢量的值。
28.如权利要求26所述的方法,其中,所述候选运动矢量包括以下每个(a)与所述第一像素块相邻的3个像素块中每一个的各自的运动矢量;(b)作为所述第一像素块的超集的像素块的运动矢量;(c)第二像素块的运动矢量,所述第二像素块是在所述图像数据帧序列中紧邻着所述当前帧之前的第一参考图像数据帧的一部分,所述第二像素块在所述第一参考帧中具有与在所述当前帧中的所述第一像素块的位置相对应的位置;以及(d)第三像素块的定标的运动矢量,所述第三像素块是第二参考帧的一部分,所述第二参考帧在所述图像数据帧序列中在所述第一参考帧之前,所述第三像素块在所述第二参考帧中具有与在所述当前帧中的所述第一像素块的位置相对应的位置。
29.一种方法,包括执行对于图像数据帧序列中当前帧的第一运动估计,所述第一运动估计参考第一参考帧组执行,所述第一参考帧组在所述图像数据帧序列中是在所述当前帧之前;评估所述第一运动估计的结果;以及根据所述评估结果,确定是否执行对于所述当前帧的第二运动估计,所述第二运动估计参考不同于所述第一参考帧组的第二参考帧组执行,所述第二参考帧组在所述图像数据帧序列中是在所述第一参考帧组之前;其中,所述第一运动估计包括对所述当前帧中的第一像素块确定多个候选运动矢量,所述候选运动矢量包括以下中的至少两个(a)与所述第一像素块相邻的像素块的运动矢量;(b)作为所述第一像素块的超集的像素块的运动矢量;(c)第二像素块的运动矢量,所述第二像素块是作为在所述第一参考帧组中最晚的帧的参考帧的一部分,所述第二像素块在所述参考帧中具有与在所述当前帧中的所述第一像素块的位置相对应的位置;以及(d)第三像素块的定标的运动矢量,所述第三像素块是另一参考帧的一部分,所述另一参考帧是在所述第一参考帧组中的所述最晚的帧之前,所述第三像素块在所述另一参考帧中具有与在所述当前帧中的所述第一像素块的位置相对应的位置;确定所述多个候选运动矢量中相同运动矢量的数量;将所述数量与一个阈值比较;并且其中,所述第一运动估计还包括确定在所述帧序列中在所述当前帧之前的一个图像数据帧的特征;以及根据所确定的特征,选择对于所述当前帧所使用的块匹配搜索图形,所述先前帧在所述帧序列中在紧邻着所述当前帧之前。
30.如权利要求29所述的方法,其中,所述确定所述先前帧的特征的步骤包括分析所述先前帧的运动矢量的统计分布。
31.如权利要求30所述的方法,其中,所述选择步骤包括在六角形搜索图形和十字搜索图形之间进行选择。
32.如权利要求31所述的方法,其中,所述第一参考帧组包括在所述图像数据帧序列中紧邻着所述当前帧之前的3个参考帧;所述第二参考帧组包括在所述图像数据帧序列中紧邻着所述第一参考帧组之前的2个参考帧;
全文摘要
一种方法,包括检查在第一图像数据帧中的运动补偿所采用的运动矢量的统计分布。所述检查用于生成在所述第一帧中所述运动矢量的分布模型。该方法还包括至少部分地根据所述分布模型,选择对于第二图像数据帧所使用的块匹配搜索图形。所述第二帧是在图像数据帧序列中在所述第一帧之后。
文档编号H04N7/26GK101061722SQ200480044126
公开日2007年10月24日 申请日期2004年10月14日 优先权日2004年10月14日
发明者埃里克·李 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1