IPTV中的视音频编码标准——H.264编码标准
发布时间: 2022-06-09 11:18:45
ITU所定义的一系列视频压缩标准H.26x主要用于视频通信应用中,例如,基于ISDN网络的H.320框架标准的视频标准为H.261、H.262和H.263,基于LAN网络H.323和PSTN网络H.324框架标准中的视频标准为H.261和H.263。由于H.264在压缩性能方面所具有的优势,它在实时视频通信、广播电视、视频存储播放等领域中得到了广泛应用。

与以前的视频压缩标准H.261.H.263、MPEG-l、MPEG-2、MPEG-4类似,H.264也是采用帧间预测和帧内变换的混合编码方法来消除或减少图像中的信息冗余。但是,H.264釆用了许多新技术以提高压缩效率。在相同的图像质量下,H.264所需码率约为MPEG-2的36%、H.263的51%、MPEG-4的61%。这种高压缩效率可以给视频实时通信、数字广播电视、视频存储等应用带来很多好处,提高人们的视频欣赏质量。当然,与这种高压缩效率相伴的是H.264需要较高的实现复杂度。与MPEG-2相比,虽然H.264的压缩性能提高一倍以上,H.264的计算复杂度也要提高两倍以上。
1.H.264标准概述
H.264也是釆用DPCM加变换编码的混合编码模式。但它釆用回归基本的简洁设计,不用众多的选项而获得了比H.263++好的压缩性能;加强了对各种信道的适应能力,釆用网络友好的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输场合的需求。
技术上它集中了以往标准的优点,并吸收了标准制定中积累的经验。与H.263v2或MPEG-4简单类相比,H.264在使用与上述编码方法类似的最佳编码器时,在大多数码率下最多可节省50%的码率。H.264在所有码率下都能持续提供较高的视频质量。H.264能工作在低时延模式以适应实时通信的应用,同时又能很好地工作在没有时延限制的应用,如视频存储和以服务器为基础的视频流式应用。H.264提供了包传输网中处理包丢失所需的工具,以及在易误码的无线网中处理比特误码的工具。
在系统层面上H.264提出了一些新的概念,在视频编码层(Video Coding Layer,VCL)和网络提取层(Network Abstraction Layer,NAL)之间进行概念分割,前者是对视频核心压缩内容的表述,后者是对通过特定类型网络进行递送的表述,这样的结构便于信息的封装和对信息进行更好的优先级控制。

2.H.264标准的关键技术
(1) 帧内预测编码
帧内编码主要用来降低图像的空间冗余。为了提高H.264帧内编码的效率,在给定帧中充分利用相邻宏块的空间相关性,相邻的宏块通常含有相似的属性。因此,在对一给定宏块编码时,首先可以根据周围的宏块预测当前宏块,然后对预测值与实际值的差值进行编码,这样,相对于直接对该帧编码而言,可以大大减小码率。H.264提供6种模式进行4X4像素宏块预测,包括1种直流预测和5种方向预测。
(2) 帧间预测编码
帧间预测编码利用连续帧中的时间冗余来进行运动估计和补偿。H.264的运动补偿支持以往的视频编码标准中的大部分关键特性,而且灵活地添加了更多的功能。除了支持P帧、B帧外,H.264还支持一种新的流间传送帧SP帧。码流中包含SP帧后,能在有类似内容但有不同码率的码流之间快速切换,同时支持随机接入和快速回放模式。
H.264的运动估计有以下4个特性。
① 不同大小和形状的宏块分割
对每一个16X16像素宏块的运动补偿可以采用不同的大小和形状,H.264支持7种模式。小块模式的运动补偿为运动详细信息的处理提高了性能,减少了方块效应,提高了图像质量。
② 高精度的亚像素运动补偿
在H.263中采用的是半像素精度的运动估计,而在H.264中可以采用1/4或者1/8像素精度的运动估值。在要求相同精度的情况下,H.264使用1/4或者1/8像素精度的运动估计后的残差要比H.263釆用半像素精度运动估计后的残差来得小。这样在相同精度下,H.264在帧间编码中所需的码率更小。
③ 多帧预测
H.264提供可选的多帧预测功能,在帧间编码时,可选5个不同的参考帧,提供了更好的纠错性能,这样更可以改善视频图像质量。这一特性主要应用于以下场合:周期性的运动、平移运动、在两个不同的场景之间来回变换摄像机的镜头。
④ 去块滤波器
H.264定义了自适应去除块效应的滤波器,这可以处理预测环路中的水平和垂直块边缘,大大减少了方块效应。
(3) 整数变换
在变换方面,H.264使用了基于4X4像素块的类似于DCT的变换,但使用的是以整数为基础的空间变换,不存在反变换因为取舍而存在误差的问题。与浮点运算相比,整数DCT变换会引起一些额外的误差,但因为DCT变换后的量化也存在量化误差,与之相比整数DCT变换引起的量化误差影响并不大。此外,整数DCT变换还具有减少运算量和复杂度,有利于向定点DSP移植的优点。
(4) 量化
H.264中可选32种不同的量化步长,这与H.263中有31个量化步长很相似,但是在H.264中,步长是以12.5%的复合率递进的,而不是一个固定常数。
在H.264中,变换系数的读出方式也有两种:“Z”字形扫描和双扫描。大多数情况下使用简单的“Z”字形扫描;双扫描仅用于使用较小量化级的块内,有助于提高编码效率。
(5)熵编码
视频编码处理的最后一步就是熵编码,在H.264中釆用了两种不同的熵编码方法:通用可变长编码(UVLC)和基于文本的自适应二进制算术编码(CABAC)。
在H.263等标准中,根据要编码的数据类型有变换系数、运动矢量等,采用不同的VLC码表。H.264中的UVLC码表提供了一个简单的方法,不管符号表述什么类型的数据,都使用统一变字长编码表。其优点是简单,缺点是单一的码表是从概率统计分布模型得出的,没有考虑编码符号间的相关性,在中高码率时效果不是很好。
因此,H.264中还提供了可选的CABAC方法。算术编码使编码和解码两边都能使用所有句法元素(变换系数、运动矢量)的概率模型。为了提高算术编码的效率,通过内容建模的过程,使基本概率模型能适应随视频帧而改变的统计特性。内容建模提供了编码符号的条件概率估计,利用合适的内容模型,存在于符号间的相关性可以通过选择目前要编码符号邻近的已编码符号的相应概率模型来去除,不同的句法元素通常保持不同的模型。