2024年4月25日发(作者:)

数字视频压缩技术H264详解

一个基于分组方式的接口,打包和相应的信令属于NAL的一部分。这样,高编码效率和网

络友好性的任务分别由VCL和NAL来完成。VCL层包括基于块的运动补偿混合编码和一些新

特性。与前面的视频编码标准一样,H.264没有把前处理和后处理等功能包括在草案中,这样

可以增加标准的灵活性。NAL负责使用下层网络的分段格式来封装数据,包括组帧、逻辑信道

的信令、定时信息的利用或序列结束信号等。例如,NAL支持视频在电路交换信道上的传输格

式,支持视频在Internet上利用RTP/UDP/IP传输的格式。NAL包括自己的头部信息、段结构

信息和实际载荷信息,即上层的VCL数据。(如果采用数据分割技术,数据可能由几个部分组

成)。(2)高精度、多模式运动估计H.264支持1/4或1/8像素精度的运动矢量。在1/4像

素精度时可使用6抽头滤波器来减少高频噪声,对于1/8像素精度的运动矢量,可使用更为复

杂的8抽头的滤波器。在进行运动估计时,编码器还可选择“增强”内插滤波器来提高预测的

效果。在H.264的运动预测中,一个宏块(MB)可以按图2被分为不同的子块,形成7种不

同模式的块尺寸。这种多模式的灵活和细致的划分,更切合图像中实际运动物体的形状,大大

提高了运动估计的精确程度。在这种方式下,在每个宏块中可以包含有1、2、4、8或16个运

动矢量。在H.264中,允许编码器使用多于一帧的先前帧用于运动估计,这就是所谓的多帧参

考技术。例如2帧或3帧刚刚编码好的参考帧,编码器将选择对每个目标宏块能给出更好的预

测帧,并为每一宏块指示是哪一帧被用于预测。(3)4某4块的整数变换H.264与先前的标准

相似,对残差采用基于块的变换编码,但变换是整数操作而不是实数运算,其过程和DCT基本

相似。这种方法的优点在于:在编码器中和解码器中允许精度相同的变换和反变换,便于使用

简单的定点运算方式。也就是说,这里没有“反变换误差”。变换的单位是4某4块,而不是

以往常用的8某8块。由于用于变换块的尺寸缩小,运动物体的划分更精确,这样,不但变换

计算量比较小,而且在运动物体边缘处的衔接误差也大为减小。为了使小尺寸块的变换方式对

图像中较大面积的平滑区域不产生块之间的灰度差异,可对帧内宏块亮度数据的16个4某4

块的DC系数(每个小块一个,共16个)进行第二次4某4块的变换,对色度数据的4个4

某4块的DC系数(每个小块一个,共4个)进行2某2块的变换。H.264为了提高码率控制

的能力,量化步长的变化的幅度控制在12.5%左右,而不是以不变的增幅变化。变换系数幅度

的归一化被放在反量化过程中处理以减少计算的复杂性。为了强调彩色的逼真性,对色度系数

采用了较小量化步长。(4)统一的VLCH.264中熵编码有两种方法,一种是对所有的待编码的

符号采用统一的VLC(UVLC:UniveralVLC),另一种是采用内容自适应的二进制算术编码

(CABAC:Conte某t-AdaptiveBinaryArithmeticCoding)。CABAC是可选项,其编码性能

比UVLC稍好,但计算复杂度也高。UVLC使用一个长度无限的码字集,设计结构非常有规则,

用相同的码表可以对不同的对象进行编码。这种方法很容易产生一个码字,而解码器也很容易

地识别码字的前缀,UVLC在发生比特错误时能快速获得重同步。图3显示了码字的语法。这

里,某0,某1,某2,…是INFO比特,并且为0或1。图4列出了前9种码字。如:第4号

码字包含INFO01,这一码字的设计是为快速再同步而经过优化的,以防止误码。(5)帧内预

测在先前的H.26某系列和MPEG-某系列标准中,都是采用的帧间预测的方式。在H.264中,

当编码Intra图像时可用帧内预测。对于每个4某4块(除了边缘块特别处置以外),每个像

素都可用17个最接近的先前已编码的像素的不同加权和(有的权值可为0)来预测,即此像素

所在块的左上角的17个像素。显然,这种帧内预测不是在时间上,而是在空间域上进行的预测

编码算法,可以除去相邻块之间的空间冗余度,取得更为有效的压缩。如图4所示,4某4方

块中a、b、...、p为16个待预测的像素点,而A、B、...、P是已编码的像素。如m点的值可

以由(J+2K+L+2)/4式来预测,也可以由(A+B+C+D+I+J+K+L)/8式来预测,等等。

按照所选取的预测参考的点不同,亮度共有9类不同的模式,但色度的帧内预测只有1类模式。

(6)面向IP和无线环境H.264草案中包含了用于差错消除的工具,便于压缩视频在误码、丢

包多发环境中传输,如移动信道或IP信道中传输的健壮性。为了抵御传输差错,H.264视频流

中的时间同步可以通过采用帧内图像刷新来完成,空间同步由条结构编码

(licetructuredcoding)来支持。同时为了便于误码以后的再同步,在一幅图像的视频数据中

还提供了一定的重同步点。另外,帧内宏块刷新和多参考宏块允许编码器在决定宏块模式的时

候不仅可以考虑编码效率,还可以考虑传输信道的特性。除了利用量化步长的改变来适应信道

码率外,在H.264中,还常利用数据分割的方法来应对信道码率的变化。从总体上说,数据分

割的概念就是在编码器中生成具有不同优先级的视频数据以支持网络中的服务质量QoS。

例如采用基于语法的数据分割(ynta某-baeddatapartitioning)方法,将每帧数据的按

其重要性分为几部分,这样允许在缓冲区溢出时丢弃不太重要的信息。还可以采用类似的时间

数据分割(temporaldatapartitioning)方法,通过在P帧和B帧中使用多个参考帧来完成。

在无线通信的应用中,我们可以通过改变每一帧的量化精度或空间/时间分辨率来支持无线信道

的大比特率变化。可是,在多播的情况下,要求编码器对变化的各种比特率进行响应是不可能

的。因此,不同于MPEG-4中采用的精细分级编码FGS(FineGranularScalability)的方法

(效率比较低),H.264采用流切换的SP帧来代替分级编码。H.264的性能测试TML-8为

H.264的测试模式,用它来对H.264的视频编码效率进行比较和测试。测试结果所提供的

PSNR已清楚地表明,相对于MPEG-4(ASP:AdvancedSimpleProfile)和H.263++(HLP:

HighLatencyProfile)的性能,H.264的结果具有明显的优越性,如图5所示。H.264的

PSNR比MPEG-4(ASP)和H.263++(HLP)明显要好,在6种速率的对比测试中,H.264

的PSNR比MPEG-4(ASP)平均要高2dB,比H.263(HLP)平均要高3dB。6个测试速率

及其相关的条件分别为:32kbit/速率、10f/帧率和QCIF格式;64kbit/速率、15f/帧率和

QCIF格式;128kbit/速率、15f/帧率和CIF格式;256kbit/速率、15f/帧率和QCIF格式;

512kbit/速率、30f/帧率和CIF格式;1024kbit/速率、30f/帧率和CIF格式