本发明涉及图像编码压缩,尤其涉及一种基于误差曲面计算分数精度运动估计的方法及系统。
背景技术:
1、在视频图像压缩技术中,帧间预测中的运动估计可以有效地消除视频序列中各帧之间的时间相关性,目前已经被广泛地应用于各种基于分块匹配的视频编码标准中。运动估计是整个视频压缩编码过程中最为耗时、计算复杂度较高的步骤。
2、随着超高清分辨视频的逐渐普及,新一代图像编码标准为不断提高编码效率,引入了更大尺寸的计算单元块和更复杂的单元块划分,使得对视频编码处理的数据量变得非常大,为满足对实时性或者快速压缩的需求,对运算速度提出了更高的要求。对于视频编码器来说,帧间预测部分占编码器总运算量的60%以上,运动估计则是帧间预测中最为重要的一环。
3、分数精度的运动估计包含整像素级别的运动估计和亚像素级别的运动估计。因为当前块的最优运动矢量不一定落在整数倍的像素点上,所以在帧间预测中需要对分数精度级别的运动矢量进行运动估计,通常包括两个步骤:整像素对应的整数精度运动估计和亚像素对应的分数精度运动估计。整数精度运动估计的目的是在特定搜索范围内快速收敛到一个最优的整像素精度运动矢量,随后以此最优整像素匹配位置为中心,进一步搜索亚像素对应的分数精度的运动矢量。
4、分数精度运动估计的计算量占比较大。分数精度运动估计涉及到多个1/2和多个1/4级别的分数倍亚像素插值计算,单个整像素可衍生出几十个亚像素级的计算量,每个亚像素都需要额外存储空间,且每个亚像素同样可能涉及到对绝对差值和(sad,sum ofabsolute difference)或绝对变换差值和(satd,sum of absolute transformeddifference)的计算过程,再对亚像素的每个候选分数运动矢量比较率失真代价值大小,最后选取率失真代价最小的整数精度运动矢量与率失真代价最小的分数精度运动矢量作为最终的最优运动矢量。分数精度的运动估计能帮助编码器选择率失真代价最小的编码模式和参数,通过最小化每个编码单元的率失真代价,编码器可以在有限的比特率条件下,尽可能提高整体的视频质量。这是视频编码中非常重要的优化目标和技术,因此需要一种能提高运算速度和准确度的分数运动估计方法。
技术实现思路
1、针对以上问题,本发明提出一种基于误差曲面计算分数精度运动估计的方法及系统,利用误差曲面进行函数拟合,能很好地适合硬件计算,具有运算速度快、运动补偿质量高、无需额外插值计算亚像素等优势。
2、为了实现上述目的,本发明通过如下的技术方案来实现:
3、一种基于误差曲面计算分数精度运动估计的方法,所述方法包括:
4、s1:对整数运动矢量进行粗搜索,直至收敛到最小率失真代价值所在整数运动矢量位置位于搜索形状的正中心,则切换为小正方形继续细搜索;
5、s2:整数运动估计的最后一级使用步进为1的小正方形搜索最小率失真代价值,每次搜索点为中心位置和8个相邻整像素点,直至搜索到最小率失真代价值所在整数运动矢量位置位于小正方形的中心位置,则停止整数运动矢量搜索;
6、s3:停止整数运动矢量搜索后,计算小正方形中心位置对应的整像素和8个相邻整像素点的satd值,同时得到此时小正方形中心位置对应的整数运动矢量作为最优整数运动矢量mv_xint和mv_yint,完成整数运动估计;
7、s4:以最优整数运动矢量作为分数运动矢量搜索起点的中心位置,构建中心位置是整像素平面中率失真代价值低点的单峰值的误差曲面函数模型,将步骤s3计算出的9个整像素点的satd值及对应整数坐标值带入误差曲面函数模型,求解出误差曲面函数模型的多项式参数,完成对分数级别误差曲面函数模型的拟合;
8、s5:采用枚举方法,枚举出[-1,1]范围内的候选分数坐标带入误差曲面函数模型进行求解,得到每个候选分数坐标的satd值;
9、s6:求出每个候选分数坐标对应的候选分数运动矢量的率失真代价值并进行大小比较,输出候选分数运动矢量对应的率失真代价值中的最小值,以及最小率失真代价值对应的候选分数运动矢量作为1/4亚像素精度级别的最优分数运动矢量mv_xfrac和mv_yfrac,完成分数运动矢量计算;
10、s7:将最优整数运动矢量mv_xint和mv_yint与最优分数运动矢量mv_xfrac和mv_yfrac相加,得到最终的最优分数精度级别运动矢量mv_x和mv_y,完成分数精度级别的运动估计。
11、作为本发明的一种优选方案,所述步骤s3中,计算小正方形中心位置对应的整像素和8个相邻整像素点的satd值,具体为采用二级串联的一维哈达玛变化矩阵进行运算。
12、作为本发明的一种优选方案,所述误差曲面函数模型包括5参数模型、6参数模型和9参数模型,函数表达式分别为:
13、
14、式中,x、y表示像素点坐标,f(x,y)为x和y坐标下对应的satd值;a-i为误差曲面函数模型的多项式参数。
15、作为本发明的一种优选方案,当所述误差曲面函数模型为9参数模型时,所述求解出误差曲面函数模型的多项式参数,具体方法包括:
16、以最优整数运动矢量作为分数运动矢量搜索起点的中心位置,记为原点(0,0),则8个相邻整像素点的坐标分别为(-1,-1)、(0,-1)、(1,-1)、(-1,0)、(1,0)、(-1,1)、(0,1)、(1,1),将这9个整像素点对应的satd值记为f(-1,-1)-f(1,1),一同带入9参数模型的函数表达式,得到:
17、
18、将上式简化为矩阵表达式,表示为:
19、f(x,y)=q*p;
20、式中,f(x,y)为x和y坐标下对应的satd值,q代表对应代入的像素点坐标多项式x或y乘积后的常数矩阵,p代表多项式参数a-i;
21、9个整像素坐标互不相关,所以q的行列式不等于零,存在可逆矩阵,通过求解最小二乘法得到如下表达式:
22、p=(qtq)-1qt*f(x,y);
23、式中,t表示矩阵转置;(qtq)-1qt是一个常数矩阵;
24、求解出多项式参数a-i:
25、
26、作为本发明的一种优选方案,所述枚举出[-1,1]范围内的分数坐标,具体为枚举1/2、1/4和1倍数的分数坐标。
27、作为本发明的一种优选方案,步骤s6中,所述求出每个分数坐标对应的候选分数运动矢量的率失真代价值,计算公式为:
28、cost=s+λ*r;
29、式中,cost表示率失真代价值;s表示参考宏块与运动预测宏块的差异度量,用satd值作为度量带入计算;r表示衡量运动信息本身需要的比特数,根据坐标值对应预设的查找表得到;λ为权重系数。
30、一种基于误差曲面计算分数精度运动估计的系统,所述系统包括:
31、整数运动估计模块用于对整数运动矢量进行整数运动估计,以获得最优整数运动矢量mv_xint和mv_yint;
32、分数运动估计模块,用于以最优整数运动矢量为中心进行分数运动估计,以获得最优分数运动矢量mv_xfrac和mv_yfrac,并将最优整数运动矢量mv_xint和mv_yint与最优分数运动矢量mv_xfrac和mv_yfrac相加,得到最终的最优分数精度级别运动矢量mv_x和mv_y。
33、作为本发明的一种优选方案,所述整数运动估计模块和所述分数运动估计模块均包括率失真代价计算单元和率失真代价比较单元;
34、所述率失真代价计算单元用于计算整数运动矢量或分数运动矢量的率失真代价值;
35、所述率失真代价比较单元用于比较整数运动矢量或分数运动矢量的率失真代价值的大小。
36、作为本发明的一种优选方案,所述整数运动估计模块还包括:
37、整数运动矢量搜索单元,用于对整数运动矢量进行粗搜索,直至收敛到最小率失真代价值所在整数运动矢量位置位于搜索形状的正中心,则切换为小正方形继续细搜索,每次搜索点为中心位置和8个相邻整像素点,直至搜索到最小率失真代价值所在整数运动矢量位置位于小正方形的中心位置,则停止整数运动矢量搜索;
38、sad和satd计算单元,用于计算整数运动矢量的sad值,或采用二级串联的一维哈达玛变化矩阵计算整数运动矢量的satd值,sad或satd值是计算率失真代价的失真度量之一。一般情况下,在整数运动矢量搜索中率失真代价以sad值作为度量标准,细搜索或分数运动矢量搜索中,因各点处sad值差异相对不大,所以使用satd值能够更好匹配码流较小的位置,防止陷入局部最优点。
39、作为本发明的一种优选方案,所述分数运动估计模块还包括:
40、误差曲面计算单元,用于以最优整数运动矢量作为分数运动矢量搜索起点的中心位置,构建中心位置是整像素平面中率失真代价值低点的单峰值的误差曲面函数模型(整数运动矢量搜索中率失真代价最小值位于小正方形中心),将最优整数运动矢量对应的整像素和8个相邻整像素点的坐标值、satd值带入误差曲面函数模型,求解出误差曲面函数模型的多项式参数,完成对分数级别误差曲面函数模型的拟合;
41、枚举分数运动矢量单元,用于枚举出[-1,1]范围内的候选分数坐标;
42、satd计算单元,用于将枚举出的候选分数坐标带入误差曲面函数模型进行求解,得到每个分数运动矢量的satd值。
43、与现有技术相比,本发明的有益效果是:无需额外的插值计算亚像素,以误差曲面拟合函数的方式将候选分数坐标代入后直接获得对应候选分数坐标的satd值,进一步得到候选运动矢量的率失真代价,选取率失真代价最小为最佳匹配的最优运动矢量,过程针对硬件计算的特点进行优化,计算过程可将乘法运算转换为仅有移位操作和加减法运算,省略乘除法运算,并且每一步计算可展开成流水线操作提高计算效率,减少硬件资源占用,具有运算速度快、运动补偿质量高、无需额外插值计算亚像素等优点。