H.264技术综述

  随着计算机技术和网络通信技术的飞速发展,视频编码技术的应用也越来越广泛,H.264即MPEG-4第10部分,由ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)负责开发,于2003年被正式颁布为国际标准。作为新一代的视频压缩标准,H.264采用了先进的算法,可以提供良好的视频质量,与Mpeg2相比,在相近的图像质量上,H.264的比特率降低了大约50%。

  2. H.264的特点

  不论是国际标准化组织ISO的MPEG-x系列标准还是国际电信联盟ITU-T的H.26x系列标准,其编码的基本原理都是相同的,都是用空域预测去掉空间冗余、时域预测去掉时域冗余,最后采取熵编码使得可以用最少的比特数来表示码流。所不同的是,各种标准采用的具体算法和实现各不相同。

  相比于先前的视频压缩标准,H.264引入了很多先进的技术,包括4×4整数变换、空域内的帧内预测、1/4象素精度的运动估计、多参考帧、多种小块的帧间预测、去除块效应的环路滤波、灵活的slice大小、基于上下文的自适应变长编码CAVLC(Context-based Adaptive Variable Length Coding)和基于上下文的自适应二进制算术编码CABAC (ContextbasedAdaptive Binary Arithmetic Coding)等。

  2.1 H.264的整数变换

  与以往的视频编码标准相比,H.264直接采用了4×4整数变换而不是通用的DCT变换,这样避免了变换和反变换之间经常出现的失配问题,数据经变换和反变换运算之后不再有误差。并且由于采用了整数变换,使得变换运算通过整数加减和移位操作就可以实现,降低了运算复杂度。

  2.2 H.264的帧内预测

  与以往的视频编码标准相比,H.264引入了帧内预测,在编码I帧图象宏块(Macro Block)的过程中,使用周围已编码宏块的象素来预测要编码宏块的象素,H.264不仅支持8×8块的帧内预测,也支持更小的4×4块的预测。

  2.3 H.264的帧间预测

  与以往的视频编码标准相比,H.264在进行帧间预测时,不再是单一的8×8块,而是可以有多种分块方式可以选择,被称之为树状分块方式。具体的一个宏块Macro Block)可以按以下几种方式进行划分:1个16×16,或2个8×16,或2个16×8,或4个8×8。而每个8×8的块也可以再继续按4种方式进行分块,1个8×8,或2个4×8,或2个8×4,或4个4×4,如图2.1所示。一般来说,应在运动较多的区域多选择较小的分块,而在运动较少的区域多选择较大的分块。

图2.1 H.264宏块的分块方式

图2.2 多参考帧预测

  H.264在编码帧间宏块进行运动估计时,不仅要通过块匹配的方法找到该宏块的运动矢量,而且还要选择该宏块最佳的分块模式。

  与之前的视频编码标准相比,H.264在进行帧间预测编码时,使用了多参考帧预测技术,使得运动搜索时从原来的一个参考帧扩展为多个解码后的参考帧(如图2.2),这样通常能找到更精确的匹配,获得更准确的预测结果,从而有助于获得更高
的图像质量。

  与之前的视频编码标准相比,H.264运动矢量的精度达到了亮度1/4象素精度、色度1/8象素精度,可以更好的表现图像的细节。

  2.4 H.264的环路滤波

  块效应是基于块的编码系统中很容易出现的问题,该问题在码率较低的状况下尤为突出,这种块效应的存在严重影响了图像的主观质量,H.264采用环路滤波(Loop filter)的方式去除块效应,环路滤波技术有效地滤除了块效应,不但使得图像质量有了很大程度的提高,而且在降低比特率方面也发挥了重要作用。

  2.5 H.264的熵编码

  H.264使用两种熵编码方法,CAVLC(上下文自适应可变长编码)和CABAC(上下文自适应二进制算术编码),两种都是基于上下文的熵编码技术。利用适当的上下文模型,在编码当前符号时,可以根据已编码的临近符号的概率统计,在不同的概率模型之间转换,借此去掉符号间的冗余,以更加有效地压缩码流,节省码率。

  3. 影响H.264图像质量的主要因素

  3.1 码率分配

  对一个编码器来说,图像质量的损失产生在量化环节,调整量化步长也是码率控制的最主要手段:量化步长越小,数据损失越小,码率越大,图像质量也就越好。

  所以一般来说,码率越大,图像质量也就越好(当然此时所占用的网络带宽或磁盘空间也越大),特别是对于低码率的应用场景,码率对图像质量的影响会更加明显。从某种意义上说,在低码率的应用场景中,图像质量很大程度上取决于码率分配的合理性,所谓合理性,可以理解为在符合设定码率要求的前提下,根据图像内容的复杂程度分配码率,当图像内容复杂时多分配一些码率,当图像内容变得简单时,少分配一些码率。这里的难点在于,编码器只知道当前编码图像的内容是什么,永远不知道下一帧图像的内容,所以要做到自适应的根据图像内容的复杂度调整码率分配是有一定难度的。

  实际应用中,码率分配的策略主要有CBR、ABR两种。CBR即Constant Bit Rate,要求实际码率严格的符合设定码率;ABR即Average Bit Rate,和CBR相比,ABR对码率的要求更宽松,要求在一定的时间范围内达到设定码率,ABR的峰值码率可超过设定码率,但应该是可控的,并且整个文件或流的总平均码率还是要和设定码率一致。一般来说,ABR的图像质量要好于CBR的图像质量,但是在一些实时流的应用场景中,是没办法使用ABR模式的,只能使用CBR模式。

  3.2 GOP和Reference

  在视频编码序列中,主要有三种编码帧:I帧、P帧、B帧,如下图3.1所示。

  ● I帧即Intra-coded picture(帧内编码图像帧),不参考其他图像帧,只利用本帧的信息进行编码
  ● P帧即Predictive-coded Picture(预测编码图像帧),利用之前的I帧或P帧,采用运动预测的方式进行帧间预测编码
  ● B帧即Bidirectionally predicted picture(双向预测编码图像帧),提供最高的压缩比,它既需要之前的图
像帧(I帧或P帧),也需要后来的图像帧(P帧),采用运动预测的方式进行帧间双向预测编码

  在视频编码序列中,GOP即Group of picture(图像组),指两个I帧之间的距离,Reference(参考周期)指两个P帧之间的距离(如下图3.1)。一个I帧所占用的字节数大于一个P帧,一个P帧所占用的字节数大于一个B帧(如下图3.1所示)。

  图3.1 I、P、B帧示意图

  所以在码率不变的前提下,GOP值越大,P、B帧的数量会越多,平均每个I、P、B帧所占用的字节数就越多,也就更容易获取较好的图像质量;Reference越大,B帧的数量越多,同理也更容易获得较好的图像质量。

  需要说明的是,通过提高GOP值来提高图像质量是有限度的,在遇到场景切换的情况时,H.264编码器会自动强制插入一个I帧,此时实际的GOP值被缩短了。另一方面,在一个GOP中,P、B帧是由I帧预测得到的,当I帧的图像质量比较差时,会影响到一个GOP中后续P、B帧的图像质量,直到下一个GOP开始才有可能得以恢复,所以GOP值也不宜设置过大。

  同时,由于P、B帧的复杂度大于I帧,所以过多的P、B帧会影响编码效率,使编码效率降低。另外,过长的GOP还会影响Seek操作的响应速度,由于P、B帧是由前面的I或P帧预测得到的,所以Seek操作需要直接定位,解码某一个P或B帧时,需要先解码得到本GOP内的I帧及之前的N个预测帧才可以,GOP值越长,需要解码的预测帧就越多,seek响应的时间也越长。

  3.3 运动预测

  H.264在运动预测上使用了很多新的算法,对于H.264编码器来说,预测的越精确,就意味着找到的相关性越多,图像质量损失的也就越少。

  4. 图像质量的通用评价标准

  图像质量评价的方法可分为主观评价和客观评价两大类。主观评价即采用人眼主观观察的方法对压缩图像进行打分评价,可依据的标准有《ITU-R BT.500》和《GYT+134-1998数字电视图像质量主观评价方法》。客观评价即采用客观的模型、公式进行计算,得出结果。和主观评价相比,客观评价的优点是执行简单、标准统一,但由于人眼视觉系统(HVS)十分复杂,目前还没有任何一个客观标准可以完全准确的模拟人眼视觉感受,所以要注意的是,客观评价可作为参考,但不能完全替代主观评价。客观评价的标准有许多,下面简单介绍一下比较常用的几种标准:

  MSE:

  MSE即均方误差(Mean Squared Error)。

  计算公式为:

  Rij 是原始图像内容,Cij 是压缩后的图像内容,M、N分别是图像的宽和高。

  PSNR:

  PSNR即峰值信噪比(Peak signal noise ratio),计算简单,物理意义清晰,在图像质量的客观评价中应用十分的广泛。

  计算公式为:

  n为每个像素点的比特数,MSE即上面提到的均方误差。

  从PSNR的公式里我们可以看出,PSNR计算时对图像中的各个像素点同样对待,没有充分考虑人眼的视觉特性。

  SSIM:

  SSIM即基于结构相似度(structure similarity)的图像质量评价方法,SSIM的理论认为图像具有很强的结构特性,结构信息是图像最主要的信息,人眼主要是提取视觉区域中图像的结构信息。

  SSIM方法将原始图像和失真图像划分成重叠或不重叠的子块,通过原始图像与失真图像的对应图像块的亮度相似函数(Luminance Comparison)、对比度相似函数(ContrastComparison)、结构相似函数(Structure Comparison)来计算失真图像块和原始图像对应块的结构相似度,评价图像的质量好坏。

  5. 大洋公司H.264编码器特点

  大洋公司在视音频编解码方面有着丰富的技术积累,近些年来持续在H.264方面加大研究力度,并不断取得进步。

  5.1 优秀的编码质量

  大洋公司的H.264编码器采用优秀的运动估计算法和码率分配策略,可以根据图像内容的不同进行自适应的调节,提供优秀的编码质量,PSNR可达到40db,特别是针对细节丰富的复杂画面,大洋公司的H.264编码器能够保留图像中的大量细节信息。

  如图5.1所示,我们对比大洋公司H.264编码器和另外两家厂商的H.264编码器的图像质量,其中,原始测试序列为1080/50i的YUV422无压缩序列(见图5.1中的第一行的大图)。我们把原始序列红圈中的草坪按1:1比例显示(见图5.1中的4个小图)进行对比:和另外两家厂商的H.264编码器相比,大洋公司的H.264编码器较多的保留了原始序列中的细节信息,草坪的纹理感、层次感清晰;M公司的H.264编码器出现了较明显的马赛克现象,图像质量模糊;T公司的H.264编码器虽然马赛克现象稍弱,整体比较平滑,但丢掉了细节,草坪的纹理感、层次感不强。

  5.2 精确的码率控制

  在一些低码率的应用场景(如手机电视)中,带宽资源极其敏感,对于码率控制的精度要求非常严格,大洋公司的H.264编码器可提供精确的码率控制,达到应用要求。

  5.3 高效的Seek响应速度

  在某些应用场景中(代理码率编辑、媒资编目等),用户经常需要进行帧精度的Seek操作。我们前面也提到过,在码率不变的前提下,GOP和Reference的值越大,越容易获取较高的图像质量,与此同时也会增加Seek操作(特别是反向Seek)的响应时间。针对长GOP H.264的Seek操作,大洋公司采用自有的特殊技术进行处理,比普通的处理方式节省了大约50%的时间开销。

  5.4 优秀的预处理技术

  在实际应用中,经常会有在压缩编码之前需要对信号或文件进行预处理的场景:

  ● 如果H.264文件的画幅和原始信号不一样,需要缩放,就需要(上)下变换的处理;

  ● 如果H.264文件需要在逐行扫描的显示设备(如电脑显示器)上播放,就需要做去交织处理以去除隔行效应。大洋公司在视音频及图像处理方面具备深厚的技术积累,拥有具有自主知识产权的高级运动与边缘补偿技术,该技术将光滑曲线滤波器生成算法、运动补偿算法、边缘检测及补偿算法、抗抖动算法进行了有机融合,其中,基于光滑曲线的滤波器生成算法利用曲线的可调节性和光滑性完美的解决了过渡带样本点的分布问题,可自适应的生成理想的低通滤波器,该滤波器在通带具有最大平坦性、过渡带光滑下降且宽度合适,不会产生“过冲”和“振铃”现象,阻带具有快速衰减性,非常适合于数字图像滤;而边缘预测及补偿算法可最大程度的保持图像中的边缘信息,极大的改善边缘锯齿和模糊等现象,大幅提升图像质量,该技术在视频去交织、下变换等方面可进行质量极佳的编码预处理。

  6. 结束语

  随着社会技术的不断进步,我们相信H.264技术会越来越广泛的在各种场景中得到应用,大洋公司也会在H.264技术上不断的进行探索和研究,更好的为用户和社会服务。

你可能感兴趣的:(H.264技术综述)