本文以适用于在IP网上提供多媒体业务的H.323系统为主进行阐述。H.264是由JVT为实现视频的更高压缩比,更好的图像质量和良好的网络适应性而提出的新的视频编解码标准。事实证明,H.264编码更加节省码流,它内在的抗丢包、抗误码能力和良好网络适应性使它非常适于IP传输,H.264有望成为H.323系统中首选的视频标准。
H.323系统对视频编解码标准提出了以下三个主要要求:
(1)一些IP网络接入方式如xDSL可提供的带宽有限,除去音频、数据占用的带宽,传输视频的可用带宽就更少,这就要求视频编解码压缩率高,这样就可以在一定的比特率下具有更好的图像质量。
(2)抗丢包性能和抗误码性能好,适应各种网络环境,包括丢包和误码严重的无线网络。
(3)网络适应性好,便于视频流在网络中传输。
二、H.264适于H.323系统的三个技术优势
H.264在制定时充分考虑了多媒体通信对视频编解码的各种要求,并借鉴了以往视频标准的研究成果,因而具有明显的优势。以下将结合H.323系统对视频编解码技术的要求,阐述H.264的三个优势。
1. 压缩率和图像质量方面
对传统的帧内预测、帧间预测、变换编码和熵编码等算法的改进,使H.264的编码效率和图像质量在以往标准的基础上进一步提高。
(1)可变块大小:帧间预测时可以灵活选择块的大小。在宏块(MB)划分上H.264采用了16×16,16×8,8×16,8×8四种模式;当划分为8×8模式时,又可进一步采用8×4、4×8、4×4三种子宏块划分模式进一步划分,这样可以使运动物体的划分更加精确,减小预测误差,提高编码效率。帧内预测一般采取两种亮度预测模式:Intra_4×4和Intra_16×16。Intra_4×4适合图像中细节丰富的区域,而Intra_16×16模式更适合粗糙的图像区域。
(2)高精度运动估值:在H.264中亮度信号运动补偿预测的精度是1/4像素。如果运动矢量指向参考图像的整像素位置,预测值就是该位置上参考图像像素的值;否则使用6阶FIR滤波器的线性内插获得1/2像素位置的预测值,通过取整数和1/2像素位置像素值均值的方式获得1/4像素位置的值。显然采用高精度运动估计会进一步减小帧间预测误差。
(3)多参考帧运动估值:每一个M×N亮度块都要经过运动补偿预测得到运动矢量和参考图像索引,子宏块中的每个子宏块划分都会有不同的运动矢量。选择参考图像过程是在子宏块层次上进行的,因而一个子宏块中的多个子宏块划分在预测时使用相同的参考图像,而同一个slice的多个子宏块之间选择的参考图像可以不同,这就是多参考帧运动估值。
(4)参考图像的选取更加灵活:参考图像甚至可以是采用双向预测编码方式的图像,这就允许选取与当前图像更加匹配的图像为参考图像进行预测,从而可以减小预测误差。
(5)加权预测:允许编码器以一定的系数对运动补偿预测值进行加权,从而在一定的场景下可以提高图像质量。
(6)运动补偿循环内的消除块效应滤波器:为消除在预测和变换过程中引入的块效应,H.264也采用了消除块效应滤波器,但不同的是H.264的消除块效应滤波器位于运动估计循环内部,因而可以利用消除块效应以后的图像去预测其他图像的运动,从而进一步提高预测精度。
2. 抗丢包和抗误码方面
参数集、片的使用、FMO、冗余片等关键技术的使用可以大大提高系统的抗丢包和抗误码性能。
(1)参数集:参数集及其灵活的传送方式会大大降低因关键的头信息丢失而造成错误发生的可能。为保证参数集可靠地到达解码器端,可以采用重发的方式多次发送同一参数集,或传送多个参数集。
(2)片(slice)的使用:图像可以划分成一个或几个片。将图像划分为多个片,当某一片不能正常解码时的空间视觉影响就会大大降低,而且片还提供了重同步点。
(3)PAFF和MBAFF:当对隔行扫描图像进行编码时,由于两个场之间存在较大的扫描间隔,这样,对运动图像来说帧中相邻两行的空间相关性相对于逐行扫描时就会减小,这时对两个场分别进行编码会更节省码流。对帧来说,存在三种可选的编码方式,将两场合并作为一帧进行编码或将两场分别编码或将两场合并起来作为一帧,但不同的是将帧中垂直相邻的两个宏块合并为宏块对进行编码。前两种称为PAFF编码,对运动区域进行编码时场方式有效,非运动区域由于相邻两行有较大的相关性,因而帧方式会更有效。当图像同时存在运动区域和非运动区域时,在MB层次上,对运动区域采取场方式,对非运动区域采取帧方式会更加有效,这种方式就称为MBAFF。
(4)FMO:通过FMO可以进一步提高片的差错恢复能力。通过片组(slice group)的使用,FMO改变了图像划分为片和宏块的方式。宏块到片组的映射定义了宏块属于哪一个片组。利用FMO技术,H.264定义了七种宏块扫描模式。
(1)帧内预测:H.264借鉴了以往视频编解码标准在帧内预测上的经验,值得注意的是,在H.264中,IDR图像可以使参考图像缓存无效,之后的图像在解码时不再参考IDR图像之前的图像,因而IDR图像具有很好的重同步作用。在一些丢包和误码严重的信道中,可以采取不定期传送IDR图像的方式进一步提高H.264的抗误码和抗丢包性能。
(2)冗余图像:为提高H.264的解码器在发生数据丢失时的顽健性,可以采用传送冗余图像的方式。当基本图像丢失时,可以通过冗余图像重构原图像。
(3)数据划分:由于运动矢量和宏块类型等信息相对于其他信息具有更高的重要性,因而在H.264中引入了数据划分的概念,将片中语义彼此相关的语法元素放在同一个划分中。在H.264中有三类不同的数据划分,三类数据划分分开传送,若第二类或第三类划分的信息丢失,使用差错恢复工具仍然可以通过第一类划分中的信息对丢失信息进行适当恢复。
(4)多参考帧运动估值:多参考帧运动估值不但可以提高编码器的编码效率,还可以提高差错恢复能力。在H.323系统中,通过使用RTCP,当编码器得知有参考图像丢失时,可以选择解码器已经正确接收的图像作为参考图像。
(5)为阻止错误在空间上的蔓延,解码器端可以指定当P片或B片中的宏块在做帧内预测时不使用相邻的非帧内编码宏块作为参考。
3. 网络适应性方面
为适应各种网络环境和应用场合,H.264定义了视频编码层(VCL)和网络提取层(NAL)。其中VCL功能是进行视频编解码,包括运动补偿预测,变换编码和熵编码等功能;NAL用于采用适当的格式对VCL视频数据进行封装打包。
(1)NAL Units:视频数据封装在整数字节的NALU中,它的第一个字节标志该单元中数据的类型。H.264定义了两种封装格式。基于包交换的网络(如H.323系统)可以使用RTP封装格式封装NALU。而另外一些系统可能要求将NALU作为顺序比特流传送,为此H.264定义了一种比特流格式的传输机制,使用start_code_prefix将NALU封装起来,从而确定NAL边界。
(2)参数集:以往视频编解码标准中GOBGOP图像等头信息是至关重要的,包含这些信息的包的丢失常导致与这些信息相关的图像不能解码。为此H.264将这些很少变化并且对大量VCL NALU起作用的信息放在参数集中传送。参数集分为两种,即序列参数集和图像参数集。为适应多种网络环境,参数集可以带内传送,也可以采用带外方式传送。
三、在H.323系统中实现H.264
由于H.264是一种新的视频编解码标准,在H.323体系中应用H.264存在一些问题,比如如何在H.245能力协商过程中定义实体的H.264能力,因此必须对H.323标准进行必要的补充和修改。为此,ITU-T制定了H.241标准。本文仅介绍与H.323相关的修改。
首先,要规定如何在H.245能力协商过程中定义H.264能力。H.264能力集是一个包含一个或多个H.264能力的列表,每一个H.264能力都包含Profile和Level两个必选参数和CustomMaxMBPS、CustomMaxFS等几个可选参数。在H.264中,Profile用于定义生成比特流的编码工具和算法,Level则是对一些关键的参数要求。H.264能力包含在GenericCapability结构中,其中CapabilityIdenTIfier的类型为standard,值为0.0.8.241.0.0.1,用于标识H.264能力。MaxBitRate用于定义最大比特率。Collapsing字段包含H.264能力参数。Collapsing字段第一个条目是Profile,ParameterIdenTIfier类型为standard,值为41,用于标识Profile,ParameterValue类型为booleanArray,其值标识Profile,可以为64、32或16,这三个值依次表示Baseline、Main和Extended三个Profile;Collapsing字段第二个条目是Level,ParameterIdenTIfier类型为standard,值为42,用于标识Level,ParameterValue类型为unsignedMin,其值标识H.264 AnnexA中定义的15个可选的Level值。其他的几个参数作为可选项出现.
其次,由于H.264中图像的组织结构与传统的标准不同,一些原有的H.245信令不在适用于H.264,如MiscellaneousCommand中的videoFastUpdateGOB等,因此H.241重新定义了几个信令提供相应功能。
最后,H.264的RTP封装参考RFC 3550,载荷类型(PT)域未作规定。
四、结束语
作为一种新的国际标准,H.264在编码效率、图像质量、网络适应性和抗误码方面都取得了成功。但随着终端和网络的快速发展,对视频编解码的要求在不断提高,因此H.264仍在继续地完善和发展以适应新的要求。现在对H.264的研究主要集中在如何进一步降低编解码时延、算法优化和进一步提高图像质量上。目前,使用H.264进行编解码的视频会议系统越来越多,大多数做到了在Baseline Profile上的互通。随着H.264自身的不断完善和视频通信的不断普及,相信H.264的应用将越来越广泛。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)