一种基于残差下降率的快速UMHexagonS运动估计算法的制作方法

文档序号:7748197阅读:746来源:国知局

专利名称::一种基于残差下降率的快速UMHexagonS运动估计算法的制作方法
技术领域
:本发明涉及信号处理中的压缩编码
技术领域
,是针对H.264压缩编码标准中的UMHexagonS运动估计算法的简化和改进,具体涉及一种基于残差下降率的快速UMHexagonS运动估计算法。
背景技术
:快速运动估计算法一直是视频编码领域研究的热点问题,尤其是快速整数像素精度运动估计受到极大重视。典型快速块匹配算法如三步搜索法(TSS)、四步搜索法(FSS)和六边形搜索法(HEXBS)等,在一个相对较小的搜索范围和图片尺寸上进行搜索能够取得较好的性能,但在许多实际应用(如SDTV和HDTV)中,图片尺寸通常比较大,因而搜索范围应该足够大以便获得较高的编码效率,在这种情况下,典型的快速快匹配搜索算法由于匹配模型过于单一,很可能在搜索的开始便陷入局部最优,从而导致匹配精度较差。现在,针对这一缺点,国内外许多专家学者已经提出了许多相应的应对措施,特别是针对H.264编码标准的要求对一些快速算法所做的改进,已经取得卓越的效果。同时由于物体运动类型千变万化,很难用一种单一的模型去描述,也很难用一种单一的算法来搜索最佳运动矢量,因此采用多种搜索算法相结合的办法,在很大程度上能提高预测的有效性和健壮性。混合非对称十字型多层六边形格点搜索算法(Unsymmetrical-CrossMuti-HexagonSearch,UMHexagonS),是目前搜索效果最好的基于块匹配的运动估计算法,已被H.264/AVC官方参考软件采用。UMHexagonS搜索过程主要包含四个步骤,每个步骤采用不同的搜索模板,包括1)搜索起始点的预测;2)非对称十字形搜索;3)非均勻多重六边形搜索;4)扩展六边形搜索。然而,对于视频序列的每一帧,UMHexagonS算法都采用统一的七种模式进行遍历搜索,没有抓住视频序列的运动特征,因此仍然存在着搜索点数过多的情况。本发明中,提出残差下降率的概念,在UMHexagonS算法开始前,先计算中心点的残差下降率,并对其进行运动分类,对不同运动特征的块采取不同的搜索模式进行遍历,节省搜索点数,提高搜索效率。
发明内容本发明实施例提供一种基于残差下降率的快速UMHexagonS运动估计算法,能保证在原有的UMHexagonS运动估计算法得到的图像质量的前提下,大大提高算法的运行效率,降低编码的复杂度。本发明提供一种基于残差下降率的快速UMHexagonS运动估计算法,包括原有UMHexagonS运动估计算法四个级别的搜索及在搜索过程中根据最佳匹配点处残差下降率的大小划分运动类型,在非均勻多重六边形搜索阶段根据不同的运动类型自适应的选择合适的搜索策略的运动估计算法,并且在搜索过程中采用提前终止的搜索控制策略。所述的第一级搜索起始点预测,采用中值预测法得到当前块的预测点作为下一级非对称十字型搜索的起始搜索点。所述的第二级非对称十字型搜索以第一级搜索起始点预测得到的结果作为起始搜索点,在搜索窗口内采用非对称十字型搜索;搜索模板水平方向的搜索范围设置为搜索窗的宽度W,垂直方向的搜索范围设为W/2,如在某些特殊的富含大量垂直方向上运动的序列中,垂直搜索范围可以扩大到W。经过非对称十字型搜索得到的具有最小匹配误差的匹配点将作为下一级的起始搜索点。所述的第三级非均勻多重六边形搜索以第二级搜索得到的最佳匹配点作为本级的起始搜索点,并计算该点的残差下降率,根据残差下降率的大小划分当前块的运动类型,若当前块被划分为静止块,则直接输出当前的运动矢量作为计算结果,算法提前终止;否则若当前块被划分为小运动类型,则对范围为_2到2的方形区域内的所有像素点进行全搜索,并对图2中指示的最内层的两个六边形搜索模板进行搜索;若当前块被划分为中运动类型,则只对图2中指示中运动的第三个六边形搜索模板进行搜索,若当前块被划分为大运动块,则搜索最外层的大六边形。将本级已搜索过的点与起始点进行对比,匹配误差最小者作为本级的最佳匹配点,同时作为下一级的起始搜索点。所述的第四级为扩展六边形搜索以第三级搜索得到的最佳匹配点作为本级的起始搜索点,先用半径为2的六边形模板进行搜索(如图2st印4-1所示),直至最佳匹配点为六边形的中心,然后改用半径为1的小六边形模板继续搜索(如图2st印4-2所示),搜索直到最佳匹配位置点位于小六边形的中心为止,此时相应的运动矢量即为最终运动估计矢量。本发明的有益效果是本发明的方法和现有的UMHexagonS算法相比,图像质量损失很小,对视频重建质量的影响基本可以忽略,但运动估计时间却大大减少,算法的运行效率得到很大的提高,同时降低了编码的复杂度。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1是本发明一种基于残差下降率的快速UMHexagonS运动估计算法的流程图;图2是非均勻多重六边形搜索阶段运动类型划分;图3是中值预测法的临近块选择;图4是搜索中心点A和最小残差邻接点B;图5是全局最小值附近的残差下降率;图6是全局最小值距离搜索窗口中心的距离对残差下降率的影响;图7是akiyo序列下本发明算法和UMHexagonS的PSNR对比;图8是akiyo序列下本发明算法和UMHexagonS的运动估计时间对比;图9是Foreman序列下本发明算法和UMHexagonS的PSNR对比;图10是Foreman序列下本发明算法和UMHexagonS的运动估计时间对比;图11是Coastguard序列下本发明算法和UMHexagonS的PSNR对比;图12是Coastguard序列下本发明算法和UMHexagonS的运动估计时间对比。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。本发明实施例提供一种基于残差下降率的快速UMHexagonS运动估计算法,能保证在原有的UMHexagonS运动估计算法得到的图像质量的前提下,大大提高算法的运行效率,降低编码的复杂度。以下分别进行详细说明。本发明提出的基于残差下降率的快速UMHexagonS运动估计算法包括UMHexagonS运动估计算法四个级别的搜索及在搜索过程中根据最佳匹配点处残差下降率的大小划分运动类型,在非均勻多重六边形搜索阶段根据不同的运动类型自适应的选择合适的搜索策略的运动估计算法,并且在搜索过程中采用提前终止的搜索控制策略。下面分别介绍运动搜索的目的就是在搜索窗口内找到与当前块最匹配的数据块,这样就存在着如何判断两个块相似程度的问题,即如何定义各个数据块和当前块之间匹配误差的大小。设当前帧为f2,参考帧为,通常有如下一些常用的计算块之间匹配误差的函数。(1)绝对误差和SADMNSAD(i,_/)=ΣΣI^O,η)~(m++J)Im=lw=l式中,(i,j)为位移矢量,若在某一个像素点(i,j)=(dx,dy)处,SAD(i,j)达到最小,则该像素点则为最优匹配点。(2)最小平均绝对值误差(MAD)ιMNMAD{i,7)=—ΣΣΙΛO,n)-fx{m+i,n+j)|最小均方误差(MSE)\MN.^ryMSEQ,7)=-—£Σ(m,n)'Mm+i,n+j)f(3…同(1)中所述,使得MSE值最小的像素点为最佳匹配点(3)归一化互相关函数NCCFMNΣΣ/2n)f\im+hn+j)NCCFQJ)=MN———jr~N--(3·4)此处使得NCCF最大的像素点为最佳匹配点在运动估计中,匹配准则对精度的影响不是很大,由于MAD准则不需要做乘法运算,实现简单、方便,所以常被采用。而SAD和MAD只是一个因子的差别,通常用SAD代替MAD,这样易于硬件实现,所以在实际应用中使用的最多,另外,在计算SAD的过程中,当发现块的部分SAD值已经大于当前得到的最小SAD值时,可以中途退出,从而大大减少计算量。在本发明实例中,匹配误差指绝对误差和SAD。残差下降率(ErrorDescentRate),简称EDR,是指匹配误差朝着最优匹配点的减小速度,即单位像素点内匹配误差的减少量。其中,残差指匹配误差。假设像素块在搜索窗口中只有一个全局最小值,并且块匹配误差随着与最优匹配点的距离的缩小而单调减小。实际上,搜索窗口中可能存在若干局部最小值,这时从整个搜索窗口来看上述的假设可能并不成立,但是对于全局最小值附近的几个像素点考虑,上述的假设总是合理的,而且从整个搜索窗口来看也是近似成立的。基于以上单峰残差表面的假设,我们可以进一步得出,全局极小值点对于其周围距离越近的像素点影响越大,即距离全局最小值点越接近,残差下降越快,残差下降率越大,如图5所示。同理,搜索窗口的中心距离全局最优值越远,则残差的下降越平缓,而距离全局最优值越近则残差下降越快,如图6所示当全局最小值依次位于位置1,2,3,4时,搜索窗口中心处的残差下降率依次递减,分别近似等于(A-B)/d,(B-C)/d,(C-D)/d,(D-E)/d,因此从以上分析可以看出,搜索中心距离全局最优值的距离可以通过搜索中心点的残差下降率的大小进行估计,换句话说,可以根据搜索中心点的残差下降率的大小进行运动类型的划分。下面给出一种更为简便的计算搜索窗口中心点残差率的方法。搜索中心点的残差下降率可以根据如下方法进行计算,首先标记搜索中心点为A,并计算搜索中心点的匹配误差,记SDa,接着依次计算与A点相邻的四个点的匹配误差,如图5所示,并把最小匹配误差的点记为B,匹配误差记为Db,由于四个邻接点与A的距离都是1个像素点,所以A点的最大残差下降率为(Db-Da)。然而,(Db-Da)的值过分依赖于不同的图像特征,很难被利用,例如,对于两个不同的视频图像,一个画面比较复杂,另一个画面比较单一,这时得到的(Db-Da)的值虽然相同,但并不能说明二者与全局最优值点的距离相同。为了很大程度上减少对图像特征的依赖,修改上述公式,并定义中心点残差下降率为EDR=Db/Da。例如当EDR分别为0.8和0.6时表明,B点的残差相比A点的残差分别下降了20%和40%根据对大量不同类型的视频序列进行统计,表明对于不同运动类型的视频序列,EDR都有相同的变化趋势,即用EDR来衡量搜索中心点与全局最优点的距离具有普适性。并且对于大部分视频序列,当搜索中心距离全局最优点三个像素以内时,均有EDR^0.85,即可以认为当EDR彡0.85时,搜索中心距离全局最优点较近,可以划分为小运动模块。同样对于大部分视频序列,当搜索中心距离全局最优点10个像素点以上时,均有0.9<EDR<1,即可以认为当0.9<EDR<1时,搜索中心点远离全局最优点,可以划分为大运动模块。根据以上分析,得出一种基于残差下降率大小划分当前块运动类型的方案首先设定T1和T2两个阈值,取值范围定义为0.85彡T1<T2彡0.95。若EDR>1,则判定为静止块;若EDR彡T1,则判定为小运动块;若T1<EDR彡T2,则判定为中运动类型,否则若T2<EDR彡1则判定为大运动类型。下面对本发明提出的基于残差下降率的快速UMHexagonS运动估计算法按照算法流程分级进行介绍。第一级搜索起始点预测,采用中值预测法得到当前块的预测点作为下一级非对称十字形搜索的起始搜索点。中值预测法采用当前块E相邻的左边块A、上边块B和右上方块C的运动矢量取中值来作为当前块的预测运动矢量。如图3所示,假设M、MVb,MVc分别是块A、B、C的运动矢量,使用中值预测法得到的当前块的预测矢量MgwC为<formula>formulaseeoriginaldocumentpage8</formula>第二级非对称十字型搜索,在现实的视频序列中,水平方向的运动要比垂直方向的运动更为剧烈,由此,使用一种非对称的十字型搜索算法。以第一级搜索起始点预测得到的结果作为起始搜索点,搜索模板水平方向的搜索范围设置为搜索窗的宽度W,垂直方向的搜索范围设为W/2,如图2的stepl所示。在某些特殊的富含大量垂直方向上运动的序列中,垂直搜索范围可以扩大到W。经过非对称十字型搜索得到的具有最小匹配误差的匹配点将作为下一级的起始搜索点。第三级非均勻多重六边形搜索以第二级搜索得到的最佳匹配点作为本级的起始搜索点,并计算该点的残差下降率,根据残差下降率的大小划分当前块的运动类型,若当前块被划分为静止块,则直接输出当前的运动矢量作为计算结果,算法终止;否则若当前块被划分为小运动类型,则对范围为_2到2的方形区域内的所有像素点进行全搜索,并对图2中指示的最内层的两个六边形搜索模板进行搜索;若当前块被划分为中运动类型,则只对图2中指示中运动的第三个六边形搜索模板进行搜索,若当前块被划分为大运动块,则搜索最外层的大六边形。将本级已搜索过的点与起始点进行对比,匹配误差最小者作为本级的最佳匹配点,同时作为下一级的起始搜索点。第四级为扩展六边形搜索以第三级搜索得到的最佳匹配点作为本级的起始搜索点,先用半径为2的六边形模板进行搜索(如图2st印4-1所示),直至最佳匹配点为六边形的中心,然后改用半径为1的小六边形模板继续搜索(如图2st印4-2所示),搜索直到最佳匹配位置点位于小六边形的中心为止,此时相应的运动矢量即为最终运动估计矢量。为了更进一步说明本发明算法的有效性,下面给出一个具体的实施例进行详细说明采用JVT的参考软件JM15.1作为实验平台,修改JM15.1参考软件中的mvsearch,c文件实现本发明的算法,选取如下6个具有代表性的视频序列进行测试,视频1(Akiyo序列)和视频2(MissAmerica序列)是小运动视频序列;视频3(Mother&Daughter序列)和视频4(Forman序列)是中运动视频序列;视频5(Coastguard序列)是大运动视频序列,视频6(Mobile序列)具有较多的细节和垂直运动帧。为了方便比较UMHexagonS算法和本发明算法的性能,采用JM15.1参考软件上实现的UMHexagonS算法作为对比,并在同一平台上实现本发明的算法,在搜索起始点的预测中,二者都只采用中值预测模式,软件测试的主要参数如下表1所示表1实验仿真参数设置<table>tableseeoriginaldocumentpage8</column></row><table><table>tableseeoriginaldocumentpage9</column></row><table>以上述介绍的六个视频序列作为测试序列,分别采用全搜索算法,UMHexagonS算法和基于残差下降率的快速UMHexagonS算法进行运动估计,统计各个视频序列在每一种算法下得到的平均PSNR,运动估计时间和比特率(即经过编码后,每秒钟用于表示压缩后的数据的比特量),实验结果如下表2,3和4所示表2亮度峰值信噪比PSNR_Y<table>tableseeoriginaldocumentpage9</column></row><table>表3比特率(kbps)<table>tableseeoriginaldocumentpage10</column></row><table>表4总运动估计时间(秒)<table>tableseeoriginaldocumentpage10</column></row><table>从上述仿真实验结果中可以看出EDR_UMHeXag0nS算法得到的平均PSNR和比特率与UMHexagonS算法和全搜索算法得到的结果基本一致,但EDR_UMHeXag0nS算法需要的运动估计时间却大大减少,和UMHexagonS算法相比,平均减少了20%的运动估计时间,而且这一优化满足于各种不同运动类型的视频序列。为了更直观的观察实验结果,下面各选取一个小运动(Akiyo)、中运动(Forman)和大运动(Coastguard)的视频序列,列出其中每一帧的PSNR_Y*运动估计时间(ms),把改进的UMHexagonS算法和UMHexagonS算法得到的结果进行详细的对比,如下图7至图12所示。需要说明的是,上述装置和系统内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括只读存储器(ROM,ReadOnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁盘或光盘等。以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。权利要求一种基于残差下降率的快速UMHexagonS运动估计算法,其特征在于,包括原有UMHexagonS运动估计算法四个级别的搜索及在搜索过程中根据最佳匹配点处残差下降率的大小划分运动类型,在非均匀多重六边形搜索阶段根据不同的运动类型自适应的选择合适的搜索策略的运动估计算法,并且在搜索过程中采用提前终止的搜索控制策略;基于残差下降率的快速UMHexagonS运动估计算法包括四个级别的搜索第一级搜索起始点预测,采用中值预测法得到当前块的预测点作为下一级非对称十字型搜索的起始搜索点;第二级非对称十字型搜索以第一级搜索起始点预测得到的结果作为起始搜索点,在搜索窗口内采用非对称十字型搜索;搜索模板水平方向的搜索范围设置为搜索窗的宽度W,垂直方向的搜索范围设为W/2,在某些特殊的富含大量垂直方向上运动的序列中,垂直搜索范围可以扩大到W,经过非对称十字型搜索得到的具有最小匹配误差的匹配点将作为下一级的起始搜索点;第三级非均匀多重六边形搜索以第二级搜索得到的最佳匹配点作为本级的起始搜索点,并计算该点的残差下降率,根据残差下降率的大小划分当前块的运动类型,若当前块被划分为静止块,则直接输出当前的运动矢量作为计算结果,算法提前终止;否则若当前块被划分为小运动类型,则对范围为-2到2的方形区域内的所有像素点进行全搜索,并对图2中指示的最内层的两个六边形搜索模板进行搜索;若当前块被划分为中运动类型,则只对图2中指示中运动的第三个六边形搜索模板进行搜索,若当前块被划分为大运动块,则搜索最外层的大六边形;将本级已搜索过的点与起始点进行对比,匹配误差最小者作为本级的最佳匹配点,同时作为下一级的起始搜索点;第四级为扩展六边形搜索以第三级搜索得到的最佳匹配点作为本级的起始搜索点,先用半径为2的六边形模板进行搜索,直至最佳匹配点为六边形的中心,然后改用半径为1的小六边形模板继续搜索,搜索直到最佳匹配位置点位于小六边形的中心为止,此时相应的运动矢量即为最终运动估计矢量。2.根据权利要求1所述的基于残差下降率的快速UMHexagonS运动估计算法,其特征在于,所述的中值预测法采用当前块E相邻的左边块A、上边块B和右上方块C的运动矢量取中值来作为当前块的预测运动矢量。3.根据权利要求1所述的基于残差下降率的快速UMHexagonS运动估计算法,其特征在于,所述的残差下降率即ErrorDescentRate,简称EDR,是指匹配误差朝着最优匹配点的减小速度,即单位像素点内匹配误差的减少量;根据如下方法进行计算,首先标记搜索中心点为A,并计算搜索中心点的匹配误差,记,接着依次计算与A点相邻的四个点的匹配误差,并把最小匹配误差的点记为B,匹配误差记为DB,则中心点的残差下降率计算公式如下EDR=Db/Da。4.根据权利要求1所述的基于残差下降率的快速UMHexagonS运动估计算法,其特征在于,所述的根据残差下降率的大小划分当前块的运动类型,划分规则如下若EDR>1,则判定为静止块;若EDR<,则判定为小运动块;若<EDR<T2,则判定为中运动类型,否则若T2<EDR彡1则判定为大运动类型,其中和T2为两个阈值,取值范围定义为0.85(<T2^0.95。5.根据权利要求1所述的基于残差下降率的快速UMHexagonS运动估计算法,其特征在于非均勻多重六边形搜索阶段,根据非对称十字型搜索阶段得到的最佳匹配点计算该点的残差下降率,设定运动类型划分准则的两个阈值和T2,若EDR>1,则直接输出当前的运动矢量作为计算结果,算法终止;若EDR≤T1,则对范围为_2到2的方形区域内的所有像素点进行全搜索,并对图2中指示的最内层的两个六边形搜索模板进行搜索;若<EDR≤T2,则只对图2中指示中运动的第三个六边形搜索模板进行搜索,否则,若T2<EDR≤1,则搜索最外层的大六边形;将本级已搜索过的点与起始点进行对比,匹配误差最小者作为本级的最佳匹配点,同时作为下一级的起始搜索点。全文摘要本发明公开了一种基于残差下降率的快速UMHexagonS运动估计算法。本发明提出残差下降率的概念并根据残差下降率的大小划分运动类型的准则。本发明的方法是在现有的UMHexagonS算法上的改进,包括UMHexagonS四个级别的搜索及在搜索过程中根据最佳匹配点处残差下降率的大小划分运动类型,在非均匀多重六边形搜索阶段根据不同的运动类型自适应的选择合适的搜索模板进行搜索,并且在搜索过程中采用提前终止的搜索控制策略。本发明的方法和现有的UMHexagonS算法相比,在保证图像质量的前提下,大大提高了算法的运行效率,降低了编码的复杂度。文档编号H04N7/50GK101835047SQ20101016654公开日2010年9月15日申请日期2010年4月30日优先权日2010年4月30日发明者李冠彬,罗笑南申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1