;
随着经济的发展和技术的进步,市场对高性能视频业务的需求不断膨胀,原有的压缩视频标准已经不能够满足要求,新的压缩视频技术将拥有广阔的市场空间。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拥有优异的视频实时处理性能,必将会引发视频传输相关技术研发的又一次浪潮,同时创造出巨大的商业机会。(吴培森,河北省任丘市汇利科技有限责任公司成员。)
Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...
07-05
Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...
07-05
KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...
07-05
Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...
07-05