用于混合型高速运动估计的方法和设备的制作方法

文档序号:7628603阅读:222来源:国知局
专利名称:用于混合型高速运动估计的方法和设备的制作方法
技术领域
本发明涉及一种用于混合型高速运动估计的方法和设备,其可应用于运动图像编码设备,尤其涉及一种组合了单像素贪婪搜索(one-pixel greedysearch,OPGS)算法和分级搜索块匹配算法(HSBMA)的运动估计方法和设备。
通常,视频服务、娱乐、数字广播和便携式视频终端采用国际视频标准,如H.261、H.263、运动图像专家组(MPEG)-1、MPEG-2和MPEG-4。根据国际视频标准产生比特流的视频编码器采用诸如离散余弦变换(DCT)、量化和可变长度编码的压缩算法及运动估计算法来压缩视频信号。
现有的运动估计算法包括全搜索块匹配算法(FSBMA)和快速搜索算法(FSA)。FSBMA首先逐个得到先前帧中搜索区域内的所有可能的位置与当前帧中相应位置之间的差值,然后求出具有最小误差的位置。但是,尽管FSBMA是最简单的并且是具有理想精度的,FSBMA需要进行大量的计算,从而不适于实时编码。
与此同时,与FSBMA相比,FSA以较低精度为代价显著减少了计算量,并且其适于其中视频品质相对来讲不是十分重要的实时视频编码器(例如,视频电话、IMT-2000终端、视频会议系统等)。FSA的示例包括分级搜索块匹配算法(HSBMA)、3步搜索(TSS)算法、2D对数搜索算法(LSBA)和单像素贪婪搜索(OPGS)。
这里,HSBMA的精度高,并且受运动量的影响相对较小,但是计算量大,并且需要用于存储低分辨率帧的存储器。此外,对于长距离运动向量和不用区分的短距离运动向量两者,HSBMA所需计算量大。
OPGS算法仅能够求出中心点(或开始点)附近的有效运动向量,不能准确地收敛到局部最小点,不能对具有复杂运动的复杂图像得到准确结果,并且需要大量计算来求出长距离上的运动向量。
因此,现有的运动估计算法不能采用已计算出的结果,并且不能减少不必要的计算,这是因为,这些算法中的每个都均匀地应用于所有块,而不管运动的复杂性如何,也不管主题块的特性如何。因此,现有的运动估计算法适于以硬件如超大规模集成电路(VLSI)芯片实现,但不适于在软件专用编码器中实施算法。另外,由于计算量大,因此,不能采用低价位、低电压的中央处理器(CPU)来以软件实施这些算法。
为了解决上述问题,本发明的第一个目的是提供一种自适应运动估计方法,其中通过执行混合型运动估计使不必要的计算最少,并且提高精度,该混合型运动估计组合了单像素贪婪搜索(OPGS)算法和分级搜索块匹配算法(HSBMA)。
本发明的第二个目的是提供一种运动估计设备,其采用组合了OPGS算法和HSBMA算法的运动估计方法。
为了实现本发明的第一个目的,提供了一种运动估计方法,该运动估计方法包括下列步骤(a)输入以宏块为单位的帧和搜索区域,并估计希望得到估计的宏块的候选运动向量;和(b)如果在步骤(a)中估计的候选运动向量的误差在阈值范围内,则估计以估计位置为中心的限制的搜索区域内的运动,否则估计整个搜索区域内的运动。
为了实现本发明的第二个目的,还提供了一种自适应运动估计设备,该运动估计设备包括向量估计单元,用于接收视频数据,并且估计零运动向量、先前运动向量和相邻块的运动向量中与希望得到估计的宏块匹配的运动向量,作为候选运动向量;算法选择单元,用于通过将候选向量估计单元中估计到的候选向量的误差与预置的阈值相比较,来选择运动估计算法;和运动估计单元,用于当算法选择单元中估计的候选运动向量的误差在阈值范围内时,估计以估计位置为中心的限制的搜索区域内的运动,否则,估计整个搜索区域内的运动。
从下列参照附图对本发明优选实施例的详细描述中,本发明的上述目的和优点将变得更清楚,其中

图1是本发明混合型高速运动估计设备的框图;图2是本发明混合型高速运动估计方法的流程图;图3的图形表示的是按运动向量尺寸的宏块分布,该运动向量尺寸是通过执行全搜索块匹配算法(FSBMA)得到的;图4是根据图2的估计先前帧和下一帧中的候选向量的示意图;图5是根据图2的单像素贪婪搜索(OPGS)算法的示意图;和图6是根据图2的分级搜索块匹配算法(HSBMA)的示意图。
下面将参照附图详细描述本发明的优选实施例。本发明不局限于下面的实施例,可在本发明的宗旨和范围内进行多种变化。给出本发明实施例是为了向本领域内的普通技术人员更完全地解释本发明。
图1是本发明混合型高速运动估计设备的框图。
图1的设备具有候选向量估计单元110、算法选择单元120、运动估计单元130、存储器140、和半像素运动估计单元150。
参照图1,候选向量估计单元110接收视频数据,并估计当前待估计的宏块的候选向量。此时,候选向量估计单元110最终从零运动向量、先前的运动向量、及相邻块的运动向量中选择最佳匹配的运动向量作为候选运动向量。
算法选择单元120通过将由候选向量估计单元110估计到的候选向量的绝对差之和(SAD)与预定阈值相比较,来选择运动估计算法(OPGS或HSBMA)。
运动估计单元130采用由算法选择单元120选择的运动算法(OPGS或HSBMA)对输入的宏块执行全像素运动估计。
存储器140存储由运动估计单元130估计的全像素运动估计值,并将估计值提供给候选向量估计单元110。
采用视频数据输入,半像素运动估计单元150参照由运动估计单元130估计的全像素运动估计值的位置,估计16×16宏块和8×8子块的半像素运动。
图2是本发明混合型高速运动估计方法的流程图。
参照图3至6,下面将解释图2所示高速运动估计方法的流程图。
首先,在步骤210,输入的视频数据(或帧)被分成希望被搜索的宏块,并且设置宏块的先前或下一帧的搜索区域。
然后,在步骤220,估计其运动向量希望得到估计的宏块的候选向量。例如,如图3所示,通过对视频数据执行FSBMA而获得的按运动尺寸的宏块分布表示出有很多其长度在“0”和“1”之间的运动向量。因此,为了获得这些运动向量,采用如图3所示可参照分布度降低计算量的运动估计算法,而不对所有的宏块仅采用一种运动估计算法。
因此,将(1)零运动向量、(2)相邻块的运动向量、和(3)先前运动向量中的最佳匹配值,例如具有最小SAD的向量值设定为候选运动向量。
这里,3个候选运动向量的设置如下。
第一候选运动向量(1)被设定为其长度为“0”的运动向量(零运动向量)。
第二候选运动向量(2)被设定为以当前宏块为中心的其运动向量已被计算的3个宏块420、430和440的运动向量的中间值,如图4的(b)所示。但是,如果当前帧为双向(B)型,则选择相邻宏块中的前向运动向量、后向运动向量和双向运动向量中的一个。因此,如果已知3个方向运动向量中的一个,则可通过换算(scaling)已知的运动向量来估计剩余的方向运动向量。例如,如果已知前向运动向量,则根据参考帧的间隔数目适当地对该前向运动向量进行换算,并且,通过改变所换算运动向量的符号,估计后向运动向量。类似地,可将后向运动向量适当地改变为前向运动向量。因此,在通过计算相邻宏块420、430和440中的每个的3种类型的运动向量(前向、后向和双向)获得一中间值之后,与期望得到估计的宏块最佳地匹配的运动向量被设定为第二候选运动向量(2)。
如图4的(a)所示,如果当前帧是预测(P)型帧,则第三候选运动向量(3)被设定为在与先前P型帧中的位置相同的当前帧中的位置上的宏块的运动向量410,或被设定为包括相邻的4个宏块的5个宏块的运动向量的中间值。此时,如果当前帧为B型帧,则通过换算来估计在与先前或下一P型帧中的位置相同的当前帧中的位置上的宏块的运动向量,它被用来估计当前帧的运动向量。在对4个相邻的宏块进行换算之后,将一中间值设定为第三候选运动向量(3)。此时,如果已知宏块的一个方向分量,则可通过换算和改变符号来估计其余方向(前向、后向、和双向)的运动向量,如在估计第二候选运动向量的方法中所使用的那样。
然后,在步骤230,通过将候选运动向量中与搜索区域最佳匹配的值(例如最小SAD)与预定的阈值(T)相比较,来选择运动估计算法。这里,如果在多任务环境中对运动图像进行实时编码,则CPU的处理能力可能不足。在这种情况下,如果希望有恒定的帧速率,则事先计算每个帧的目标计算时间。因此,通过根据先前计算出的目标编码时间对当前帧估计每个片断(一组宏块系列)单元的编码时间,来调整阈值(T)。
然后,如果候选运动向量中对应于与待估计宏块最佳匹配的值的最小SAD值位于阈值(T)范围内,则选择OPGS算法。此时,在步骤240,根据OPGS算法,在以对应于所估计候选运动向量的位置为中心的、可以是被定义为“fcode”的运动向量的绝对值的1/2或1/4的更为有限的范围内对运动向量进行搜索。此时,fcode表示的是运动向量能够所处的最大搜索范围和最小搜索范围。参照图5,①是对应于如图4的(a)和(b)的估计位置的开始点。以开始点(①)为中心,执行对由②指示的4个位置中的每个的匹配,然后,再次执行对由③或④指示的4个位置中的每个的匹配,之后,重复执行匹配,直至不存在最佳匹配相邻值。因此,运动向量是对应于最终收敛结果 的最佳匹配位置。
这里,对于H.263和MPEG-4标准,OPGS通常在以宏块的运动向量为中心的±2范围内执行8×8子块运动估计(先进预测模式或4MV模式)。但是,本发明中,执行16×16宏块OPGS,然后在以运动向量为中心的±2范围内对每个8×8子块执行OPGS。另外,通过在标准中定义的重复填充,来估计扩展区域内的未受限的运动向量。
然后,如果由于候选运动向量中的最佳匹配值,即SAD超出阈值而使估计失败,则执行HSBMA算法。HSBMA算法对由fcode指示的整个搜索区域执行运动估计。下面将参照图6解释该实施例。从由低分辨率或二次采样图像(例如[-2,+2])形成的搜索区域,在阶段1搜索运动向量。采用阶段1的搜索结果,在阶段2,在高分辨率图像或原始图像中限制的搜索区域内搜索精确的运动向量。因此,连续重复该阶段,直至达到最高分辨率(或原始图像),然后,将最佳匹配块位置设定给运动向量。
另外,HSBMA采用螺旋式搜索,并且,如果当将在每个阶段(阶段1和阶段2)中计算出的运动向量的匹配度与预置的阈值相比较时匹配度不足,则选择该运动向量作为最终的估计值。这里,阈值表示可容许误差范围,确定HSBMA的精度和计算量,并且是根据预置阶段的值中所估计的编码时间来进行选择的。
这里,当估计8×8子块的运动向量时,HSBMA在阶段2估计4个子块中的每个的运动,并且通过附加4个块的匹配值来估计宏块的运动。另外,在必要时,HSBMA估计在重复填充之后扩展搜索区域的未受限的运动向量。
然后,在步骤260和270,将由OPGS算法或HSBMA算法估计的像素单元的运动向量以16×16宏块为单位进行存储,并且在像素单元运动估计位置上估计半像素的运动向量。
然后,在步骤280,提取16×16宏块、8×8子块和半像素的运动向量。
根据上述本发明,估计运动向量,并且以估计位置为中心执行OPGS,如果估计失败,则采用HSBMA来对估计进行补偿,以避免由于不精确估计而引起的误差。由此,可在减少计算量的同时保持高精度。本发明对实时编码尤其有效。
权利要求
1.一种自适应运动估计方法,该运动估计方法包括下列步骤(a)输入以宏块为单位的帧和搜索区域,并估计希望得到估计的宏块的候选运动向量;和(b)如果在步骤(a)中估计的候选运动向量的误差在阈值范围内,则估计以估计位置为中心的限制的搜索区域内的运动,否则估计整个搜索区域内的运动。
2.如权利要求1所述的运动估计方法,其中,产生零运动向量、相邻宏块的运动向量中间值、和从先前或下一帧中估计到的值,并且,通过从3个值中选择与希望得到估计的宏块最佳匹配的值,来得到候选运动向量。
3.如权利要求1所述的运动估计方法,其中,所述步骤(b)还包括下列子步骤(b-1)如果估计到的候选运动向量的误差在阈值范围内,则执行单像素贪婪搜索(OPGS)算法;和(b-2)否则,执行分级搜索块匹配算法(HSBMA)。
4.如权利要求1所述的运动估计方法,其中,通过根据预先计算出的目标编码时间,估计在对应于宏块组的每个片断单元上的当前帧的编码时间,来调整步骤(b)中的阈值。
5.如权利要求3所述的运动估计方法,其中,通过在步骤(b-2)中采用螺旋式搜索,HSBMA将运动向量匹配度与在每个搜索阶段在预置阈值中根据估计的编码时间选择的可容许误差范围相比较,并且将比较值选为运动向量。
6.一种自适应运动估计设备,该运动估计设备包括向量估计单元,用于接收视频数据,并且估计零运动向量、先前运动向量和相邻块的运动向量中与希望得到估计的宏块匹配的运动向量,作为候选运动向量;算法选择单元,用于通过将候选向量估计单元中估计到的候选向量的误差与预置的阈值相比较,来选择运动估计算法;和运动估计单元,用于当算法选择单元中估计的候选运动向量的误差在阈值范围内时,估计以估计位置为中心的限制的搜索区域内的运动,否则,估计整个搜索区域内的运动。
7.如权利要求6所述的运动估计设备,还包括半像素运动估计单元,用于参照所述运动估计单元估计的估计值的位置,来估计半像素运动。
全文摘要
一种组合了单像素贪婪搜索(one-pixel greedy search,OPGS)算法和分级搜索块匹配算法(HSBMA)的运动估计方法及其设备。该方法包括下列步骤:(a)输入以宏块为单位的帧和搜索区域,并估计希望得到估计的宏块的候选运动向量;和(b)如果在步骤(a)中估计的候选运动向量的误差在阈值范围内,则估计以估计位置为中心的比先前搜索区域小一个预定数的搜索区域内的运动,否则估计整个搜索区域内的运动。
文档编号H04N7/26GK1348312SQ01117720
公开日2002年5月8日 申请日期2001年4月29日 优先权日2000年10月11日
发明者金成柱 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1