1、第3章 数字图像压缩技术 3.1 图像信号概述 3.2 图像信号数字化 3.3 数字图像压缩的必要性和可行性 3.4 图像压缩算法的分类及性能指标3.5 信息熵编码 3.6 预测编码 3.7 变换编码3.8 压缩编码新技术 3.9 图像压缩编码标准3.10 视频压缩编码标准3.1.1 图像的分类图像的分类 图像就是用各种观测系统以不同形式和手段观测客观世界而获得的,可以直接或间接作用于人眼而产生视知觉的实体。科学研究和统计表明,人类从外界获得的信息约有75%来自于视觉系统,也就是说,人类的大部分信息都是从图像中获得的。图像是人们体验到的最重要、最丰富、信息量获取最大的信息。图像能够以各种各样的
2、形式出现,例如,可视的和不可视的,抽象的和实际的,适于计算机处理的和不适于计算机处理的。就其本质来说,可以将图像分为两大类:模拟图像和数字图像。传统的方式为模拟方式,例如,目前我们在电视上所见到的图像就是以一种模拟电信号的形式来记录,并依靠模拟调幅的手段在空间传播的。在生物医学研究中,人们在显微镜下看到的图像也是一幅光学模拟图像,照片、用线条画的图、绘画也都是模拟图像。模拟图像的处理速度快,但精度和灵活性差,不易查找和判断。将模拟图像信号经A/D变换后就得到数字图像信号,数字图像信号便于进行各种处理,例如最常见的压缩编码处理就是在此基础上完成的。本书介绍的图像信息处理技术就是针对数字图像信号的
3、。与模拟图像相比,数字图像具有精度高、处理方便、重复性好等显著优点。图像信号还可以按照其它规则分类。图像信号按其内容变化与时间的关系分类,主要包括静态图像和动态图像两种。静态图像的信息密度随空间分布,且相对时间为常量;动态图像也称时变图像,其空间密度特性是随时间而变化的。人们经常用静态图像的一个时间序列来表示一个动态图像。图像信号按其亮度等级的不同可分为二值图像和灰度图像;按其色调的不同可分为黑白图像和彩色图像;按其所占空间的维数不同可分为平面的二维图像和立体的三维图像等等。3.1.2 彩色的形成彩色的形成 在自然界中,当阳光照射到不同的景物上时,所呈现的色彩不同,这是因为不同的景物在太阳光的
4、照射下,反射(或透射)了可见光谱中的不同成分而吸收了其余部分,从而引起人眼的不同彩色视觉。例如,当一张纸受到阳光照射后,如果主要反射蓝光谱成分,而吸收白光中的其他光谱成分,这样,当反射的蓝光射入到人眼时,则引起蓝光视觉效果,因此人们说这是一张蓝纸。可见,彩色是与物体相关联的,但是彩色并不只是物体本身的属性,也不只是光本身的属性,所以同一物体在不同光源照射下所呈现的彩色效果不同。例如当绿光照射到蓝纸上时,这时的纸将呈现黑色。可见彩色的感知过程包括了光照、物体的反射和人眼的机能三方面的因素。它是一个心理物理学的概念,既包含主观成分(人眼的视觉功能),又包含客观的成分(物体属性与照明条件的综合效果)
5、。从视觉的角度描述彩色会用到亮度、色度和饱和度三个术语。亮度表示光的强弱;色度是指彩色的类别,如黄色、绿色、蓝色等;饱和度则代表颜色的深浅程度,如浅紫色、粉红色。当然,在描述上述参数时,还必须考虑照射光的光谱成分、物体表面的反射系数的光谱特性以及人眼的光谱灵敏度三方面的影响。色调与饱和度又合称为色度,可见它既表示彩色光的颜色类别,又表示颜色的深浅程度。尽管不同波长的光波所呈现的颜色不同,但人们会经常观察到这样的现象。由适当比例的红光和绿光混合起来,可以产生与黄单色光相同的彩色视觉效果。又如日光也可以由红、绿、蓝三种不同波长的单色光以适当的比例组合而成。实际上自然界中的任何一种颜色都能由这三种单
6、色光混合而成,因而称红、绿、蓝为三基色。正是根据这一现象,从人眼的彩色视觉特性角度进行分析,提出这样一种设想,并通过解剖实验得以证实。人眼视网膜是由大量的光敏细胞组成的,按其形状可分为杆状细胞和锥状细胞。杆状细胞能够起到感光作用,只是杆状细胞对弱光的灵敏度要比锥状细胞高。锥状细胞也只能在正常光照条件才能产生视觉和色感。锥状细胞分别为红敏细胞、绿敏细胞和蓝敏细胞。红光、绿光和蓝光分别能够激励红敏细胞、绿敏细胞和蓝敏细胞。换句话说,就是当红光、绿光、蓝光以适当的比例混合起来,并同时作用在视网膜上时,将分别激励红敏细胞、绿敏细胞和蓝敏细胞,从而产生彩色感觉。这说明自然界中任何一种色彩都可以通过红、绿
7、、蓝三基色混合而成。因此人们研制出相关器件,成功地利用三基色实现各种色彩的合成。3.1.3 彩色图像信号的分量表示彩色图像信号的分量表示 对于黑白图像信号,每个像素点用灰度级来表示,若用数字表示一个像素点的灰度,有8比特就够了,因为人眼对灰度的最大分辨力为26。对于彩色视频信号(例如常见的彩色电视信号)均基于三基色原理,每个像素点由红(R)、绿(G)、蓝(B)三基色混合而成。若三个基色均用8比特来表示,则每个像素点就需要24比特,由于构成一幅彩色图像需要大量的像素点,因此,图像信号采样、量化后的数据量就相当大,不便于传输和存储。为了解决此问题,人们找到了相应的解决方法:利用人的视觉特性降低彩色
8、图像的数据量,这种方法往往把RGB空间表示的彩色图像变换到其他彩色空间,每一种彩色空间都产生一种亮度分量和两种色度分量信号。常用的彩色空间表示法有YUV,YIQ和YCbCr等。1 YUV彩色空间彩色空间 通常我们用彩色摄像机来获取图像信息,摄像机把彩色图像信号经过分色棱镜分成R0,G0,B0三个分量信号,分别经过放大和校正得到RGB,再经过矩阵变换电路得到亮度信号Y和色差信号U、V,其中亮度信号表示了单位面积上反射光线的强度,而色差信号(所谓色差信号,就是指基色信号中的三个分量信号R、G、B与亮度信号之差)决定了彩色图像信号的色调。最后发送端将Y、U、V三个信号进行编码,用同一信道发送出去,这
9、就是在PAL彩色电视制式中使用的YUV彩色空间。YUV与RGB彩色空间变换的对应关系如式(3-1)所示。BGRVUY100.0515.0615.0436.0289.0147.0114.0587.0229.0(3-1)YUV彩色空间的一个优点是,它的亮度信号Y和色差信号U、V是相互独立的,即Y信号分量构成的黑白灰度图与用U、V两个色彩分量信号构成的两幅单色图是相互独立的。因为YUV是独立的,所以可以对这些单色图分别进行编码。此外,利用YUV之间的独立性解决了彩色电视机与黑白电视机的兼容问题。YUV表示法的另一个优点是,可以利用人眼的视觉特性来降低数字彩色图像的数据量。人眼对彩色图像细节的分辨能力
10、比对黑白图像细节的分辨能力低得多,因此就可以降低彩色分量的分辨率而不会明显影响图像质量,即可以把几个相同像素不同的色彩值当做相同的色彩值来处理(即大面积着色原理),从而减少了所需的数据量。在PAL彩色电视制式中,亮度信号的带宽为4.43 MHz,用以保证足够的清晰度,而把色差信号的带宽压缩为1.3 MHz,达到了减少带宽的目的。在数字图像处理的实际操作中,就是对亮度信号Y和色差信号U、V分别采用不同的采样频率。目前常用的Y、U、V采样频率的比例有4:2:2和4:1:1,当然,根据要求的不同,还可以采用其他比例。例如要存储R:G:B=8:8:8的彩色图像,即R、G、B分量都用8比特表示,图像的大
11、小为640480像素,那么所需要的存储容量为64048038/8=921600字节;如果用Y:U:V=4:1:1来表示同一幅彩色图像,对于亮度信号Y,每个像素仍用8比特表示,而对于色差信号U,V,每4个像素用8比特表示,则存储量变为640480(8+4)/8=460800字节。尽管数据量减少了一半,但人眼察觉不出有明显变化。2 YIQ彩色空间彩色空间 在NTSC彩色电视制式中选用YIQ彩色空间,其中Y表示亮度,I、Q是两个彩色分量。I、Q与U、V是不相同的。人眼的彩色视觉特性表明,人眼对红、黄之间颜色变化的分辨能力最强;而对蓝、紫之间颜色变化的分辨能力最弱。在YIQ彩色空间中,色彩信号I表示人
12、眼最敏感的色轴,Q表示人眼最不敏感的色轴。在NTSC制式中,传送人眼分辨能力较强的I信号时,用较宽的频带(1.31.5 MHz);而传送人眼分辨能力较弱的Q信号时,用较窄的频带(0.5 MHz)。YIQ与RGB彩色空间变换的对应关系如式(3-2)所示。BGRQIY311.0523.0212.0312.0275.0596.0114.0587.0229.0(3-2)3 YCbCr彩色空间彩色空间 YCbCr彩色空间是由ITU-R(国际电联无线标准部,原国际无线电咨询委员会CCIR)制定的彩色空间。按照CCIR601-2标准,将非线性的RGB信号编码成YCbCr,编码过程开始是先采用符合SMPTE-
13、CRGB(它定义了三种荧光粉,即一种参考白光,应用于演播室监视器及电视接收机标准的RGB)的基色作为校正信号。非线性RGB信号很容易与一个常量矩阵相乘而得到亮度信号Y和两个色差信号Cb、Cr。YCbCr通常在图像压缩时作为彩色空间,而在通信中是一种非正式标准。YCbCr与RGB彩色空间变换的对应关系如式(4-3)所示,可以看到:数字域中的彩色空间变换与模拟域中的彩色空间变换是不同的。1281280081.0419.0500.0500.0331.0169.0114.0587.0229.0BGRCCYrb(3-3)3.2 图像信号数字化 图像信号数字化主要包括两方面的内容:取样和量化。图像在空间上
14、的离散化称为取样,即使空间上连续变化的图像离散化,也就是用空间上部分点的灰度值来表示图像,这些点称为样点(或像素,像元,样本)。一幅图像应取多少样点呢?其约束条件是:由这些样点采用某种方法能够正确重建原图像。取样的方法有两类:一类是直接对表示图像的二维函数值进行取样,即读取各离散点上的信号值,所得结果就是一个样点值阵列,所以也称为点阵取样;另一类是先将图像函数进行正交变换,用其变换系数作为取样值,故称为正交系数取样。对样点灰度级值的离散化过程称为量化,也就是对每个样点值数字化,使其和有限个可能电平数中的一个对应,即使图像的灰度级值离散化。量化也可分为两种:一种是将样点灰度级值等间隔分档取整,称
15、为均匀量化;另一种是将样点灰度级值不等间隔分档取整,称为非均匀量化。3.2.1 取样点数和量化级数的选取取样点数和量化级数的选取 假定一幅图像取MN个样点,对样点值进行Q级分档取整。那么对M,N和Q如何取值呢?首先,M,N,Q一般总是取2的整数次幂,如Q=2b,b为正整数,通常称为对图像进行b比特量化,M、N可以相等,也可以不相等。若取相等,则图像距阵为方阵,分析运算方便一些。其次,关于M、N和b(或Q)数值大小的确定。对b来讲,取值越大,重建图像失真越小。若要完全不失真地重建原图像,则b必须取无穷大,否则一定存在失真,即所谓的量化误差。一般供人眼观察的图像,由于人眼对灰度分辨能力有限,用58
16、比特量化即可。对MN的取值主要依据取样的约束条件,也就是在MN大到满足取样定理的情况下,重建图像就不会产生失真,否则就会因取样点数不够而产生所谓混淆失真。为了减少表示图像的比特数,应取MN点数刚好满足取样定理。这种状态的取样即为奈奎斯特取样。MN常用的尺寸有512512,256256,6464,3232等。再次,在实际应用中,如果允许表示图像的总比特数MNb给定,对MN和b的分配往往是根据图像的内容和应用要求以及系统本身的技术指标来选定的。例如,若图像中有大面积灰度变化缓慢的平滑区域如人图像的特写照片等,则MN取样点可以少些,而量化比特数b多些,这样可使重建图像灰度层次多些。若b太少,在图像平
17、滑区往往会出现“假轮廓”。反之,对于复杂景物图像,如群众场面的照片等,量化比特数b可以少些,而取样点数MN要多些,这样就不会丢失图像的细节。究竟M N和b如何组合才能获得满意的结果很难讲出一个统一的方案,但是有一点是可以肯定的:不同的取样点数和量化比特数组合可以获得相同的主观质量评价。3.2.2 图像信号量化图像信号量化 经过取样的图像只是在空间上被离散为像素(样本)的阵列,而每一个样本灰度值还是一个有无穷多个取值的连续变化量,必须将其转化为有限个离散值,赋予不同码字才能真正成为数字图像,再由计算机或其他数字设备进行处理运算,这样的转化过程称为量化。将样本连续灰度等间隔分层量化方式称为均匀量化
18、,不等间隔分层量化方式称为非均匀量化。量化既然以有限个离散值来近似表示无限多个连续量,就一定会产生误差,这就是所谓的量化误差。由此产生的失真叫量化失真或量化噪声,对均匀量化来讲,量化分层越多,量化误差越小,但编码时占用比特数就越多。在一定比特数下,为了减少量化误差,往往要用非均匀量化,如按图像灰度值出现的概率大小不同进行非均匀量化,即对灰度值经常出现的区域进行细量化,反之进行粗量化。在实际图像系统中,由于存在着成像系统引入的噪声及图像本身的噪声,因此量化等级取得太多(量化间隔太小)是没有必要的,因为如果噪声幅度值大于量化间隔,量化器输出的量化值就会产生错误,得到不正确的量化。在应用屏幕显示其输
19、出图像时,灰度邻近区域边界会出现“忙动”现象。假设噪声是高斯分布,均值为0,方差为2,在有噪声情况下,最佳量化层选取有两种方法,一是令正确量化的概率大于某一个值,二是使量化误差的方差等于噪声方差。针对输出图像是专供人观察评价的应用,研究出了一些按人的视觉特性进行非均匀量化方式,如图像灰度变化缓慢部分细量化,而图像灰度变化快的细节部分粗量化,这是由于视觉掩盖效应被发现而产生的。再如按人的视觉灵敏度特征进行对数形式量化分层等。3.3.1 图像压缩的必要性图像压缩的必要性 数字化后的图像和视频信息数据量非常大,与当前硬件技术所能提供的计算机存储资源和网络带宽之间有很大差距。这样,就对图像信息的存储和
20、传输造成了很大困难,成为阻碍人们有效获取和利用信息的一个瓶颈问题。不对图像数据进行有效的压缩,就难以保证通信的顺利进行。下面列举例子来说明。在地球的周围有很多围绕地球旋转的卫星。通常卫星获取一帧图像的数据量为几百Mb几Gb,卫星在旋转的过程中每天要获取很多帧图像,并在通过卫星接收站时将图像传送回地面。如果不进行压缩,如此大的数据量是很难存储和顺利传输的。以一般彩色电视信号为例,设代表光强、色彩和色饱和度的YIQ 空间中各分量的带宽分别为4MHz、1.3MHz和0.5MHz。根据采样定理,仅当采样频率大于或等于2倍的原始信号的频率时,才能保证采样后的信号可被保真的恢复为原始信号。再设各样点均被数
21、字化为8bit,从而1秒钟的电视信号的数据量为 (4+1.3+0.5)28 bit=92.8Mbit 因而一张640MB容量的CD ROM能够存放的原始电视数据(每字节附有2位效验位)为 6408/92.8(1+0.25)=44s 也就是说,一张普通光盘只能存放44s的原始数据。表3-1列出了图像、视频信号高质量存储和传输所必须的未压缩速率以及信号特性。表3-1 各种信号的特性和未压缩速率图像像素/帧比特/像素未压缩信号大小传真1700220013.74 MbVGA64048082.46 MbXVGA10247682418.8 Mb视频像素/帧画面比帧/秒比特/像素未压缩速率NTSC48048
22、34:329.9716111.2 Mb/sPAL5765764:32516132.7 Mb/sCIF3522884:314.981218.2 Mb/sQCIF1761444:39.99123.0 Mb/sHDTV128072016:959.9412622.9 Mb/sHDTV1920108016:929.9712745.7 Mb/s 从以上两个例子以及表3-1可以看出:未进行任何形式的编码和压缩的图像信息数据量庞大,传输速率高,如果不进行压缩处理,计算机系统几乎无法对其进行存取和交换,因此,对数字图像进行压缩十分必要。3.3.2 图像压缩的可行性 从信息论观点来看,描述图像的数据是信息量(信源
23、熵)和信息冗余量之和。图像数据压缩编码的本质就是减少这些冗余量,从而可以减少数据量而不是减少信源的信息量。因此,冗余是图像压缩的着眼点。一般而言,图像频数据中存在的数据冗余类型主要有以下一些:1.数据间冗余数据间冗余 数据间冗余可分为空间冗余和时间冗余。在同一幅图像中,规则物体和规则背景的表面物理特性具有相关性,这些相关性的光成像结果在数字化图像中就表现为空间冗余。例如,图3-1是一张俯视图,图中央的黑色是一块表面均匀的积木块,在图中,黑色区域所有点的光强和色彩以及饱和度都是相同的,因而黑色区域的数据表达有很大的冗余。对空间冗余的压缩方法就是把这种集合块当作一个整体,用极少的数据量来表示它,从
24、而节省了存储空间。这种压缩方法叫空间压缩或帧内压缩,它的基本点就在于减少邻近像素之间的空间(或空域)相关性。图3-1 空间冗余 时间冗余反映在图像序列中就是相邻帧图像之间有较大的相关性,一帧图像中的某物体或场景可以由其他帧图像中的物体或场景重构出来。图3-2给出了时间冗余的示例。图中F1帧中有一辆汽车和一个路标P,再经过时间T后的图像F2仍包含以上两个物体,只是小车向前行驶了一段路程。此时,F1和F2是时间相关的,后一幅图像F2在参照图像F1的基础上只需很少数据量即可表示出来,从而减少了存储空间,实现了数据压缩。这种压缩对运动图像往往能得到很高的压缩比,这也称为时间压缩或帧间压缩。PF1PF2
25、图3-2 时间冗余2.信息熵冗余信息熵冗余 信息熵冗余也称为编码冗余。信源编码时,当分配给第个码元类的比特数时,(为第个码元类的概率),才能使编码后单位数据量等于其信源熵,即达到其压缩极限。但实际中各码元类的先验概率很难预知,比特分配不能达到最佳,从而使实际单位数据量大于信源熵,即存在信息熵冗余。图3-3给出了一个信息熵冗余的示例。图3-3中(a)、(b)是大小相同的两幅图像,均为300300像素。其中3-3(a)图每个像素用16位进行编码,而3-3(b)图每个像素用8位进行编码,因此图像大小分别为1440000比特和720000比特,虽然图像大小相差一倍,可是它们的视觉效果却基本相同。因此,
26、3-3(a)存在较大的信息熵冗余。50100150200250300501001502002503005010015020025030050100150200250300(a)(b)图3-3 信息熵冗余3.视觉冗余视觉冗余 人眼对于图像场的注意是非均匀的,人眼并不能察觉图像场的所有变化。事实上人类视觉的一般分辨能力为26灰度等级,进一步提高灰度级别后,人眼并不能分辨出,即存在着视觉冗余。图3-4给出了视觉冗余的示例。图3-4(a),(b)分别是两条从黑色到白色的灰度级带,图2-4(a)把黑色和白色间均匀分为64个灰度等级,图3-4(b)把黑色和白色间均匀分为128个灰度等级,但是由于人眼的局限
27、性,不能觉察到这种区别。因此,灰度等级超过人眼的分辨能力就会导致视觉冗余。随着对人类视觉系统和图像模型的进一步研究,人们可能会发现更多的冗余性,使图像数据压缩编码的可行性越来越大,从而推动图像压缩技术的进一步发展。图3-4 视觉冗余示例3.4.1压缩算法的分类 数据压缩的方法有许多种,从不同的角度出发,有不同的分类方法。根据解码后的数据与原始数据是否一致,压缩方法可分为无损压缩和有损压缩两大类。无损压缩,又称冗余度压缩、信息保持编码或熵编码,是一种可逆编码方法。该方法利用数据的统计冗余进行压缩,去除信源在空间和时间上的相关性,解码时可以完全恢复原始数据而不引入任何失真,但压缩率受到数据统计冗余
28、度的理论限制。目前,常用的无损压缩方法主要有:Shannon-Fano编码、Huffman编码、行程(Run-length)编码、LZW编码(Lempel-Ziv-Welch)和算术编码等。有损压缩,又称信息量压缩、失真度编码或熵压缩编码。该方法利用了人类视觉和听觉对某些频率成分不敏感的特性,允许压缩过程中损失一定的信息。解码时,虽然不能完全恢复原始数据,但是所损失的信息对理解原始信息影响较小,却能够获得很大的压缩比。有损压缩适用于重构信号不一定和原始信号完全相同的场合。如图像和声音的压缩就可以采用有损压缩,因为其中包含的数据往往多于视觉和听觉系统所能接收的信息,丢掉一些数据不会影响对声音或者
29、图像的理解。常见的有损压缩方法主要有:预测编码、变换编码、子带编码、统计编码、基于模型的压缩编码、神经网络编码、分形编码和小波编码等。3.4.2压缩算法的性能评价压缩算法的性能评价1.图像熵图像熵(Entropy)设数字图像像素灰度级集合为(W1,W2,Wk,WM),其对应的概率分别为P1,P2,Pk,PM。按信息论中信源信息熵定义,数字图像的熵H为21log(bit)MkkkHPP (3-4)由此可见,一幅图像的熵就是这幅图像的平均信息量度,也是表示图像中各个灰度级比特数的统计平均值。式(3-4)所表示的熵值是在假定图像信源无记忆(即图像的各个灰度级不相关)的前提下获得的,这样的熵值常称为无
30、记忆信源熵值,记为 。对于有记忆信源,假如某一像素灰度级与前一像素灰度级相关,那么公式(3-4)中的概率要换成条件概率 和联合概率 ,则图像信息熵公式变为 112111(/)(,)log(/)MMiiiiiikkH W WP W WP W W (3-5)/(1iiWWP),(1iiWWP)(0H 式中,则称 为条件熵。因为只与前面一个符号相关,故称为一阶熵 。如果与前面两个符号相关,求得的熵值就称为二阶熵 。依此类推可以得到三阶和四阶等高阶熵,并且可以证明 香农信息论已证明:信源熵是进行无失真编码的理论极限。低于此极限的无失真编码方法是不存在的,这是熵编码的理论基础。而且可以证明,如果考虑像素
31、间的相关性,使用高阶熵一定可以获得更高的压缩比。)/()(),(11iiiiiWWPWPWWP)/(1iiWWH)(1H)(2H)()()()(3210HHHH1.性能评价性能评价 评价一种数据压缩技术的性能好坏主要有三个关键的指标:压缩比、重现质量、压缩和解压缩的速度。除此之外,主要考虑压缩算法所需要的软件和硬件环境。n压缩比 压缩性能常常用压缩比来定义,也就是压缩过程中输入数据量和输出数据量之比。压缩比越大,说明数据压缩的程度越高。在实际应用中,压缩比可以定义为比特流中每个样点所需要的比特数。对于图像信息,压缩比可使用公式(3-6)计算:(3-6)LS为原图像的平均码长,Lc为压缩后图像的
32、平均码长。其中平均码长L的计算公式为 上式 中为数字图像第 个码字的长度(二进制代数的位数),其相应出现概率为 。CsLLC(bit)1imiiPL(3-7)iiiP 除压缩比之外,编码效率和冗余度也是衡量信源特性以及编解码设备性能的重要指标,定义如下:编码效率 其中,为信息熵,计算公式如(3-4)所示,L为平均码长。冗余度 LH (3-8)1(3-9)由信源编码理论可知,当LH条件时,可以设计出某种无失真编码方法。如果所设计出编码的L远大于H,则表示这种编码方法所占用的比特数太多,编码效率很低。例如,在图像信号数字化过程中,采用PCM对每个样本进行的编码,其平均码长L就远大于图像的熵H。因此
33、,编码后的平均码长L等于或很接近H的编码方法就是最佳编码方案。此时并未造成信息的丢失,而且所占的比特数最少,例如熵编码。如果LH时,必然会造成一定信息的丢失,从而引起图像失真,这就是限失真条件下的编码方案。(2)重现质量 重现质量是指比较重现时的图像与原始图像之间有多少失真,这与压缩的类型有关。压缩方法可以分为无损压缩和有损压缩。无损压缩是指压缩和解压缩过程中没有损失原始图像的信息,所以对无损系统不必担心重现质量。有损压缩虽然可获得较大的压缩比,但压缩比过高,还原后的图像质量就可能降低。图像质量的评估常采用客观评估和主观评估两种方法。图像的主观评价采用5分制,其分值在15分情况下的主观评价如表
34、3-2所示。表3-2 图像主观评价性能表主观评价分质量尺度妨碍观看尺度5非常好丝毫看不出图像质量变坏4好能看出图像质量变化,但不妨碍观看3一般清楚地看出图像质量变坏,对观看稍有妨碍2差对观看有妨碍1非常差非常严重地妨碍观看而客观尺度通常有以下几种:均方误差:信噪比:峰值信噪比:其中,为原始图像信号序列,为重建图像信号,为 的峰值,21()()niEx nx nn22lg10dB)(rxSNR22maxlg10dB)(rxPSNR)(nx)(nxmaxx)(nx)(22nxEx22)()(nxnxEr(3)压缩和解压缩的速度 压缩与解压缩的速度是两项单独的性能度量。有些应用中,压缩与解压缩都需要
35、实时进行,这称为对称压缩,如电视会议的图像传输;在有些应用中,压缩可以用非实时压缩,而只要解压缩是实时的,这种压缩称为非对称压缩如,如多媒体CD-ROM的节目制作。从目前开发的压缩技术看,一般压缩的计算量比解压缩要大。在静止图像中,压缩速度没有解压缩速度要求严格。但对于动态视频的压缩与解压缩,速度问题是至关重要的。动态视频为保证帧间变化的连贯要求,必须有较高的帧速。对于大多是情况来说动态视频至少为15帧/s,而全动态视频则要求有25帧/s或30帧/s。因此,压缩和解压缩速度的快慢直接影响实时图像通信的完成。此外,还要考虑软件和硬件的开销。有些数据的压缩和解压缩可以在标准的PC硬件上用软件实现,
36、有些则因为算法太复杂或者质量要求太高而必须采用专门的硬件。这就需要在占用PC上的计算资源或者另外使用专门硬件的问题上做出选择。3.5 信息熵编码 信息熵编码又称为统计编码,它是根据信源符号出现的概率的分布特性而进行的压缩编码。其目的在于在信源符号和码字之间建立明确的一一对应的关系,以便在恢复时能准确地再现原信号,同时要使平均码长或码率尽量小。本节介绍熵编码中的哈夫曼编码、行程编码和算术编码。3.5.1 哈夫曼编码 哈夫曼编码是由哈夫曼(D.S.Huffman)于1952年提出的一种不等长编码方法,这种编码的码字长度的排列与符号的概率大小的排列是严格逆序的,理论上已经证明其平均码长最短,因此被称
37、为最佳码。1.编码步骤编码步骤(1)将信源符号的概率由大到小排列;(2)将两个最小的概率组合相加,得到新概率;(3)对未相加的概率及新概率重复(2),直到概率达到1.0;(4)对每对组合,概率小的指定为1,概率大的指定为0(或相反);(5)记下由概率1.0处到每个信源符号的路径,对每个信源符号都写出1、0序列,得到非等长的Huffman码。下面以一个具体的例子来说明其编码方法,如图3-5所示。图3-5 哈夫曼(Huffman)编码的示例 表3-3列出了各个信源符号的概率、哈夫曼编码及码长。表3-3信源符号的概率、哈夫曼编码及码长输入灰度级出现概率霍夫曼编码码长a10.20102a20.1911
38、2a30.180003a40.170013a50.150103a60.1001104a70.01011142 前例哈夫曼编码的编码效率计算前例哈夫曼编码的编码效率计算 根据式(3-4)求出前例信息熵为7212222222log(0.2log 0.20.19log 0.190.18log 0.180.17log 0.17 0.15log 0.150.10log 0.100.01log 0.01)2.61iikHPP 根据式(3-7)求出平均码字长度为710.2 20.19 20.18 30.17 30.15 30.10 40.01 42.72iikLP 根据式(3-8)求出编码效率为2.6195
39、.9%2.72HL可见霍夫曼编码效率很高。3 哈夫曼编码实例哈夫曼编码实例 使用哈夫曼编码算法对实际图像进行编码,使用的图像为Couple和lena,这两幅图像均为256级灰度图像,大小256*256像素。图像如图3-6所示。编码结果如表3-4所示,限于篇幅,给出了部分结果。图3-6 图像Couple和lena表3-4 Couple和lena哈夫曼编码结果(部分)文件Couple.bmplena.bmp灰度值概率值哈夫曼编码概率值哈夫曼编码00.000015001001010000001010.000000 10.05787701110.000000 20.023636111000.00000
40、0 30.036606010010.000015010110011000111140.042953000100.0000610101100110001050.0202790010110.00024410001010100060.0169980101010.00030500101111101070.0120701101010.0006260000111100180.0116421111000.0006100010111110090.0117801110100.0009001000101011100.00984200110010.001526110111001110.00981100110100.
41、001663110001010120.01101700001100.002289001011110 从表中可以看出,Couple图像的色调比较暗,因此低灰度值像素较多,低灰度值像素点概率比Lena图像相同灰度值像素的大,因此,哈夫曼编码也相对短一些。而整个哈夫曼编码的长度严格地和概率成反比。表3-5给出了对Couple和lena两幅图像哈夫曼编码后的性能指标计算。表3-5 图像哈夫曼编码的性能指标文 件Couple.bmplena.bmp信 息 熵6.227.55原平均码字长度88压缩后平均码长6.267.58压 缩 比1.281.06原 文 件 大 小65.0KB65.0KB压缩后文件大小5
42、0.78KB61.32KB编 码 效 率99.41%99.63%表中可以看出,哈夫曼的编码效率还是很高的,但由于哈夫曼编码是无损的编码方法,所以压缩比不高。从表中还发现Couple图像的压缩比较大,但是编码效率却较小,这主要是由于该幅图像的信息熵较小,其冗余度较高造成的。4 哈夫曼编码的特点哈夫曼编码的特点n编码不唯一,但其编码效率是唯一的;由于在编码过程中,分配码字时对0、1的分配的原则可不同,而且当出现相同概率时,排序不固定,因此哈夫曼编码不唯一。但对于同一信源而言,其平均码长不会因为上述原因改变,因此编码效率是唯一的。n编码效率高,但是硬件实现复杂,抗误码力较差;哈夫曼编码是一种变长码,
43、因此硬件实现复杂,并且在存储、传输过程中,一旦出现误码,易引起误码的连续传播。n编码效率与信源符号概率分布相关;编码效率与信源符号概率分布相关,编码前必须有信源的先验知识,这往往限制了哈夫曼编码的应用。当信源各符号出现的概率相等时,此时信源具有最大熵,编码为定长码,其编码效率最低。当信源各符号出现的概率为2-n(n为正整数)时,哈夫曼编码效率最高,可达100%。由此可知,只有当信源各符号出现的概率很不均匀时,哈夫曼编码的编码效果才显著。n只能用近似的整数位来表示单个符号。哈夫曼编码只能用近似的整数位来表示单个符号而不是理想的小数,因此无法达到最理想的压缩效果。3.5.2 算术编码 在信源概率分
44、布比较均匀情况下,哈夫曼编码的效率较低,而此时算术编码的编码效率要高于哈夫曼编码,同时又无须象变换编码那样,要求对数据进行分块,因此在JPEG扩展系统中以算术编码代替哈夫曼编码。算术编码也是一种熵编码。当信源为二元平稳马尔可夫源时,可以将被编码的信息表示成实数轴01之间的一个间隔,这样,如果一个信息的符号越长,编码表示它的间隔就越小,同时表示这一间隔所需的二进制位数也就越多。下面对此作一具体分析。n 码区间的分割码区间的分割 设在传输任何信息之前信息的完整范围是0,1,算术编码在初始化阶段预置一个大概率p和一个小概率q。如果信源所发出的连续符号组成序列为Sn,那么其中每个Sn对应一个信源状态,
45、对于二进制数据序列Sn,可以用C(S)来表示其算术编码,可以认为它是一个二进制小数。随着符号串中“0”,“1”的出现,所对应的码区间也发生相应的变化。如果信源发出的符号序列的概率模型为m阶马尔可夫链,那么表明某个符号的出现只与前m个符号有关,因此其所对应的区间为C(S),C(S)L(s)),其中L(S)代表子区间的宽度,C(S)是该半开子区间中的最小数,而算术编码的过程实际上就是根据符号出现的概率进行区间分割的过程,如图3-7所示。图3-7 码区间的分割 图中假设“0”出现的概率为 ,“1”码出现的概率为 ,因而 ,。如果在“0”码后面出现的仍然是“0”码,这样,“00”出现的概率=,即 ,并
46、位于图3-7中所示的区域。同理,如果第三位码仍然为“0”码,“000”出现的概率=,该区间的范围 。32313132)0(L32)0(L94323294)00(L278323232278,0n 算术编码规则算术编码规则 在进行编码过程中,随着信息的不断出现,子区间按下列规律减小:n新子区间的左端=前子区间的左端+当前子区间的左端前子区间长度n新子区间长度=前子区间长度当前子区间长度n算术编码效率算术编码效率 n算术编码的模式选择直接影响编码效率n在信道符号概率分布比较均匀情况下,算术编码的编码效率高于哈夫曼编码 n硬件实现时的复杂程度高 3.5.3 行程编码 现实中有许多这样的图像,在一幅图像
47、中具有许多颜色相同的图块。在这些图块中,许多行上都具有相同的颜色,或者在一行上有许多连续的像素都具有相同的颜色值。在这种情况下就不需要存储每一个像素的颜色值,而仅仅存储一个像素的颜色值,以及具有相同颜色的像素数目就可以,或者存储一个像素的颜色值,以及具有相同颜色值的行数。这种压缩编码称为行程编码,常用(run length encoding,RLE)表示,具有相同颜色并且是连续的像素数目称为行程长度。下面以两值图像为例进行说明。两值图像是指图像中的像素值只有两种取值,即“0”和“1”,因而在图像中这些符号会连续地出现,通常将连“0”这一段称为“0”行程,而连“1”的一段则称为“1”行程,它们的
48、长度分别为L(0)和L(1),往往“0”行程与“1”行程会交替出现,即第一行程为“0”行程,第二行程为“1”行程,第三行程又为“0”行程。下面以一个具体的二值序列为例进行说明。已知一个二值序列00101110001001,根据行程编码规则,可知其行程序列为21133121如果已知二值序列的起始比特为“0”,而且占2个比特,因而行程序列的首位为2,又因为2个“0”行程之后必定为“1”行程,上述给出的二值序列只有一个1,因此第二位为1,后面紧跟的应该是“0”行程,0的个数为一个,故第三位也为1,接下去是“1”行程,1的个数为3,所以第四位为3依此下去,最终获得行程编码序列。可见图像中具有相同灰度(
49、或颜色)的图像块越大、越多时,压缩的效果就越好,反之当图像越复杂,即其中的颜色层次越多时,则其压缩效果越不好,因此对于复杂的图像,通常采用行程编码与哈夫曼编码的混合编码方式,即首先进行二值序列的行程编码,然后根据“0”行程与“1”行程长度的分布概率,再进行哈夫曼编码。以上是一个二值序列的行程编码的例子。对于多元序列也同样存在行程编码,但与二值序列行程序列不同,在某个行程的前后所出现的符号是不确定的,除非增加一个标志以说明后一行程的符号,因此所增加的附加标志抵消了压缩编码的好处。3.6 预测编码 预测编码的基本思想是分析信号的相关性,利用已处理的信号预测待处理的信号,得到预测值;然后仅对真实值与
50、预测值之间的差值信号进行编码处理和传输,达到压缩的目的,并能够正确恢复。如在视频编码中,预测编码可以去掉相邻像素之间的冗余度,只对不能预测的信息进行编码。相邻像素指在同一帧图像内上、下、左、右的像素之间的空间相邻关系,也可以指该像素与相邻的前帧、后帧图像中对应于同一位置上的像素之间时间上的相邻关系。预测编码的方法易于实现,编码效率高,应用广泛,可以达到大比例压缩数据的目的。预测编码又可细分为帧内预测和帧间预测。3.6.1 帧内预测帧内预测 帧内预测编码是针对一幅图像以减少其空间上的相关性来实现数据压缩的。通常采用线性预测法,也称为差分脉冲编码调制(DPCM,differential pulse