2005 6 电信工 视频压缩编码的新发展——H.264 周洪敏龚建荣 (南京邮电学院 南京2 1 0003) 摘要H.264是国际电联最新通过的新一代甚低码率视频编码标准。本文阐述比之前的视频编码标准在性能上 有很大提高的H.264。 关键词H.264熵编码 数字视频技术广泛应用于通信、计算机、广播电视 等领域,带来了会议电视、可视电话及数字电视、媒体 存储等一系列应用,促使了许多视频编码标准的产生。 视频压缩国际标准主要有由ITU—T制定的H.261、 H.262、H.263、H.264和由MPEG制定的MPEG一1、 大量工作,重新定义了适于图像的结构划分。在编码时, 图像帧各部分被划分到多个Slice结构中去,每个Slice 都可以被独立解码,不受其它部分的影响。Slice由图像 最基本的结构——宏块组成,每个宏块包含一个16×16 的亮度块和两个8×8的色度块。为进一步提高鲁棒性, 整个系统被划分为视频编码层和网络抽象层。视频编码 层主要描述要传输的视频数据所承载的视频内容。而网 络抽象层则是考虑不同应用,如视频会议通信、H.32X 连续包的视频传输或RTP/UDP/IP的通信。H.264应 用目标范围较宽,可以满足不同速率、不同解析度以及 不同传输(存储)场合的需求。 MPEG一2、MPEG一4,H.26x系列标准主要用于实时视 频通信,比如视频会议、可视电话等。MPEG系列标准 主要用于视频存储、视频广播和视频流媒体(如基于 Internet、DSL的视频、无线视频等)。随着市场的需求, 在尽可能低的存储情况下获得好的图像质量和低带宽图 像快速传输已成为视频压缩的两大难题。为此,lEO/ IEC和ITU—T两大国际标准化组织联手制定了新一代 视频压缩标准H.264。 2 H.264的特点 2.1帧内预测 对I帧的编码是通过利用空间相关性而非时间相关 1 H.264标准概述 H.264和以前的标准一样,在编码框架上还是沿用 以往的MC—DCT结构,即运动补偿加变换编码的混合 结构,因此它保留了一些先前标准的特点,如不受限制的 性实现的。以前标准只利用了一个宏块内部的相关性, 而忽视了宏块之间的相关性,所以一般编码后的数据量 较大。为了能进一步利用空间相关性,H.264引入了帧 内预测以提高压缩效率。简单地说,帧内预测编码就是 运动矢量,对运动矢量的中值预测等。但它采用“回归 基本”的简洁设计,不用众多的选项获得比MEPG一4好 得多的压缩性能;H.264加强了对各种信道的适应能 力,采用“网络友好”的结构和语法,有利于对误友和 丢包的处理;H.264在提高图像传输的容错性方面做了 用周围邻近的像素值来预测当前的像素值,然后对预测 误差进行编码。这种预测是基于块的,对于亮度分量, 块的大小可以在16×16和4×4之间选择,16×16块有 4种预测模式,4×4块有9种预测模式;对于色度分量, 12一 T 预测是对整个8×8块进行的,有4种预测模式。除了 DC预测外,其它每种预测模式对应不同方向上的预测。 2.2帧间预测 (1)预测时所用块的大小可变。由于基于块的运动 模型,假设块内的所有像素都做了相同的平移,在运动 比较剧烈或者运动物体的边缘处这一假设会与实际出入 较大,从而导致较大的预测误差,这时减小块的大小可 以使假设在小的块中依然成立。另外小的块所造成的块 效应相对也小,所以一般来说,小的块可以提高预测的 效果。为此,H.264一共采用了7种方式对一个宏块进 行分割,每种方式下块的大fl'Tll形状都不相同,这就使 编码器可以根据图像的内容选择最好的预测模式。与仅 使用16×16块进行预测相比,使用不同大小和形状的 块可以使码率节省15%以上。 (2)更精细的预测精度。在H.264中,luma分量 的运动矢量(MV)使用1/4像素精度。chroma分量的 MV由luma MV导出,由于chroma分辨率是luma的 半(对4:2:0),所以其MV精度将为1/8,这也就是 说1个单位的chroma MV所代表的位移仅为chroma 分量取样点间距离的1/8。如此精细的预测精度较之整 数精度可以使码率节省超过20%。 (3)H.264支持多参考帧预测,即可以有多于一个 (最多5个)的在当前帧之前解码的帧可以作为参考帧 产生对当前帧的预测。这适用于视频序列中含有周期性 运动的情况。采用这一技术,可以改善运动估计的性能, 提高H.264解码器的错误恢复能力,但同时也增加了缓 存的容量以及编解码器的复杂性。不过,H.264的提出 是基于半导体技术的飞速发展,因此这两个负担在不久 的将来会变得微不足道。较之只使用一个参考帧,使用 5个参考帧可以节省码率5~10%。 (4)抗块效应滤波器的作用是消除经反量化和反 变换后重建图像中由于预测误差产生的块效应,即块边 缘处的像素值跳变,从而一来改善图像的主观质量,二 来减少预测误差。H.264中的Deblocking Filter还能 够根据图像内容做出判断,只对由于块效应产生的像素 值跳变进行平滑,而对图像中物体边缘处的像素值不连 续给予保留,以免造成边缘模糊。与以往的Deblocking Filter不同的是,经过滤波后的图像将根据需要放在缓 存中用于帧间预测,而不是仅仅在输出重建图像时用来 改善主观质量,也就是说该滤波器位于解码环中而非解 码环的输出外,因而它又称作LoopFilter。需要注意的 是,对于帧内预测,使用的是未经过滤波的重建图像。 2.3整数变换 H.264对帧内或帧间预测的残差进行DCT变换编 码。为了克服浮点运算带来的硬件设计复杂,更重要的 是舍入误差造成的编码器和解码器之间不匹配的问题, 新标准对DCT的定义做了修改,使得变换仅用整数加 减法和移位操作即可实现,这样在不考虑量化影响的情 况下,解码端的输出可以准确地恢复编码端的输入。当 然这样做的代价是压缩性能的略微下降。此外,该变换 是针对4×4块进行的,这也有助于减少块效应。 为进一步利用图像的空间相关性,在对chroma的 预测残差和16×16帧内预测的预测残差进行上述整数 DCT变换后,标准还将每个4×4变换系数块中的DC 系数组成2×2或4×4)k小的块,进一步做哈达玛变换。 2.4熵编码 对于Slice层以上的数据,H.264采用Exp-Golomb 码,这是一种没有自适应能力的VLC。而对于Slice层 (含以下的数据),如果是残差,H.264有两种熵编码的 方式,基于上下文的自适应变长码(CAVLC,Context— based Adaptive Variable Length Coding)和基于上 下文的自适应二进制算术编码(CABAC,Context— based Adaptive Binary Arithmetic Coding)。如果 不是残差,H.264采用Exp—Golomb码或CABAC编 码,视编码器的设置而定。 241 CAVLC VLC的基本思想就是对出现频率大的符号使用较 短的码字,而出现频率小的符号采用较长的码字。这样 可以使得平均码长最小。在CAVLC中,H.264采用若干 VLC码表,不同的码表对应不同的概率模型。编码器能 够根据上下文,如周围块的非零系数或系数的绝对值大 小,在这些码表中自动地选择,最大可能地与当前数据 13. 2005 6 电信工 的概率模型匹配,从而实现了上下文自适应的功能。 2.42 CABAC 大的失真,而且这种失真会向后传递。一种简单的解决 方法就是传输帧内编码的B2,但是一股I帧的数据量很 算术编码是一种高效的熵编码方案,其每个符号所 对应的码长被认为是分数。由于对每一个符号的编码都 大,这种方法会造成传输码率的陡然增加。根据前面的 假设,由于是对同一信源进行编码,尽管比特率不同, 但切换前后的两帧必然有相当大的相关性,所以编码器 可以将A1作为B2的参考帧,对B2进行帧间预测,预 测误差就是SP Slice,然后通过传递SP Slie完成码流的 c与以前编码的结果有关,所以它考虑的是信源符号序列 整体的概率特性,而不是单个符号的概率特性,因而它 能够更大程度地逼近信源的极限熵,降低码率。 为了绕开算术编码中无限精度小数的表示问题以及 对信源符号概率进行估计,现代的算术编码多以有限状 态机的方式实现,H.264的CABAC便是一个例子,其 它的例子还有JPEG2000。在CABAC中,每编码一个 二进制符号,编码器就会自动调整对信源概率模型(用 切换。与常规P帧不同的是,生成SP Slice所进行的预 测是在Al和B2的变换域中进行的。SP Slie要求切换后 cB2的图像应和直接传送目标码流时一样。显然,如果切 换目标是毫不相关的另一码流,SP Slice就不适用了。 2.6灵活的宏块排序 灵活的宏块排序(FMO),是指将一幅图像中的宏 块分成几个组,分别独立编码,某一个组中的宏块不一 定是在常规的扫描顺序下前后连续,而可能是随机地分 散在图像中的各个不同位置。这样在传输时如果发生错 误,某个组中的某些宏块不能正确解码时,解码器仍然 可以根据图像的空间相关性依靠其周围正确译码的像素 对其进行恢复。 个“状态”来表示)的估计,随后的二进制符号就在 这个更新了的概率模型基础上进行编码。这样的编码器 不需要信源统计特性的先验知识,而是在编码过程中自 适应地估计。显然,与CAVLC编码中预先设定好若干 概率模型的方法比较起来,CABAC有更大的灵活性, 可以获得更好的编码性能,大约1 0%码率的降低。 以上介绍的特点都是用来提高H.264的编码性能 的,此外H.264还具有很好的错误恢复能力和网络适应 性,下面介绍其中的一些特点。 2.5 SP Slice 3结束语 H.264标准的推出,是视频编码标准的一次重要进 步,它与现有的MPEG一2、MPEG~4 SP及H.263相 比,具有明显的优越性,特别是在编码效率上的提高, 使之能用于许多新的领域。尽管H.264的算法复杂度是 现有编码压缩标准的4倍以上,随着集成电路技术的快 速发展,H.264的应用将成为现实。 SP Slice的主要目的是用于不同码流的切换,此外 也可用于码流的随机访问、快进快退和错误恢复。这里 所说的不同码流是指在不同比特率限制下对同一信源进 行编码所产生的码流。设切换前传输码流中的最后一帧 为Al,切换后的目标码流第一帧为B2(假设是P帧), 由于B2的参考帧不存在,所以直接切换显然会导致很 New Development of Video Coding Zhou Hongmin Gong Jianrong (Nanjing University of Posts and Telecom,Nanjing 2 1 0003) Abstract The H.264 is a new generation video coding standard of the very low code rate that the ITU passes lately.This text is elaborating the key technique that makes H.264 to have great improvement compare of video coding standard of before. Keywords H.264,entropy code 14一