由于MPEG-1目的是针对消费类多媒体应用,以约为1.2 Mbps速率产生接近于VHS的视频质量,而1.5 Mbps的其他部分则用于数据和音频。MPEG-1的贡献在于:
1)由于1.5 Mbps的速率接近于CD-ROM播放器的数据存取速度,因而大量的多媒体信息能以MPEG-1的格式存储在CD-ROM上,使得CD-ROM可以从单纯的数据信息存储转为以视频为主的多媒体信息存储,解决了多媒体信息的数字存储问题并形成了一个制作各种影像的VCD产业,如VCD教学光盘、VCD影片等。
2)具有非常方便的交互性能,使得用户能很容易实现交互操作,如快进、快退、随机读取信息,在质量不下降的前提下,随机存取时间大约在0.5s左右。
1、视频编码框图
自从1989年MPEG组织开始征集、收集评估、验证测试一直到1992年正式公布MPEG-1的这段期间,另一个国际标准化组织ITU-T在1990年公布了视频编码标准H.261。进行比较发现,这两者之间在视频编码方法存在很多相似性。MPEG-1视频编码器框图如图1所示。
首先对输入视频信号预处理,包括从RGB到YCbCr的色彩空间变换、格式转换、预滤波等,实际上MPEG-1标准并没有给出如何进行这些操作。其次,编码器要为输入图像选择合适的编码类型。如果是I帧,不需要运动估计和补偿,与 H.261的I帧编码方法一样。如果是P帧,需要进行帧间预测编码。如果是B帧,需要进行帧间内插编码。无论是P帧还是B帧,都需要进行运动估计和运动补偿。从图1可知,混合编码仍然是MPEG 1视频编码器的核心。
2、视频格式和图像类型
1)图像格式
MPEG-1处理的对象是逐行扫描视频,对于隔行扫描的视频图像源则必须先转换为非隔行扫描的输入格式,即将两场合并成一帧进行编码。输入的视频信号必须是数字化的一个亮度和两个色差信号(Y、Cb、Cr)。为了使压缩后的码率能降低到1.5 Mbps以下,MPEG定义了SIF格式,其图像尺寸如表1所示。实际上,SIF格式很容易从ITU-R BT.601进行滤波和亚采样得到。
表1:SIF图像格式参数
2)图像类型
由于MPEG-1具有良好的交互功能,能够方便进行快进、快退和随机存取。因此在视频码流中存在着一种特殊的标志,这就是MPEG-1所采用的I帧图像编码类型。I帧图像称为帧内图像(Intra Pictures),它为用户的交互功能提供随机存取的访问位置,使得解码器可由此点开始,同时它可以作为其他图像类型编码的参考帧,但是I帧仅采用了DCT变换编码加熵编码的压缩方法,压缩比不高。在MPEG-1中还有一种类似于I帧的图像编码类型,称为DC编码帧(DC-coded Pictures,D帧),其DCT变换结果的DC项系数被保留,D帧不能用作其他帧的预测参考帧,定义D帧的目的只是提供一种快速搜索的方法,因此D帧一般不常见。另外MPEG-1采用了压缩比更高的两种类型图像编码,一是预测帧(Predicted Pictures)或称为P帧图像;另一是双向预测帧(Bi-directional Prediction Pictures)或称为B帧图像。之所以MPEG-1中的P帧和B帧能提供较高的压缩效果,是因为P帧和B帧图像编码所产生的码流不是P帧和B帧图像的所有信息,而是它与参考帧预测之后差分信息以及各宏块的运动矢量信息。
实际上,三种常见类型图像的组织结构是非常灵活的,它们的组合可根据编码器的实际情况和应用需求决定,如随机存取和编码延时等多种因素。由于编码P帧时需要先前的I帧或P帧进行预测,编码B帧时需要先前和后面的I或P帧图像进行双向预测,因此I帧、P帧和B帧存在着前后因果关系。如下面视频序列中的第4帧(P帧)是由第1帧(I帧)预测,由第1帧(I帧)和第4帧(P帧)共同预测出它们之间的第2帧(B帧)和第3帧(B帧),如此等等。因此,发送端编码器输出(或接收端解码器输入)图像帧顺序不是按照原始视频序列的时间顺序,而是重新调整图像顺序输出。例如一个具有15帧图像的视频序列,I帧、P帧和B帧沿着时间轴上的顺序,编码器编码传输顺序如下表2所示:
当解码器接收到MPEG-1视频流信息时,解码出运动矢量参数,然后进行运动补偿。运动补偿的方法是将每个宏块解码得到的预测值加上运动矢量所指向的参考帧对应宏块值。尽管P帧和B帧宏块的运动矢量是一个非常重要的参数,直接影响到编码器的性能和效果,但是MPEG-1标准并没有规定运动矢量的求取方法。正因为如此,MPEG-1标准在走向实用的过程中,仍然给研究和开发人员留下了非常广阔的研究空间。
3、视觉加权量化
从图1可以看出,MPEG-1视频编码器与H. 261压缩算法大致相似,采用基于DCT的变换编码技术减少空域冗余信息,DCT变换后系数进行视觉加权和量化。一方面,量化后系数按照“之”字扫描,然后与视频其他信息(如运动矢量、宏块类型、开始码等)按照MPEG-1语法结构构成视频比特流。另一方面,进行反量化和反DCT变换,进行当前帧图像重建,放置到帧存中,作为编码下一帧图像的预测参考帧。
在减少空域冗余信息的DCT变换和量化的技术中,与H.261不同的是,其I帧的8×8块DCT系数通过视觉加权量化矩阵方法以适应人类视觉系统。缺省的帧内块量化矩阵如图2所示。从帧内量化加权矩阵可以看出:
●在低频段,量化步长较小,而在高频段,量化步长大。充分利用了量化误差的主观感觉随着DCT系数的频率变化特性,对图像高频系数作比较粗的量化。
●水平方向和垂直方向的量化步长是不同的,这也利用了人类视觉系统对水平和垂直方向感觉不同的特点,即视觉对垂直方向变化的感觉更加明显。
采用帧内量化加权矩阵通常是从提高图像的主观质量来考虑的。因为比较两个能生成同样比特率的编码器时,一个采用上述视觉加权量化矩阵,另一个不采用视觉加权量化矩阵,结果发现前者的信噪比较低,但具有较高的主观质量。对于非帧内块量化,则采用与上述帧内块不同的量化矩阵,其缺省的量化矩阵如图3所示。之所以对非帧内编码帧使用这种均匀量化的方式,是因为这种帧提供的运动预测误差信息,对各个频率分量的元素应该一视同仁。
然而,在MPEG-1中并不是所有量化器都是固定不变的,而是可以采用可调量化器进行量化。因为并不是所有的空间信息都能使人眼视觉系统产生同等的感觉,特别是对于那些信号变换梯度平稳的块,如果有一个非常小的误差,人眼就会觉察到块的边界,而对信号变换剧烈的块,视觉对误差的敏感觉察被掩盖。为了适应块之间信号的不均匀性,在块和块的基础上对量化器步长进行调节。
4、视频流层次结构和组成
与H.261类似,MPEG-1视频图像数据流是一个分层结构,共分6个不同的层次,依次是视频序列层(Video Sequence)、图像组层GOP(Group of Pictures)、图像层(Picture)、片层(Slice)、宏块层(Macroblock)和块层(Block)。通过分层结构,把视频比特流中逻辑上独立的实体分开,尽量减少图像帧和帧之间、图像组和图像组之间、宏块和宏块之间的相关性,减少解码过程中码流之间的前后相互影响。
视频序列层表示一个图像序列的开始,由序列头加一个或多个图像组构成,最后加序列结束码结束。其中序列头以序列头开始码开始,后面跟着如帧内视觉加权量化矩阵或非帧内视觉加权量化矩阵等数据元素。每一个图像组前面可以选择有或者没有序列头,初始序列头的数据元素可以重复使用,从而使随机地对视频序列进行存取操作成为可能。当然,序列头中的量化矩阵等数据元素可以改变。视频序列层组成如图4所示。
图4:视频序列层组成
图像组层是由图像组开始码加一帧或多帧图像组成的短视频序列。图像组层中的第一帧编码图像是I帧,最后一帧是I帧或者是P帧,在图像组中存在着对视频序列码流随机操作的存取点。图像组的长度随意,可包含一个或多个I帧图像。在要求能随机操作、快进、快退或正常逆放的应用场合,可使用相对较短的图像组层。图像层是针对每帧编码图像而言的,通常采用三种类型的编码图像,即I帧、P帧、B帧。由于要进行P帧和B帧的重新排序,在图像层的头信息中定义了一个时间参考标号(temporal reference number)用来指示各帧的显示顺序。其他的头信息还包括图像类型、同步、分辨率和运动矢量范围等。片层是由一系列随意个数的宏块组成的,类似于H.261中的宏块组。其顺序与H.261相同,从图像的左上角自左向右、自上往下进行。片的大小是可变的,最大可以是整幅图像,最小可以是一个宏块,最初的片层应包含图像的第一个宏块,而最末一个片层应是图像的最后一个宏块。片层头信息指示了片在图像中的位置以及该片的量化因子。定义量化因子可以使解码器在片这个层次上对码流进行校正。MPEG-1中的宏块和块的概念与H.261相同。
由于MPEG-1可以支持多种视频参数,如很宽范围的空间分辨率和时间分辨率,能使用很大范围的码流比特率。为了方便使用,保证不同厂家使用MPEG1标准的设备在一个主要目标内具有互通性,MPEG 1定义了一个视频编码参数的特殊子集,称为限制参数集(CPS,Constrained Parameters Set)。CPS对图像的采样率、编码生成的码流比特率做了限制以减少编解码器的计算复杂度、缓冲大小和带宽要求,同时仍然保持最大可能的应用范围。CPS参数表如3所示。