对Grerladie Guards序列中第3帧图像的宏块进行4×8编码,每一个宏块所用的比特数都可以清楚地看出。通过比较发现,H.264对宏块编码所用的比特数比H.263平均少50%。尤其在运动物体附近,效果更加明显,H.264使用了很多偏红的色块,而H.264更多的是偏蓝色块。基本静止的背景图案,两者也有很多的差别。由此可见,H.264中很多是深蓝色的宏块,所用的比特数在10比特左右,而H.263则偏向绿色,比特数在20比特左右。通过比较还发现,H.264的编码效率比H.263高很多。
3.2 H.264编码性能
3.2.1 多参考帧预测模式
对于多种类型的视频序列来说,多参考帧预测模式可以有效地提高编码性能,它通过在运动矢量中增加一个时域部分,而允许在宏块级下从若干参考帧中选择其中的一个。由于需要保持一个参考帧缓冲区域,因此增加了在编解码器中对内存的需求量。另外,额外参考帧的引入也使得搜索区域扩大,从而显著提高了编码器端在运动估计过程中计算的复杂度。本实验中Foreman视频序列使用UVLC熵编码,1/4像素运动矢量精度,搜索范围为16像素。
图6为使用不同参考帧数M对亮度分量峰值信噪比的影响。
试验表明,多参考帧的使用,能平均节省10%的比特率。同样,多参考帧的使用也与具体的序列内容有关,高比特率的序列将大大提高图像的PSNR。
3.2.2 双向预测模式
H.264以前的视频编码标准一般都采用多假设预测模式,而H.264使用的双向预测模式,它是一对前向/后向预测帧的线性组合。前后向预测又都可以包含多个参考帧,同时,它又分为双向预测信号的独立估计和联合估计。其中,联合估计可以大大改进编码的效率。
本实验中Foreman视频序列使用UVLC熵编码,1/4像素运动矢量精度,搜索范围为16像素。图7为使用独立估计和联合估计对亮度分量峰值信噪比的影响。图7是重构B帧时帧比特率与亮度分量峰值信噪比的关系,选择5个前向预测帧和3个后向预测帧,则由图可以看出,联合估计的性能比独立估计的高。线性双向预测模式不仅利用了抑止噪声的组件,还提供了消除波峰的功能。假设当前帧中有一个物体将在后续帧中出现,而未在前面的帧中出现,那么,增加前向参考帧就不能提高编码效率,而增加后向参考帧就能大大提高编码效率。
3.2.3 熵编码
H.264有两种不同的熵编码模式:通用可变长编码(UVLC)和基于上下文的自适应二进制算术编码(CABAC)。UVLC只使用一个可变长的代码去编码所有二进制的语法元素,而CABAC则采用上下文模式和基于条件概率与符号统计的自适应算法。UVLC算法简单,在付出很低的计算成本时就能取得很好的压缩效率。CABAC计算复杂度高,但它能够大大节省比特率。
本实验中Foreman视频序列使用1/4像素运动矢量精度,搜索范围为16像素。图8为使用UVLC和CABAC对亮度分量峰值信噪比的影响。
试验表明,CABAC能大大降低比特率,在取得相同的亮度分量峰值信噪比时,CABAC比UVCL平均节省15%的比特率。在高比特率的序列中,常使用多参考帧和CABAC联合编码,多参考帧能提高运动估计补偿的效率,CABLC能自适应地根据上下文进行熵编码,从而大大提高编码器的性能。
4 结 语
文章对新一代视频编码标准H.264/AVC进行全面的分析和研究,总体上按照H.264/AVC结构化的编码思想,对分视频编码层和网络适配层进行了分析,特别对H.264/AVC的编码中所采用的新技术进行了仿真研究,如编码的效率、多参考帧、通用可变长编码(UVLC)和基于上下文的自适应二进制算术编码(CABAC)、运动补偿等,并给出实验结果,充分说明了新一代视频编码标准H.264/AVc的编码效率比以前的编码标准(如H.263)在编码效率上提高了很多。当然,新一代视频编码标准H.264/AVc虽然优点明显,但许多优点是以牺牲计算复杂度换来的。因此在降低计算复杂度的同时,能达到更高的编码效率将是下一步研究的重点。