发明内容
本发明的目的在于提供一种H.264帧间SKIP模式的快速判定方法,不仅可以克服目前模式选择算法中计算量大且复杂的缺点,根据SKIP块的特点,将视频前景与背景检测技术创新性的应用于帧间SKIP模式的判断上,既增加了SKIP模式判断的精确性,又能够降低运算复杂度,在保证视频质量的同时,提高了运算效率,降低了码流,提高了压缩比率。本发明一种H.264帧间SKIP模式的快速判定方法,包括步骤:
①对每帧图像进行16*16宏块的划分,再将每个16*16的宏块划分为16个4*4的小块;
②对每个4*4的小块的16个像素点求均值,以均值为特征值与现有的高斯模型进行匹配,建立基于图像块的混合高斯背景模型;
③对于与高斯模型不匹配的宏块利用三帧差分进行进一步判断;
④根据高斯模型与三帧差分的结果判断出每个宏块是前景块还是背景块,根据每个16*16宏块中4*4的小块中是背景块的个数与某个设定的阈值进行比较,若个数大于设定的阈值,则判定此16*16宏块是背景块,否则判定为前景块;
⑤将判断为背景块的宏块直接标记为SKIP模式;
⑥对于不是背景块的宏块,再采用H.264标准中的方法进行判断。
所述的对于与现有的高斯模型不匹配的图像块利用三帧差分进行进一步判断,是当4*4小块的均值与现有的高斯模型都不匹配时,再利用三帧差分进一步判断。
所述的将判断为背景块的宏块直接标记为SKIP模式,是将判断为背景块的宏块直接标记为SKIP模式之后,终止后面模式的选择,并且将MV设置为0,省去运动估计的时间。
本发明一种H.264帧间SKIP模式的快速判定方法具有以下几个方面的特点:
(1)针对目前H.264标准中帧间模式选择算法中计算量大且复杂,并根据SKIP块的特点,将视频前景与背景检测技术创新性的应用于帧间SKIP模式的判断上。
(2)能够增加SKIP模式判断的精确性,尤其是增加背景区域或运动缓慢区域的SKIP模式的数量,又能够降低运算复杂度,在保证视频质量的同时,提高了运算效率,降低了码流,提高了压缩比率
(3)操作上:对图像块的划分方式是:对每帧图像进行16*16宏块的划分,再将每个16*16的宏块划分为16个4*4的小块。在建立模型方面:对每个4*4小块求均值,以均值作为特征值与高斯模型进行匹配,进行模型的维护和更新。最后以4*4小块判断为背景块的个数来决定此16*16图像块是前景还是背景,这样运算单位划分适当,计算简单,且判断准确性高。将判断为背景块的宏块直接标记为SKIP模式,将判断为背景块的宏块直接标记为SKIP模式之后,终止‰后面模式的选择,并且将MV设置为0,省去运动估计的时间。对于不是背景块的宏块,再采用H.264标准中的方法进行判断。
如上所述,本方法不仅可以克服目前H.264帧间模式选择算法中计算量大且复杂的缺点,根据SKIP块的特点,将视频前景与背景检测技术创新性的应用于帧间SKIP模式的判断上,既增加了SKIP模式判断的精确性,又能够降低运算复杂度,在保证视频质量的同时,提高了运算效率,降低了码流,提高了压缩比率。
具体实施方式
下面结合附图对本发明的一种H.264帧间SKIP模式的快速判定方法作详细描述。
如图1所示是本发明的控制流程图,主要包括以下步骤:对每帧图像划分宏块;对每个宏块建立基于图像块的混合高斯背景模型;对于与高斯模型不匹配的宏块利用三帧差分进行进一步判断。根据高斯模型与三帧差分的结果判断出每个宏块是前景块还是背景块。将判断为背景块的宏块直接标记为SKIP模式;对于不是背景块的宏块,再采用H.264标准中的方法进行判断。
下面作详细介绍。
(1)对每帧图像划分宏块
在算法中,实时的对输入的每一帧图像从上到下,从左到右进行16*16图像块的划分,再将每个16*16的图像块划分为16个4*4的小块,以4*4的小块作为计算单位。
(2)对每个宏块建立基于图像块的混合高斯背景模型
①先求16*16宏块中的每个4*4小块的均值
如果直接对16*16的宏块进行计算,图像块较大,虽然要处理的块数较少,效率会越高,但对局部目标敏感度就越小,目标的精确度就会变差,因为前景所占比例小的图像块的个数会增加。因此,将每个16*16宏块进一步划分成16个4*4的小块,这样运算单位大小适当,计算每个小块的均值,以均值作为运算的对象。
记每个像素为X
ij,1个4*4图像块的特征为λ,
由于所有特征都是图像块中像素的线性组合,因此当每个像素X
ij服从正态分布时,所有特征λ作为原像素的线性运算的结果,也服从正态分布。
若λ=νTX,其中X是由若干个像素组成的随机向量,ν为与X同维数的向量,则有:
λ~N(νTμ,νTUν)(3.1)
图像块中的像素点值的变化能够反映到特征值的变化上,这样我们就可以对图像块的特征λ,而不是对单个像素值建立混合高斯背景模型,以此来判断图像块,而不是判断每个像素点是背景还是前景。
②将每个均值作为特征值与高斯模型进行匹配
以每个4*4小块的均值作为特征值λ,令特征向量Λ=[λ]。
本方法采用文献(C.Stauffer,W.E.L.Grimson.Adaptive background mixturemodels for real-time tracking)中给出的混合高斯分布的形式和参数更新方法进行模型的建立和更新。
选择一个时间周期(Λt,....Λt),给出Λt具有K个分量的高斯混合密度:
其中,
p(ωi)或wi,t为第i个分量在总体分布中所占的权值。
假设像素间是相互独立的,可以得出特征值之间也是相互独立的。为了简化计算,进一步假设它们具有同样的方差,因而协方差矩阵Ui,t可以简化为Uit=σi,t 2E,其中E为单位矩阵。这种假设可以避免复杂计算引起误差加大。
关系式(1)说明了每一图像块的特征向量Λ的当前观察值的概率分布可由一个高斯混合函数所刻画,也就是说图像块的特征向量的某种状态可由混合模型的某个分量来描述。
基于前面的假设,从前向后将新的图像块的特征值与现存的K个高斯分布进行匹配,如果特征值落在某个分布的标准方差的某一倍数范围内,就认为此4*4小块匹配成功,即如果|Λ1-μi,t |≤τσi,t,则认为与该分布匹配成功。
实验表明τ取4比较合适。
将现存的K个高斯函数按比率w/σ排序,这一顺序是按高斯优先权值增大和方差减小来排列的。与顺序在后的分量相比,顺序在前的分量是背景的可能性大于顺序在后的分量。从前向后对优先权值取和,将其和占据T部分的前B个分布定义为背景。
这里取最好的分布直到其权值的和占数据T部分为止。如果图像块的特征与前B个分量匹配成功,就判定为背景,否则在转到下一步进行进一步判断。
在上述匹配工作完成后,利用文献(1)中的方法对混合高斯背景模型进行更新。
(3)与三帧差分相结合进行进一步判断
对于当前检测的4*4小块的均值与高斯模型都不匹配时,由于高斯模型对于背景的更新较慢的缺点,为了增加检测的准确性,我们进一步的利用三帧差分来判断。对于当前帧的此块的均值,分别于前两帧中对应位置的均值,进行两两做差,由于三帧差分只是做差运算,所以运算效率不会受到很大影响。
设当前帧为X,前两帧分别为X-1,X-2,正在检测当前帧的第A宏块中的第i个子块,记为X.A.i mean,则前两帧中对应位置的子块均值分别为X-1.A.i_mean,X-2.A.i mean,设定一个做差阈值TH_SUB,实验中TH_SUB取为5,如果满足:
|SUB(X-2.A.i mean,X-1.A.i_mean)|<=TH_SUB
且|SUB(X-1.A.i_mean,X.A.i_mean)|<=TH_SUB
且|SUB(X-2.A.i_mean,X.A.i_mean)|<=TH_SUB
即这三帧中任意两帧之间的差的绝对值都小于某个阈值,可以认为这个块基本没发生变化,但是由于噪声等的影响,其Y,U,V值发生一些突变,不符合高斯模型,但其实是没有变化的背景块,因此认为此4*4的小块为背景块。如果此小块既不满足背景模型,又不满足三帧差分的条件,那么将它判定为前景块。
(4)根据高斯模型与三帧差分的结果判断出每个宏块是前景块还是背景块。
当对此16*16宏块的16个4*4小块都匹配结束后,设匹配的小块个数为MatchNum,设定阈值TH_MTH,实验中M取12,当MatchNum>=TH MTH时,则判定此16*16宏块属于背景块,否则为前景块。
至此,对于一个16*16宏块的判定结束。
依次对每一帧的所有宏块进行检测,就能够得到每一帧对应的前景部分和背景部分。
(5)将判断为背景块的宏块直接标记为SKIP模式
当此16*16宏块被判断为背景块的时候,根据SKIP模式的特点,直接将此宏块标记为SKIP模式,然后终止后面模式的选择,并且将MV设置为0,省去运动估计的时间。
(6)对于不是背景块的宏块,再采用标准中的方法进行判断。