MPEGl和MPEG2数字视频编码标准(I)

本文的目的在于给出有关MPEGl和MPEG2视频编码算法及标准的概述、以及它们在视频通信中的作用。论文的正文是这样安 排的:首先回顾了与MPEG视频压缩标准有关的那些基本概念和技术:接着较详细地叙述了MPEGl和MPEG2的视频编码算法;最 后的内容为标准中与其应用有关的一些特征。 


MPEG视频压缩算法的基本原理 

一般说来,在帧内以及帧与帧之间,众多的视频序列均包含很 大的统计冗余度和主观冗余度。视频源码的最终目标是:通过挖掘 统计冗余度和主观冗余度,来降低存储和传送视频信息所需的比特 率;并采用嫡编码技术,以便编制出“最小信息组”一个实用的 编码方案,是在编码特性(具有足够质量的高压缩)与实施复杂性 之间的一种折衷。对于MPEG压缩算法的开发来讲,计及到这些标 准的寿命周期应考虑到现代超大规模集成电路技术的能力,这一点 是最重要的。 根据应用的要求,我们也许会想到视频数据的“无损失”编码 和“有损失”编码“无损失”编码的目的在于:在保持原图像质 量(即解码后的图像质量等同于编码前的图像质量)情况下,来减 少需要存储和传送的图像或视频数据。与此相反,“有损失”编码 技术(该技术跟MPEG—l和MPEG2视频标准未来的应用有关) 的目的是,去符合给定的存储和传送比特串。重要的一些应用包 括;利用限定的带宽或很窄的带宽,通过通信频道采传送视频信 息;有效地存储视频信息。在这些应用中,高的视频压缩是以降低 视频质量的办法来实施的,即跟编码以前的原始图像相比,解码后 的图像“客观”质量有所降低(也就是取原始图像和再现图像之间 的均方差,作为评定客观图像质量的标准)频道的目标比特率越低;那么视频所必须进行的压缩率就越大,通常可察觉的编码人工 产物也越多。有损失编码技术的最终目的是:在指定的目标比特串 条件下,获取最佳的图像标准。这里应服从“客观”或“主观”上 的最佳标准。这里应该指出,图像的降级程度(指客观降低以及可 察觉到的人工产物的数量)取决于压缩技术的复杂性——对于结构 简单的画面和视频活动少的图像来讲,就是采用简单的压缩技术, 也许能获得根本不带可察觉人工产物的良好的再现图像 

(A)MPEG视频编码器源模式 

MPEG数字视频编码技术实质上是一种统计方法。在时间和空 间方向上,视频列通常包含统计冗余度。MPEG压缩技术所依赖的 基本统计特性为像素之间(interpel)的相关性,这里包含这样一个 设想:即在各连续帧之间存在简单的相关性平移运动。这里假定: 一个特殊画面上的像素量值,可以(采用帧内编码技术)根据同帧 附近像素来加以预测,或者可以(采用帧间技术)根据附件帧中的 像素来加以预测。直觉告诉我们:在某些场合,如一个视频序列镜 头变化时,各附近帧中像素之间的时间相关性就很小,甚至消失 —这时,该视频镜头就成为一组无相关牲的静止画面的组合。在 这种情况下,可采用帧内编码技术来开发空间相关性,来实现有效 的数据压缩,MPEG压缩算法采用离散余弦变换(DCT)编码技 术,以8×8像素的画面块为单位,有效地开发同一面面各附近像 索之间的空间相关性。然而,若附近帧中各像素间具有较大的相关 性时,也就是说两个连续帧的内容很相似或相同时,就可以采用应 用时间预测(帧间的运动补偿预测)的帧间DPCM编码技术。在多 种MPEG视频编码方案中,若将时间运动补偿预测路剩余空间信息 的变换码自适应地结合起来,就能实现数据的高压缩(视频的 DPCM/DCT混合编码) 图1给出了一个画面的帕内像素问相关性特性的举例,这里采 用了一个非常简单,但很有价值的统计模式。这个假设的简单模式已包括了许多“典型”画面的一些基本的相关特性,也就是指相邻 像素间的高度相关性,以及随着像素间距的增大相关性的单值衰减 特性。我们以后将利用这一模式来展示变换区域编码的一些特性。 图1一些“典型”画面的像素间的空间相关性,是应用具有 高度像素间相关性的AR(1)GaussMarkov画面模式来加以计算 的。变量X和Y分别表示像素之间在画面水平和垂直方向上的距 离 

(B)二次取样和内插法 

几乎所有本论文中所叙述的视频编码技术,在编码之前,均大 量地进行了二次取样和量化工序。二次取样的基本概念是想减少输 入视频的Dimension 水平Dimension和或垂直Dimension),并在进 行编码处理之前先对像素进行编号。值得注意的是:在有些应用场 合,在时间方向上也对视频进行二次取样,以便在编码之前降低帧 频。在接收机端,已解码图像是通过内插法来加以显示的。这一方 法可以认为是一种最简单的压缩技术,这种压缩技术利用了人眼特 有的生理特姓,因而去除了视频数据中的含有的主观冗余度—即 与色度信号的变化相比,人眼对亮度信号的变化更灵敏。故众多 MPEG编码方案首先将画面分成YUV与量信号(一个亮度分量和 二个色度分量)接着,相对于亮度分量,对色度分量进行二次取 样,对于一些特殊应用,有一个Y:U:V比率(即对于MPEG—2 标准,采用4:1:1或4:2:2. 

(C)运动补偿预测 

运动补偿预测是一个有力的工具,以便减小帧间的时间冗余 度;并作为用于时间DPCM编码的预测技术,这一工具在MPEGl 和MPEG2视频编码标准中得到广泛应用。运动补偿概念是以对视 频帧间运动的估算为基础的,也就是说,若视频镜头中所有物体均在空间上有一位移,那么用有限的运动参数(如对于像素的平移运 动,可用运动矢量来描述)来对帧间的运动加以描述。在这一简单 例子中,一个来自前编码帧的运动补偿预测像素,就能给出一个有 效像素的最佳预测。通常,预测误差和运动矢量均传送至接收机。 然而,将一个运动信息对每一个编码画面像素进行编码,这既不值 得也没有这个必要。由于一些运动矢量之间的空间相关性通常较 高,有时可以这样认为:一个运动矢量代表一个相邻像素块的运 动。为了做到这一点,画面一般划分成一些不连接的像素块(在 MPEGl和MPEG2标准中一个像素块为16×16像素),对于每一个 这样的像素块,只对一个运动矢量进行估算、编码和传送(图2)。 在MPEG压缩算法中,运动补偿预测技术用来减少帧间的时间 冗余度,只对预测误差画面(原始画面与运动补偿预测画面之间的 差别)加以编码。总的来说,由于采用依据于前编码帧的预测,与 图l中所示的帧内相关性相比较,待编码的运动补偿帧间误差图像 中像素之间的相关性就差了。 图2用于运动补偿的块匹配法:在待编码的第N有效帧中,为 每一个画面块估算一个运动矢量(mv)该运动矢量针对前已编码 的第N—l帧中同样大小的一个参照画面块。运动补偿预测误差是 这样计算的:在带有前帧参照块中运动飘移对应物的面面块中,减 去一个像素。 

(D)变换或编码 

二十年来,人们已对变换编码进行了大量的研究,它已成为用 于静止画面编码和视频编码的一种非常流行的压缩方法。变换编码 的目的在于去掉帧内或帧间误差图像内容的相关性,对变换系数进 行编码,不是对画面的原始像素进行编码。为此,输入画面被分成 不连接的b像素的画面块(即N×N像素)。以一个线性、可分离的 和单元前向变换为基础,本变换可表示为一个矩阵操作,采用一个N×N变换矩阵A,采获取N×N变换系数C。 C=AbAt 这里AT表示变换矩阵A的一种移项式。注意:这种变换是可逆的, 原因是,采用线性和可分离的反向变换,可以再现原始的N×N个 b像素的画面块. b=AtCa 利用许多可能的方法,应用于较小的由8×8像素组成的画面 块的离散余弦变换(DCT)已成为一种最佳的变换,用于静止画面 和视频编码。事实上,由于基于DCT的方法具有较高的抗相关性 能,并能获得快速DCT算法,适用于实时应用,已在大多数画面 和视频编码标准中加以使用。VLSI技术的运行速率适合较广泛的 视频应用范围,故已商业化。 变换编码的主要目的是使尽量多的变换系数足够的小,使它仍 无效(从统计和主观测量角度来看)。同时,应尽量减小系数之间 的统计相关性,目的在于减少对剩余系数进行编码所需的比特数 量。 图3示出了帧内DCT系数8×8像素块的方差(能量),这里是 以图1中已讨论过的简单的统计模式设想为基础的。此处,每一个 系数的方差,表示了系数(大量帧的乎均值)的可变性。与方差大 的系数相比,方差小的系数在画面像素块再现时意义就不大了。如 图3中所示,一般来说,为了获得画面像素块的有用的近似再现, 只要将少量DCT系数传送给接收机就行。然而,那些最高有效位 DCT系数集中在左上角(低DCT系数),面随着距离的增加,系数 的有效牲就逐步下降。这意味着:与较低位的系数相比,较高位的 DCT系数在画面像素块再现时的重要性就差一些。采用运动补偿预测,DCT变换的结果是,使DCT定义域中的时间DPCM信号实现 筒单的再现—这实质上继承了这种相似的统计相关性,如以DCT 定义域中的这个DPCM信号来再现图2中的帧内信号(虽然能量有 所减少)—这就是为什么为了使帧间压缩获得成功MPEG算法要采用DCT编码的原因 图3图示了DCT系数的方差分布情况,典型地计算了大量的画 面块而获得的平均值。DCT系数方差计算是以图1中的统计模式为 基础的。U和V分别该8×8块中水平和垂直画面变换域变量。大 多数总方差集中在DCDC了系数周围(U=0,v=0) DCT跟离散傅里叶变换很接近,而认识到以下这点是重要的, 即可以对DCT系数加以频率说明,使其更接近于DFTo在画面块 内,低位的Dcr系数与较低的空间频率有关而高位的DCT系数 与较高的频率有关。这一特性在MPEG编码方案中被加以应用,以 便去除画面数据中所包含的主观冗余度,这一切是以人类视觉系统 标准为基础的。由于跟较高空间频率有关的再现误差比较,观众对 较低空间频率的再现误差更加敏感,故在给定比特率情况后,为了 要改进解码画面的视觉质量往往根据视觉(感觉量化)对系数进 行频率自适应加权(量化) 上述两种技术—时间运动补偿预测和变换域编码—的结 合,被认为是MPEG编码标准的关键点 MPEG算法的第三个特 点是这两种技术的处理是较小的画面块(典型情况是:在16×16 像素上进行运动补偿,在8×8像素上进行DCT编码)。由于这个原 因,MPEG编码算法通常又叫作基于画面块的DPCM/DCT混合算法. 

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)若采用运动补偿预测,将要进行编码的预测误差画面. 
 



本文链接地址:http://www.chinavideoonline.com/mpeg4/mpeg4_011.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值