MPEGl和MPEG2数字视频编码标准
-
MPEGl
和
MPEG2
数字视频编码标准
本文的
目的在于给出有关
MPEGl
和
MPE
G2
视频编码算
法及标准的概述、以及它们在视频通信中的作用
。论文的正
文是这样安
排的:首先回
顾了与
MPEG
视频压缩标准有关
的那
些基本概念和技术:接着较详细地叙述了
MPEGl
和
MPEG2
的视频编码算法;最
后的内容为标准中与其应用有
关的一些特征。
MPEG
视频压缩算法的基本原理
一般
说来
,
在帧内以及帧与帧之间,
众多的视频序列均包含很
大
的统计冗余度和主观冗余度。视频源码的最终
目标是:通过
挖掘
统计冗余度和主观
冗余度,来降低存储和传送视频信
息所需的比特
率;并采用嫡编码技术,以便编制出“最小
信息组”一个实用的
编码方案,是在编码特性
(
具有足够质
量的高压缩
)
与实施复杂
性
之间的一种折衷。
对于
MPEG
压
缩算法的开发来讲,计及到这些标
p>
准的寿命周期应考虑到
现代超大规模集成
电路技术的能力,这一点
是最重要的。
根据应用的要求,我们
也许会想到视频数据的“无损失”编
码
和“有损失”编码“无损失”编码的目的在于:在保持
原图像质
量
(
即解码后的图像质量等同于编
码前的图像质量
)
情况下,来减
p>
少需要存储和传送的图像或视频数据。与此
相反,
< br>“有损失”编码
技术
(
该技术跟
MPEG
—
l
和
MPEG2
视频标准未来的应用有
关
)
的目的是,去符合给定的存储和
传送比特串。重要的一些应用包
括;利用限定的带宽或很
p>
窄的带宽,通过通信频道采传送视频信
息
;有效地存储视
频信息。在这些应用中,高的视频压缩是以降低
视频质量
的办法来实施的,
即跟编码以
前的原始图像相比,
解码后
的
图像
“客观”
质量有所降低
< br>(
也就是取原始图像和再现图像之
间
的均方差,作为评定客观图像质量的标准
)
频道的目标比
特率越低;那么视频所必须进行的压缩率就越大,通常可察
p>
觉的编码人工
产物也越多。有损失编码技
术的最终目的是:
在指定的目标比特串
条件下,获取最佳的图像标准。这里
应服从“客观”或“主观”上
的最佳标准。这里应该指出,
图像的降级程度
(
指客观降低以及可
察
觉到的人工产物的数
量
)
取决于压缩技
术的复杂性——对于结构
简单的画面和视
频活动少的图像来讲,就是采用简单的压缩技术,
也许能
获得根本不带可察觉人工产物的良好的再现图像
(A)MPEG
视频编码器源模式
MPEG
数字视频编码技术实质上是
一种统计方法。在时间和空
间方向上,视频列通常包含统
计冗余度。
MP
EG
压缩技术所依赖的
基本统计特性
为像素
之间
(interpel)
的相
关性,
这里包含这样一个
设想:
p>
即在各连
续帧之间存在简单的相关性平移运动。这里假定:
一个特
殊画面上的像素量值,
可以
(
采用帧内编码技术
)<
/p>
根据同帧
附
近
像素来加以预测,或者可以
(
采用帧间技术
)
根据附件帧中
的
像素来加以预测。直觉告诉我们:在某些场合,如一个
视频序列镜
头变化时,各附近帧中像素之间的时间相关性
就
很小,甚至消失
—这时,该视频镜头就成为一组无相关
牲的静止画面的组合。在
这种情况下,可采
用帧内编码技
术来开发空间相关性,来实现有效
的数据压缩,
MPEG
压
缩
算法采用离散余弦变换
(DCT)
编码技
术,以
8
×
8
像素的
画面块为单位,有效地开发同一面面各附近像
索之间的空
间相关性。然而,若附近帧中各
像素间具有较大的相关
性
时,也就是
说两个连续帧的内容很相似或相同时,就可以采
用应
用时间预测
(
帧间的运动补偿预测
)
的帧间
DPCM
编码
p>
技术。在多
种
M
PEG
视频编码方案中,若将时间运动补偿
预测路剩余空间信息
的变换码自适应地结合起来,就能实
现数据的高压缩
(
视频的
DPCM/DCT
混合编码
)
图
1
给出了
一个画面
的帕内像素问相关性特性的举例,这里采
用了一
个非常简单,但很有价值的统计模式。这个假设的简单模式
已包括了许多“典
型”画面的一些基本的相关特性,也就是
指相邻
像素间的高度相关性,以及随着像素间距的增大相
关性的单值衰减
特性。我们以后将利用这一模式来展示变
换区域
编码的一些特性。
一些“典型”画面的像素间的空
间相关性,是应用具有高度像素间相关性的
AR(1)GaussMark
ov
画面模式来加以计算的。变量
X
和
Y
分
别表示像素之间在画面水平和垂直
方向上的距
离。
< br>(B)
二次
取样和内插法
几乎所有本论文中所叙述的视频编
码技
术,在编码之前,均大
量地进行
了二次取样和量化工序。
二次取样的基本概念是想减少输
入视频的
Dimension
水平<
/p>
Dimension
和或垂直
Dimen
sion)
,
并在进
行编码处理之前先
对像素进行编号。值得注意的是:在有些应用场
合,在时
间方向上也对视频进行二次取样,以便在
编码之前降低帧
频。在接收机端,已解码图像是通过内插法来
加以显示的。
这一方
法可以认为是一
种最简单的压缩技术,这种压缩技
术利用了人眼特
有的生理特姓,因而去除了视频数据中的
含有的主观冗余度—即
与色度信号的变化相比,人眼对亮
度信号的变化
更灵敏。故众多
MPEG
编码方案首
先将画面
分成
YUV
与量信号
(
一个亮度分量和
二
个色度分量
)
接着,
相对于亮度分量,
对色度分量进行二次取
样,对于一些特
殊应用,有一个
Y
:
U
:
V
比率
(
即对于
MPEG
—
2
标准,采
用
4
:
p>
1
:
1
或
4
:
2
:
2. (C
)运动补偿预测
运动补偿预
测是一个有力的工具,以便减小帧间的时间冗余
度;并作<
/p>
为用于时间
DPCM
编码的预测技术,<
/p>
这一工具在
MPEGl
和
MPEG2
视频编码标准中得到广泛应用。运动补偿概念是以
对视
频帧间运动的估算为基础的,也就是说,若视频
镜头
中所有物体均在空间上有一位移,
那么用有限的运动参数<
/p>
(
如
对于像素的平移运
< br>
动,可用运动矢量来描述
)
来
对帧间的运
动加以描述。在这一简单
例子中,一个来自前编码帧的运
动补偿预测像素,
就能给出一个
有效像素的最佳预测。
通常,
预测误差和运动矢量均传送至接收
机。
然而,将一个运动
信息对每一个
编码画面像素进行编码,这既不值
得也没有
< br>这个必要。由于一些运动矢量之间的空间相关性通常较
高,
有时可以这样认为:一个运动矢量代表一个相邻像素块的运
动。为了做到这一点,画面一般划分成一些不连接的像素块
(<
/p>
在
MPEGl
和
MPEG2
标准中一个像素块为
16
×
16
像素
)
,
对于每一个
这样的像素块,只对一个运动矢量进行估算、
编码和传送
(<
/p>
图
2)
。
p>
在
MPEG
压缩算法中,
< br>运动补偿预测技
术用来减少帧间的时间
冗余度,只对预测误差画面
(
原始画
< br>面与运动补偿预测画面之间的
差别
)
加以编码。总的来说,
由于采用依据于前编码帧的预测,
待编码的运动补偿帧间误
差图像
中像素之间的相关性就差了。
用于运
动补偿的块匹
配法:
在待编码的第
N<
/p>
有效帧中,
为每一个画面块估算一个
运动
矢量
(mv)
该运动矢量针对前已编码
的第
N
—
l<
/p>
帧中同样
大小的一个参照画面块。运动补偿预测误差是
这样计算的:
在带有前帧参照块中运动飘移对应
物的面面块中,减去一个
像素。
(D)
变换或编码
二十年来,
人们已对变换编码进
行了大量的研究,它已成为用
于静止画面编码和视频编码
的一种非常流行的压缩方法。变换编码
的目的在于去掉帧
内或帧间误差图像内容的
相关性,对变换系数进
行编码,
不是
对画面的原始像素进行编码。
为此,
输入画面被分成
不
连接的
b
像素的画面块
(
即
N
p>
×
N
像素
)
。以一个线性、可分
离的
< br>和单元前向变换为基础,本变换可表示为一个矩阵操
作,
采用一个
N
×
N
变换矩阵
A
,
采获取
N
×
N
变换系数
C
。
C
=
AbAt
这里
AT
表示变换矩阵
A
的一种移项式。
注意:
这
种变换是可逆的,
原因是,采用线性和可分离的反向变换,<
/p>
可以再现原始的
N
×
N
个
b
像素的画面块
. b=AtCa <
/p>
利用许
多可能的方法,应用于较小的由
8
×
8
像素组成的画面
< br>
块的
离散余弦变换
(DCT)
已成为一种最佳的变换,用于静止画面
和视频编码。事实上,由于基于
DCT
的方法具有较高的抗<
/p>
相关性
能,并能获得快速
DCT
算法,适用于实时应用,已
在大多数画面
p>
和视频编码标准中加以使用。
VLSI<
/p>
技术的运
行速率适合较广泛的
视频应用范围,故已商业化。
变换编
码的主要目的是使尽量多的变换系数足够的小,使它仍
无
效
(
从统计和主观
测量角度来看
)
。同时,应尽量减小系数之
间
的统计相关性,目的在于减少对剩余系数进行编码所需
的比特数
量。
图
3<
/p>
示出了帧内
DCT
系数
< br>8
×
8
像素块的方
差
(
能量
)
,
这里是
以图
1
中已讨论过的简单的统计模式设想
为基础的。此处
,每一个
系数的方差,表示了系数
(
大量帧
的乎均值
)
的可变性。与方差大
的系数相比,方差小的系数
在画面像素块再现时意义就不大了。如
图
p>
3
中所示,一般
来说,为了获得画面像素块
的有用的近似再现,
只要将少
量
p>
DCT
系数传送给接收机就行。
然而,
p>
那些最高有效位
DCT
< br>系数集中在左上角
(
低
DCT<
/p>
系数
)
,面随着距离的增加,系数
的有效牲就逐步下降。这意味着:与较低位的系数相比,较
高位的
DCT
系数在
画面像素块再现时的重要性就差一些。
采用运动补偿预测,
DC
T
变换的结果是,使
DCT
定义域中<
/p>
的时间
DPCM
信号实现
筒单的再现—这实质上继承了这种
相似的统计相关性
,如以
DCT
定义域中的这个
DPC
M
信号
来再现图
2
中的帧内信号
(
虽然能量有
p>
所减少
)
—这就是为什
么为了使帧间压缩获得成功
MPEG
算法要采用
DCT
编码的
原因
p>
图
3
图示了
DCT
系数的方差分布情况,典型地计算了
大量的画
< br>
面块而获得的平均值。
DCT
系数方差计算是以图
1
中的统计模式为
基础的。
U
和
V
分别该
8
×
8
块中水平和
垂直画面变换域变量。大
多数总方差集中在
DCDC
了系数
p>
周围
(U
=
0
p>
,
v
=
0) DC
T
跟离散傅里叶变换很接近,
而认识到
以下这点是重要的,
即可以对
DCT
系数加以频率说明,使
其更接近于
DF
To
在画面块
内,
< br>低位的
Dcr
系数与较低的空
间
频率有关而高位的
DCT
系数
与较高的频率有关。这一特
性在
MPEG
p>
编码方案中被加以应用,以
便去除画面数
据中
所包含的主观冗余度,这一切是以人类视觉系统
标准为基
础的。
由于跟较高空间频率有关的再现
误差比较,
观众对
较
低空间频率的再现误差更加敏感,故在给定比特率情况后,
为了
要改进解码画面的视觉质量往往根据视觉
(
感觉量化
)
对系数进
行频率自适应加权
(
量化
)
上述两种技术—时间运
动补偿预测和变换域编码
—的结
合,被认为是
MPEG
编码
标准的关键点
MPEG
算法的第三个特
点是这两种技术的处
理是较小的画面块
(
典型情况是:
在
16
×
16
像素上进行运动
补偿,
在
8
×
8
像素上进行
DCT
编码
)<
/p>
。
由于这个原
因,
MPEG
编码算法通常又叫作基于画面块的
DPCM/DCT
混合算法
.
MPEG-1
:一个通用标准
-
一个
应用于数字存储媒体
(最高速率达
1
.
5Mb
/
s)
的活动图像和伴音的编码标准
<
/p>
由
MPEG
—
1
开发出来的视频压缩技术的应用范围很广,包
括
从
CD
—
< br>ROM
上的交互系统,到电信网络上的视频传送
MPEG1
视频编码标准被认为是一个通用标准。为了支持多
种应用,
可有用户来规定多种多样的输人参数
,包括灵活
的图像尺寸和帧
频。
p>
MPEG
推荐了一组系统规定的参数:
每一
个
MPEG
—
l
兼容解码器至少必须能够支持视频源参数,
最佳可达电视标准:包括每行
最小应有
720
个像素,
每个
图像起码应有
576
行,每秒最少
不低于
30
帧,及最低比特
率为
1
.
86Mb
p>
/
s
,标准视频输入应包括非隔行扫
描视频图
像格式。应该指出:但并不是说,
MPEGl
的应用就限制
于
这一系统规定的参数组。
根据
JPiG
和
H
p>
。
261
活动,已开
发出
MPEG
—
l
< br>视频算法。
当
时的想法是:
尽量保持与
CCITT
H
.
261
标
准的共同性,这样,支
持两个标准的做法就似乎
可能。当然,
MPEGl
主要目标在于多媒
体
CD
—
ROM
的应
用,这里需要由编码器和解码器支持的
附加函数
牲。由
MPEGl
提供的重要特性包括:
基于帧的视频随机存取,
通
过
压缩比特流的快进
/
快退搜索,
视频的反向重放,
及压缩比特
流
的编辑能力。
(A)
基本的
MPEG
—
1
帧间编码方案
基本
M
PEGl(
及
MPEG2)
视频压缩技
术的基础为:宏模块结
构、
运动补偿
及宏模块的有条件再补给。
如图
49
所
示,
MPEG
—
1
< br>编码算法以帧内编码模式
(I
图像
)
对视频序列的第一帧进
行编码。
每一个下一帧采用帧间预测法
(P
图像
)
进行编码—
—仅仅采用来
自前面最近的已编码
I
或
P
帧的数据,
来进行
预测,
MPEG
—
l
算
法对基于画面块视频序列的帧加以处理。<
/p>
视频序列中的每一个彩色
输入帧被分割
成多个非重迭的
“宏模块”
,如图
4b
所示。每一个宏
模块包含
4
个亮度块
(Y1
,
p>
Y2
,
Y3
,
p>
Y4)
及两个色度块
(U
< br>,
V)
,
每个宏模块的尺
寸为
8*8
像素,
这些数据块来自于亮度带和共址
的色度带。
< br>在
Y
:
U
:
V
亮度与色度像素之间的取样比为
4
:
1
:
1
以最
近的前帧为基础,采用运动补偿预测法来对
P
图像加以编
码。每一帧被
分割成不连接的“宏模块”
(MB)
。
图
4b
对于
每
一个宏模块,对有关
4
个亮度块
(Y
3
,
Y2
,
Y
3
,
Y4)
和两
个彩色决
(U
,
< br>V)
的信总均加以编码。
每个包含
8
×
8
个
像素。
基本的混合型
DPCM/DCT
MPEGl
编码器和解码器结构的方
块图示于图
5
之中。视频序列第
1
p>
帧
(I
图像
)
p>
以帧内
(INTRA)
模式加以编码不参
照任何一个过去帧或未来帧。在编码器
处,
DCT
被加到每一个
8
×
8
p>
亮度块和色度块上,在
DC
了
输出之后,该
64
个
p>
DCT
系数中的每一个系数被均匀量化
(Q
)
,在宏模块中被用来对
DCT
p>
系数进行量化的量化器步
长,传送给接收机。
‘量化之后,最低
位
DO
系数
(DC
系数
)
p>
的处理方法跟保留
(remaining)
系数
(AC
系数
)
的处理方法是
不一样的,
DC<
/p>
系数表示分量模块的平均
亮度,可用微
分
DC
预测法对
DC
< br>系数加以编码。保留
DCT
系数及
它们位
置的非零量化器值被
Z
p>
字形扫描,并采用可变长度编码
(VLC
)
表对其进行扫描宽度嫡编码。
图<
/p>
5
一个基本混合型
DC
< br>了/
DPCM
编码器和解码器结构的方决图
图
p>
6
中表示
出了系数
Z
字形扫描的概念。因为要利用系数将这
个两维
的画面信号变换成一个单维的比特流,故在量化
DC
T
域二
维信号扫描之后,进行的是可
变长度码—字分配工序。并沿
着扫描
行和两个连续非零系数之间的距离
(
行程
)
,
对这些非
零
AC
系数量
化器值
(
长度
)
加以检测。
采用仅传送—个
VLC
码字的方法,对
每一个连续
(
行程
、长度
)
对进行编码,
Z
字
形扫描的目的在于:
在
跟踪高频系数之前先去跟踪低频
DCT
系数
(
包含最大的能量
)
图
6
在
8
×
8
块内,
已量化
DCT
p>
系数的
Z
字形扫描。仅仅对非
零量化
DCT
系数加以编
码。
图中指出了非零
DCT
系数可能的
位置
Z
字形扫描的做法要
想做到按系数的有效性去跟踪
DCT
系数
参看图
3
,最低位<
/p>
的
DCT
系数
(
0
,
0)
包含了这些决中的最大部分<
/p>
的能量,这
些能量集中在较低位的
p>
DCT
系数周围
解码器执行反向操
作,首先从比特流中提取可变长度编码字
<
/p>
(VLD)
并加以解
码,以便为每一个画
面块获取非零
DCT
系数的位
置和量化
器值。
随着一个画面块所有非零
p>
DCT
系数的再现
(Q)
及随后
获得的反
DCT(DCT
—
1)
,
就得到量化块像素值。
p>
通过对整
个
比特
流的处理,就对所有的画面块进行了解码,并加以了再
现。
<
/p>
为了对
P
图像进行编码,前面的
I
图像的第
N
—
l
帧,
存储在
p>
设置在编码器和解码器内的帧存储器中。在宏模块
中执行运动补偿<
/p>
(MC)
—对于即将进行编码的那个宏
模块,
在第
N
帧与第
< br>N
—
1
帧之间,仅对一个运动
矢量进行估算。
这些运动矢量被编码及传送
< br>至接收机。运动补偿预测误差
是这样计算的:即在带有前帧运动飘
移对应物的宏模块中
减去一个像素。然后是将
8
×
8DCT
加入到
包
含在该宏模块
内的每一个
8
×
8
块中,接着是对
DCT
系数进行量化
(Q)
,
并进行扫描宽度编码和炳编码
(VLC)o
这里需用一个视频缓
< br>冲器;以确保编码器能产生一个常量的目标比特率输出。对
于帧内
每一个宏模块来讲,
量化步进
(SZ)
是可以调整的,
以
便获得给
定
的目标比特率,并避免缓冲器出现溢流和下溢
现象。
解码器采用反向处理,以便在接收机中再生
第
N
帧
的一个宏模
块。对包含在视频解码器缓冲器
(VB)
中的可变
长度字
(VLD)
进行解码之后,就能再现
(Q
和
DCT
—
1
操作
)<
/p>
预测误差像素值。
来自包含在帧存储器
(FS)
中的前第
N
< br>—
1
曲的运动补偿像素,被
<
/p>
加入到预测误差之中,以恢复第
N
帧的那
一宏模块。
在图
7a
一图
7d
中
9
采用了一个典型的测
试序列,描述了采用
运动补偿预测编码视频的好处,而该
预测是以
MP
EG
编码器中的前
第
N
—
1
再现帧为依据的。
p>
用
7a
示出在
N<
/p>
时间上将要进行编码的一
个帧,图
p>
7b
示出
了在
N<
/p>
—
1
时间上的再现帧,其存储在设置在编
码器和解码
器中的帧存储器
(FS)
内
。采用编码器运动估算方法已对
图
7
b
中所示的块运动矢量
(mv
,参照图
2)
加以估算,并能预测
第
N
帧中每个宏模块的平移运动的位移
(
参照第
N
—
1
帧
)
。
图
7b
出
< br>示了这个纯帧差信号
(
第
N
p>
帧减去第
N
—
1<
/p>
帧
)
,若
在编码
过程根本
不采用运动补偿预测,那么就能获得这个
帧差信号——即假定所有
运动矢量为零。图
p>
7d
出示了:当
采用图
7b
的运动矢量来进行预测
时的
运动补偿帧差信号。
很明显,跟图
7c
中的纯帧差编码相比,采
用运动补偿,大
大减缩了这个将要被编码的残差信号。
图
7
:
(a)
在
N
时间
上将要被编码的帧:
(
b)
在
P4
—
1
时间上
的帧,用来预测第
N
帧的内容
(
注意:四
面中所示的运动矢量,并
不是存储在
编码器和解码器内的再现画面的一部分;
(c)
没采用运
动补
偿所获取的预测误差画面——假设所有
的运动矢量均为零;
(d)
若采用运
动补偿预测,将要进行编码的预测误差画面
.
(B)
条件再补给
MPEG1
编码算法所支持有一个基
本特点
是,如需要时
(
即与
前帧同一个宏模块相:比,宏模块内容
已有变更
时
)
,
可以在解码器
< br>
中更新宏模块的信息
(
条件宏
模
块再补给
)
在较低比特率要实行
p>
规频序列的有效编码的关