前言IPTV作为IP网络上的视频应用,对音视频编解码有很高的要求。首先,编码要有高的压缩效率和好的图像质量,压缩效率越高,传输占用带宽越小;图像质量越高,用户体验则越好。其次,IPTV平台应能兼容不同编码标准的媒体文件,以适应今后业务的发展。最后,要求终端支持多种编码格式或具备解码能力在线升级功能。目前主流的视频编码格式有以下几种:MPEG-2(①ISO/IEC13818-2)、MPEG-4Part2(ISO/IEC14496-2)、H.264/AVC(即MPEG-4Part10)、AVS、微软的WMV-9、Real公司的视频格式、SVC(可伸缩视频编码,应用于变带宽、变速率环境)和VC-1(美国SMPTE于2004年底颁布的压缩标准)。常见的标准有MPEG-2、MPEG-4、H.264和AVS,它们有各自的特点。以下主要对MPEG-2、MPEG-4、H.264以及AVS的视频编码格式进行简单的分析和比较。MPEG-2是运动图像压缩标准。该标准完全兼容MPEG-1标准,其处理能力可达到广播级水平,适应于1.5~50Mbit/s编码范围。它应用于DVD方案,应用于高清晰度电视(HDTV)的方案,也应用于现在广播式有线数字电视系统的编码。MPEG-4(Part2)是ISO为传输数码率低于64kbit/s的实时图像设计的,是一种高效的编码标准。编码比特率相应可分为384kbit/s~1Mbit/s、64kbit/s~384kbit/s、64kbit/s以下,对多媒体应用领域的各种编码进行兼容。广泛应用于有线、无线、移动通信、Internet以及数字存储回放等各个领域。H.264(IEC14496-10AVC)是2003年ITU-T通过的数字视频编解码标准。H.264标准有基本子集、主体子集和扩展子集等三个子集,基本子集专为视频会议应用设计的,它提供了强大的差错消隐技术,并支持低延时编/解码技术,使视频会议显得更自然。主体子集和扩展子集更适合于电视应用(数字广播、DVD)和延时显得不太重要的视频流应用。AVS是我国创新技术自行研制的编码标准。它包括系统、视频、音频、数字版权等四个主要技术标准和致性测试等支撑标准。AVS视频编解码标准的核心技术包括:8X8整数变换、量化、帧内预测、1/4精度像素插值、特殊的帧间预测运动补偿、二维熵编码等。该标准达到国际先进水平的数字音视频编解码标准,可应用于高清晰度数字电视、高清晰度激光视盘机、网络电视、视频通信等领域。与MPEG-4相比,其压缩效率明显提高;与H.264相比,又减少了CABAC等实现难度大的技术,从而增加了可实现性。一、各种编解码技术的分析1.1MPEG-2(ISO/EC13818-2)MPEG-2标准从1990年开始研究,并于1994年由国际标准化组织正式发布。它是一个直接与数字电视广播有关的高质量图像和声音编码标准。MPEG-2编码格式主要是用于传输声音、图象数据压缩的标准,它是MPEG-1的进一步发展,码流在1.5Mb/s到50Mb/s之间。MPEG-2编码格式与MPEG-1编码格式的基本编码算法都相同,但在MPEG-1的基础上增加了许多新的功能,例如增加了隔行扫描电视的编码,提供了位速率的可变性能(Scalability)功能。MPEG-2要达到的最基本目标是:位速率为4~9Mbit/s,最高达15Mbit/s。MPEG-2编码格式的数据流有两种形式,一种称为程序数据流(ProgramStream,PS),另一种称为传输数据流(TransportStream,TS)。程序数据流是组合一个或者多个规格化的基本数据流(PacketisedElementaryStreams,PES)而生成的一种数据流,用在出现错误相对比较少的环境下,适合使用软件处理的应用;传输数据流也是组合一个或者多个PES而生成的一种数据流,它用在出现错误相对比较多的环境下,例如在有损失或者有噪声的传输系统中。1.2MPEG-4Part2(ISO/IEC14496-2)MPEG-4标准是国际标准化组织于1998年颁布的又一种新的编码格式标准,其主要针对互联网及无线信道的应用,并充分考虑了不同信道传输条件的特点,提供了一些关键技术。1.2.1编码理念:引入基于对象的编码方法(Object-basedCoding)MPEG-4标准同以前标准的最显著的差别在于它是采用基于对象的编码理念,即在编码时将1幅景物分成若干在时间和空间上相互联系的视频音频对象,分别编码后,再经过复用传输到接收端,然后再对不同的对象分别解码,从而组合成所需要的视频和音频。这样既方便我们对不同的对象采用不同的编码方法和表示方法,又有利于不同数据类型间的融合,并且这样也可以方便的实现对于各种对象的操作及编辑。例如,我们可以将一个卡通人物放在真实的场景中,或者将真人置于一个虚拟的演播室里,还可以在互联网上方便的实现交互,根据自己的需要有选择的组合各种视频音频以及图形文本对象。1.2.2数据结构:采用特殊的二进制数据结构BIFS(BinaryFormatforScenes)及XMT(ExtensibleMarkupText)考虑到MPEG-4面向对象的编码特点,压缩后的数据采用一种特殊的二进制数据结构BIFS,这种数据结构中封装了各种媒体对象数据流以及表征这些对象间时域空域关系的信息,为不同媒体数据的复用,传输和重构提供了便利。用户可以通过和服务器间的交互,由服务器发送特殊的命令(BIFS-COMMAND)来改变各个对象的参数,在重构图像中,我们可以改变物体的大小,物体的位置与倾角,还可以将其它图像中的物体加到该图像中。除了这种二进制结构,MPEG-4标准又扩展出一种新的原文数据格式XMT,即扩展标记文本(ExtensibleMarkupText),它能够涵盖其他的扩展描述语言(XML),可以通过简单的标记来表示信息的各种含义,并且能够被编译成二进制数据结构BIFS,这样我们就可以更加方便直观的标记出各对象的信息及其相互关系。1.2.3时域空域可调性(SpatialandTemporalScalability)在互联网及无线的应用中,都面临着带宽受限的问题,为了解决这个问题,MPEG-4提供了一些措施来实现编码的时域空域可调性,以便用户根据不同的带宽状况及接收终端的限制来选择不同的分辨率,这种技术广泛应用于多种多媒体应用中,比如视频数据库浏览,视频移分辨率回放等等。1.2.4有效的抗差错措施(ErrorResilienceTools)互联网传输面临的一个重要问题是网络阻塞和丢包,而无线传输中由于多径时延与衰落以及多普勒频移的存在,也同样面临着恶劣的信道条件,所以MPEG-4标准制定过程中,考虑了不同的信道条件,提出了多种行之有效的抗差错措施,例如再同步标志,可逆变长编码,数据分割等等。1.3H.264/AVC(即MPEG-4Part10)H.264标准是ITU-T在日本的会议上正式通过,并于2003年5月正式公布的继MPEG-x系列之后的又一音视频编码新标准。国际电信联盟将该系统命名为H.264/AVC,国际标准化组织和国际电工委员会将其称为14496-10/MPEG-4AVC。H.264和之前的标准一样,也是DPCM加变换编码的混合编码模式。但它采用“回归基本”的简洁设计,不用众多的选项,获得比H.263++好得多的压缩性能;加强了对各种信道的适应能力,采用“网络友好”的结构和语法,能很好的处理误码和丢包;应用目标范围较宽,可以满足不同速率、不同解析度以及不同传输场合的需求。同时,H.264提出了一个新的概念,在视频编码层(VideoCodingLayer,VCL)和网络提取层(NetworkAbstractionLayer,NAL)之间进行概念性分割,前者是视频内容的核心压缩内容之表述,后者是通过特定类型网络进行递送的表述,这样的结构便于信息的封装和对信息进行更好的优先级控制。H.264标准的关键技术包括:1.3.1.帧内预测编码帧内编码用来缩减图像的空间冗余。为了提高H.264帧内编码的效率,在给定帧中充分利用相邻宏块的空间相关性,相邻的宏块通常含有相似的属性。因此,在对一给定宏块编码时,首先可以根据周围的宏块预测,然后对预测值与实际值的差值进行编码,这样,相对于直接对该帧编码而言,可以大大减小码率。H.264提供6种模式进行4×4像素宏块预测,包括1种直流预测和5种方向预测。H.264也支持16×16的帧内编码。1.3.2.帧间预测编码帧间预测编码利用连续帧中的时间冗余来进行运动估计和补偿。H.264的运动补偿支持以往的视频编码标准中的大部分关键特性,而且灵活地添加了更多的功能,除了支持P帧、B帧外,H.264还支持一种新的流间传送帧——SP帧。码流中包含SP帧后,能在有类似内容但有不同码率的码流之间快速切换,同时支持随机接入和快速回放模式。(1)不同大小和形状的宏块分割对每一个16×16像素宏块的运动补偿可以采用不同的大小和形状,H.264支持7种模式。小块模式的运动补偿为运动详细信息的处理提高了性能,减少了方块效应,提高了图像的质量。(2)高精度的像素运动补偿在H.263中采用的是半像素精度的运动估计,而在H.264中可以采用1/4或者1/8像素精度的运动估值。在要求相同精度的情况下,H.264使用1/4或者1/8像素精度的运动估计后的残差要比H.263采用半像素精度运动估计后的残差来得小。这样在相同精度下,H.264在帧间编码中所需的码率更小。(3)多帧预测H.264提供可选的多帧预测功能,在帧间编码时,可选5个不同的参考帧,提供了更好的纠错性能,这样更可以改善视频图像质量。这一特性主要应用于以下场合:周期性的运动、平移运动、在两个不同的场景之间来回变换摄像机的镜头。(4)去块滤波器H.264定义了自适应去除块效应的滤波器,这可以处理预测环路中的水平和垂直块边缘,大大减少了方块效应。1.2.3.整数变换在变换方面,H.264使用了基于4×4像素块的类似于DCT的变换,但使用的是以整数为基础的空间变换,不存在反变换,因为取舍而存在误差的问题。与浮点运算相比,整数DCT变换会引起一些额外的误差,但因为DCT变换后的量化也存在量化误差,与之相比,整数DCT变换引起的量化误差影响并不大。此外,整数DCT变换还具有减少运算量和复杂度,有利于向定点DSP移植的优点。1.3.4.量化H.264中可选32种不同的量化步长,这与H.263中有31个量化步长很相似,但是在H.264中,步长是以12.5%的复合率递进的,而不是一个固定常数。在H.264中,变换系数的读出方式也有两种:之字形(Zigzag)扫描和双扫描。大多数情况下使用简单的之字形扫描;双扫描仅用于使用较小量化级的块内,有助于提高编码效率。1.3.5.熵编码视频编码处理的最后一步就是熵编码,在H.264中采用了两种不同的熵编码方法:通用可变长编码(UVLC)和基于文本的自适应二进制算术编码(CABAC)。在H.263等标准中,根据要编码的数据类型如变换系数、运动矢量等,采用不同的VLC码表。H.264中的UVLC码表提供了一个简单的方法,不管符号表述什么类型的数据,都使用统一变字长编码表。其优点是简单;缺点是单一的码表是从概率统计分布模型得出的,没有考虑编码符号间的相关性,在中高码率时效果不是很好。1.4AVS音视频编码标准AVS是中国自主制定的音视频编码技术标准。AVS工作组成立于2002年6月,并于2003年12月确定AVS视频部分。该标准以当前国际上最先进的MPEG-4AVC/H.264框架为起点,制定适合数字视频应用的中国标准,其中强调自主知识产权,同时充分考虑了实现难度。AVS与MPEG-4AVC/H.264标准的主要技术差异包括:1.4.18x8整数变换AVS采用整数8x8变换,它可以在16位处理器上无失配地实现,从而克服了视频压缩编码国际标准中采用的8x8DCT变换存在失配的固有问题。AVS采用了64级量化,可以完全适应不同的应用和业务对码率和质量的要求。目前AVS