吴培森
本文作者吴培森先生,河北省任丘市汇利科技有限责任公司成员。
关键词:H.264 增益 编码
随着经济的发展和技术的进步,市场对高性能视频业务的需求不断膨胀,原有的压缩视频标准已经不能够满足要求,新的压缩视频技术将拥有广阔的市场空间。H.264/AVC是目前由ITU-T的视频编码专家组(VCEG)及ISO/IEC的活动图像专家组(MPEG)大力发展研究的、适应于低码率传输的新一代压缩视频标准。2003年3月由两个专家组组成的联合视频专家组(JVT)公布了这一压缩视频标准的最终草案,此标准被称为ITU-T的H.264协议或ISO/IEC的MPEG-4的高级视频编码部分。基于协议内容及仿真结果,本文对此协议的主要技术特征、基本算法进行了分析并给出了相关部分的性能对比。
一 H.264的主要技术特征分析
H.264的编解码框架与以前提出的标准,如H.261、H.263及MPEG-1/2/4并无显著变化,也是基于混合编码的方案:以运动矢量代表图像序列各帧的运动内容,使用前面已解码帧对其进行运动估计和补偿或使用帧内预测技术,所得的图像参差值要经过变换、量化、熵编码等部分的处理。所以,新标准的性能提升在于各个部分的技术方案的改进及新算法的应用。
新标准在提高图像传输的容错性方面做了大量工作,重新定义了适于图像的结构划分。在编码时,图像帧各部分被划分到多个Slice结构中去,每个Slice都可以被独立解码,不受其它部分的影响。Slice由图像最基本的结构—宏块组成,每个宏块包含一个16×16的亮度块和两个8×8的色度块。
为进一步提高鲁棒性,整个系统被划分为视频编码层和网络抽象层。视频编码层主要描述要传输的视频数据所承载的视频内容。而网络抽象层则是考虑不同的应用,如视频会议通信、H.32X连续包的视频传输或RTP/UDP/IP的通信。
H.264标准分成三个框架(Profile):Baseline、Main Profile及X Profile,代表针对不同应用的算法集及技术限定。Baseline主要包含低复杂度、低延时的技术特征,主要针对交互式的应用,考虑到恶劣环境下的容错性,内容基本都被其它更高级别的Profile所包含;Main Profile是针对更高编码效率的应用,如视频广播;X Profile 的设计主要针对流媒体的应用,在这一框架中所有容错技术、对比特流的灵活访问及切换技术都将包括其中。
1. Baseline的解码器只对I Slice及P Slice进行操作
对于帧间预测,相比以前的标准,为了更精确地对图像的运动内容进行预测补偿,新标准允许宏块更进一步划分为16×16、16×8、8×16、8×8、8×4、4×8、4×4的子块;运动估计精确到经由6-tap滤波器得到的1/4象素位置;运动矢量由相邻块预测得到,其预测的差值被编码传输。H.264支持多参考帧的预测,规定运动估计使用的参考帧数最多可达15帧,多参考帧的使用大大提高了对图像传输的容错性,抑制了错误在空间和时间上的蔓延。
对于所有的Slice编码类型,H.264支持两类帧内编码:4×4与16×16编码模式。对于4×4模式,每一个亮度4×4块有8种不同方向上的预测模式及DC预测模式;对于16×16模式,每个16×16亮度块有4种帧内预测模式。而对于宏块的8×8色度采样,采用与亮度16×16几乎相同的预测模式。为了保证Slice的编码独立性,帧内预测是不允许跨越Slice边界的。
对于变换、量化部分,不同于以前标准对预测参差值的变换编码使用DCT变换,H.264使用了简单的整数变换。这种变换与DCT相比,压缩性能几乎相同且有许多优势,其核心变换的计算只使用加减、移位运算,避免了精度的损失。对变换参差系数的量化使用了52级步长的量化器,而H.263标准只有31级。量化步长以12.5%递增,量化步长范围的扩大使得编码器能够更灵活、精确地进行控制,在比特率和图像质量之间达到折中。
对熵编码部分,对于要传输的量化变换系数,当使用基于上下文的变长编码(CAVLC)时,根据前面已编码传输的量化变换系数值的大小来选择接下来系数编码要使用的变长编码表。由于变长编码表的设计是基于相应的统计条件,所以其性能要优于使用单一变长编码表。对其它数据如头信息等,使用一种单一的变长编码表(Exp-Golomb Code)。
新标准仍然使用基于块的预测及重构方式,为了去除由此产生的影响图像主观质量的方块效应,H.264使用了去块效应滤波器。其主要思想是当块边界上两边差较小时,就使用滤波器使差别“平滑”掉;若边界上图像特征明显,就不使用滤波。这样既是为了减弱“块效应”的影响,又避免了滤掉图像的客观特征,同时在相同主观质量下使得比特率减少5~10%。
对于图像数据的组织及传输,在H.264标准中的图像宏块能够以灵活的宏块组织顺序(FMO)划分为多个Slice Group;Slice之间相互独立,可以任意的顺序传输到解码端(ASO)。在比特流中Slice可以使用重复的方式(RS)传输,在Slice数据出错的情况下可用来进行恢复,增强了图像传输的鲁棒性。同时Slice间的相互独立性抑制了错误的空间传播,提高了比特流的容错性。
2. Main Profile的技术特征
Main Profile包含Baseline Profile的所有算法并具有额外的技术特征,但它并不支持FMO、ASO及RS等技术,只支持对I、P、B Slice的处理操作。
在此框架内提出了适配块划分尺寸的变换(ABT)这一概念。此概念是针对帧间编码的,其主要思想是将对预测参差进行变换编码的块尺寸与用来进行运动补偿的块尺寸联系起来。这样就尽可能地利用最大的信号长度进行变换编码。但是,由于复杂度的原因,进行变换的最大块尺寸被限制在8×8以下。
对熵编码部分,为更高效地进行编码,这里使用了基于上下文的算术编码(CABAC),使熵编码的性能进一步提高。与CAVLC相比较,在相同图像质量下,编码电视信号使用CABAC将会使比特率减少10~15%。
另外,Main Profile不支持多个Slice Group的划分。
3. 相关的编码问题
如何对已提出的预测模式进行选择(Mode Decision)和使用运动估计策略(ME)历来都是视频编码实现的重点研究课题。在H.263标准的实现软件中,对模式的选择是简单的基于对阀值的比较。在新标准的测试软件中使用了拉格朗日率失真优化策略,它基于使用每种图像块尺寸和每种预测模式而产生的参差及其传输的码率。这样,模式选择可以取得优化的率失真性能,但这是以提高运算复杂度为代价的。此优化操作是对下面拉格朗日函数的最小化:
J=SATD+λ·R
式中,R—对应传输各部分的比特率;λ—优化参数(与量化参数有很强的相关性);SATD—经过哈德曼变换的4×4块的预测参差绝对值总和。
对于所有帧内、帧间宏块编码模式及多参考帧的选择都通过对拉格朗日函数的最小化来实现。通常,视频标准只包括解码规范,而模式选择的技术研究是属于编码端的范畴,所以不列在标准之内。
二 H.264与其它标准的性能比较
为了阐述H.264的编码效率,我们将其与其它标准如MPEG-2、H.263、MPEG-4等作比较。使用QCIF、CIF格式的图像序列作测试,所有编码器都使用拉格朗日优化技术。我们使用H.264的测试软件JM2.0并使用了Main Profile的主要技术特征。对H.263和H.264采用的参考帧数为5,只编码图像序列的第一帧为I帧,每2个参考帧P之间插入2个非参考帧B。使用全搜索方式进行32×32整数范围的运动估计,且由预先设定的量化参数来进行比特率的调整。图为对CIF格式的图像序列Tempete在帧率为15Hz时所作的测试比较。
和其它标准比较,H.264在比特率上减少的程度如表1所示。
为进一步对新标准的技术特征进行性能分析,我们将H.264采用的帧内编码方案与静态图像编码标准采用的技术作性能比较。在这里,我们采用H.264的测试软件JM3.9a与不包含ABT技术的Main Profile、JPEG 2000的测试软件VM 9.0的测试结果进行比较。H.264采用的帧内编码技术性能突出。对大多数测试的图像序列来说,在各种比特率条件下,其性能总是超过JPEG 2000。究其原因可能是H.264采用了多种设计合理的帧内预测模式。另一方面,H.264采用小波变换技术、分级量化及算术编码,并没有使用预测技术。在高比特率时,两者处理的图像在主观质量上并无太大差异。然而在低比特率时,JPEG 2000的图像看起来更模糊,图像轮廓有明显的环状效应,这是使用小波变换造成高频分量损失的结果。测试比较结果如表2所示。
从测试结果看,H.264采用的帧内编码技术在对大图像处理时会出现增益的收缩,然而在低码率的情况下却可以取得很高的增益。针对所有图像序列及比特率,H.264平均对JPEG 2000有1.12dB的优势。
三 H.264标准的展望
许多人都曾以为传统的基于块的视频编码技术已经落后,将会被摈弃,然而H.264的提出再次证明其在低码率压缩视频方面的优势仍有着很大挖掘潜力。新标准更进一步体现了对视频信源的适应性,但这种适应性是以提高算法的复杂性和增加对参考帧的存储能力为代价的。
H.264标准不仅针对视频会议系统,而且涵盖了电视广播、网络流媒体、多媒体信息的数字存储、数字影院等各方面的应用。总之,由于采用了先进的压缩技术,H.264拥有优异的视频实时处理性能,必将会引发视频传输相关技术研发的又一次浪潮,同时创造出巨大的商业机会。
摘自《世界宽带网络》
|