一种用于h.264视频编码的联合分数点运动估计和插值方法

文档序号:7715642阅读:163来源:国知局

专利名称::一种用于h.264视频编码的联合分数点运动估计和插值方法
技术领域
:本发明属于视频编码的分数点运动估计领域,特别是涉及一种用于11.264视频编码的联合分数点运动估计和插值方法。
背景技术
:现有的视频编码标准H.263、H.264、MPEG-4等都是建立在混合编码的框架之上的,即既在时间域又在空间域上进行的编码。编码时先利用帧间编码消除时间域上的相关性,然后对时间域上的预测结果的残差值进行变换编码,消除空间的相关性,最后进行熵编码消除统计上的冗余度。具体编码过程如下首先通过运动估计得到当前帧与参考帧宏块之间的运动矢量,然后采用基于运动补偿的帧间预测得到宏块之间的残差值,接着对这些残差值进行二维变换,再对变换系数进行量化,最后进行熵编码。运动估计通过在参考帧上搜索当前宏块的最佳估计来得到运动矢量,它包括整数点运动估计与分数点运动估计两种。整数点运动估计方法包括全搜索、钻石型搜索、六边形搜索、非均匀多层次六边形格点整象素运动搜索方法等。通过整数点搜索得到当前最优整数点后,再进行分数点运动估计。分数点运动估计的主要思想是先通过插值算法,计算出需要进行运动估计的块中整数点之间的像素的值,可以计算出l/2、l/4、l/8等精度的像素点;然后在这些分数点构成的块中搜索最佳估计来得到分数点运动向量。分数点运动估计方法主要可以分为两类。第一类是基于模型的分数点运动估计算法,即在假设误差平面符合某种数学模型的情况下提出的算法;第二类是基于预测的快速算法,这类算法利用相邻块之间运动向量的相关性,得到一个初始搜索点并依据成为最优向量的概率大小的顺序搜索不断改进搜索结果。要进行分数点运动估计的前提是需要先通过插值算法来得到分数像素点的值。H.264采用一些2维可分离的滤波器来计算分数点的值并通过低通滤波消除视频信号的混叠。1/2精度像素点的插值采用的是基于整数点的6抽头滤波器,1/4精度像素点则是采用基于整数点和1/2像素点的线性滤波器。因此现有的插值算法的1/4精度点对1/2精度点具有依赖关系。现在主要使用的插值方法有全插值(FFPI)和X264的插值方法(XFPI)两种。FFPI是在搜索前将整个参考帧的1/2和1/4分数点都插值出来,XFPI是先插值出所有的1/2像素点,在对某一块估计时才插出相应的1/4精度点。分数点运动估计对系统性能的提升十分明显,在相同的情况下能够提升23dB的视频质量或减少40%左右的码率,但它插值时需要的计算量十分大,甚至可以占据68%的计算能力。同时,由于现有的插值算法对分数点的计算有依赖关系,无法直接计算,如果通过推导得到直接通过整数点插值出所有分数点的公式,则会有很多重复的计算。
发明内容本发明的目的是为了克服现有分数点运动估计和分数点插值技术的不足,提出了一种联合分数点运动估计和分数点插值的算法,在保持压縮质量和码率几乎不变的情况下,降低了运动估计的计算复杂度。为了实现上述发明目的,采用的技术方案如下—种用于H.264视频编码的联合分数点运动估计和插值方法,包括如下步骤步骤l)性价比优先运动估计方法把分数点运动估计的搜索区域,分成4组,并从高至低确定每一组的性价比优先级,分数点运动估计按照性价比优先级的顺序进行,先检查优先级高的分数点的值,再检查优先级低的值,如果同时有相同优先级的搜索点,则按照顺时针方向检查;步骤2)性价比优先插值方法在进行分数点插值操作时,根据性价比优先级的高低分组进行先后插值。上述技术方案中,所述步骤1)把分数点运动估计的搜索区域分成四组,并确定每组的性价比优先级,第一级为与最优整数点垂直和水平邻接的4种1/4搜索点,第二级为与最优整数点垂直和水平的2种1/2搜索点,第三级为与最优整数点45度邻接的4种1/4搜索点,第四级为在最优整数点45度方向上的1/2搜索点以及与该1/2分数点垂直和水平邻接的4种1/4搜索点。在应用不同的分数运动估计模板时,按照模板上不同搜索点的性价比优先级先后顺序搜索。所述步骤2)先对第一级搜索点所涉及的分数点插值,然后通过第一级搜索点所涉及的分数点分别计算第二和第三级搜索点所涉及的分数点,再通过第三级搜索点所涉及的分数点计算第四级搜索点所涉及的分数点。本发明还包括误差消除方法,所述误差消除方法包括截取误差消除方法和舍入误差消除方法,所述截取误差消除方法用于消除插值计算过程中由于省略了H.264中定义的截取操作而引起的上下溢出误差,所述舍入误差消除方法是消除插值计算过程中由于省略了H.264中定义的舍入操作而引起的四舍五入误差。进一步的,所述的截取误差消除方法,是对于由整数点直接计算第一级分数点和由第二级分数点直接计算第四级中的4种l/4分数点,采用改变截取范围的方式计算,即把截取范围由(0255)变为(G/2(G+255)/2),其中G为最优整数点的值或第二级分数点的值。所述的舍入误差消除方法,是对于由第一级分数点计算第二级分数点,采用保留第一级分数点中间值的奇偶性的方法消除误差。本发明根据最优分数点运动向量的分布概率,调整运动估计时搜索的优先顺序,藉此来提高搜索速度。并同时推导与此搜索顺序相配合的分数点插值算法,大幅地减少了插值点的计算。在保持编码质量和码率不变的情况下,提高H.264的编码速度。图1为本发明的分数搜索点和插值点的关系示意4图2为本发明的分数插值点的依赖关系示意图3为本发明的分数点计算示意图。具体实施例方式下面结合附图对本发明做进一步的说明。本发明包括主要的两个步骤性价比优先运动估计算法;性价比优先插值算法。同时,为了消除误差,还可以包括第三个步骤使得插值计算的误差消除方法。第一个步骤性价比的分数点搜索算法,是指把分数点运动估计的搜索区域,共7X7个候选搜索点,分成4组,并给出它们的性价比优先级。分数点运动估计按照性价比优先级的顺序进行,先检查优先级高的分数点的值,再检查优先级低的值;如果同时有相同优先级的搜索点,则按照顺时针方向检查。如附图i所示,标号为"oo"的格子表示整数搜索点,而中心的整数搜索点表示最优整数搜索点,其余的格子表示分数搜索点。分数运动估计则是在最优整数搜索点相邻的7X7-1=48个分数搜索点(虚线框内部的区域)中找出最优位置。这48个搜索点按照所涉及分数像素插值滤波器的不同分成15种分数点,如附图1所示,这15种分数点的标号分别为"01'、'02"'03"'10"'11"'12"'13"'20"'21"'22"'23"'30,,"31,,"32,,"33,,。而性价比优先级是指将如附图1所示的(0133)15种分数点分成4类,每一类赋予它相应的优先级,如附表1所示。附表1:分数插值点性价比优先级优先级插值点概率滤波器大小分数点101,10,03,30高小与最优整数点垂直和水平邻接的4种1/4分数点202,20中小与最优整数点垂直和水平的2种1/2分数点311,13,31,33中中与最优整数点45度邻接的4种1/4分数点422,12,21,23,32低大在最优整数点45度方向上的1/2分数点以及与该1/2分数点垂直和水平邻接的4种1/4分数点按照这种模板搜索顺序可以用尽可能低的计算代价先搜索对失真率性能贡献大的位置,但却不能减少总体的搜索点数。因此,必须配合静态场景提前终止策略和搜索模板裁剪策略使用才能达到减少搜索计算量的目的。静态场景提前终止策略是指在当前块的整5数点运动向量为(O,O),同时当前块的残差值与时域相邻块的最优残差很接近,则认为当前块是静止的,并跳过对当前块分数点运动估计。搜索模板裁剪策略是指当采用中心对称的搜索模板(如钻石型模板)搜索分数点运动向量时,如果当前分数搜索点的残差值模板中心的残差值要小的话,关于中心对称的相应搜索点可以直接跳过。第二个步骤性价比优先的插值方法,是按照附图2的顺序关系计算H.264标准中定义的分数插值点。以附图2推导得出每个分数点的所用的滤波器,也即是对应的插值公式,如附表2到附表5所示。附表中的像素点同时用字母和数字两种方法表示,字母表明了一个唯一确定位置的像素点,而数字则表明了某个像素点与其左上角最接近的整数点之间的位移,表示的是一种类型的点。附表中的源像素点可以参考附图3,这是H.264标准中对分数点计算的示意图,本发明在此使用同样的源像素点标识。图中的灰色格子表示整数像素(用大写字母表示),其余的格子表示分数像素(用小写字母表示)。分数像素通过相邻的整数像素计算得出,例如H.264标准中定义1/2分数像素b的值就是整数像素E,F,G,H,I,J与滤波器(1,_5,20,20,-5,1)的点积再整除32,即(E+(-5)*F+20*G+20*H+(-5)*I+J)>>5。附表2:第一级插值点的插值滤波器<table>tableseeoriginaldocumentpage7</column></row><table>附表3:第二级插值点的插值滤波器<table>tableseeoriginaldocumentpage8</column></row><table>!三级插值点的插值滤波器<table>tableseeoriginaldocumentpage8</column></row><table>附表5:第四级插值点的插值滤波器<table>tableseeoriginaldocumentpage8</column></row><table>为了避免不必要的插值计算,上述的插值方法采用按宏块方式计算,而非按帧方式计算。按宏块的方式计算是在整数运动估计后,只对当前最优整数运动向量周围一个像素范围的宏块插值。按帧方式计算是在对当前帧编码前,就预先计算插值像素。当一帧中需要分数运动补偿的宏块少于20%的时候,采用按宏块的方式比采用按帧的方式更节省计算资源。另外,由于分数点插值计算的关联性,不同种类的分数点如果直接计算,其计算量会十分地庞大。但是利用其关联性进行计算,需要保证各个分数点的前驱分数点都必须已经存在。如果前驱分数点不存在,那么就必须先计算该前驱分数点。这是一个回溯的过程,需要额外的空间存放各个分数点的计算标识以及额外的判断计算。如果为每一个分数点都存放一个标志位,那么就需要耗费极大的内存空间,同时也需要逐个分数点判别。鉴于上面采用了按宏块方式插值,同时本发明把插值点分成15种,那么每种分数点应该拥有一个标志位,即每个宏块有15个标志位。分数插值计算也不是逐点计算,而是同一种的分数点,要不全计算要不都不计算。这样的分数点计算方法可以简化因为分数点插值计算关联性而造成的回溯过程。第三个步骤是针对性价比优先插值算法的误差消除方法。因为H.264标准中对分数点的计算除了线性滤波外还包括截取和舍入操作,所以直接通过新的滤波器计算出来的值会与11.264标准不相等。本发明提出了两种误差消除方法。首先,截取误差发生在第l级分数点的计算上,是由于截取操作(使像素值限定在0255的操作)而引起的。对于优先级为1的分数点(附表2中的点),因为采用直接从整数点的值的计算方式,所以可采用下面的方法消除误差设Psum为六个整数点与相应滤波系数的内积,那么上面给出的方法的公式应该修正为(以a(Ol)点为例):a=(Clip(Psum,G,G+255)+l)>>1(1)其中Clip(a,b,c)是指将a的值截取到[b,c]的范围之内。附表2中的其它分数点也依照此方法计算。其次,舍入误差发生在第2级分数点的计算上,是由于计算分数点过程中的整除操作而引起的。优先级为2的分数点(表3中的点),可以采用如下的方法消除误差(以b(02)为例):在使用公式(1)计算a的时候,保留中间值的奇偶性flag=(Clip(Psum,G,G+255)+l)&l(2)用如下的式子代替原来的公式计算b(02):b=2a-G-flag(3)表3中的其它点也依照此方法消除舍入误差。本发明在H.264的测试平台JM的基础上进行了实验,选择了有代表性的CIF序列,包括运动剧烈与平缓等各种情况的序列,以此进行测试。测试的结果表明在各种参数配置下,本发明在平均情况下是FFPS和CBFPS配合XFPI方法速度的1.75倍,同时保持PSNR变化为0且码率只增大了0.02%。因此可以看到本发明可以在保持质量和码率的情况下极大的降低计算量,提高速度。9权利要求一种用于H.264视频编码的联合分数点运动估计和插值方法,其特征在于包括如下步骤步骤1)性价比优先运动估计方法把分数点运动估计的搜索区域,分成4组,并从高至低确定每一组的性价比优先级,分数点运动估计按照性价比优先级的顺序进行,先检查优先级高的分数点的值,再检查优先级低的值,如果同时有相同优先级的搜索点,则按照顺时针方向检查;步骤2)性价比优先插值方法在进行分数点插值操作时,根据性价比优先级的高低分组先后进行插值。2.根据权利要求1所述的用于H.264视频编码的联合分数点运动估计和插值方法,其特征在于所述步骤1)把分数点运动估计的搜索区域分成四组,并确定四级性价比优先级,第一级为与最优整数点垂直和水平邻接的4种1/4搜索点,第二级为与最优整数点垂直和水平的2种1/2搜索点,第三级为与最优整数点45度邻接的4种1/4搜索点,第四级为在最优整数点45度方向上的1/2搜索点以及与该1/2分数点垂直和水平邻接的4种1/4搜索点。3.根据权利要求2所述的用于H.264视频编码的联合分数点运动估计和插值方法,其特征在于所述步骤2)先对第一级搜索点所涉及的分数点插值,然后在必要时通过第一级搜索点所涉及的分数点分别计算第二和第三级搜索点所涉及的分数点,再通过第三级搜索点所涉及的分数点计算第四级搜索点所涉及的分数点。4.根据权利要求1或2或3所述的用于H.264视频编码的联合分数点运动估计和插值方法,其特征在于还包括误差消除方法,所述误差消除方法包括截取误差消除方法和舍入误差消除方法,所述截取误差消除方法用于消除插值计算过程中由于省略了H.264标准中所定义的截取操作而引起的上下溢出误差,所述舍入误差消除方法是消除插值计算过程中由于省略了H.264标准中所定义的舍入操作而引起的四舍五入误差。5.根据权利要求4所述的用于H.264视频编码的联合分数点运动估计和插值方法,其特征在于所述的截取误差消除方法,是对于由整数点直接计算第一级分数点和由第二级分数点直接计算第四级中的4种l/4分数点,采用改变截取范围的方式计算,即把截取范围由(0255)变为(G/2(G+255)/2),其中G为最优整数点的值或第二级分数点的值。6.根据权利要求4所述的用于H.264视频编码的联合分数点运动估计和插值方法,其特征在于所述的舍入误差消除方法,是对于由第一级分数点计算第二级分数点,采用保留第一级分数点中间值的奇偶性的方法消除误差。全文摘要本发明提供了一种用于H.264视频编码的联合分数点运动估计和插值方法,包括如下步骤步骤1)性价比优先运动估计方法把分数点运动估计的搜索区域,分成4组,并从高至低确定每一组的性价比优先级,分数点运动估计按照性价比优先级的顺序进行,先检查优先级高的分数点的值,再检查优先级低的值,如果同时有相同优先级的搜索点,则按照顺时针方向检查;步骤2)性价比优先插值方法在进行分数点插值操作时,根据性价比优先级的高低分组进行先后插值。文档编号H04N7/26GK101715125SQ20091019227公开日2010年5月26日申请日期2009年9月11日优先权日2009年9月11日发明者张培钊,朝红阳,陆寄远申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1