基于对象的视频编码-MPEG-4

发布时间:2003-11-26 作者:卓力 沈兰荪 Zhuo Li Shen Lansun 阅读量:

文章编号:1009-6868(2001)04-0040-04 文献标识码:A 中图分类号:TN919.81

  1 引言

  为了适应多媒体通信的快速发展,ISO于1994年开始制定MPEG-4标准。MPEG-4最初是为了满足视频会议的需要来制定的可以对音频、视频对象进行高效压缩的算法和工具,仅限于极低比特率的应用。后来经过不断的发展成为一个可以适应于各种多媒体应用,提供各种编码比特率的标准。

  MPEG-4视频编码的目标在于提供一种通用的编码标准,以适应不同的传输带宽、不同的图像尺寸和分辨率、不同的图像质量,进而为用户提供不同的服务,满足不同处理能力的显示终端和用户个性化的需求。

  与传统的基于像素的视频压缩标准(如MPEG-1、MPEG-2、H.261、H.263等)不同, MPEG-4采用基于对象的视频编码方法,不仅可以实现对视频图像数据的高效压缩,还可以提供基于内容的交互功能。除此之外,为了使压缩后的码流具有对于信道传输的鲁棒性,MPEG-4提供了用于误码检测和误码恢复的一系列工具,这样采用MPEG-4标准压缩后的视频数据可以应用于带宽受限、易发生误码的网络环境中,如无线网络、Internet和PSTN网等。

  2 MPEG-4视频编码基本原理

  在数字域表示图像/视频的方法通常是基于像素的表征方法,目前使用的主要技术都依赖于这种表征方式。在MPEG-4标准之前的MPEG-1、 MPEG-2以及H.261和H.263标准等都是采用传统的图像编码方法,依据Shanon信源编码理论的框架,将图像作为随机信号,利用其统计特性来达到压缩的目的。这种方法把视频序列按时间先后分为一系列的帧(Frame),每一帧的图像又分成宏块(Macroblock)以进行运动补偿和编码,这种基于帧、块和像素的编码被称为第一代视频编码方案[1,2]。

  第一代视频编码的核心技术是基于分块的离散余弦变换(DCT),但是在低比特率应用环境下,压缩图像不可避免地会出现方块效应。这是因为采用平稳高斯过程来刻划非平稳的图像信号,用余弦基作非平稳信号的逼近,其结果必然不是最优的。另外,由于这种方案本身未能考虑信息获取者的主观特性以及图像的具体结构和内容,也没有充分利用人类视觉系统的特性,难以实现对图像内容的查询、处理等操作。

  20世纪80年代中期,受到人眼视觉系统生理机制的启发,出现了一些新的视频图像表征方法。这种方法利用现代图像编码方法,利用人眼视觉特性,从轮廓、纹理的思路出发,支持基于内容的交互功能。目前这种基于对象的第二代视频编码(Object-based video coding)的概念已被人们广泛地接受,并且已经成为新的图像/视频编码标准??MPEG-4的基础[1]。

  在基于对象的视频编码中,编码的基本单元是视频对象。为了实现基于对象的表示,MPEG-4定义了视频对象(Video Object,VO)和视频对象平面(Video Object Plane,VOP)等概念。根据人眼感兴趣的一些特性,如纹理、运动、形状等,将视频序列的每一帧通过人工、半自动或全自动等方式分割为一些任意形状的图像区域,这些区域被称为视频对象平面,同一对象连续的VOP称为视频对象[3]。

  图1所示的是MPEG-4视频编码原理框图。从图1可以看出,MPEG-4的视频编码就是针对运动信息、形状信息和纹理信息等3种信息的编码技术,其编码过程如下:

 


图1 MPEG-4视频编码框图

  • 从原始视频流中采用自动、半自动、人工等方法分割出VO;
  • 对VO进行编码,对不同VO的运动信息、形状信息和纹理信息分配不同的码字;
  • 将各个VO的码流复合成符合MPEG-4标准的比特流。

  其中,纹理编码、运动预测和运动补偿部分在原理上同现有标准一致,而形状编码是视频编码标准中第一次引入的技术。

  3 MPEG-4视频编码技术

  MPEG-4编码器可以对图像序列中具有任意形状的VOP进行编码,对VOP的编码就是针对某一时刻该帧画面VO的形状、运动、纹理等信息进行编码[2]。

  3.1 形状编码

  在MPEG-4标准中,VO的形状信息有两类:二值形状信息和灰度形状信息,两种信息都可以采用位图法(Bitmap)来表示,位图表示法具有较高的编码效率和较低的运算复杂度。

  二值形状信息用0、1来表示VOP的形状,0表示该像素在VOP区域之外,1表示在VOP区域之内。对二值形状信息进行编码时可以采用基于块的运动补偿技术,可以是无损编码,也可以是有损编码。灰度形状信息用0~255之间的数值表示该像素的透明度,编码时采用基于块的运动补偿DCT方法,属于有损编码。

  3.2 运动信息编码

  MPEG-4利用运动估计和补偿技术来去除帧间的时间冗余度。主要区别在于其他标准中采用的是基于块的技术,而MPEG-4中采用的是VOP结构。VOP有3种编码模式:帧内编码模式(I-VOP)、帧间编码模式(P-VOP)和帧间双向预测编码模式(B-VOP)。很显然,只有对P-VOP和B-VOP编码时才需要运动估计。

  如果一个宏块完全位于一个VOP内,就采用一般的基于16×16像素宏块或8×8像素块运动估计,运动矢量以半点精度进行计算。如果一个宏块只有一部分位于VOP内,则采用修正的块匹配技术估计运动矢量。当参考块位于VOP边界上时,采用重复填补技术给位于VOP外的那些像素指定值,然后利用填补后的像素值估计运动矢量。这样在VOP的边界上搜索预测所需的候选像素时就有了更多的选择,从而提高了效率。

  与H.263 类似,MPEG-4也支持重叠运动补偿,在更低比特率情况下可以获得更好的预测质量。

  3.3 纹理编码

  VOP的纹理信息包含在视频信号的亮度分量Y和两个色度分量U和V中。对于I-VOP,纹理信息直接包含在亮度和色度分量中,而对于运动补偿后的VOP,纹理信息包含在运动补偿后的残差中。对纹理信息编码时,采用标准的基于8×8像素块的DCT方法。完全属于VOP内部的8×8块直接进行编码,而对于横跨VOP边界的块,先采用图像填充技术得到VOP之外的像素值,再进行编码。纹理编码过程如图2所示。


图2 纹理编码过程

  3.4 分级扩展编码

  在远程多媒体数据库检索、视频内容重放以及视频通信等应用中,可分级扩展编码的引入使得译码端可以依据具体的信道带宽、系统处理能力、显示能力以及用户需求进行多分辨率的解码及重放,从而提供了灵活的编码策略。

  MPEG-4提供了两种可分级扩展方式:时间可分级扩展和空间可分级扩展。时间可分级扩展编码是用增强层来增加VOP基本层的时间分辨率,编码时每隔几帧选一帧作为基本帧,基本帧必须编码传输。带宽允许或译码端要求时才编码中间帧,这些中间帧作为增强帧用来增加基本帧的时间分辨率,使运动图像看起来更加平滑。而空间可分级扩展是用增强层来增加VOP基本层的空间分辨率,在编码端对原图像进行下采样使图像的尺寸变小,在译码端再通过插值恢复原来图像的大小。

  3.5 Sprite编码

  Sprite对象是针对背景对象的特点提出来的。通常情况下背景对象本身没有任何运动,通过图像的镶嵌技术把整个序列的背景图像拼接成一个大的完整的背景图像,这个图像叫做Sprite图像。Sprite图像只需要编码传输一次并存储在解码端,随后的图像可以从Sprite上恢复所有图像的背景。MPEG-4中包括Sprite是因为这种编码方式可以提供很高的压缩效率。

  基于Sprite的编码非常适合于合成对象,也可以用在发生了剧烈运动的自然场景中。为了支持低处理延时的应用,传输Sprite时可以采用多种方法。

  4 MPEG-4中的差错控制方法

  随着移动通信的迅猛发展,无线网络上的视频传输图像受到广泛的重视。由于多径衰落、时延扩展、噪声影响和多址干扰等原因,无线信道误码率比较高,一般在10-5以上,有的可以高达10-2。MPEG-4通过去除时间冗余度来达到压缩的目的,而高度压缩后的视频码流对传输时所产生的误码非常敏感,一旦发生了误码,不仅影响该误码数据的恢复,还会影响与之相关的其它数据的恢复,造成“误码扩散”(Error propagation), 使恢复出来的信号面目全非。为了使压缩后的码流具有对于信道传输的鲁棒性,MPEG-4提供了在各种无线和有线低码率网络下可靠传输图像的方法[3,4]。

  4.1 MPEG-4中的差错控制方法

  MPEG-4依据自身定义的 “视频包”(Video packet)这一码流结构来进行误码检测,如图3所示,一个视频包由一个重同步码、一个报文头和宏块数据组成。重同步码是一个唯一的码字,由一序列的‘0’跟随一个‘1’组成,报文头包含的信息可以帮助译码器重新开始译码处理,宏块数据由运动矢量、DCT系数和视频包中包含的宏块的方式信息组成。


图3 视频包的数据结构

  MPEG-4中的差错控制方法包括:重同步标记、数据分割、头扩展字、可逆变长编码等[1,3]。

  • 重同步标记(Resynchronization marker)
      MPEG-4编码时采用了可变长编码(VLC),而码字的分界并不明确,传输的错误会导致与编码器同步信息的丢失。一旦检测到误码,一般在两个重同步指针之间的所有数据都会被丢弃。MPEG-4在码流中插入了重同步码标记,在发生了误码的情况下,译码器会跳到下一个重同步标记处,并在此标记处重新开始译码。

  • 数据分割(Data partitioning)
      数据分割方法将视频包内的运动信息、纹理信息等宏块数据分开。如果只有纹理信息丢失,数据分割允许使用运动信息以更为有效的方式进行误码掩盖。这样,数据分割就提供了一种从损坏的视频包中恢复更多数据的机制。

  • 头扩展码(Head extension code)
      包含在视频帧中的一些固定的重要信息,比如视频数据的空间尺寸,与译码有关的时间标记、对视频数据的描述和当前帧的类型(帧内或帧间编码)等,在视频数据开始的信息头中被传送。为了减少这一数据信息的敏感度,MPEG-4的包头信息中引入了1比特的头扩展码字(HEC)域。使用HEC极大地减少了头信息被破坏的概率,从而获得一个更高质量的译码视频。

  • 可逆变长编码(Reversible variable length coding)
      可逆变长编码可以进一步降低译码数据中的错误对恢复视频的影响。可逆变长编码是可以采用前向和后向两种方式进行译码的码字,一旦出现误码,即使跳到了码流中的下一个重同步标记处,可逆变长编码仍然可以对受损的部分码流进行译码,从而限制误码的影响。

  4.2 不等的错误保护

  MPEG-5提供的抗误码工具,在误码率低于10-5时可以使得图像的重建质量达到可接受的水平。然而当误码率比较高时,就需要采用信道编码来改善信道状况。通过采用信源和信道联合编码技术,在误码率较高的无线信道上传输并获得可接受的视频重建质量是可能的[4,5]。

  我们知道,MPEG-4码流的不同部分对于图像重建质量的作用是不同的。这样的码流结构,非常适合于采用不等的错误保护(Unequal error protection)机制,从而实现信源与信道的联合编码。因此,针对MPEG-4视频压缩码流的结构,在分配给信源编码的比特率一定的情况下,可以结合信道编码技术,根据视频码流各部分的重要性程度采用不等的错误保护,比如对于重要的信息采用纠错能力较强的信道编码方法,而对于其他不重要的信息采用纠错能力较弱的编码方法,使得视频的重建质量最高。图4中所示的是MPEG-4视频包采用不等的错误保护机制的一个例子,其中,r1<r2<r3。


图4 不等的错误保护机制

  报文头是视频包中最重要的部分,对它采取的保护也最多,运动部分将获得低一级的保护。由于即使没有纹理部分,译码器依然可以对运动补偿的误码进行掩盖而不会使重建图像质量有太多的下降,所以纹理部分获得最低水平的保护。采用这样的方法,视频包的重要部分就不太可能发生误码。

  5 结束语

  从基于像素的传统编码到基于对象和内容的现代编码,MPEG-4 顺应了现代图像压缩编码的发展潮流。MPEG-4标准所提供的高效视频压缩方法、差错控制技术结合不等错误保护方法,不仅为多媒体通信,也将为在无线信道等恶劣环境下实现可靠的视频传输提供广阔的应用前景。

  参考文献

1 Ebrahimi T,Kunt M. Object-Based Video Coding. Http://ltswww.epfl.ch
2 沈兰荪.图像编码与异步传输.北京:人民邮电出版社,1998
3 ISO/IEC JCT1/SC29 WG11/N3536.MPEG-4 Overview.V.15 Beijing, 2000
4 Madhukar Budagavi, et al. Wireless MPEG-4 Video Communication on DSP Chips. IEEE Signal Processing Magazine, 2000,84(4)
5 Wang Yao, Zhu Qinfan.Error Control and Concealment for Video Communication: A Review. Proceeding of the IEEE, 1998,86(5)

[摘要] MPEG-4是一种新的基于对象的视频编码标准,可以广泛应用于多媒体通信中。文章从MPEG-4的视频压缩原理出发,介绍MPEG-4中采用的主要压缩方法及抗误码技术。

[关键词] MPEG-4 对象 差错控制 不等的错误保护

[Abstract] MPEG-4 is a new kind of object-based video coding standard which can be widely used in multimedia communications. Based on the principle of MPEG-4 video compression, key compression methods and error resilient technologies used in MPEG-4 are introduced.

[Keywords] MPEG-4 Object Error control Unequal error protection