CN103716639A - 一种帧图像运动估计的搜索算法 - Google Patents
一种帧图像运动估计的搜索算法 Download PDFInfo
- Publication number
- CN103716639A CN103716639A CN201310728099.2A CN201310728099A CN103716639A CN 103716639 A CN103716639 A CN 103716639A CN 201310728099 A CN201310728099 A CN 201310728099A CN 103716639 A CN103716639 A CN 103716639A
- Authority
- CN
- China
- Prior art keywords
- layer
- macro block
- resolution
- motion vector
- outcome
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开一种帧图像运动估计的搜索算法,包括步骤:将比较帧和参考帧分成至少两个图层,任意两个图层之间的分辨率不同,比较帧和参考帧的图层一一对应;选择比较帧中分辨率较低的图层跟参考帧同一图层进行对比,得到预测结果;比较帧中分辨率较高的图层根据预测结果进行运动估计。本发明先预测分辨率较低的图层,大幅减少了运算量,而基于较低图层的运动估计来预测其他图层的计算量在整个编码过程中占比很小,因此相比直接预测最高分辨率的图层,本发明能显著降低计算量。
Description
技术领域
本发明涉及影像编码领域,更具体的说,涉及一种帧图像运动估计的搜索算法。
背景技术
现有的视频编码在对帧图像进行编码时,会设立参考帧和比较帧,参考帧进行帧内预测,而比较帧依据参考帧进行预测,为了减少预测的技术量,比较帧通常采用运动估计的方式来预测。具体来说,将比较帧划分成多个宏块,每个宏块跟参考帧对应位置的宏块比较,然后围绕该宏块周边进行搜索,得到运动矢量,由于宏块有多种划分方式,如4×4、8×8等,对于H265标准来说,最多可支持64×64,运算量是H264的5倍以上。现有技术为了找出最优的宏块进行运动估计,需要对每一种宏块进行计算,即同一像素点需要进行多次的重复运算,计算量大,不利于提高运算速度。
发明内容
本发明所要解决的技术问题是提供一种降低计算量的帧图像运动估计的搜索算法。
本发明的目的是通过以下技术方案来实现的:
一种帧图像运动估计的搜索算法,包括步骤:
将比较帧和参考帧分成至少两个图层,任意两个图层之间的分辨率不同,比较帧和参考帧的图层一一对应;
选择比较帧中分辨率较低的图层跟参考帧同一图层进行对比,得到预测结果;
比较帧中分辨率较高的图层根据预测结果进行运动估计。
进一步的,设定基础宏块,计算该基础宏块的残差值计算分辨率最低的图层的残差值;然后以基础宏块为基准,计算其他更大宏块的残差值,比较不同宏块的残差值,得到所述预测结果。本技术方案大量节约了计算量,每个像素点只计算一次,就能得到所有模块的值。因为是全域搜索,没有死角,所以搜索更加精确。
进一步的,所述预测结果包括最优宏块及其对应的运动矢量。
进一步的,所述预测结果还包括次优宏块及其对应的运动矢量。
进一步的,所述运动矢量包括最优运动矢量、次优运动矢量中的任意一个或两个。
进一步的,对比较帧中下一个分辨率较高的图层的预测结果基于上一层分辨率较低图层的预测结果,进行有限位置和有限范围搜索,得到该图层的预测结果;
依次类推,直至计算出比较帧中分辨率最高图层的预测结果;
将分辨率最高图层的最优宏块及其对应的最优运动矢量、次优运动矢量,以及次优宏块及其对应的最优运动矢量、次优运动矢量进行高斯函数拟合,得到1/N像素点的残差值,根据该残差值完成比较帧的运动估计;其中N为大于2的整数。本技术方案中,围绕每个宏块都进行有限位置和有限范围搜索,即采用全域搜索,没有死角,所以搜索更加精确。本技术方案采用拟合类高斯函数的方法去估计1/N(比如1/2,1/4)精度的运动矢量,这样的算法的好处:1)节约计算量,通过利用现有预测模式的残差值,输入类高斯函数,就能迅速求取1/N像素精度的值;2)此算法符合图像像素值分布特征,所有的图像成像特征都符合高斯分布,所以此算法精度很高,实际试验结果也证明此算法和一般搜索算法,PSNR值只相差0.1db。
进一步的,除分辨率最低的图层外,每一图层的预测基于分辨率最接近图层的预测结果。
进一步的,选择比较帧中分辨率最低的图层跟参考帧同一图层进行对比,得到预测结果;基于该图层得到的预测结果,直接对最高分辨率的图层进行运动估计。
进一步的,利用可编程并行处理器对每个图层进行预测,然后将分辨率最高的图层的运动估计的结果反馈回CPU进行编码处理。
进一步的,所述预测结果包括最优宏块及其对应的最优运动矢量、次优运动矢量,还包括次优宏块及其对应的最优运动矢量、次优运动矢量;
将图层分成三层,以4×4为基础宏块,计算分辨率最低的第三图层的残差值;
比较不同宏块的残差值,选择残差值最小的宏块作为最优宏块,选择次小的宏块作为次优宏块;
分别围绕第三图层的最优宏块和次优宏块,进行有限位置和有限范围搜索,得到第二图层的预测结果;
分别围绕第二图层的最优宏块和次优宏块,进行有限位置和有限范围搜索,得到分辨率最高的第一图层的预测结果;
将第一图层的最优宏块及其对应的最优运动矢量、次优运动矢量,以及次优宏块及其对应的最优运动矢量、次优运动矢量进行高斯函数拟合,得到1/N像素点的残差值,根据该残差值完成比较帧的运动估计;其中N为大于2的整数;
每一图层的预测和运动估计采用GPU进行运算,然后将分辨率最高的图层的运动估计的结果反馈回CPU进行编码处理。
本发明由于将图像、视频数据按不同分辨率进行分层处理,形成一个图像金字塔结构。预测时,先对分辨率较低的图层进行运动估计,然后根据预测结果来预测分辨率较高的图层,最终可以得到分辨率最高的图层预测结果。由于先预测分辨率较低的图层,大幅减少了运算量,而基于较低图层的运动估计来预测其他图层的计算量在整个编码过程中占比很小,因此相比直接预测最高分辨率的图层,本发明能显著降低计算量。
附图说明
图1是本发明帧图像运动估计的搜索算法的方法示意图;
图2是本发明金字塔建模原理示意图;
图3是本发明实施例基于CPU+GPU架构的帧图像运动估计的搜索算法的方法示意图。
具体实施方式
如图1所示,本发明公开一种帧图像运动估计的搜索算法,包括步骤:
将比较帧和参考帧分成至少两个图层,任意两个图层之间的分辨率不同,比较帧和参考帧的图层一一对应;
选择比较帧中分辨率较低的图层跟参考帧同一图层进行对比,得到预测结果;
比较帧中分辨率较高的图层根据预测结果进行运动估计。
本发明由于将图像、视频数据按不同分辨率进行分层处理,形成一个图像金字塔结构。
一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低的图像集合。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。当向金字塔的上层移动时,尺寸和分辨率就降低。因为基础级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,…,J-2,J-1,J,且1<=P<=J。也就是说通常限制它们只使用P级来减少原始图像近似值的尺寸。例如,一幅512*512图像的1*1或单像素近似值将非常小。
图2显示了一个建立图像金字塔的简单系统。j-1级的近似输出用来建立近似值金字塔,包括原始图像的一个或多个近似值。作为金字塔的原始图像和它的P级减少的分辨率近似都能直接获取并调整。j级的预测残差输出用于建立预测残差金字塔。这些金字塔包括了原始图像的J-P级低分辨率的近似信息,以及建立P级较高分辨率的近似信息。j级的信息在相应近似金字塔的j级近似与基于j-1级预测残差得到的近似估计之间是不同的。对这些差异进行编码(用于存储或传输)将比对近似值进行编码有效得多。
预测时,先对分辨率较低的图层进行运动估计,然后根据预测结果来预测分辨率较高的图层,最终可以得到分辨率最高的图层预测结果。由于先预测分辨率较低的图层,大幅减少了运算量,而基于较低图层的运动估计来预测其他图层的计算量在整个编码过程中占比很小,因此相比直接预测最高分辨率的图层,本发明能显著降低计算量。
下面结合附图和较佳的实施例对本发明作进一步说明。
本实施方式公开一种基于CPU+GPU架构的硬件平台实现帧图像运动估计的搜索算法,利用GPU对每个图层进行帧内预测,然后将预测结果反馈回CPU进行编码处理。采用CPU+GPU平台,充分发挥各个平台的优点,让CPU和GPU协作处理,提高了平台的运算效率。当然,GPU也可以换成FPGA等其他可编程并行处理器。
如图3所示,本实施例以三个图层为例,公开帧图像运动估计的搜索算法,包括步骤:
S1、将比较帧和参考帧分成三个图层,分辨率从低到高分别是第三图层、第二图层和第一图层,比较帧和参考帧的图层一一对应。
S2、以4×4为基础宏块,计算第三图层的残差值,然后基于4×4的基础模块进一步预测其他更大宏块(如8×8、16×16等)的残差值。本步骤中,每个像素的数据仅在基础模块的时候需要载入计算,后面更大的宏块只需要根据其他小的宏块进行运算,每个像素点只计算一次,就能得到所有模块的值,大量节约了计算量;再者,由于全域搜索,没有死角,所以搜索更加精确。
S3、比较不同宏块的残差值,将预测结果反馈回第二图层;所述预测结果包括最优宏块及其对应的最优运动矢量、次优运动矢量,还包括次优宏块及其对应的最优运动矢量、次优运动矢量;其中残差值最小的宏块作为最优宏块,次小的宏块作为次优宏块。
S4、分别围绕第三图层的最优宏块和次优宏块,进行有限位置和有限范围搜索,得到第二图层的预测结果。
S5、分别围绕第二图层的最优宏块和次优宏块,进行有限位置和有限范围搜索,得到分辨率最高的第一图层的预测结果。
S6、将第一图层的最优宏块及其对应的最优运动矢量、次优运动矢量,以及次优宏块及其对应的最优运动矢量、次优运动矢量进行高斯函数拟合,得到1/N像素点的残差值,根据该残差值完成比较帧的运动估计;其中N为大于2的整数。围绕每个宏块都进行有限位置和有限范围搜索,即采用全域搜索,没有死角,所以搜索更加精确。本技术方案采用拟合类高斯函数的方法去估计1/N(比如1/2,1/4)精度的运动矢量,这样的算法的好处:1)节约计算量,通过利用现有预测模式的残差值,输入类高斯函数,就能迅速求取1/N像素精度的值;2)此算法符合图像像素值分布特征,所有的图像成像特征都符合高斯分布,所以此算法精度很高,实际试验结果也证明此算法和一般搜索算法,PSNR值只相差0.1db。
S7、每一图层的预测和运动估计采用GPU进行运算,然后将分辨率最高的图层的运动估计的结果反馈回CPU进行编码处理。
下面详细介绍一下高斯拟合的过程。
高斯函数的形式为:
其中a、b与c为实数常数,且a>0。
c^2=2的高斯函数是傅立叶变换的特征函数。这就意味着高斯函数的傅立叶变换不仅仅是另一个高斯函数,而且是进行傅立叶变换的函数的标量倍。高斯函数属于初等函数,但它没有初等不定积分。但是仍然可以在整个实数轴上计算它的广义积分(参见高斯积分):
高斯拟合(Gaussian Fitting)即使用数据点集进行函数逼近的拟合方法。本发明高斯拟合分两步:
1)拟合函数,估计标准差,估计偏移差;
2)利用金子塔最底层(分辨率最高的图层)搜索最优和次优宏块和SAD值作为初始点输入,估计1/2,1/4像素点的SAD值,既完成所有比较帧运动估计,即计算得到inter的ME(motion estimation)模块。
具体来说:中间图层可以得到最优模式的最优运动矢量(MV)和次优MV,以及次优模式的最优MV和次优MV,作为输入传给最底图层,然后在该层上分别在这几个MV附近的整数点做4x4小范围搜索,求得各自修正后的整数点MV。然后开始高斯拟合,以便对每个MV进行1/4像素精度的提炼(refine)。
假设4x4搜索范围的局部坐标定义为x属于[0,3],y同样属于[0,3],而最佳整数点MV的坐标为(x0,y0)。首先拟合水平方向。由于之前做4x4搜索已经得到所有位置的SAD值,因此可以取得包含4个元素的集合SAD_水平(horizontal)={SAD(x,y0)|x属于[0,3]}。对此数据进行高斯拟合,确定系数后,可推得浮点数的理论最佳位置fx0(精确到小数点后三位即可),其SAD为最小。设fx0的整数部分为int_fx0,小数部分为frac_fx0,分别计算frac_fx0与集合Frac={0,0.25,0.5,0.75,1.0}中每个元素的距离(即绝对差),从中选取距离最小的,设为分部(fraction)。即可取1/4精度的MV的横坐标为int_fx0+分部。
然后拟合竖直方向,做法类似水平方向的拟合。。
下面介绍确定高斯拟合系数的原理:
对局部坐标x属于[0,3],对其SAD值取对数后分别为f0,f1,f2,f3。可将该数据集进行最小二乘法拟合。
将方程整理为g(x)=ix2+jx+k的形式,然后分别对i,j,k求偏微分并令其为0,可得方程组:
(∑x4)i+(∑x3)j+(∑x2)k=∑x2f
(∑x3)i+(∑x2)j+(∑x)k=∑xf
(∑x2)i+(∑x)j+(∑1)k=∑f
据此方程组可以解出系数I,j,k,进而推出原系数a,b,c,从而得到浮点数的理论最佳位置fx0=b。对y坐标的拟合过程,也是一样。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种帧图像运动估计的搜索算法,包括步骤:
将比较帧和参考帧分成至少两个图层,任意两个图层之间的分辨率不同,比较帧和参考帧的图层一一对应;
选择比较帧中分辨率较低的图层跟参考帧同一图层进行对比,得到预测结果;
比较帧中分辨率较高的图层根据预测结果进行运动估计。
2.如权利要求1所述的一种帧图像运动估计的搜索算法,其特征在于,设定基础宏块,计算该基础宏块的残差值;然后以基础宏块为基准,计算其他更大宏块的残差值,比较不同宏块的残差值,得到所述预测结果。
3.如权利要求2所述的一种帧图像运动估计的搜索算法,其特征在于,所述预测结果包括最优宏块及其对应的运动矢量。
4.如权利要求3所述的一种帧图像运动估计的搜索算法,其特征在于,所述预测结果还包括次优宏块及其对应的运动矢量。
5.如权利要求4所述的一种帧图像运动估计的搜索算法,其特征在于,所述运动矢量包括最优运动矢量、次优运动矢量中的任意一个或两个。
6.如权利要求5所述的一种帧图像运动估计的搜索算法,其特征在于,对比较帧中下一个分辨率较高的图层的预测结果基于上一层分辨率较低图层的预测结果,进行有限位置和有限范围搜索,得到该图层的预测结果;
依次类推,直至计算出比较帧中分辨率最高图层的预测结果;
将分辨率最高图层的最优宏块及其对应的最优运动矢量、次优运动矢量,以及次优宏块及其对应的最优运动矢量、次优运动矢量进行高斯函数拟合,得到1/N像素点的残差值,根据该残差值完成比较帧的运动估计;其中N为大于2的整数。
7.如权利要求1所述的一种帧图像运动估计的搜索算法,其特征在于,除分辨率最低的图层外,每一图层的预测基于分辨率最接近图层的预测结果。
8.如权利要求1所述的一种帧图像运动估计的搜索算法,其特征在于,选择比较帧中分辨率最低的图层跟参考帧同一图层进行对比,得到预测结果;基于该图层得到的预测结果,直接对最高分辨率的图层进行运动估计。
9.如权利要求1所述的一种帧图像运动估计的搜索算法,其特征在于,利用可编程并行处理器对每个图层进行预测,然后将分辨率最高的图层的运动估计的结果反馈回CPU进行编码处理。
10.如权利要求1所述的一种帧图像运动估计的搜索算法,其特征在于,所述预测结果包括最优宏块及其对应的最优运动矢量、次优运动矢量,还包括次优宏块及其对应的最优运动矢量、次优运动矢量;
将图层分成三层,以4×4为基础宏块,计算分辨率最低的第三图层的残差值;
比较不同宏块的残差值,选择残差值最小的宏块作为最优宏块,选择次小的宏块作为次优宏块;
分别围绕第三图层的最优宏块和次优宏块,进行有限位置和有限范围搜索,得到第二图层的预测结果;
分别围绕第二图层的最优宏块和次优宏块,进行有限位置和有限范围搜索,得到分辨率最高的第一图层的预测结果;
将第一图层的最优宏块及其对应的最优运动矢量、次优运动矢量,以及次优宏块及其对应的最优运动矢量、次优运动矢量进行高斯函数拟合,得到1/N像素点的残差值,根据该残差值完成比较帧的运动估计;其中N为大于2的整数;
每一图层的预测和运动估计采用GPU进行运算,然后将分辨率最高的图层的运动估计的结果反馈回CPU进行编码处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310728099.2A CN103716639B (zh) | 2013-12-25 | 2013-12-25 | 一种帧图像运动估计的搜索算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310728099.2A CN103716639B (zh) | 2013-12-25 | 2013-12-25 | 一种帧图像运动估计的搜索算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103716639A true CN103716639A (zh) | 2014-04-09 |
CN103716639B CN103716639B (zh) | 2017-04-19 |
Family
ID=50409144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310728099.2A Expired - Fee Related CN103716639B (zh) | 2013-12-25 | 2013-12-25 | 一种帧图像运动估计的搜索算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103716639B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506869A (zh) * | 2015-01-12 | 2015-04-08 | 深圳市江机实业有限公司 | 基于块匹配在不同分辨率下视频序列的运动估计方法 |
CN111881767A (zh) * | 2020-07-03 | 2020-11-03 | 深圳力维智联技术有限公司 | 高维特征的处理方法、装置、设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604650A (zh) * | 2003-10-04 | 2005-04-06 | 三星电子株式会社 | 用于分级运动估计的方法 |
KR20050095931A (ko) * | 2004-03-29 | 2005-10-05 | 삼성전자주식회사 | 계층적 움직임 추정에 있어서 움직임 벡터 생성 방법 및장치 |
CN1852442A (zh) * | 2005-08-19 | 2006-10-25 | 深圳市海思半导体有限公司 | 一种分层运动估计方法和超大规模集成电路 |
CN1933600A (zh) * | 2006-09-08 | 2007-03-21 | 清华大学 | 用于h.264/avc编码器的运动估计方法 |
-
2013
- 2013-12-25 CN CN201310728099.2A patent/CN103716639B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604650A (zh) * | 2003-10-04 | 2005-04-06 | 三星电子株式会社 | 用于分级运动估计的方法 |
KR20050095931A (ko) * | 2004-03-29 | 2005-10-05 | 삼성전자주식회사 | 계층적 움직임 추정에 있어서 움직임 벡터 생성 방법 및장치 |
CN1852442A (zh) * | 2005-08-19 | 2006-10-25 | 深圳市海思半导体有限公司 | 一种分层运动估计方法和超大规模集成电路 |
CN1933600A (zh) * | 2006-09-08 | 2007-03-21 | 清华大学 | 用于h.264/avc编码器的运动估计方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506869A (zh) * | 2015-01-12 | 2015-04-08 | 深圳市江机实业有限公司 | 基于块匹配在不同分辨率下视频序列的运动估计方法 |
CN104506869B (zh) * | 2015-01-12 | 2017-10-13 | 深圳市江机实业有限公司 | 基于块匹配在不同分辨率下视频序列的运动估计方法 |
CN111881767A (zh) * | 2020-07-03 | 2020-11-03 | 深圳力维智联技术有限公司 | 高维特征的处理方法、装置、设备及计算机可读存储介质 |
CN111881767B (zh) * | 2020-07-03 | 2023-11-03 | 深圳力维智联技术有限公司 | 高维特征的处理方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103716639B (zh) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Huang et al. | Codenet: Efficient deployment of input-adaptive object detection on embedded fpgas | |
CN102843559B (zh) | 基于纹理特性的hevc帧内预测模式的快速选择方法及装置 | |
TWI685250B (zh) | Hevc編碼最佳參考圖框的選擇方法、裝置及編碼器 | |
CN104103058B (zh) | 图像匹配系统及方法 | |
CN102790884B (zh) | 一种基于分层运动估计的搜索方法及其实现系统 | |
CN103414853A (zh) | 支持多自由度运动的视频图像序列实时稳定装置与方法 | |
CN103335611B (zh) | 基于gpu的物体三维面形测量方法 | |
CN107064930B (zh) | 基于gpu的雷达前视成像方法 | |
Xie et al. | A binocular vision application in IoT: Realtime trustworthy road condition detection system in passable area | |
CN109495743A (zh) | 一种基于异构多处理平台的并行化视频编码方法 | |
CN109272110A (zh) | 基于光子神经网络芯片的光电融合智能信号处理系统 | |
CN101170696B (zh) | 一种运动估计方法 | |
CN104025155B (zh) | 可变深度压缩 | |
Palaniappan et al. | Parallel flux tensor analysis for efficient moving object detection | |
CN106484532B (zh) | 面向sph流体模拟的gpgpu并行计算方法 | |
CN103716639A (zh) | 一种帧图像运动估计的搜索算法 | |
Zhai et al. | FPGA-based vehicle detection and tracking accelerator | |
CN108520532B (zh) | 识别视频中物体运动方向的方法及装置 | |
CN106954065B (zh) | 基于梯度方向直方图的递归预测图像压缩方法 | |
Sun et al. | Decoupled feature pyramid learning for multi-scale object detection in low-altitude remote sensing images | |
CN107920252B (zh) | 一种全景视频数据处理方法、装置及系统 | |
Ling et al. | Hardware accelerator for an accurate local stereo matching algorithm using binary neural network | |
CN104572588A (zh) | 矩阵求逆处理方法和装置 | |
CN106231307A (zh) | 一种图像压缩帧内编码预测方法及其硬件实现 | |
CN103188487B (zh) | 视频图像中的卷积方法及视频图像处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170419 Termination date: 20201225 |
|
CF01 | Termination of patent right due to non-payment of annual fee |