MPEG-2视频编码系统原理及关键技术
概括地说,MPEG-2图像压缩的原理是利用了图像中的两种特性:空间相关性和时间相关性。一帧图像内的任何一个场景都是由若干像素点构成的,因此一个像素通常与它周围的某些像素在亮度和色度上存在一定的关系,这种关系叫作空间相关性;一个节目中的一个情节常常由若干帧连续图像组成的图像序列构成,一个图像序列中前后帧图像间也存在一定的关系,这种关系叫作时间相关性。这两种相关性使得图像中存在大量的冗余信息。如果我们能将这些冗余信息去除,只保留少量非相关信息进行传输,就可以大大节省传输频带。而接收机利用这些非相关信息,按照一定的解码算法,可以在保证一定的图像质量的前提下恢复原始图像。一个好的压缩编码方案就是能够最大限度地去除图像中的冗余信息。
MPEG-2中编码图像被分为三类,分别称为I帧,P帧和B帧。
----I帧图像采用帧内编码方式,即只利用了单帧图像内的空间相关性,而没有利用时间相关性。I帧主要用于接收机的初始化和信道的获取,以及节目的切换和插入,I帧图像的压缩倍数相对较低。I帧图像是周期性出现在图像序列中的,出现频率可由编码器选择。
P帧和B帧图像采用帧间编码方式,即同时利用了空间和时间上的相关性。P帧图像只采用前向时间预测,可以提高压缩效率和图像质量。P帧图像中可以包含帧内编码的部分,即P帧中的每一个宏块可以是前向预测,也可以是帧内编码。B帧图像采用双向时间预测,可以大大提高压缩倍数。值得注意的是,由于B帧图像采用了未来帧作为参考,因此MPEG-2编码码流中图像帧的传输顺序和显示顺序是不同的。
MPEG-2的编码码流的六个层次
从上至下依次为:视频序列层(Sequence),图像组层(GOP:GroupofPicture),图像层(Picture),像条层 (Slice),宏块层(MacroBlock)和像块层(Block)。从图1中可以看到,除宏块层和像块层外,上面四层中都有相应的起始码 (SC:StartCode),可用于因误码或其它原因收发两端失步时,解码器重新捕捉同步。因此一次失步将至少丢失一个像条的数据。
序列指构成某路节目的图像序列,序列起始码后的序列头中包含了图像尺寸,宽高比,图像速率等信息。序列扩展中包含了一些附加数据。为保证能随时进入图像序列,序列头是重复发送的。
序列层下是图像组层,一个图像组由相互间有预测和生成关系的一组I、P、B图像构成,但头一帧图像总是I帧。GOP头中包含了时间信息。
图像组层下是图像层,分为I、P、B三类。PIC头中包含了图像编码的类型和时间参考信息。
图像层下是像条层,一个像条包括一定数量的宏块,其顺序与扫描顺序一致。中一个像条必须在同一宏块行内。
像条层下是宏块层。MPEG-2中定义了三种宏块结构:4:2:0宏块4:2:2宏块和4:4:4宏块,分别代表构成一个宏块的亮度像块和色差像块的数量关系。
4:2:0宏块中包含四个亮度像块,一个Cb色差像块和一个 Cr色差像块;4:2:2宏块中包含四个亮度像块,二个Cb色差像块和二个Cr色差像块;4:4:4宏块中包含四个亮度像块,四个Cb色差像块和四个Cr 色差像块。这三种宏块结构实际上对应于三种亮度和色度的抽样方式。
在进行视频编码前,分量信号R、G、B被变换为亮度信号Y和色差信号Cb、Cr的形式。4:2:2格式中亮度信号的抽样频率为13.5MHz,两个色差信号的抽样频率均为6.75MHz,这样空间的抽样结构中亮度信号为每帧720x576样值,Cb,Cr都为360x576样值,即每行中每隔一个像素对色差信号抽一次样,如图3所示,○代表Y信号的抽样点,×代表 Cb,Cr信号的抽样点。
4:4:4格式中,亮度和色差信号的抽样频率都是 13.5MHz,因此空间的抽样结构中亮度和色差信号都为每帧720x576样值。而4:2:0格式中,亮度信号的抽样频率13.5MHz,空间的抽样结构中亮度信号为每帧720x576样值,Cb,Cr都为360x288样值,即每隔一行对两个色差信号抽一次样,每抽样行中每隔一个像素对两个色差信号抽一次样。
通过上述分析不难计算出,4:2:0格式中,每四个Y信号的像块空间内的Cb,Cr样值分别构成一个Cb,Cr像块;4:2:2格式中,每四个Y信号的像块空间内的Cb,Cr样值分别构成两个Cb,Cr像块;而 4:4:4格式中,每四个Y信号的像块空间内的Cb,Cr样值分别构成四个Cb,Cr像块。相应的宏块结构正是以此基础构成的。
宏块层之下是像块层,像块是MPEG-2码流的最底层,是 DCT变换的基本单元。中一个像块由8x8个抽样值构成,同一像块内的抽样值必须全部是Y信号样值,或全部是Cb信号样值,或全部是Cr信号样值。另外,像块也用于表示8x8个抽样值经DCT变换后所生成的8x8个DCT系数。
在帧内编码的情况下,编码图像仅经过DCT,量化器和比特流编码器即生成编码比特流,而不经过预测环处理。DCT直接应用于原始的图像数据。
在帧间编码的情况下,原始图像首先与帧存储器中的预测图像进行比较,计算出运动矢量,由此运动矢量和参考帧生成原始图像的预测图像。而后,将原始图像与预测像素差值所生成的差分图像数据进行DCT变换,再经过量化器和比特流编码器生成输出的编码比特流。
可见,帧内编码与帧间编码流程的区别在于是否经过预测环的处理。
MPEG-2视频压缩方案中包含的关键技术环节
1、余弦变换DCT
DCT是一种空间变换,在MPEG-2中DCT以8x8的像块为单位进行,生成的是8x8的DCT系数数据块。DCT变换的最大特点是对于一般的图像都能够将像块的能量集中于少数低频DCT系数上,即生成 8x8DCT系数块中,仅左上角的少量低频系数数值较大,其余系数的数值很小,这样就可能只编码和传输少数系数而不严重影响图像质量。
DCT不能直接对图像产生压缩作用,但对图像的能量具有很好的集中效果,为压缩打下了基础。
2、量化器
量化是针对DCT变换系数进行的,量化过程就是以某个量化步长去除DCT系数。量化步长的大小称为量化精度,量化步长越小,量化精度就越细,包含的信息越多,但所需的传输频带越高。不同的DCT变换系数对人类视觉感应的重要性是不同的,因此编码器根据视觉感应准则,对一个8x8的DCT变换块中的64个DCT变换系数采用不同的量化精度,以保证尽可能多地包含特定的 DCT空间频率信息,又使量化精度不超过需要。DCT变换系数中,低频系数对视觉感应的重要性较高,因此分配的量化精度较细;高频系数对视觉感应的重要性较低,分配的量化精度较粗,通常情况下,一个DCT变换块中的大多数高频系数量化后都会变为零。
阅读(1105) | 评论(0) | 转发(0) |