法律状态公告日
法律状态信息
法律状态
2012-10-17
授权
授权
2010-05-12
实质审查的生效 IPC(主分类):H04N7/26 申请日:20080928
实质审查的生效
2010-03-31
公开
公开
技术领域
本发明涉及编码技术领域,尤其涉及一种应用于模板匹配的快速运动搜索方法及装置。
背景技术
在视频编解码技术中,帧间运动补偿预测技术在编解码效率方面有非常重要的作用。相应的帧间运动补偿预测技术是指:在编解码过程中,利用搜索获得的运动矢量进行运动补偿,以实现相应的编解码操作。
目前,解码端在进行运动矢量估计过程采用的一种运动矢量搜索方式是在限定的范围内在整数点上搜索,之后,再在找到的最好的整数点周围的亚象素点上精细搜索,以确定相应的运动矢量。例如,如图1所示,首先搜索周围的8个半象素点1-8,接着搜索选定的最好的半象素点周围的8个1/4象素点a-h,以实现相应的运动矢量的搜索。或者,也可以采用另一种运动矢量搜索方式,称为TSS(三步法),如图2所示,该方法是在一定的搜索范围内,按照9宫格搜索模板选择搜索路径,首先根据搜索路径模板在较大范围内搜索9个路径点位置的匹配程度,并选择匹配程度最好的点,之后,按相同的搜索路径模板在小一点范围的9个路径点中找匹配程度最好的点,最后,在最小范围内的9个路径点中找到匹配程度最好的点,并将该点的运动矢量作为搜索获得的运动矢量。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
上述两种运动矢量搜索方式均存在搜索范围较大,搜索过程复杂的问题,降低了编解码过程中编解码效率。
发明内容
本发明的在于实施例提供了一种应用于模板匹配的快速运动搜索方法及装置,以有效降低运动矢量搜索的复杂程度,提高编解码效率。
根据本发明的一方面,提供一种应用于模板匹配的快速运动搜索方法,包括:
选择当前块的相关块的运动矢量作为当前块的候选运动矢量;
计算候选运动矢量在参考帧中所对应的模板区域的失真;
根据所述失真,在当前块的候选运动矢量中获取失真最小的候选运动矢量作为当前块的运动矢量。
根据本发明的一方面,还提供一种编码方法,包括:
应用上述应用于模板匹配的快速运动搜索方法搜索确定当前编码块的运动矢量;
根据所述当前编码块的运动矢量对当前编码块进行编码操作。
根据本发明的另一方面,还提供一种解码方法,包括:
应用上述应用于模板匹配的快速运动搜索方法搜索确定当前解码块的运动矢量;
根据所述当前解码块的运动矢量对当前解码块进行解码操作。
根据本发明的另一方面,还提供一种应用于模板匹配的快速运动搜索装置,包括:
候选运动矢量确定单元,用于选择当前块的相关块的运动矢量作为当前块的候选运动矢量;
运动矢量搜索单元,用于计算候选运动矢量在参考帧中所对应的模板区域的失真,并在当前块的候选运动矢量中获取失真最小的候选运动矢量作为当前块的运动矢量。
根据本发明的另一方面,还提供一种编码器,包括上述的应用于模板匹配的快速运动搜索装置,以及编码单元,编码单元根据通过所述应用于模板匹配的快速运动搜索装置确定的当前编码块的运动矢量对当前编码块进行编码操作。
根据本发明的另一方面,还提供一种解码器,包括上述的应用于模板匹配的快速运动搜索装置,以及解码单元,解码单元根据通过所述应用于模板匹配的快速运动搜索装置确定的当前解码块的运动矢量对当前解码块进行解码操作。
根据本发明的另一方面,还提供一种编解码系统,包括上述编码器,以及与所述编码器通信的上述解码器。
由上述本发明的实施例提供的技术方案可以看出,由于不需要确定大的搜索范围,也不需要确定相应的搜索路径模板,而仅需要在较小的范围内进行搜索,因此,本发明实施例可以有效降低运动矢量搜索的复杂程度,进而提高相应的编解码效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的搜索方式一的示意图;
图2为现有技术中的搜索方式二的示意图;
图3为本发明实施例中的目标区域和L型模板示意图;
图4为本发明实施例提供的搜索运动矢量的过程示意图;
图5为本发明实施例中的当前块的相关块的示意图;
图6为本发明实施例中的匹配搜索过程示意图;
图7为本发明实施例提供的装置的结构示意图;
图8为本发明实施例提供的编码装置的结构示意图;
图9为本发明实施例提供的解码装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的搜索运动矢量的过程是在当前视频内容的参考帧中定位匹配运动矢量,以作为相应的运动矢量,从而可以减少搜索过程的复杂程度,进而可以快速地搜索确定匹配的运动矢量,这样,既可以提高编解码效率,还可以保证或改善编解码的性能。
本发明实施例可以应用于解码端进行相应的解码操作,或者,也可以应用于编码端进行相应的编码操作,或者,也可以同时应用编码端和解码端。
在具体应用本发明实施例的过程中,若本发明实施例应用于编码端,则可以不在编码码流中写入相应的运动矢量,或者,也可以在编码码流中写入相应的运动矢量。若编码码流中未写入相应的运动矢量,则在解码端采用同样的运动矢量搜索方式进行运动矢量搜索即可。
本发明实施例提供的运动矢量搜索方案中,首先,选择当前块的相关块的运动矢量作为当前块的候选运动矢量;之后,在当前块的候选运动矢量中选择最匹配的候选运动矢量作为当前块的运动矢量,即可以先计算候选运动矢量在参考帧中所对应的模板区域的失真,并根据计算确定的失真,在当前块的候选运动矢量中获取失真最小的候选运动矢量作为当前块的运动矢量,例如,可以计算当前块候选运动矢量在参考帧中对应的模板区域之间的绝对误差之和或者像素值差的平方之和,并选择其中绝对误差之和或者像素值差的平方之和最小的块对应的候选运动矢量作为最匹配的候选运动矢量,即将该运动矢量作为运动矢量。
在上述处理过程中,当前块的相关块可以包括以下至少一项:
(1)与当前块空间相关的块,相应的空间相关指与当前块的相邻块,如左边块、左上块、上边块或右上块等;
(2)与当前块时间相关的块,该时间相关是指在当前块的参考帧中当前块对应位置或相邻位置的块。
可选地,作为当前块的候选运动矢量的各运动矢量各不相同,且相应的候选运动矢量可以包括以下任一项或多项:
(1)单个相关块对应的运动矢量,即将某个相关块对应的运动矢量直接作为相应的候选运动矢量;
(2)对一个或多个相关块对应的一个或多个运动矢量进行计算,获得的计算后的运动矢量,以便于将计算后的运动矢量作为相应候选运动矢量;
在对一个或多个相关块对应的一个或多个运动矢量进行计算的过程中,即可以采用根据当前块的参考图像指数和相关块的参考图像指数,对一个或多个相关块的运动矢量进行缩放计算的计算处理方式;或者,也可以采用对多个相关块的运动矢量进行加权平均计算的计算处理方式;或者,也可以对一个或多个相关块的运动矢量进行移位计算;或者,也可以对多个相关块的运动矢量进行中值计算;若需要进行多次计算,则各次计算可以采用相同的计算方式,也可以采用不同的计算方式;
(3)在多个相关块对应的多个运动矢量中选择出来的一个运动矢量,以便将该选择出来的一个运动矢量作为相应的候选运动矢量。
以图3所示为例,本发明实施例是通过参考帧中相应的偏移模板块(图3中的L型模板)计算代价函数(即失真大小)来估计目标区域中的当前块的运动矢量。相应的目标区域(图3中的正方形区域)可以是宏块或宏块划分块,如16×8、8×16、8×8等象素块;其中代价函数是当前块模板区域与参考帧中对应区域像素值差的绝对值之和,或者,也可以使用其他代价函数例如:当前块模板区域与参考帧中对应区域像素值差的平方之和。根据该最小的代价值便可以确定当前块的最匹配的运动矢量。
下面将结合附图对本发明实施例的具体实现过程进行详细说明。
参照图4所示,本发明实施例提供的搜索运动矢量的具体实现过程包括以下步骤:
步骤401,根据其他点(即其他块)与当前块的相关性,在其他点的运动矢量中选择一组点(即块)的运动矢量作为的候选运动矢量;
具体的选择操作可以在当前块周围已经解码块的运动矢量,或者可以根据已经解码块运动矢量推导出的其他块的运动矢量作为候选运动矢量;
如图5所示,可以在当前块的左边块、左上块、上块和右上块等相关块中选择一组运动矢量各不相同的块的运动矢量作为相应的候选运动矢量;例如,可以选择当前块的左边块和右上边块的运动矢量作为的候选运动矢量;在选择过程中,需要满足各个块的运动矢量各不相同,若存在多个运动矢量相同的情况,则仅取其中一个作为候选运动矢量;
或者,还可以应用H264/AVC中的运动矢量预测器进行中值计算得到的预测值MVP作为当前块的候选运动矢量。相应的MVP的计算可以为:假设当前块的左边块,右边块和右上块的运动矢量分别是MVA、MVB和MVC,则比较该三个值,取三个值中的中间大小的值作为MVP,例如,若MVA<MVB<MVC,则选择MVB作为MVP;
或者,还可以将当前块在已解码图象中相同位置块的运动矢量作为当前块的候选运动矢量;
或者,当采用多参考帧编码时,还可以将根据候选运动矢量的参考图象指数和当前参考图象的参考图象指数,按比例缩放后得到的运动矢量作为当前块的候选运动矢量;例如,假设候选运动矢量为MVp,对应的参考图象指数refldxp,当前参考图象的参考图象指数为refldxX,缩放后得到对当前参考图象的当前块运动矢量MVX,则:
MVX=MVp×(refldxX/refldxp); (1)
或者,当前块的候选运动矢量还可以是其他候选运动矢量的组合,例如,在通过上述公式(1)进行缩放后再加上一定的偏移值作为相应的候选运动矢量,即MVX=MVp1*(refldxX/refldxp1)+offset,其中,offset为偏移值,相应的偏移值可以是预先设定的常数值或其他候选运动矢量的差值;
或者,还可以将其他的候选运动矢量的加权求平均值作为相应的当前块的候选运动矢量,例如,可以通过以下公式进行加权平均计算:
其中,MVX为加权平均后获得的当前块的候选运动矢量,N表示共有N个权重因子an,an表示根据代价函数产生的整数权重因子,A是等于2的幂,如A=2k,k∈Integers,且A是所有整数权重因子之和,即MVPn是候选运动矢量,r代表了舍入误差,其可以预先确定,通常可为0或
步骤402,在通过上述步骤401确定了一组候选运动矢量后,则可以进一步地对相应的候选运动矢量进行筛选,以确定最后的候选运动矢量队列中的候选运动矢量;
在筛选过程中,需要保证各个候选运动矢量的唯一性;若发现在选择的候选运动矢量中有相同值的情况,则仅保留其中一个,其余相同值的运动矢量需要从候选运动矢量队列中移出;
可选地,还可以利用其他预定的规定对相应的候选运动矢量做进一步地筛选;例如,若某候选运动矢量所在的块是帧内编码块,则考虑到其可用性不佳,则也可以将其从候选运动矢量队列中移出。
在完成相应的筛选操作并最终确定了候选运动矢量后,便可以在该候选运动矢量队列中选择最匹配的运动矢量,并将该最匹配的运动矢量作为当前模板的运动矢量,即当前块的运动矢量;该过程包括:
步骤403,计算筛选后的候选运动矢量在参考帧中所对应的模板区域的失真情况,以便于根据失真的大小进行最匹配的运动矢量的选择;
步骤404,根据候选运动矢量在参考帧中所对应的模板区域的失真计算结果,获取最匹配(失真最小)的运动矢量作为当前块的运动矢量;
具体地,可以利用候选运动矢量队列中的这些唯一的候选运动矢量,逐个计算利用该候选运动矢量在参考帧中移动相应的偏移量得到的对应模板块与当前模板块的匹配代价,如可以通过计算SAD(绝对误差之和)值或USSD(像素值差的平方之和)值等确定相应的匹配代价;之后,根据计算出的匹配代价,在候选运动矢量队列中选择匹配代价最小(失真最小)的候选运动矢量作为当前模板的运动矢量;例如,参照图6所示,通过上述步骤2得到的候选运动矢量在参考帧中相应位置中的模板为参考块1,2,之后,通过匹配代价计算确定为参考块2为最匹配块,则参考块2对应的候选运动矢量队列中的候选运动矢量即为运动矢量。
可选地,在完成上述步骤401-404的处理并获得相应的当前块的运动矢量后,还可以自适应选择是否做亚象素搜索处理;例如,若找到的当前块的运动矢量已经是亚象素精度,则可以不再进行亚象素精细搜索,否则,还可以继续进行相应的亚象素搜索确定最终的当前块的运动矢量。
通过上述本发明实施例提供的快速运动搜索方案,可以在编解码过程中快速、准确地进行当前块的运动矢量的搜索,进而有效提高编解码系统的编解码效率及性能。
本发明实施例还提供了一种运动矢量搜索装置,其具体实现结构如图7所示,可以包括:
候选运动矢量确定单元701,用于选择当前块的相关块的运动矢量作为当前块的候选运动矢量;
可选地,当前块的相关块可以包括以下至少一项:
与当前块空间相关的块,所述空间相关指与当前块的相邻块;
与当前块时间相关的块,所述时间相关是指在当前块的参考帧中当前块对应位置或相邻位置的块。
可选地,作为当前块的候选运动矢量的各相关块的运动矢量各不相同,且相应的候选运动矢量确定单元701选择的相关块的运动矢量具体可以包括以下至少一项:
单个相关块对应的运动矢量;
对一个或多个相关块对应的一个或多个运动矢量进行计算,获得的计算后的运动矢量;该计算过程可以为根据当前块的参考图像指数和相关块的参考图像指数,对一个或多个相关块的运动矢量进行缩放计算;或者,也可以为对多个相关块的运动矢量进行加权平均计算;或者,还可以对一个或多个相关块的运动矢量进行移位计算;或者,也可以对多个相关块的运动矢量进行中值计算;在计算过程中,若需要对多个相关块进行多次计算,则也可以将上述多个计算方式中的部分或全部同时应用于该计算过程中,以实现相应的多次计算,即相应的多次计算可以分别采用不同的方式实现。
在多个相关块对应的多个运动矢量中选择出来的一个运动矢量。
运动矢量搜索单元702,用于在上述候选运动矢量确定单元701确定的当前块的候选运动矢量中选择最匹配的候选运动矢量作为当前块的运动矢量;即计算候选运动矢量在参考帧中所对应的模板区域的失真,并在当前块的候选运动矢量中获取失真最小的候选运动矢量作为当前块的运动矢量;
该运动矢量搜索单元702具体可以包括:
计算单元7021,用于计算当前块的候选运动矢量在参考帧中对应的模板区域之间的绝对误差之和或者像素值差的平方之和;
运动矢量确定单元7022,用于根据所述计算单元7021的计算结果,选择其中绝对误差之和或者像素值差的平方之和最小的块对应的候选运动矢量作为当前块的运动矢量。
需要说明的是,上述装置既可以设置于编码端,也可以设置于解码端。且若设置于编码端,则相应的运动矢量可以不在编码码流中携带传递,而仅在解码端采用同样的运动矢量搜索方式进行运动矢量搜索即可。
具体地,本发明实施例提供的编码器,如图8所示,可以包括上述应用于模板匹配的快速运动搜索装置801,以及编码单元802,相应的编码单元802根据通过所述应用于模板匹配的快速运动搜索装置801确定的当前编码块的运动矢量对当前编码块进行编码操作。
本发明实施例提供的解码器,如图9所示,可以包括上述应用于模板匹配的快速运动搜索装置901,以及解码单元902,相应的解码单元902根据通过所述应用于模板匹配的快速运动搜索装置901确定的当前解码块的运动矢量对当前解码块进行解码操作。
本发明实施例还提供了相应的编解码系统,该系统包括图8所示的编码器,以及与该编码器通信的图9所示的解码器。
通过上述装置、编解码器及编解码系统的实现,使得在编解码过程中,可以简便、快捷地获得相应的当前块的运动矢量,从而可以有效地实现相应的运动补偿技术,进而提高编解码器及编解码系统中的编解码效率及性能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
本发明实施例中,由于不需要确定较大的搜索范围,因而可以减少在编解码端运动矢量推导算法中的模板匹配代价计算的次数,从而降低了编解码端运动矢量推导算法的复杂度,使得可以较为简便、快捷地获得相应的运动矢量。同时,本发明实施例还可以通过保留足够数量的候选运动矢量的方式保持或提高相应的编解码性能。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
机译: 用于模板匹配的快速运动搜索方法,装置及系统
机译: 用于模板匹配的快速运动搜索方法,装置及系统
机译: 模板匹配中快速运动搜索的方法,装置和系统