MPEGl和MPEG2数字视频压缩编码标准介绍(2)
MPEG-1:一个通用标准-一个应用于数字存储媒体
(最高速率达1.5Mb/s)的活动图像和伴音的编码标准
由MPEG—1开发出来的视频压缩技术的应用范围很广,包 括从CD—ROM上的交互系统,到电信网络上的视频传送 MPEG1视频编码标准被认为是一个通用标准。为了支持多种应用, 可有用户来规定多种多样的输人参数,包括灵活的图像尺寸和帧 频。MPEG推荐了一组系统规定的参数:每一个MPEG—l兼容解码器至少必须能够支持视频源参数,最佳可达电视标准:包括每行 最小应有720个像素,每个图像起码应有576行,每秒最少不低于 30帧,及最低比特率为1.86Mb/s,标准视频输入应包括非隔行扫 描视频图像格式。应该指出:但并不是说,MPEGl的应用就限制 于这一系统规定的参数组。 根据JPiG和H。261活动,已开发出MPEG—l视频算法。当 时的想法是:尽量保持与CCITT H.261标准的共同性,这样,支 持两个标准的做法就似乎可能。当然,MPEGl主要目标在于多媒 体CD—ROM的应用,这里需要由编码器和解码器支持的附加函数 牲。由MPEGl提供的重要特性包括:基于帧的视频随机存取,通 过压缩比特流的快进/快退搜索,视频的反向重放,及压缩比特流 的编辑能力。
(A)基本的MPEG—1帧间编码方案
基本MPEGl(及MPEG2)视频压缩技术的基础为:宏模块结 构、运动补偿及宏模块的有条件再补给。如图49所示,MPEG—1 编码算法以帧内编码模式(I图像)对视频序列的第一帧进行编码。 每一个下一帧采用帧间预测法(P图像)进行编码——仅仅采用来 自前面最近的已编码I或P帧的数据,来进行预测,MPEG—l算 法对基于画面块视频序列的帧加以处理。视频序列中的每一个彩色 输入帧被分割成多个非重迭的“宏模块”,如图4b所示。每一个宏 模块包含4个亮度块(Y1,Y2,Y3,Y4)及两个色度块(U,V), 每个宏模块的尺寸为8*8像素,这些数据块来自于亮度带和共址 的色度带。在Y:U:V亮度与色度像素之间的取样比为4:1:1 以最近的前帧为基础,采用运动补偿预测法来对P图像加以编 码。每一帧被分割成不连接的“宏模块”(MB)。 图4b对于每一个宏模块,对有关4个亮度块(Y 3,Y2,Y3, Y4)和两个彩色决(U,V)的信总均加以编码。每个包含8×8个 像素。 基本的混合型DPCM/DCT MPEGl编码器和解码器结构的方 块图示于图5之中。视频序列第1帧(I图像)以帧内(INTRA) 模式加以编码不参照任何一个过去帧或未来帧。在编码器处,DCT 被加到每一个8×8亮度块和色度块上,在DC了输出之后,该64个 DCT系数中的每一个系数被均匀量化(Q),在宏模块中被用来对 DCT系数进行量化的量化器步长,传送给接收机。‘量化之后,最低 位DO系数(DC系数)的处理方法跟保留(remaining)系数 (AC系数)的处理方法是不一样的,DC系数表示分量模块的平均 亮度,可用微分DC预测法对DC系数加以编码。保留DCT系数及 它们位置的非零量化器值被Z字形扫描,并采用可变长度编码 (VLC)表对其进行扫描宽度嫡编码。 图5一个基本混合型DC了/DPCM 编码器和解码器结构的方决图 图6中表示出了系数Z字形扫描的概念。因为要利用系数将这 个两维的画面信号变换成一个单维的比特流,故在量化DCT域二 维信号扫描之后,进行的是可变长度码—字分配工序。并沿着扫描 行和两个连续非零系数之间的距离(行程),对这些非零AC系数量 化器值(长度)加以检测。采用仅传送—个VLC码字的方法,对 每一个连续(行程、长度)对进行编码,Z字形扫描的目的在于: 在跟踪高频系数之前先去跟踪低频DCT系数(包含最大的能量) 图6在8×8块内,已量化DCT系数的Z字形扫描。仅仅对非 零量化DCT系数加以编码。图中指出了非零DCT系数可能的位置 Z字形扫描的做法要想做到按系数的有效性去跟踪DCT系数 参看图3,最低位的DCT系数(0,0)包含了这些决中的最大部分 的能量,这些能量集中在较低位的DCT系数周围 解码器执行反向操作,首先从比特流中提取可变长度编码字 (VLD)并加以解码,以便为每一个画面块获取非零DCT系数的位 置和量化器值。随着一个画面块所有非零DCT系数的再现(Q) 及随后获得的反DCT(DCT—1),就得到量化块像素值。通过对整 个比特流的处理,就对所有的画面块进行了解码,并加以了再现。 为了对P图像进行编码,前面的I图像的第N—l帧,存储在 设置在编码器和解码器内的帧存储器中。在宏模块中执行运动补偿 (MC)—对于即将进行编码的那个宏模块,在第N帧与第N—1 帧之间,仅对一个运动矢量进行估算。这些运动矢量被编码及传送 至接收机。运动补偿预测误差是这样计算的:即在带有前帧运动飘 移对应物的宏模块中减去一个像素。然后是将8×8DCT加入到包 含在该宏模块内的每一个8×8块中,接着是对DCT系数进行量化 (Q),并进行扫描宽度编码和炳编码(VLC)o这里需用一个视频缓 冲器;以确保编码器能产生一个常量的目标比特率输出。对于帧内 每一个宏模块来讲,量化步进(SZ)是可以调整的,以便获得给定 的目标比特率,并避免缓冲器出现溢流和下溢现象。 解码器采用反向处理,以便在接收机中再生第N帧的一个宏模 块。对包含在视频解码器缓冲器(VB)中的可变长度字(VLD) 进行解码之后,就能再现(Q和DCT—1操作)预测误差像素值。 来自包含在帧存储器(FS)中的前第N—1曲的运动补偿像素,被 加入到预测误差之中,以恢复第N帧的那一宏模块。 在图7a一图7d中9采用了一个典型的测试序列,描述了采用 运动补偿预测编码视频的好处,而该预测是以MPEG编码器中的前 第N—1再现帧为依据的。用7a示出在N时间上将要进行编码的一 个帧,图7b示出了在N—1时间上的再现帧,其存储在设置在编码器和解码器中的帧存储器(FS)内。采用编码器运动估算方法已对 图7b中所示的块运动矢量(mv,参照图2)加以估算,并能预测第 N帧中每个宏模块的平移运动的位移(参照第N—1帧)。图7b出 示了这个纯帧差信号(第N帧减去第N—1帧),若在编码过程根本 不采用运动补偿预测,那么就能获得这个帧差信号——即假定所有 运动矢量为零。图7d出示了:当采用图7b的运动矢量来进行预测 时的运动补偿帧差信号。很明显,跟图7c中的纯帧差编码相比,采 用运动补偿,大大减缩了这个将要被编码的残差信号。 图7:(a)在N时间上将要被编码的帧:(b)在P4—1时间上 的帧,用来预测第N帧的内容(注意:四面中所示的运动矢量,并 不是存储在编码器和解码器内的再现画面的一部分;(c)没采用运 动补偿所获取的预测误差画面——假设所有的运动矢量均为零; (d)若采用运动补偿预测,将要进行编码的预测误差画面.
(B)条件再补给
MPEG1编码算法所支持有一个基本特点是,如需要时(即与 前帧同一个宏模块相:比,宏模块内容已有变更时),可以在解码器 中更新宏模块的信息(条件宏模块再补给)在较低比特率要实行 规频序列的有效编码的关键,是选择合适的预测模式,以实现条件 再补给,MPEG标准主要区分有三种不同的宏模块编码类型(MB 类型): 跳跃MB:来自前帧的预测,运动矢量为零。根本无宏模块信息被进行编码,及被传送至接收机。 帧间MB:根据前帧,采用运动补偿预测。传送MB类型及MB 地址;如需要,也传送运动矢量、DCT系数及量化步长。 帧内MB:根本不采用来自前帧的预测(仅仅采用帧内预测) 仅仅向接收机传送MB类型、MB地址、DCT系数及量化步长。
(C)特殊的存储媒体功能
为了从存储媒体中存取视频,MPEG1视频压缩算法设计成能 支持一些重要功能,如随机存取有及快进(FF)和快倒(FR)重 放等功能。考虑到对存储媒体的需求比及进一步探索运动补偿和运 动内描的优越性,由MPEGl引入B图像(双向预测测/双向内扫图 像)概念。这一概念示于图8,对象为视频序列中的一组连接图像。 图像有三种类型:帧内图像(I图像)编码时,不参照视频序列中 的其它图像,已在图4中介绍过,I图像允许存取点进行随机存取, 并对比特流进行FF/FR功能,不过只能进行低压缩。帧内预测图 像(P图像)编码时要参照挨差最近的前一个已编码的I图像或P 图像,通常采用运动补偿,以提高编码效率。由于通常用P图像作 为参照物来预测未来帧或过去帧,故P图像不提供用于随机存取或 编辑的合适的存取点。双向预测/内描的图像(B图像)备用过去帧 和未来帧作为参照物。为了实现高压缩,可以依据挨得最近的过 去、未来的P图像或I,图像,来实施运动补偿。B图像本身永不会 当作参照物来加以使用。 图8在MPEGl视频序列中所采用的I图像(I)、P图像(P) 和B图像(B),依据两个最近的已编码帧(I图像或P图像)采用 运动补偿预测,可以对B图像进行编码。为了适应不同应用的需 求,视频序列内图像编码类型的安排具有灵活性。图中指出了预测 的方向。 使用者在安排视频序列中的图像类型时具有很大的灵活性,以 适应各种不同应用的需求。作为总的原则,仅仅采用I图像(IIIIII.....)编码的视频序列,具有最好的随机存取、FF/FR和编辑功 能,但只能实现低压缩。已编码的,带有一个常规修正的I图像及 无B图像的序列(即IPPPPPPIPPP......),能实现中度压缩,具有一定程度的随机存取及FF/FR功能。所有这三种图像类型的结合,能做到高压缩,具有较好的随机存取和FF/FR功能,但大大增加了编码延迟时间。这 一延迟也许在一些应用场合是不允许的,如视频电话、视频会议 。
(D)速率控制
MPEGl编码算法所支持的一个重要特点是,通过调节量化 DCT系数的量化器步长(sz)(见图5),为了满足特殊应用的要 求,可以调节比特率(因而也调节了再现视频信号的质量) DCT 系数的粗量化能对具有高的视频信号进行存储或传送,但会产生较 大的编码人工产物,这取决于量化等级 MPEGI标准允许编码器 为每一个已编码宏模块选择不同的量化器值——这样,可以对需要 改进画面质量的位置上分配比特,具有很大的灵活性。另外,还能 产生常量和变量比特率,用于压缩视频的存储或实时传送。 压缩的视频信息从实质上来讲本来就是可变的。通常是由连续 视频帧的变化的内容所引起的,必须对由编码器产生的可变比特流 缓冲于视频缓冲器中,如图5所示。进入到编码器VB的输入在时 间上是可变的,而输出是一个恒定比特流。在解码器,VB输入比 特流是恒定的,用于解码的输出是可变的 MPEG编码器和解码器 采用同样尺寸的缓冲器,以避免产生再现误差。 编码器中的速率控制算法,依据视频内容和活动程度,调节量 化器的步长(SZ),以保证视频缓冲器永不溢流——同时,应保持 缓冲器尽可能的满,以尽量提高画面质量。理论上讲,采用大的视 频缓冲器,可以避免缓冲器出现溢流现象。然而,除大型缓冲器价 格昂贵外,对于要求在编码器与解码器之间的延迟小的应用场合,大型缓冲器还存在另外一些缺点,如对话或视频的实时传送。如果 由于采用了视频缓冲器来产生一个恒定的比特率输出,编码器比特 流是平坦的,那么在编码处理跟在解码器视频再现时间之间就会引入一个延迟。通常,缓冲器越大,所引入的延迟时间越长 MPEG已规定了最小的视频缓冲器的尺寸,它需要获得所有解 码器运作的支持。该数值等同于VB尺寸的最大值,编码器用它来 产生比特流。然而,为了减少延迟或编码器的复杂性,在编码器选 择一个虚拟缓冲器尺寸值是可能的,该值比需要得到解码器支持的 最小VB尺才要小。在发送视频比特流之前,先将该虚拟缓冲器尺 才值传送给解码器。用于压缩视频的速率控制算法不属于MPEG—1标准,这就留给实施者去开发有效的战略方法。应着重指出:制造厂商以指定比特率去压缩视频所选择的速率控制算法的效率,对在解码器再现的 视频的可视质量有非常大的影响。
(E)隔行视频源的编码
用于MPEG—1的标准化视频输人格式是非隔行制。然而,对 MPEG1来讲,隔行彩色电视(525行,29.97帧/每秒及625行, 25帧/秒)编码是一个重要的应用。基于隔行源到逐行中间格式的 转换,MPEGl已对Rec.601数字彩色电视信号的编码提出一个建 议。从本质上讲,只对每一个隔行视频输入帧中的一个水平二次取 样场进行编码,即二次取样顶(top)场。在接收机,根据已解码的 和水乎内插的奇数场,采预测偶数场,加以显示。在编码之前所必 须的预处理及编码之后所需的后处理,均在MPEGl国际标准文件 的信息附录中有详细叙述.
富士达集团(http://www.fst-ec.com)提供数字视频光端机、数字音频、VGA DVI光端机等设备。
|