第四章 多媒体系统的图像压缩技术

在多媒体系统中,数字视频技术中的核心是图像压缩技术,这是因为图像的采集、存储、显示、传输等都涉及到大容量存储技术和实时传输等问题。例如,在 VCA 显示中,幅中分辨率为 640×480,256 色的图像,若每个像素占 24 位,则需要 7.37Mbits。一个 100M 字节的硬盘只能存放约 100 帧的图像数据,若要达到每秒 25 帧的全动态显示要求,则无压缩的数据传输率一般应为 184kB/s。这样,数据压缩比必须达到数十倍以上,这还不包括音频数据及其它信息。

人们通过多年的对数据压缩进行的研究,用软件、硬件以及软、硬件结合的技术,实现了压缩算法。本节主要介绍数据压缩的基本原理、图像压缩标准等内容。

一、图像压缩原理

可以把黑白数字图像看作一个矩阵,其行和列的交点标识为图像中的一个点,相应的矩阵单元则表示该点的灰色梯度。这种数字陈列的单元称为图像单元或象素。数字转化视频就是由这样的一连串单元组成的。

对于彩色图像来说,每个象素由红(R)、绿(G)和蓝(B)三种颜色表示。为了有效地编码,彩色象素可分成灰度(Y)和色度(U 和 V)。因此可以将彩色图像看作是对应于三个成分的三个矩阵。为得到高的压缩比,U 和 V 的处理不同于 Y 外,各个矩阵都可以用与黑白图像相同的方法进行编码。

图像压缩可以分成两种类型:无失真的压缩和有失真的压缩。前者即能够精确地生成原始图像;后者则有某些不太容易引起注意的失真。因为数据的压缩都可以看成是一种变换,所以解压缩(数据恢复)被看作是一种反变换。实现变换的方法称为编码技术。

无失真编码在图像帧序列的压缩中有较大的潜力,各帧图像之间有关相同的部分,原则上可以只存储相邻帧之间的差异部分。

图像压缩技术指标主要有三个:(1)图像压缩比,指压缩前后所需的图像存储量之比;(2)实现压缩的算法难易程度或速度;(3)重现精度,指重现时的图像与原图像相比较有多少失真。第三个指标涉及到人们的主观判断,可以区分两幅图像的优劣,在多数场合下,则还需要有其它的客观指标来区分。

二、彩色视频信号的编码

  1. 彩色视频信号

一般来说,可以通过三基色红、绿、蓝(即 RGB)表示图像中的彩色。RGB 构成了一个三维的彩色。此外,还有其它的彩色空间表示,它们可以通过坐标变换而相互变换。不同的电视制式和多媒体系统采用不同的彩色空间。例如,PAL 制式采用 Y、U、V 彩色空间,NTSC 制式采用 Y、I、Q 彩色空间。在YUV 表示中,Y 表示亮度信号,U 和 V 是色差信号。

黑白电视机可以接收它的亮度信号 Y,它是一种与黑白电视兼容的彩色电视信号。由于人的眼睛对亮度信号敏感,对色差信号 U、V 不敏感,因此可以降低表示 U、V 的数据量,一般 Y、U、V 采用 4∶2∶2 或 4∶1∶1 格式,可以压缩彩色电视的传输带宽及压缩彩色图像的数据量。

从摄像机、录像机、视盘等视频信号源输出的标准彩色全电视信号,经过同步分离和锁相回路产生一致的时钟信号,再由彩色译码电路、A/D 变换器分出 RGB 或 YUV 信号,并将模拟量转换成数字的信号。数字信号 R、G、B 或 Y、U、V 可以存储在帧存储器里。

电视信号的帧内预测编码

点的亮度值为数字化的 RGB 或 YUV 信号,可以通过编码减少在一个画面内的空域冗余信息,达到数据压缩的目的。

差分脉冲编码调制(DPCM)编码方法属于一种预测编码,它通过画面上坐标为(m,n)的像素点的三个相邻点(m,n-1)、(m-1,n-1)、(m-1, n)的数值,来预测(m,n)点上的数值。若记(m,n)像素点的亮度值为Ymn,它从邻域像素点的亮度值得到的预测值以 Ymn 表示,Ymn 的预测公式为:

Ymn=a1Ym(n-1)+a2Y(m-1)(n-1)+a3Y(m-1)n

其中 a1,a2,a3 是选定的参数,它们可以通过使误差emn=Ymn-Y(m-1)(n-1)

达到数字期望为零、均方误差最小,或通过最小二乘法得出。

对误差信号 emn 进行量化、编码,必然比对原来的图像信号进行量化、编码需要的比特数要小得多。在量化的过程中引起信息损失,使图像失真。但是,如果合理地选择量化步长,使量化误差不超过人眼的可见阈值,图像质量还是可达到主观保真度的要求。

在 DPCM 编码中,如果对量化步长及预测公式的参数能根据图像的局部特征作自适应的调整,就称为自适应差分脉冲码调制(ADPCM)编码。

电视信号的帧间编码

电视图像由沿时间轴的帧序列组成,每秒传送 25 帧或 30 帧画面。相邻帧的时间间隔只有 1/25 秒或 1/30 秒,大多数像素点的亮度及色信号帧间变化都不大。可以通过减少帧序列内时域的冗余信息,采用帧间编码技术,达到数据压缩的目的。

根据人眼的视觉特性,对于静态图像的空间分辨率高,但在图像切换时, 视觉灵敏度降低。传送帧内画面时,要有足够的空间分辨率,但不必每帧都传送,这样,可增大帧传送的间隔。依靠帧存储器把未传送的帧补充进去, 对于画面中的运动部分,可以降低空间分辨率传送。

如果只传送帧间相对应像素点的亮度(或色差)差值超过阀值的像素, 而且只传送差值。这样,一帧图像只需传送较少部分的像素。

三、JPEG 静态图像压缩标准

JPEG(Joint Photographic Experts Group)是联合图片专家小组的缩写。在图像采集、处理与传输的硬件中,为了使不同厂商的产品具有图像压缩共同的依据和兼容性,各公司都重视建立通用的图像压缩标准。1986 年由CCITT 和 ISO 两个国际组织联合成立了一个联合专家小组简称 JPEG,致力于建立适合于彩色和单色多灰度的连续色调静态图像的压缩标准,1991 年形成ISO/IEC10918 文件,1992 年正式成为一个适用于连续色调、多级灰度、彩色或单色静态图像数据压缩国际标准。

JPEG 标准采用了混合编码方法。它定义了二种基本压缩算法:

  1. 基于空间线性预测技术,即差分脉冲码调制(DPCM)的无失真压缩

算法。

  1. 基于 DCT 的有失真压缩算法。并进一步应用游程编码和熵编码。JPEG

    标准的应用目标是:

  1. 压缩比及图像保真度可在较大的范围内调节,供用户选择;

  2. 可用于任何连续色调数字图像,不限制图像的内容;

  3. 在一定能力 CPU 上即可实现,复杂的软件本身要易于操纵。

无失真预测编码压缩算法

JPEG 选择了一种简单的线性预测编码方法,具有重建图像质量好的优点。对于中等复杂程度的彩色图像,无失真预测编码、解码可达到大约 2∶1 的压缩比。

基于 DCT 的有失真压缩

基于 DCT 的压缩编码算法包括两种层次的系统:基本系统和增强系统, 而且这种算法还定义了二种工作方式:顺序方式和累进方式。基本系统采用顺序工作方式,只采用哈夫曼编码,解码器中只存储两套哈夫曼表。增强系统除包含基本系统外,还可采用自适应二进制算术编码。

DCT 编码的基本过程:首先进行 DCT 正变换,再对 DCT 系统进行量化,并分别对量化后的系数进行差分编码或游程编码,最后再进行熵编码。

  1. 离散余弦变换(DCT)。JPEG 采用 8×8 大小的子块进行二维离散余弦变换。编码器的输入端以原始图像的 8×8 子块作为输入。除了对原始图像进行顺序的分割外,还将原始图像的采样数据从无符号整数变成有符号整数。

解压缩编码的过程是一个逆过程,DCT 正变换可以看成一个谐波分析仪, 而逆变换看成一个谐波合成器。8×8 数据块输入分解至 64 个正交基信号, 每个基信号对应于 64 个二维空间频率中的一个。输出的 64 个基信号的幅值, 称作 DCT 系数。这 64 个变换系数中包括一个代表直流分量的“DCT 系数”和63 个代表交流分量的“AC”系数。

DCT 逆变换把 64 个 DCT 系数经逆变换重建 64 点的图像。由于在计算过程中不可避免的精度损失以及系数的量化,这个 64 点的图像不能完全恢复到原始图像。

  1. 量化。对 DCT 系数作量化处理,可以减少幅值,增加零值,达到压缩数据的目的。

JPEG 采用线性均匀量化器,将 64 个 DCT 系数除以量化步长,四舍五入取整。量化步长是量化表的元素。量化表元素与 DCT 系数在 8×8 矩阵中的位置有关。JPEG 给出了供参考用的量化表,也可以由用户来确定量化表。

量化的目的是在使图像质量达到一定的保真度前提下舍弃些次要的信息。不同频率的余弦函数对人类视觉的效果不同,可根据不同频率的视觉阈值来选择量化表中元素的大小。量化的结果一般都是频率低的分量系数大, 而频率高的分量系数大多为零。

  1. DC 系数差分编码与 AC 系数游程编码,64 个变换系数中,DC 系数是处于左上角的,它实际上等于 64 个图像采样值的平均值。相邻的 8×8 子块之间的 DC 系数有较强的相关性。JPEG 对于量化后的 DC 系数采用差分编码, 二相邻块的 DC 系数的差值为 DCi-(DCi-1)。

其余 63 个 AC 系数量化后通常出现较多零值,JPEG 算法采用游程编码, 并建议在 8×8 矩阵中按照“Z”形的次序进行,可增加零的连续次数。

系数编码后都采用统一的格式表示,包含二个符号的内容:第一符号占一个字节,对于 DC 系数而言,它的高 4 位总为零;对于 AC 系数而言,它表示到下一个非零系数前,所包含的连续为零的系数个数。第一字节的低 4 位表示 DC 差值的幅值编码所需的比特数,或表示 AC 系数中下一个非零幅值编码所需的比特数。第二个符号字节表示 DC 差值的幅值,或下一个非零 AC 系数的幅值。

还需要指出,由于第一字节中只有 4 位表示游程长度,量大值为 15。当游程长度大于 15 时,可以插入一个至多个(10)字节,直至剩下的零 AC 系数个数小于 15 为止。

因此,63 个 AC 系数表示为由二个符号对组成的序列,其中也可能插入10 个字节,快结束字节以全零表示。

  1. 熵编码。对于上面给出的码序列,再进行统计特性的熵编码。这仅对于序列中每个符号对中的第一个字节进行,第二个幅值字节不作编码,仍然直接传送。

JPEG 建议使用二种熵编码方法:哈夫曼编码和自适应二进制算术编码。对于哈夫曼编码,JPEG 提供了针对 DC 系数、AC 系数使用的哈夫曼表(包括对于图像的亮度值与色度值二种情况),在编码和解码时使用。JPEG 解码器能够同时存储最多 4 套不同的熵编码表。

基于 DCT 的增强型系统

增强系统增加了二种累进操作的方式,它们在编码方法和步骤上与顺序方式基本相同,不同的是它们采取多次扫描的方式,实现对每个图像分量的编码。第一次扫描得到粗糙的压缩结果,根据粗糙的压缩数据,重建一幅质量较低的可识别图像。通过多次扫描,作进一步的压缩,直至最后全部所需的压缩。在这个过程中,由于不断增加的信息,使重建图像的质量达到满意的结果。

由于不是一次完成压缩编码,在量化器的输出之后,有一个缓冲区,用以存储量化后的 DCT 的全部系数。对此缓冲区存储的系数进行多次扫描,分批完成压缩编码。

二种累进方式分别为:

  1. 按频段累进。对 64 个 DCT 系数,每次只对其中一些频率的系数进行压缩编码、传送,然后再逐渐增加其它频率的系数,直到全部系数传送完毕。

  2. 按位逼近。对量化后的 DCT 系数按照其数位由高至低分成若干段, 然后依次对各段进行压缩编码。首先对量高有效的 n 位进行压缩编码、传送, 再依次对下面的段进行。

基于 DCT 的分层操作方式

JPEG 提供了一种分层操作方式。它是对原始图像的空间分辨率的不同层次之间加以转换而编码。空间水平分辨率与垂直分辨率都以 2 为倍数降低, 形成一个金字塔形。它的编码过程为:

  1. 把原始图像的空间分辨率降低。

  2. 对降低分辨率的图像采用基于 DCT

    的压缩编码(可为顺序方式、累进方式或无失真编码)。

  3. 对低分辨率的图像解码,重建图像,然后,用手动的方法恢复图像的水平与垂直分辨率。

  4. 把分辨率已升高的图像的预测值与原图像的差值采用基于 DCT 的压缩编码。

  5. 重复步骤(3)、(4),直至达到图像的完全的分辨率。

压缩比和图像质量

JPEG 标准的压缩编码与解码是有失真的,主要原因是变换后系数的量化而引起失真。压缩的效果与图像内容本身有较大的关系,高频成份少的图像比高频成份多的图像可获得更高的压缩比,而图像仍有较好的质量。对于给定的质量因子(分为 1~255 级),采用相应的编解码参数,达到相应的压缩效果。

JPEG 没有专门规定彩色图像的编码算法。可以对彩色空间中各个分量分别进行压缩编码。当彩色空间各分量彼此独立时,可获得最好的压缩效果。

四、MPEG 动态图像压缩标准

“声音”和“图像”是多媒体计算机技术处理的两种新媒体,都具有数据量庞大的特点,特别是全动态、全屏幕的活动图像,数据量更大。如果将未经压缩的活动图像直接记录在 CD 光盘上的话,一张 650GB 的 CD 光盘只能记录 40 秒钟的信号,一部 90 分钟的影片需要用 1500 张光盘来保存,这是不可想象的事情。同时,要想处理这样大的数据量,就要求硬件能够处理庞大的数据流,对硬件提出很高的要求,这是目前硬件难以做到的。为了解决这一困难,必须对图像数据进行大规模的压缩,减少图像数据的冗余度。目前的 VCD 和 DVD 即是分别采用 MPEG1、MPFG2 标准来实现活动图像及其伴音数据的压缩和还原的。

MPEG 是活动图像专家组(Moving Picture ExpertsGroup)的缩写。该专家组成立于 1988 年,现属于 ISO/IEC 信息技术联合委员会第 29 分委员会的第 11 工作组,缩写为 JTCI/SC29.WG11。

MPEG 专家组的工作项目在开始时分 MPEG1(码率达 1.5MB/s 的编码)、MPEG2(码率达 10MB/s 的编码)、MPEG3(码率达 40MB/s 的编码)共 3 个项目。MPEG3 项目于 1992 年 7 月撤消,因为当时 MPEG2 的工作内容及进展已包括了 MPEG3。随着技术发展的需要,1993 年 7 月正式成立了 MPEG4 项目组, 它的目标是甚低码率小于 64kB/s 的视频音频编码。目前,MPEG1、MPEG2 标准已正式公布执行。

MPEG1 数据压缩标准

MPEG1 标准制定于 1991 年,是目前所采用的最有效的电脑视频影像、声音数据压缩标准。MPEG1 标准包括视频、音频和系统(音频和视频同步)三部分。完整的视频要求视频和音频同步,MPEG1 将具有电视质量的视频、音频数据合为一个数据流,并将数据流的速率降至 1.5MB/s(其中图像数据率占 1.2MB/s,立体声伴音占 0.25MB/s 左右)。

MPEG1 压缩的基本方法为:在单位时间内首先采集并保存第一帧图像的信息,此后在对单帧进行有效压缩的基础上,只存储其余帧图像中相对第一帧图像发生变化的部分,以达到图像数据压缩的目的。它包括时间上的压缩和空间上的压缩两个方面。

  1. 时间上的压缩(即帧间压缩)

MPEG1 视频压缩算法减少时间冗余量的方法主要是以 16×16 的块作为运动补偿单元的运动补偿技术,即对比视频影像的前、后两张画面,如果两者

完全一样或接近一样,便可去除其中一帧画面。去除的判断阈值视所要求的质量而定。较好的 MPEG 算法可在 2 帧~3 帧画面间作一次对比运算,而一般较差的算法只能在 12 帧~30 帧画面间作一次对比运算。对比运算做得越频繁,压缩效率越高,但运算量也越大,因此要求有更高性能的硬件设备。

  1. 空间上的压缩(即帧内压缩)

在视频影像的同一帧画面中,往往有许多完全重复的部分或几乎相同的部分,这就可以只记录一次其相同或相近的部分,而去除其余部分,以达到节省存储空间的目的。MPEG 标准通常采用变换编码、矢量量化编码以及混合使用变化编码、视图加权标量量化、游程编码等技术来降低空间冗余度。

MPEG1 采用有损图像质量的非对称压缩算法,压缩时间(大约几十小时) 远远大于解压时间(1 个多小时)。压缩只有一次,需大量运算,进行图像的比较分析,而解压可有上千次,运算量较少。

MPEG2 数据压缩标准

MPEG2 是建立在 MPEG1 的基础上、以提高图像质量为目标的通用国际编码标准,共包括系统、视频、音频、符合性测试、软件、数字存储媒体的指令和控制、非向后兼容音频、10 比特视频、实时接口等 9 个项目。其中第 1 到

3 部分作为 MPEG2 的核心,已在 1994 年 11 月正式公布执行,其它的部分将

在 1995 到 1997 年陆续公布。

MPEG2 的压缩方法与 MPEG1 的方法相似,基本算法相同,但增加了场间预测。MPEG2 的传输码率可以调整,支持从可视电话到 HDTV 多种应用,针对不同的用途,MPEG2 标准又分为 4 个等级和 5 个档次。

  1. MPEG2 等级。

低等级(Low):这是最低层,是 CCIR601 图像格式的 1/4,GI 则采用这种图像格式;

主要等级(Main):图像质量达到广播级,相当于 CCIR6- 01 图格式; 高 1440 等级(High1440):相当于每行 1440 取样的 HD 图像质量;

高等级(High):相当于每行 1920 取样的 HDTV 图像质量。

  1. MPEG2 档次。

简单档次(Simple):除了没有内插图像帧以外,与主要档次(Main) 相同。简单档次的目的是为了节省 RAM;

主要档次(Main):没有分级性,但质量最高;

信噪比可分级档次(SNR):相对主要档次有所改进,在信噪比方面有分级性;

空间域分级档次(Spatially):在图像空间清晰度方面有分级性; 高档次(High):支持 4∶2∶2 格式和全部分级性。

  1. MPEG2 图像档次和等级的组合依据 MPEG2 标准的 4 个等级和 5

    个档次,可组成 20 种不同的图像格式和压缩化,有定义可采用的只有 11 种。