一种帧图像运动估计的搜索算法

文档序号:7782115阅读:188来源:国知局
一种帧图像运动估计的搜索算法
【专利摘要】本发明公开一种帧图像运动估计的搜索算法,包括步骤:将比较帧和参考帧分成至少两个图层,任意两个图层之间的分辨率不同,比较帧和参考帧的图层一一对应;选择比较帧中分辨率较低的图层跟参考帧同一图层进行对比,得到预测结果;比较帧中分辨率较高的图层根据预测结果进行运动估计。本发明先预测分辨率较低的图层,大幅减少了运算量,而基于较低图层的运动估计来预测其他图层的计算量在整个编码过程中占比很小,因此相比直接预测最高分辨率的图层,本发明能显著降低计算量。
【专利说明】一种帧图像运动估计的搜索算法
【技术领域】
[0001]本发明涉及影像编码领域,更具体的说,涉及一种帧图像运动估计的搜索算法。
【背景技术】
[0002]现有的视频编码在对帧图像进行编码时,会设立参考帧和比较帧,参考帧进行帧内预测,而比较帧依据参考帧进行预测,为了减少预测的技术量,比较帧通常采用运动估计的方式来预测。具体来说,将比较帧划分成多个宏块,每个宏块跟参考帧对应位置的宏块比较,然后围绕该宏块周边进行搜索,得到运动矢量,由于宏块有多种划分方式,如4X4、8X8等,对于H265标准来说,最多可支持64乂64,运算量是!1264的5倍以上。现有技术为了找出最优的宏块进行运动估计,需要对每一种宏块进行计算,即同一像素点需要进行多次的重复运算,计算量大,不利于提高运算速度。
【发明内容】

[0003]本发明所要解决的技术问题是提供一种降低计算量的帧图像运动估计的搜索算法。
[0004]本发明的目的是通过以下技术方案来实现的:
[0005]一种帧图像运动估计的搜索算法,包括步骤:
[0006]将比较帧和参考帧分成至少两个图层,任意两个图层之间的分辨率不同,比较帧和参考帧的图层对应;
[0007]选择比较帧中分辨率较低的图层跟参考帧同一图层进行对比,得到预测结果;
[0008]比较帧中分辨率较高的图层根据预测结果进行运动估计。
[0009]进一步的,设定基础宏块,计算该基础宏块的残差值计算分辨率最低的图层的残差值;然后以基础宏块为基准,计算其他更大宏块的残差值,比较不同宏块的残差值,得到所述预测结果。本技术方案大量节约了计算量,每个像素点只计算一次,就能得到所有模块的值。因为是全域搜索,没有死角,所以搜索更加精确。
[0010]进一步的,所述预测结果包括最优宏块及其对应的运动矢量。
[0011]进一步的,所述预测结果还包括次优宏块及其对应的运动矢量。
[0012]进一步的,所述运动矢量包括最优运动矢量、次优运动矢量中的任意一个或两个。
[0013]进一步的,对比较帧中下一个分辨率较高的图层的预测结果基于上一层分辨率较低图层的预测结果,进行有限位置和有限范围搜索,得到该图层的预测结果;
[0014]依次类推,直至计算出比较帧中分辨率最高图层的预测结果;
[0015]将分辨率最高图层的最优宏块及其对应的最优运动矢量、次优运动矢量,以及次优宏块及其对应的最优运动矢量、次优运动矢量进行高斯函数拟合,得到1/N像素点的残差值,根据该残差值完成比较帧的运动估计;其中N为大于2的整数。本技术方案中,围绕每个宏块都进行有限位置和有限范围搜索,即采用全域搜索,没有死角,所以搜索更加精确。本技术方案采用拟合类高斯函数的方法去估计1/N (比如1/2,1/4)精度的运动矢量,这样的算法的好处:1)节约计算量,通过利用现有预测模式的残差值,输入类高斯函数,就能迅速求取1/N像素精度的值;2)此算法符合图像像素值分布特征,所有的图像成像特征都符合高斯分布,所以此算法精度很高,实际试验结果也证明此算法和一般搜索算法,PSNR值只相差0.1db0
[0016]进一步的,除分辨率最低的图层外,每一图层的预测基于分辨率最接近图层的预测结果。
[0017]进一步的,选择比较帧中分辨率最低的图层跟参考帧同一图层进行对比,得到预测结果;基于该图层得到的预测结果,直接对最高分辨率的图层进行运动估计。
[0018]进一步的,利用可编程并行处理器对每个图层进行预测,然后将分辨率最高的图层的运动估计的结果反馈回CPU进行编码处理。
[0019]进一步的,所述预测结果包括最优宏块及其对应的最优运动矢量、次优运动矢量,还包括次优宏块及其对应的最优运动矢量、次优运动矢量;
[0020]将图层分成三层,以4X4为基础宏块,计算分辨率最低的第三图层的残差值;
[0021]比较不同宏块的残差值,选择残差值最小的宏块作为最优宏块,选择次小的宏块作为次优宏块;
[0022]分别围绕第三图层的最优宏块和次优宏块,进行有限位置和有限范围搜索,得到第二图层的预测结果;
[0023]分别围绕第二图层的最优宏块和次优宏块,进行有限位置和有限范围搜索,得到分辨率最高的第一图层的预测结果;
[0024]将第一图层的最优宏块及其对应的最优运动矢量、次优运动矢量,以及次优宏块及其对应的最优运动矢量、次优运动矢量进行高斯函数拟合,得到1/N像素点的残差值,根据该残差值完成比较帧的运动估计;其中N为大于2的整数;
[0025]每一图层的预测和运动估计采用GPU进行运算,然后将分辨率最高的图层的运动估计的结果反馈回CPU进行编码处理。
[0026]本发明由于将图像、视频数据按不同分辨率进行分层处理,形成一个图像金字塔结构。预测时,先对分辨率较低的图层进行运动估计,然后根据预测结果来预测分辨率较高的图层,最终可以得到分辨率最高的图层预测结果。由于先预测分辨率较低的图层,大幅减少了运算量,而基于较低图层的运动估计来预测其他图层的计算量在整个编码过程中占比很小,因此相比直接预测最高分辨率的图层,本发明能显著降低计算量。
【专利附图】

【附图说明】
[0027]图1是本发明帧图像运动估计的搜索算法的方法示意图;
[0028]图2是本发明金字塔建模原理示意图;
[0029]图3是本发明实施例基于CPU+GPU架构的帧图像运动估计的搜索算法的方法示意图。
【具体实施方式】
[0030]如图1所示,本发明公开一种帧图像运动估计的搜索算法,包括步骤:
[0031]将比较帧和参考帧分成至少两个图层,任意两个图层之间的分辨率不同,比较帧和参考巾贞的图层 对应;
[0032]选择比较帧中分辨率较低的图层跟参考帧同一图层进行对比,得到预测结果;
[0033]比较帧中分辨率较高的图层根据预测结果进行运动估计。
[0034]本发明由于将图像、视频数据按不同分辨率进行分层处理,形成一个图像金字塔结构。
[0035]一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低的图像集合。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。当向金字塔的上层移动时,尺寸和分辨率就降低。因为基础级J的尺寸是2~J*2~J或N*N (J=log2N),所以中间级j的尺寸是2~j*2~j,其中0〈=j〈=J。完整的金字塔由J+1个分辨率级组成,由2~J*2~J到2~0*2~0,但大部分金字塔只有P+1级,其中J=J-P,...,了-2,了-1,了,且1〈=卩〈=了。也就是说通常限制它们只使用P级来减少原始图像近似值的尺寸。例如,一幅512*512图像的1*1或单像素近似值将非常小。
[0036]图2显示了一个建立图像金字塔的简单系统。j_l级的近似输出用来建立近似值金字塔,包括原始图像的一个或多个近似值。作为金字塔的原始图像和它的P级减少的分辨率近似都能直接获取并调整。j级的预测残差输出用于建立预测残差金字塔。这些金字塔包括了原始图像的J-P级低分辨率的近似信息,以及建立P级较高分辨率的近似信息。j级的信息在相应近似金字塔的j级近似与基于j-Ι级预测残差得到的近似估计之间是不同的。对这些差异进行编码(用于存储或传输)将比对近似值进行编码有效得多。
[0037]预测时,先对分辨率较低的图层进行运动估计,然后根据预测结果来预测分辨率较高的图层,最终可以得到分辨率最高的图层预测结果。由于先预测分辨率较低的图层,大幅减少了运算量,而基于较低图层的运动估计来预测其他图层的计算量在整个编码过程中占比很小,因此相比直接预测最高分辨率的图层,本发明能显著降低计算量。
[0038]下面结合附图和较佳的实施例对本发明作进一步说明。
[0039]本实施方式公开一种基于CPU+GPU架构的硬件平台实现帧图像运动估计的搜索算法,利用GPU对每个图层进行帧内预测,然后将预测结果反馈回CPU进行编码处理。采用CPU+GPU平台,充分发挥各个平台的优点,让CPU和GPU协作处理,提高了平台的运算效率。当然,GPU也可以换成FPGA等其他可编程并行处理器。
[0040]如图3所示,本实施例以三个图层为例,公开帧图像运动估计的搜索算法,包括步骤:
[0041]S1、将比较帧和参考帧分成三个图层,分辨率从低到高分别是第三图层、第二图层和第一图层,比较帧和参考帧的图层一一对应。
[0042]S2、以4X4为基础宏块,计算第三图层的残差值,然后基于4X4的基础模块进一步预测其他更大宏块(如8 X 8、16 X 16等)的残差值。本步骤中,每个像素的数据仅在基础模块的时候需要载入计算,后面更大的宏块只需要根据其他小的宏块进行运算,每个像素点只计算一次,就能得到所有模块的值,大量节约了计算量;再者,由于全域搜索,没有死角,所以搜索更加精确。
[0043]S3、比较不同宏块的残差值,将预测结果反馈回第二图层;所述预测结果包括最优宏块及其对应的最优运动矢量、次优运动矢量,还包括次优宏块及其对应的最优运动矢量、次优运动矢量;其中残差值最小的宏块作为最优宏块,次小的宏块作为次优宏块。[0044]S4、分别围绕第三图层的最优宏块和次优宏块,进行有限位置和有限范围搜索,得到第二图层的预测结果。
[0045]S5、分别围绕第二图层的最优宏块和次优宏块,进行有限位置和有限范围搜索,得到分辨率最高的第一图层的预测结果。
[0046]S6、将第一图层的最优宏块及其对应的最优运动矢量、次优运动矢量,以及次优宏块及其对应的最优运动矢量、次优运动矢量进行高斯函数拟合,得到1/N像素点的残差值,根据该残差值完成比较帧的运动估计;其中N为大于2的整数。围绕每个宏块都进行有限位置和有限范围搜索,即采用全域搜索,没有死角,所以搜索更加精确。本技术方案采用拟合类高斯函数的方法去估计1/N (比如1/2,1/4)精度的运动矢量,这样的算法的好处:I)节约计算量,通过利用现有预测模式的残差值,输入类高斯函数,就能迅速求取1/N像素精度的值;2)此算法符合图像像素值分布特征,所有的图像成像特征都符合高斯分布,所以此算法精度很高,实际试验结果也证明此算法和一般搜索算法,PSNR值只相差0.ldb。
[0047]S7、每一图层的预测和运动估计采用GPU进行运算,然后将分辨率最高的图层的运动估计的结果反馈回CPU进行编码处理。
[0048]下面详细介绍一下高斯拟合的过程。
[0049]高斯函数的形式为:
[0050]
【权利要求】
1.一种帧图像运动估计的搜索算法,包括步骤: 将比较帧和参考帧分成至少两个图层,任意两个图层之间的分辨率不同,比较帧和参考中贞的图层对应; 选择比较帧中分辨率较低的图层跟参考帧同一图层进行对比,得到预测结果; 比较帧中分辨率较高的图层根据预测结果进行运动估计。
2.如权利要求1所述的一种帧图像运动估计的搜索算法,其特征在于,设定基础宏块,计算该基础宏块的残差值;然后以基础宏块为基准,计算其他更大宏块的残差值,比较不同宏块的残差值,得到所述预测结果。
3.如权利要求2所述的一种帧图像运动估计的搜索算法,其特征在于,所述预测结果包括最优宏块及其对应的运动矢量。
4.如权利要求3所述的一种帧图像运动估计的搜索算法,其特征在于,所述预测结果还包括次优宏块及其对应的运动矢量。
5.如权利要求4所述的一种帧图像运动估计的搜索算法,其特征在于,所述运动矢量包括最优运动矢量、次优运动矢量中的任意一个或两个。
6.如权利要求5所述的一种帧图像运动估计的搜索算法,其特征在于,对比较帧中下一个分辨率较高的图层的预测结果基于上一层分辨率较低图层的预测结果,进行有限位置和有限范围搜索,得到该图层的预测结果; 依次类推,直至计算出比较帧中分辨率最高图层的预测结果;· 将分辨率最高图层的最优宏块及其对应的最优运动矢量、次优运动矢量,以及次优宏块及其对应的最优运动矢量、次优运动矢量进行高斯函数拟合,得到1/N像素点的残差值,根据该残差值完成比较帧的运动估计;其中N为大于2的整数。
7.如权利要求1所述的一种帧图像运动估计的搜索算法,其特征在于,除分辨率最低的图层外,每一图层的预测基于分辨率最接近图层的预测结果。
8.如权利要求1所述的一种帧图像运动估计的搜索算法,其特征在于,选择比较帧中分辨率最低的图层跟参考帧同一图层进行对比,得到预测结果;基于该图层得到的预测结果,直接对最高分辨率的图层进行运动估计。
9.如权利要求1所述的一种帧图像运动估计的搜索算法,其特征在于,利用可编程并行处理器对每个图层进行预测,然后将分辨率最高的图层的运动估计的结果反馈回CPU进行编码处理。
10.如权利要求1所述的一种帧图像运动估计的搜索算法,其特征在于,所述预测结果包括最优宏块及其对应的最优运动矢量、次优运动矢量,还包括次优宏块及其对应的最优运动矢量、次优运动矢量; 将图层分成三层,以4X4为基础宏块,计算分辨率最低的第三图层的残差值; 比较不同宏块的残差值,选择残差值最小的宏块作为最优宏块,选择次小的宏块作为次优宏块; 分别围绕第三图层的最优宏块和次优宏块,进行有限位置和有限范围搜索,得到第二图层的预测结果; 分别围绕第二图层的最优宏块和次优宏块,进行有限位置和有限范围搜索,得到分辨率最高的第一图层的预测结果;将第一图层的最优宏块及其对应的最优运动矢量、次优运动矢量,以及次优宏块及其对应的最优运动矢量、次优运动矢量进行高斯函数拟合,得到1/N像素点的残差值,根据该残差值完成比较帧的运动估计;其中N为大于2的整数; 每一图层的预测和运动估计采用GPU进行运算,然后将分辨率最高的图层的运动估计的结果反馈回CPU进 行编码处理。
【文档编号】H04N19/57GK103716639SQ201310728099
【公开日】2014年4月9日 申请日期:2013年12月25日 优先权日:2013年12月25日
【发明者】隆刚, 金明, 史方 申请人:同观科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1