全部博文(668)
分类:
2009-07-15 08:23:19
3.MPEG-2视频压缩基础
码率压缩要从视觉对象、视觉生理、视觉心理3个方面入手,研究符合于人类视觉规律的视觉模型。由于视觉心理是1个很复杂的问题,难以得到其规律。因此,码率压缩只能在利用图像信号的统计特性和人类眼睛的视觉特性的基础上来进行。
1) 利用图像信号的统计特性进行压缩
同一帧电视图像中相邻像素之间的幅度值相近,即同一行上的相邻像素之间幅值相近,相邻行之间同样位置上的像素幅值相近,体现了电视图像的空间冗余度;相邻两帧电视图像同一位置上像素幅度值相近,体现了电视图像的时间(动态)冗余度,如图14所示。另外,每个像素所用bits数的多少表示了比特结构,多用的比特数为冗余量,体现了静态(比特结构)冗余度。
因此,为了清楚地了解空间冗余度、时间冗余度和静态冗余度三者之间的关系,可以通过图15所示的电视图像信息的三维表示来说明。需要指出的是采用运动补偿(MC)去除时间冗余度要进行160亿次的算术运算;采用离散余弦变换(DCT)和游程长度编码(RLC)去除空间冗余度要进行20亿次的算术运算;采用可变长度编码(VLC)去除静态(比特结构)冗余度要象“Morse Code”那样进行比特匹配。MPEG压缩算法如图16所示。为了减少计算量,最佳算法的探讨及其标准化是很重要的。
2) 利用人眼的视觉特性进行压缩
人眼对构成图像的不同频率成分、物体的不同运动程度等具有不同的敏感度,这是由人眼的视觉特性所决定的,如人的眼睛含有对亮度敏感的柱状细胞1.8亿个,含有对色彩敏感的椎状细胞0.08亿个,由于柱状细胞的数量远大于椎状细胞,所以眼睛对亮度的敏感程度要大于对色彩的敏感程度。据此,可控制图像适合于人眼的视觉特性,从而达到压缩图像数据量的目的。例如,人眼对低频信号的敏感程度大于对高频信号的敏感程度,可用较少的bit数来表示高频信号;人眼对静态物体的敏感程度大于对动态物体的敏感程度,可减少表示动态物体的bit数;人眼对亮度信号的敏感程度大于对色度信号的敏感程度,可在行、帧方向缩减表示色度信号的bit数;人眼对图像中心信息的敏感程度大于对图像边缘信息的敏感程度,可对边缘信息少分配bit数;人眼对图像水平向及垂直向信息敏感于倾斜向信息,可减少表示倾斜向信息高频成分的bit数等。在实际工作中,由于眼睛对亮度、色度敏感程度不一样,故可将其分开处理。
为此,将单元分量RGB改变为YUV(或YCrCb)全分量。在编码时强调亮度信息,可去掉一些色度信息,如4:4:4变为4:2:2,码率由270Mbps降低到180Mbps。
由上述可见,电视系统存在着冗余信息,在传输图像信息之前,只要将这些冗余信息去除,就可以实现适度的压缩。由于去除这些冗余信息对图像质量无影响,故称其为“无损压缩”。如,从视频信号中去除同步信息。无损压缩的压缩比不高,压缩能力有限。为了提高压缩比,MPEG标准采用了对图像质量有损伤的“有损压缩”技术。
4. MPEG-2视频编码方式
为了提高压缩比及图像质量,MPEG-2视频编码采用运动补偿预测(时间预测+内插)消除时间冗余和不随时间变化的图像细节;采用二维DCT(图像像素+量化传输系数)分解相邻像素,消除观众不可见、不重要的图像细节;采用熵值编码(已量化参数+编码参数的熵),使bit数减少到理论上的最小值。对以上3种压缩技术,作如下说明:
1)运动补偿预测
将存储器中前一图像帧的重建图像中相应的块按编码器端求得的运动矢量进行位移,这就是运动补偿过程。为了压缩视频信号的时间冗余度(Temporal Redundancy),MPEG采用了运动补偿预测(Motion Compensated Prediction),图17是其运动处理过程示意图。运动补偿预测假定:通过画面以一定的提前时间平移,可以局部地预测当前画面。这里的局部意味着在画面内的每个地方位移的幅度和方向可以是不相同的。采用运动估值的结果进行运动补偿,以便尽可能地减小预测误差。运动估值包括了从视频序列中提取运动信息的一套技术,该技术与所处理图像序列的特点决定着运动补偿性能的优劣。与画面16×16像素宏块相关的运动矢量支持接收机解码器中的运动补偿预测。所谓预测,实际上是由前一(n-1)图像帧导出当前(n)图像帧所考虑像素的预测值,而后由运动矢量编码传输n帧的实际像素值与其预测值之间的差值。例如,设宏块为M×N的矩形块,将图17中的n-1帧的宏块与n帧的宏块进行比较。这实际上是一个如图18所示的进行宏块匹配的运动补偿过程,即将n帧中16×16像素的宏块与n-1帧中限定搜索区(SR)内全部16×16像素的宏块进行比较。若n-1帧图像亮度信号为f n -1 (i , j),n帧图像亮度信号为f n (i , j),其中(i , j)为n帧的M×N宏块的任意位置,并将n帧中的一个M×N的宏块看作是从n-1帧中平移而来的,而且规定同一个宏块内的所有像素都具有同样的位移值(k,l) 。这样,通过在n-1帧限定搜索区(SR)内进行搜索,总可以搜索到某一宏块,使得该宏块与n帧中要匹配的宏块的差值的绝对值达到最小,并得到运动矢量的运动数据,在n-1帧和运动数据的控制下,获得n帧的一个相应的预测值。照此办理,直到n帧的M×N宏块的任意位置(i , j)的像素全部通过n-1帧的像素预测出来。即n帧与n-1帧的相关函数F(k , l)的绝对值表示为 :
式(1)表明要匹配的宏块已经匹配,并得到水平及垂直位移为(k , l)的运动矢量的运动数据。通过匹配不仅将传输的差值减到最小,而且补偿了匹配对象在图像中的位移,这就是运动补偿。为了改善预测效果,可以采用场预测。由于在电视图像连续帧之间有较大程度的共同性,即时间冗余度,多数图像之间差值极小,尤其是在大多数时间传输小范围内的值时,采用运动补偿预测可使码率明显降低。在接收端的解码器中以同样的运动补偿预测重现预测值,重现预测值加上差值就得到像素的原幅值。图 19是基本MPEG视频编码器框图,图中虚线左边为运动补偿预测编码所需要的基本功能器件。其中固定存储器存储n-1帧的复原数据,将其与n帧数据一同送入运动补偿参数估值器,估值后就可以得到运动矢量的数据。用运动矢量数据和n-1帧的复原数据去控制用于块匹配的可变存储器,将n帧的当前像素值预测出来。这里,预测是按帧差仅有1帧进行的,实际上MPEG-1和MPEG-2可以当前帧之前若干帧的某一帧为基准进行预测。值就得到像素的原幅值。图 19是基本MPEG视频编码器框图,图中虚线左边为运动补偿预测编码所需要的基本功能器件。其中固定存储器存储n-1帧的复原数据,将其与n帧数据一同送入运动补偿参数估值器,估值后就可以得到运动矢量的数据。用运动矢量数据和n-1帧的复原数据去控制用于块匹配的可变存储器,将n帧的当前像素值预测出来。这里,预测是按帧差仅有1帧进行的,实际上MPEG-1和MPEG-2可以当前帧之前若干帧的某一帧为基准进行预测。
需要说明的是:MPEG定义了基于帧、基于场及双场的图像预测,也定义了16×8的运动补偿。
MPEG-2:有逐行扫描方式,可以采用基于帧的图像预测;有隔行扫描方式,也可以采用基于场的图像预测。因此,MPEG-2编码器要对每个图像先判断是帧模式压缩还是场模式压缩。在隔行扫描方式下:运动少的场景时,采用基于帧的图像预测,因为基于帧的图像两相邻行间几乎没有位移,帧内相邻行间相关性强于场内相关性,从整个帧中去除的空间冗余度比从个别场中去除得多;剧烈运动的场景时,采用基于场的图像预测,因为基于帧的相邻两行间存在1场延迟时间,相邻行像素间位移较大,帧内相邻行间相关性会有较大下降,基于场的图像两相邻行间相关性强于帧内相邻行间相关性,在1帧内,场间运动有很多高频分量,从场间去除的高频分量比从整个帧中去除的多。由上述可见,选择基于帧的图像预测还是基于场的图像预测的关键是行间相关性。所以,在进行DCT之前,要作帧DCT编码或场DCT编码的选择,对16×16 的原图像或亮度进行运动补偿后所获得的差值作帧内相邻行间和场内相邻行间相关系数的计算。若帧内相邻行间相关系数大于场内相邻行间相关系数,就选择帧DCT编码,反之选场DCT编码。帧DCT编码与场DCT编码如图20所示。