基于块统计特性的块匹配准则与帧内编码模式的选择方法
技术领域
本文涉及一种计算机领域中视频图像编码,特别涉及一种基于块统计特性的块匹配准则与快速帧内编码模式的选择方法。
背景技术
H.264是由ITU-T和ISO两个组织的专家为实现视频的更高压缩比,更好的图像质量和良好的网络适应性而提出的视频编码标准。事实证明,H.264编码具有比其他视频压缩标准更节省码流,并且比MPEG-4算法简单的特点。
H.264视频编码标准的性能很大程度上取决于运动估计,而影响运动估计的主要因素是匹配准则和搜索算法。而搜索中心和搜索范围的确定能够大大提高搜索的效率。因此,很多针对块匹配的快速搜索算法被相继提出来。块匹配运动估计的基本原理是将当前帧分割成互不重叠的小块(如大小为16X16像素等),然后在参考帧中进行运动搜索,寻找最佳位置作为预测,编码时只编码运动向量与块残差信息,以消除帧间冗余度,降低码率。在块匹配运动估计中,运动估计的精度会对码率产生很大的影响。块匹配法中,最简单、最可靠的方法是全搜索法即穷尽搜索法,但由于其对搜索窗内所有点进行匹配,所需运算量十分巨大,很难适应实际应用,特别是实时应用的要求。于是出现了许多快速搜索算法,最典型的有三步法TSS、新三步法NTSS、二维对数法、菱形搜索法DS等。
运动估计算法中常用的匹配准则有以下几种:最小绝对差(MAD)、最小均方差(MSE)和最小绝对误差(SAD)等,由于SAD准则不需要作乘法运算,实现简单、方便,所以使用最多,通常使用SAD准则。
块匹配搜索中,匹配算法的目的就是找到最佳的匹配块,使存储当前块所需的码流最小。实际应用中考虑到计算量,一般采用SAD。但SAD算法在匹配精度上存在不足,在某些情况下得到匹配结果并非最佳预测结果。编码源图像背景一般都包括多个块,每个块内的各像素点具有高度的相关性,各像素点与预测块之间的差值也会具有这种相关性。在这种情况下,此时虽然残差的绝对和SAD很大,但由于存在大量冗余,实际上残差块内信息很少(即所需码率很低),在这种情况下,用SAD来做匹配准则就难以达到较好的精度。
鉴于此,实有必要提出一种改进的技术方案来解决现有技术中存在的上述问题。
发明内容
本发明所解决的技术问题在于提供一种基于块统计特性的块匹配准则与帧内编码模式的选择方法,该方法可使平坦区域宏块匹配更为准确,减少对平坦区域宏块编码的计算量。
为了实现本发明目的,本发明提供一种基于块统计特性的块匹配准则与帧内编码模式的选择方法,其包括如下步骤:
S11:基于块统计特性的两种类型块的匹配准则,具体步骤为:
S111:首先判断当前处理块的复杂度,通过如下公式来判断:
else
其中,Thresj,分别为相应的统计门限;
S112:针对上述不同的块类型采用不同的匹配准则
If(复杂区域)
采用SAD匹配准则;
采用SADM匹配准则1或2;
S12:针对平坦区域宏块采用基于块统计特性的快速帧内编码模式的选择,具体步骤为:
S121:首先计算平坦区域的块统计特性sadmj,计算块统计特性sadmj,j=0,1,2,3,4
其中,sadf0=f(x+1,y+1)+f(x,y)-f(x,y+1)-f(x+1,y)
S122:由块统计特性确定备选编码模式temp_mode
if(l=1)temp_mode=0、5、7、dc
else if(l=2)temp_mode=1、6、8、dc
else if(l=3)temp_mode=4、5、6、dc
else if(l=4)temp_mode=3、7、8、dc
else temp_mode=0、1、3、4、5、6、7、8、dc
S123:由备选编码模式temp_mode,确定最优帧内预测编码模式;
S13:针对平坦区域宏块基于块统计特性的快速帧内编码模式的选择改进方向;
S131:方向一,基于4个基本方向sadmj,j=1,2,3,4,计算其他方向的块统计特性,缩小备选模式范围
考虑到计算量,可以在sadmj的基础上通过线性插值方法,获取其他方向的sadmk,
S132:方向二:基于子块划分计算块统计特性
采用基于子块划分的sadmj方式,相较于基于元素的块统计特性方法也可进一步减少计算量。
优选地,所述S112中SADM匹配准则1的具体步骤为:
S1121:计算当前块各方向的sadmj,通过sadmj获取匹配方向J,
水平方向:sadf1(x,y)=f(x,y+1)-f(x,y)
垂直方向:sadf2(x,y)=f(x+1,y)-f(x,y)
对角线方向1:sadf3(x,y)=f(x+1,y)-f(x,y+1)
对角线方向2:sadf4(x,y)=f(x+1,y+1)-f(x,y)
S1122:基于匹配块匹配方向J计算SADM,获取最佳匹配
a)对于匹配块blockk计算该匹配块各方向的sadmi,获取匹配方向I;
b)若I=J,则继续计算sadk,
否则,舍去该匹配块blockk,
优选地,所述S112中SADM匹配准则2具体步骤为:
S1123:计算当前块与匹配块之间的差值SAD;
S1124:基于SAD计算SADM,获取最佳匹配,通过如下公式获取:
优选地,本发明方法优先取用上述SADM匹配准则2。
与现有技术相比,通过基于块统计特性的块匹配准则可以提高匹配准确度,采用基于块统计特性的快速帧内编码模式的选择,可以在保证率失真性能的同时,提高编码速度。
附图说明
图1为本发明方法流程框图;
图2为本发明方法优选实施方式的流程图。
具体实施方式
下面结合附图来说明本发明具体实施。
本发明考虑在平坦区域中应用SADM匹配准则1即利用块统计特性选择备选最优匹配块的;考虑在平坦区域中应用消除残差空间冗余度的匹配准则即SADM匹配准则2,考虑到4x4像素在帧内预测编码9种待选模式中与块的统计特性有着一定的联系,利用SADM匹配准则中所计算的块统计特性sadmj,可以快速选择帧内编码模式。
如图1为本发明实施例基于块统计特性的块匹配准则与帧内编码模式的选择方法,其包括如下内容:
1.基于块统计特性的两种类型块匹配准则,具体步骤为:
S111:判断当前处理块的复杂度
else
其中,Thresj,分别为相应的统计门限;
S112:针对不同的块类型采用不同的匹配准则
采用SAD匹配准则;
else(即平坦区域)
采用SADM匹配准则1或2;
其中,SADM匹配准则1具体步骤如下:
S1121:计算当前块各方向的sadmj,获取匹配方向J
水平方向:sadf1(x,y)=f(x,y+1)-f(x,y)
垂直方向:sadf2(x,y)=f(x+1,y)-f(x,y)
对角线方向1:sadf3(x,y)=f(x+1,y)-f(x,y+1)
对角线方向2:sadf4(x,y)=f(x+1,y+1)-f(x,y)
S1122:基于匹配块匹配方向J计算SADM,获取最佳匹配
a)对于匹配块blockk计算该匹配块各方向的sadmi,获取匹配方向I;
b)若I=J,则继续计算sadk
否则,舍去该匹配块blockk
其中SADM匹配准则2具体步骤为:
S1123:计算当前块与匹配块之间的差值SAD;
S1124:基于SAD计算SADM,获取最佳匹配
S1125:块即为最佳匹配块。
在本发明实施方式中,优先取用SADM匹配准则2,如图2所示。
2.针对平坦区域块采用基于块统计特性的快速帧内编码模式的选择,具体步骤为:
S121:计算块统计特性sadmj,j=0,1,2,3,4
其中,sadf0=f(x+1,y+1)+f(x,y)-f(x,y+1)-f(x+1,y)
S122:由块统计特性确定备选编码模式temp_mode
对于帧内4×4像素亮度:
if(l=1)temp_mode=0、5、7、dc
else if(l=2)temp_mode=1、6、8、dc
else if(l=3)temp_mode=4、5、6、dc
else if(l=4)temp_mode=3、7、8、dc
else temp_mode=0、1、3、4、5、6、7、8、dc
对于帧内16x16像素亮度:
if(l=1)temp_mode=0、dc
else if(l=2)temp_mode=1、dc
else if(l=4)temp_mode=3、dc
对于帧内8x8像素色度:
if(l=1)temp_mode=2、dc
else if(l=2)temp_mode=1、dc
else if(l=4)temp_mode=3、dc
S123:由备选编码模式temp_mode,确定最优帧内预测编码模式。
3.针对平坦区域块采用基于块统计特性的快速帧内编码模式的选择两种改进方向:
S131:方向一,基于4个基本方向sadmj,j=1,2,3,4,计算其他方向的块统计特性,缩小备选模式范围,考虑到计算量,可以在sadmj的基础上通过线性插值方法,获取其他方向的sadmk,k=5,6,7,8,
所谓基于像素的方法,即对于宏块中每个像素点计算各方向abs(sadf
j(x,y)),然后再取平均,获取
而基于子块的方法即先将当前子块block
i划分为4x4的次一级子块block
ij,以次一级子块像素的均值作为新的像素值计算sadm
j=abs(sadf′
j(x,y)),以水平方向为例说明如下
S132:方向二:基于子块划分计算块统计特性,采用基于子块划分的sadmj方式,相较于基于元素的块统计特性方法也可进一步减少计算量,此方法对于块匹配准则同样适用。
在上述两种改进方向中,本发明方法实施例优选S131,即方向一,如图2所示。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。