基于统计分析的H.264快速模式选择算法
扫描二维码
随时随地手机看文章
H.264是由ISO/IEC(国际标准化组织/国际电子技术委员会)的MPEG和ITU-T(国际电信联盟)联合成立的JVT(联合视频专家组)制定的新一代数字视频压缩标准。H.264采用很多新的技术,包括可变宏块大小分割、多参考帧、1/4像素精度运动估计、帧内预测、环形滤波等,大大提高了编码性能。从统计的角度和宏块纹理预测的角度出发,提出了一种综合的快速模式选择算法,大大地减少了编码时间。
1 宏块模式选择
对于每一个宏块,H.264可以选择SKIP,inter16×16,inter16×8,inter8×16,inter8×8五种帧间模式和intra16×16,intra4×4两种帧内模式。而其中in-ter8×8又进一步可分成inter8×8,inter8×4,inter4×8,inter4×4四种子模式;intra16×16和intra4×4又分别有4种和9种预测模式。在JM 8.6参考软件中,选择所有模式中率失真代价值最小的模式作为最佳模式。其中率失真代价函数定义如下:
式中:SK为相应宏块;IK为相应的编码模式;Q为量化参数;DREC是失真度;RREC为码率。
从而每个宏块都要经过168次率失真代价值的计算,才能最终选出一种最佳模式,且每次率失真代价值计算都要对残差进行整数DCT变换、量化、熵编码、熵解码、反量化、逆整数DCT变换。因此,参考软件对于模式选择的计算量非常大。
2 宏块模式的统计特征分析
表1是JM 8.6模型中,未采用任何快速模式选择,并且运动搜索采用全搜索的情况下,各序列所采用的编码模式的百分比。其中编码帧数为100帧,I帧周期为30帧,码率为73 Kb/s,QP=28。
由表1可知,无论哪种序列,7种编码模式所占的比重并不均衡,SKIP模式和inter16×16模式占据了很大的比重。这说明图像细节还是占据了一帧图像的少部分,视频序列中大部分依然由缓慢变化的背景组成。而选中概率大的SKIP模式的率失真代价计算很简单,因为没有残差,也就不存在DCT变换,且没有多参考帧的选择、运动搜索;inter16×16模式稍显复杂,但也远远没有其他几种模式复杂。相反,出现概率很小的其他模式运算量却非常大,尤其是inter8×8(inter8×8的运动搜索运算量非常大且子模式多)和intra4×4(预测模式非常多)。因此,对所有模式进行遍历选择时,实际上很大一部分时间是消耗在并未最后起决定作用的几种模式的代价值计算上。因此如果能对概率非常大的几种模式进行早期判决,或者对运算量非常大但选中概率非常小的inter8×8和intra4×4缩小选择范围,从整体编码的性能上来讲,应该能节省大量的编码时间,提高编码速度。
3 SKIP模式快速判决算法
3.1 SKIP模式的特征
在对当前宏块采用SKIP模式进行编码时,它具有以下4个特征:
(1)它不在5帧备选参考帧中进行选择。只以第0个参考帧作为参考帧;
(2)它并不进行运动搜索,因此它的运动矢量经过相邻宏块的运动矢量的预测得到预测值MVp后,并没有运动矢量的残差MVD;
(3)在对它进行运动矢量的预测的时候,是以16×16(即一个宏块)大小为单位;
(4)它经过帧间预测后,并不编码残差,那么也就没有整数DCT变换,或者可以看成它的DCT值为0。
在采用SKIP模式编码后,性能是否最佳,通常情况下要用率失真代价值跟其他模式进行比较才能决定。但是,如果在采用其他正常方式进行编码后,反过来,发现整个宏块的编码数据具有上述的某些或全部特征后,或许可以作为提前判断当前编码宏块模式为SKIP模式的依据,即将上述4个必要条件的某几个作为判断当前宏块最佳模式为SKIP模式的充分条件。当然,这样处理的结果并不准确,但是如果准确率较高,应该对编码效果的影响并不大。
3.2 SKIP模式快速判决方法分析
文献[1]提出了一种以DCT系数是否为全0作为判断条件来进行判断。这种方法比较简单,从理论上讲应该有一定的准确性,因为除了SKIP模式,其他模式的DCT系数为全零可能性并不大。文献[2]则提出提出了一种比较苛刻的方法,它利用SKIP模式的所有特征,然后作为判决条件,即当一个宏块满足第3.1节的4个条件时,便判断为SKIP模式。表2是对两种方法进行实验后判断准确性的统计值。
由表2可知,这两种方法准确性比较高,尤其是方法2,因为它的条件非常苛刻,这也符合文献[2]中的叙述。但是这两种方法判断正确性高,文献中却忽略了一个重要参数,即漏判决率。该两方法对于已经判决出的模式,正确性非常高,但是由于条件比较苛刻,它却未判断出很多本该是SKIP模式的宏块,那么这些宏块依然需要使用最原始的方法进行判断,快速判决也就失去了其意义。
3.3 该文的SKIP模式快速判决方法
基于前一节的考虑,在此对文献[2]提出的方法,将整数DCT系数为全0这一条件舍去,实验结果显示如表3中方法3所示。由表3可知,漏判率有所下降,但是依然很高。
最终,摒弃了采用SKIP模式的某几种特征的组合作为判决条件,依然采用率失真代价来判断。但是实验中利用SKIP模式的率失真代价跟inter16×16模式的率失真代价值比较作为判决条件,即当满足RDcost (SKIP)≤RDcost(inter16×16)时,认为当前宏块的最佳模式为SKIP模式。这出于这样的假设,即在分块大小都为16×16的情况下,如果没有采用多参考帧选择、运动估计以及对残差进行编码这样非常简陋的模式的率失真代价值依然比采用了相关技术的inter16×16模式的率失真代价值还小,则说明这一宏块的细节非常少,该宏块为SKIP模式的概率应该非常大。当然不排除一种情况就是当前宏块采用SKIP模式和inter16×16模式本身失真都非常严重,远远高于其他采用更细的分块模式。此时率失真值主要由码率决定,那么由于SKIP模式的码率要低得多,从而SKIP的率失真值比inter16×16要小,导致误判。表3是经实验得到的准确度表。由该表看出,该方法(方法4)判断准确性也很高,但却没有一个漏判,这是因为此方法本身用的是率失真代价值与inter16×16的比较,符合所有模式中率失真代价值最低必然符合比inter16×16模式的代价低这一条件。因此这里采用此方法作为SKIP模式的快速判决方法。
4 基于纹理预测的inter8×8子模式快速选择
文献[3]提出一种假设:宏块的代价值随分块方向单调增减。也就是说宏块或者子块如果最佳的分块方向是纵向(inter8×16或者inter4×8)或者横向(inter16×8或者inter8×4),那么与相应方向相符的分块方式代价值必然要小于与该最佳方向相反的分块方式的代价值,即大的分块方式的宏块代价值的比较大体反应了宏块的纹理方向。利用这一点,对inter8×8模式的选择范围进行限定,以缩小子模式选择范围。图1描述了对inter8×8子模式可选范围的确定。其中Jmode=REF_COST(mode)+MV_COST(mode)。
5 Intra模式快速选择的简化算法
采用帧内预测时,宏块可以分成intra16×16和in-tra4×4两种模式。其中intra4×4用到了9种预测模式,它的预测算法并不复杂,但是对于率失真代价的计算量却非常可观。因此,对于帧内模式,人们已经提出了很多种快速算法。单纯针对帧内模式,这些快速算法确实对编码速度的提高程度非常大。但是从整个视频序列来看,效果并不明显。因为对于P帧,从统计结果来看,in-tra模式所占的比重非常小,而运算量极大的intra4×4模式所占比重更是微乎其微。表4是各序列在P帧及I帧中intra模式所占的百分比统计。
对于I帧,由于采用的全部是intra模式,且由上表可以看出,intra4×4模式所占的比重却非常高,本可以考虑采用某种快速选择算法。但是由于I帧在整个序列中所占比重不大,通常每30帧1帧I帧。因此,改进I帧的模式选择,对于整个序列来说,同样是微乎其微。因此针对intra模式,本文提出了一种简化算法,即忽略P帧中的intra4×4模式,但为保证视频质量,保留intra16×16模式;对I帧的模式选择,采用最原始的算法。表5是采用该方法后PSNR和编码时间与JM 8.6原始算法的性能比较。由表5可看出,编码时间有了比较大的下降,PSNR下降并不明显,且算法也并不复杂。
6 综合实验结果
最后,结合上述三方面的方法进行了实验,实验结果与JM 8.6参考软件的性能比较如表6和表7。其中,I帧周期是30,起始QP值为28,启用了码率控制,编码帧数为100。
结果显示,除了运动较为剧烈的mobile序列以外,PSNR并没有明显的下降,但是编码时间下降平均达到37%左右。
7 结 语
在研究了JM 8.6参考软件的基础上,提出了基于统计与纹理预测的综合快速模式选择算法。实验数据显示,该算法对于整个图像序列编码时间平均降低了37%左右,而同时图像的峰值信躁比降低了0.02~0.08 dB,图像的质量并没有明显的下降。由于该算法对于固定背景比较多、运动对象比较少的序列具有更好的优化效果,因此更加适用于视频会议(电话)、远程视频监控等场合。