MPEG-4与H264区别,编码及应用-h264文件

MPEG-4与H264区别,编码及应用-h264文件

 MPEG4于1998年11月公布,原预计1999 年1月投入使用的国际标准MPEG4不仅是针对一定比特率下的视频、音频编码,更加注重多媒体系统的交互性和灵活性。MPEG专家组的专家们正在为MPEG-4的制定努力工作。MPEG-4标准主要应用于视像电话(Video Phone),视像电子邮件(Video Email)和电子新闻(Electronic News)等,其传输速率要求较低,在4800-64000bits/sec之间,分辨率为176X144。MPEG-4利用很窄的带宽,通过帧重建技术,压缩和传输数据,以求得最少的数据获得最佳的图象质量。

与MPEG-1和MPEG-2相比,MPEG-4的特点是其更适于交互AV服务以及远程监控。MPEG-4是第一个使你由被动变为主动(不再只是观看,允许你加入其中,即有交互性)的动态图象标准;它的另一个特点是其综合性;从根源上说,MPEG-4试图将自然物体与人造物体相溶合(视觉效果意义上的)。MPEG-4的设计目标还有更广的适应性和可扩展性。MPEG4 试图达到两个目标:

1.低比特率下的多媒体通信;

2.是多工业的多媒体通信的综合。

据此目标,MPEG4 引入AV 对象(Audio/Visaul Objects), 使得更多的交互操作成为可能。

MPEG-4的视频质量分辨率比较高,而数据速率相对较低。主要原因在于,MPEG-4采用ACE(高级译码效率)技术,它是一套首次使用于MPEG-4的编码运算规则。与ACE有关的目标定向可以启用很低的数据率。它与MPEG-2相比,可节省90储存空间。MPEG-4还可以在声频与视频流中广泛的升级。当视频在5kb/s与10Mb/s之间变化时,声频信号可以在2kb/s与24kb/s之间进行处理。特别要强调的是MPEG-4标准是面向对象的压缩方式,不是像MPEG-1和MPEG-2简单地将图像分为一些像块,而是根据图像内容,将其中的对象(物体、人物、背景)分离出来分别进行帧内、帧间编码压缩,并允许在不同的对象之间灵活分配码率,对重要的对象分配较多的字节,对次要的对象分配较少的字节,从而大大提高了压缩比,使其在较低的码率下获得较好的效果。MPEG-4的面向对象的压缩方式也使图像探测功能和准确性更分体现,该图像探测功能使硬盘录像机系统具有较好的视频移动报警功能。

总之MPEG-4是一种崭新的低码率、高压缩比的视频编码标准,传输速率为4.8~64kbit/s,使用时占用的存储空间比较小,例如:对于清晰度352×288的彩色画面,其每帧占用空间为1.3KB时,选25帧/秒,则每小时需120KB、每天10小时、每月30天,则每路每月需36GB。若是8路则需288GB,这显然是能接受的。

目前这方面的技术有多种,但是最基本同时应用最广泛的就是MPEG1、MPEG2、MPEG4等技术。MPEG1是一种压缩比高但图像质量稍差的技术;而MPEG2技术主要专注于图像质量,压缩比小,因此需要的存储空间就大;MPEG4技术是时下比较流行的技术,使用这种技术可以节省空间、图像质量高、对网络传输带宽要求不高。相比之下,MPEG4技术在国内比较普及,同时也得到了业界专家的认同。

据介绍,由于MPEG4标准是利用电话线作为传输介质,可根据应用的不同要求现场配置解码器。它与基于专用硬件的压缩编码方法不同之处是编码系统是开放的,可以随时加入新的有效的算法模块。MPEG4是根据对图像的空间和时间特征来调整压缩方法,从而可以获得比MPEG1更大的压缩比、更低的压缩码流和更佳的图像质量。它的应用目标是针对窄带传输、高画质压缩、交互式操作以及将自然物体与人造物体相融合的表达方式,同时还特别强调广泛的适应性和可扩展性。因此,MPEG4基于场景描述和面向带宽设计的特点,使得它非常适合用于视频监控领域,主要体现在以下几个方面:

1、存储空间得到节省--采用MPEG4所需要的空间是MPEG1或M-JPEG的1/10。此外,MPEG4因能根据场景变化自动调整压缩方法,故能对静止图像、一般运动场景、剧烈活动场景均能保证图像质量不会劣化,是更有效的视频编码方式。

2、图像质量高--MPEG4的最高图像分辨率为720x576,接近DVD的画面效果。MPEG4基于AV对像压缩的模式决定了它对运动物体可以保证有良好的清晰度,间/时间/画质具有可调性。

3、对网络传输带宽要求不高--由于MPEG4的压缩比是同质量MPEG1和M-JPEG的10倍多,所以网络传输时占用的带宽仅是同质量MPEG1和M-JPEG的1/10左右。在相同的画质要求下,MPEG4只需要更窄的带宽。

视频编码新标准H.264的技术亮点

上个世纪80年代以来,ISO/IEC制定的MPEG-x和ITU-T制定的H.26x两大系列视频编码国际标准的推出,开创了视频通信和存储应用的新纪元。从H.261视频编码建议,到H.262/3、MPEG-1/2/4等都有一个共同的不断追求的目标,即在尽可能低的码率(或存储容量)下获得尽可能好的图像质量。而且,随着市场对图像传输需求的增加,如何适应不同信道传输特性的问题也日益显现出来。这就是IEO/IEC和ITU-T两大国际标准化组织联手制定的视频新标准H.264所要解决的问题。

H.261是最早出现的视频编码建议,目的是规范ISDN网上的会议电视和可视电话应用中的视频编码技术。它采用的算法结合了可减少时间冗余的帧间预测和可减少空间冗余的DCT变换的混合编码方法。和ISDN信道相匹配,其输出码率是p×64kbit/s。p取值较小时,只能传清晰度不太高的图像,适合于面对面的电视电话;p取值较大时(如 p>6),可以传输清晰度较好的会议电视图像。H.263 建议的是低码率图像压缩标准,在技术上是H.261的改进和扩充,支持码率小于64kbit/s的应用。但实质上H.263以及后来的H.263+和H.263++已发展成支持全码率应用的建议,从它支持众多的图像格式这一点就可看出,如Sub-QCIF、QCIF、CIF、4CIF甚至16CIF等格式。

MPEG-1标准的码率为1.2Mbit/s左右,可提供30帧CIF(352×288)质量的图像,是为CD-ROM光盘的视频存储和播放所制定的。MPEG-l标准视频编码部分的基本算法与H.261/H.263相似,也采用运动补偿的帧间预测、二维DCT、VLC游程编码等措施。此外还引入了帧内帧(I)、预测帧(P)、双向预测帧(B)和直流帧(D)等概念,进一步提高了编码效率。在MPEG-1的基础上,MPEG-2标准在提高图像分辨率、兼容数字电视等方面做了一些改进,例如它的运动矢量的精度为半像素;在编码运算中(如运动估计和DCT)区分“帧”和“场”;引入了编码的可分级性技术,如空间可分级性、时间可分级性和信噪比可分级性等。近年推出的MPEG-4标准引入了基于视听对象(AVO:Audio-Visual Object)的编码,大大提高了视频通信的交互能力和编码效率。MPEG-4中还采用了一些新的技术,如形状编码、自适应DCT、任意形状视频对象编码等。但是MPEG-4的基本视频编码器还是属于和H.263相似的一类混合编码器。

总之,H.261建议是视频编码的经典之作,H.263是其发展,并将逐步在实际上取而代之,主要应用于通信方面,但H.263众多的选项往往令使用者无所适从。MPEG系列标准从针对存储媒体的应用发展到适应传输媒体的应用,其核心视频编码的基本框架是和H.261一致的,其中引人注目的MPEG-4的“基于对象的编码”部分由于尚有技术障碍,目前还难以普遍应用。因此,在此基础上发展起来的新的视频编码建议H.264克服了两者的弱点,在混合编码的框架下引入了新的编码方式,提高了编码效率,面向实际应用。同时,它是两大国际标准化组织的共同制定的,其应用前景应是不言而喻的。

一、JVT的H.264

H.264是ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)开发的一个新的数字视频编码标准,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10 部分。1998年1月份开始草案征集,1999年9月,完成第一个草案,2001年5月制定了其测试模式TML-8,2002年6月的 JVT第5次会议通过了H.264的FCD板。目前该标准还在开发之中,预计明年上半年可正式通过。

H.264和以前的标准一样,也是DPCM加变换编码的混合编码模式。但它采用“回归基本”的简洁设计,不用众多的选项,获得比H.263++好得多的压缩性能;加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求;它的基本系统是开放的,使用无需版权。

在技术上,H.264标准中有多个闪光之处,如统一的VLC符号编码,高精度、多模式的位移估计,基于4×4块的整数变换、分层的编码语法等。这些措施使得H.264算法具有很的高编码效率,在相同的重建图像质量下,能够比H.263节约50%左右的码率。H.264的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应IP和无线网络的应用。

二、H264的技术亮点

分层设计

H.264的算法在概念上可以分为两层:视频编码层(VCL:Video Coding Layer)负责高效的视频内容表示,网络提取层(NAL:Network Abstraction Layer)负责以网络所要求的恰当的方式对数据进行打包和传送。H.264编码器分层结构如图1所示。在VCL和NAL之间定义了一个基于分组方式的接口,打包和相应的信令属于NAL的一部分。这样,高编码效率和网络友好性的任务分别由VCL和NAL来完成。

VCL层包括基于块的运动补偿混合编码和一些新特性。与前面的视频编码标准一样,H.264没有把前处理和后处理等功能包括在草案中,这样可以增加标准的灵活性。

NAL负责使用下层网络的分段格式来封装数据,包括组帧、逻辑信道的信令、定时信息的利用或序列结束信号等。例如,NAL支持视频在电路交换信道上的传输格式,支持视频在Internet上利用 RTP/UDP/IP传输的格式。NAL包括自己的头部信息、段结构信息和实际载荷信息,即上层的VCL数据。(如果采用数据分割技术,数据可能由几个部分组成)。

高精度、多模式运动估计

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帧刚刚编码好的参考帧,编码器将选择对每个目标宏块能给出更好的预测帧,并为每一宏块指示是哪一帧被用于预测。

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右,而不是以不变的增幅变化。变换系数幅度的归一化被放在反量化过程中处理以减少计算的复杂性。为了强调彩色的逼真性,对色度系数采用了较小量化步长。

统一的VLC

H.264中熵编码有两种方法,一种是对所有的待编码的符号采用统一的VLC(UVLC :Universal VLC),另一种是采用内容自适应的二进制算术编码(CABAC:Context-Adaptive Binary Arithmetic Coding)。CABAC是可选项,其编码性能比UVLC稍好,但计算复杂度也高。UVLC使用一个长度无限的码字集,设计结构非常有规则,用相同的码表可以对不同的对象进行编码。这种方法很容易产生一个码字,而解码器也很容易地识别码字的前缀,UVLC在发生比特错误时能快速获得重同步。

这里,x0,x1,x2,…是INFO比特,并且为0或1。图4列出了前9种码字。如:第4号码字包含INFO01,这一码字的设计是为快速再同步而经过优化的,以防止误码。

帧内预测

在先前的H.26x系列和MPEG-x系列标准中,都是采用的帧间预测的方式。在H.264中,当编码Intra图像时可用帧内预测。对于每个4×4块(除了边缘块特别处置以外),每个像素都可用17个最接近的先前已编码的像素的不同加权和(有的权值可为0)来预测,即此像素所在块的左上角的17个像素。显然,这种帧内预测不是在时间上,而是在空间域上进行的预测编码算法,可以除去相邻块之间的空间冗余度,取得更为有效的压缩。

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类模式。

面向IP和无线环境

H.264 草案中包含了用于差错消除的工具,便于压缩视频在误码、丢包多发环境中传输,如移动信道或IP信道中传输的健壮性。

为了抵御传输差错,H.264视频流中的时间同步可以通过采用帧内图像刷新来完成,空间同步由条结构编码(slice structured coding)来支持。同时为了便于误码以后的再同步,在一幅图像的视频数据中还提供了一定的重同步点。另外,帧内宏块刷新和多参考宏块允许编码器在决定宏块模式的时候不仅可以考虑编码效率,还可以考虑传输信道的特性。

除了利用量化步长的改变来适应信道码率外,在H.264中,还常利用数据分割的方法来应对信道码率的变化。从总体上说,数据分割的概念就是在编码器中生成具有不同优先级的视频数据以支持网络中的服务质量QoS。例如采用基于语法的数据分割(syntax-based data partitioning)方法,将每帧数据的按其重要性分为几部分,这样允许在缓冲区溢出时丢弃不太重要的信息。还可以采用类似的时间数据分割(temporal data partitioning)方法,通过在P帧和B帧中使用多个参考帧来完成。

在无线通信的应用中,我们可以通过改变每一帧的量化精度或空间/时间分辨率来支持无线信道的大比特率变化。可是,在多播的情况下,要求编码器对变化的各种比特率进行响应是不可能的。因此,不同于MPEG-4中采用的精细分级编码FGS(Fine Granular Scalability)的方法(效率比较低),H.264采用流切换的SP帧来代替分级编码。

三、TML-8性能

TML-8为H.264的测试模式,用它来对H.264的视频编码效率进行比较和测试。测试结果所提供的PSNR已清楚地表明,相对于MPEG-4(ASP:Advanced Simple Profile)和H.263++(HLP:High Latency Profile)的性能,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个测试速率及其相关的条件分别为:32 kbit/s速率、10f/s帧率和QCIF格式;64 kbit/s速率、15f/s帧率和QCIF格式;128kbit/s速率、15f/s帧率和CIF格式;256kbit/s速率、15f/s帧率和QCIF格式;512 kbit/s速率、30f/s帧率和CIF格式;1024 kbit/s速率、30f/s帧率和CIF格式。

四、实现难度

对每个考虑实际应用的工程师而言,在关注H.264的优越性能的同时必然会衡量其实现难度。从总体上说,H.264性能的改进是以增加复杂性为代价而获得的。但是,随着技术的发展,这种复杂性的增加是在我们当前或不久的将来的技术可接受的范围之内的。实际上,考虑到复杂性的限制,H.264对一些计算量特别大的改进算法未予采用,如H.264未采用全局运动补技术,这在MPEG-4的ASP中是采用的,并增加了相当的编码复杂性。

H.264和MPEG-4两者都包括了B帧和比MPEG-2、H.263或MPEG-4的SP(Simple profile)更为精确、更为复杂的运动内插滤波。为了更好地完成运动估计,H.264显著地增加了可变块尺寸的种类和可变参考帧的数目。

H.264的RAM需求主要用于参考帧图像,大多数编码视频使用3~5帧参考图像。它对ROM的需求并不比通常的视频编码器更多,因为H.264的UVLC对所有的各类数据采用了一个结构良好的查找表。

推荐阅读