第10章图像压缩刘星本章的知识和技术热点图像压缩理论DCT变换和量化预测编码霍夫曼编解码算术编码游程编码JPEG和JPEG2000压缩标准一.图像压缩理论为什么要进行图像压缩图像数据压缩的可能性图像冗余图像数据压缩技术的重要指标图像数据压缩的应用领域图像编码中的保真度准则图像压缩模型1.为什么要进行图像压缩?数字图像通常要求很大的比特数,这给图像的传输和存储带来相当大的困难。要占用很多的资源,花很高的费用。如一幅512*512的灰度图象的比特数为512*512*8=256k再如一部90分钟的彩色电影,每秒放映24帧。把它数字化,每帧512*512象素,每象素的R、G、B三分量分别占8bit,总比特数为90*60*24*3*512*512*8bit=97,200M。如一张CD光盘可存600兆字节数据,这部电影光图像(还有声音)就需要160张CD光盘用来存储。对图像数据进行压缩显得非常必要。2.图像数据压缩的可能性一般原始图像中存在很大的冗余度。用户通常允许图像失真。当信道的分辨率不及原始图像的分辨率时,降低输入的原始图像的分辨率对输出图像分辨率影响不大。用户对原始图像的信号不全都感兴趣,可用特征提取和图像识别的方法,丢掉大量无用的信息。提取有用的信息,使必须传输和存储的图像数据大大减少。设:n1和n2是在两个表达相同信息的数据集中,所携带的单位信息量。–压缩率:——描述压缩算法性能CR=n1/n2其中,n1是压缩前的数据量,n2是压缩后的数据量–相对数据冗余:RD=1–1/CR例:CR=20;RD=19/20描述信源的数据是信息量(信源熵)和信息冗余量之和。3.图像冗余1)数据冗余的基本概念•A.统计冗余:2)常见的数据冗余在数字图像压缩中,常有3种基本的数据冗余:编码冗余、像素间的冗余以及心理视觉冗余为表达图像数据需要用一系列符号,用这些符号根据一定的规则来表达图像就是对图像编码。对每个信息或事件所赋的符号序列称为码字,而每个码字里的符号个数称为码字的长度。等长码:对于一个消息集合中的不同消息,用相同长度的不同码字表示,编解码简单,编码效率不高。变长码:与等长码相对应,对于一个消息集合中的不同消息,也可以用不同长度的码字表示,编码效率高,编码解码复杂。例:如果用8位表示该图像的像素,我们就说该图像存在着编码冗余,因为该图像的像素只有两个灰度,用一位即可表示。如果一个图像的灰度级编码,使用了多于实际需要的编码符号,就称该图像包含了编码冗余。•B.像素冗余:由于任何给定的像素值,原理上都可以通过它的邻居预测到,单个像素携带的信息相对是小的。对于一个图像,很多单个像素对视觉的贡献是冗余的。这是建立在对邻居值预测的基础上。原始图像越有规则,各像素之间的相关性越强,它可能压缩的数据就越多。例:原图像数据:234223231238235压缩后数据:23411-8-73类似还有:图像彩色光谱空间的冗余;视频图像信号在时间上的冗余;在视频中,一般每秒需要播放24张以上的图像,人眼才能形成连续的视觉。而1/24s之内的变化一般都比较微小,因而表现为时间上的相关性。以上所述即为像素冗余,一般在编码中采用预测的方式消除空间域和时间域上的像素冗余。一些信息在一般视觉处理中比其它信息的相对重要程度要小,这种信息就被称为视觉心理冗余。•(3)视觉心理冗余:33K15K图像压缩的目的图像数据压缩的目的是在满足一定图像质量条件下,用尽可能少的比特数来表示原始图像,以提高图像传输的效率和减少图像存储的容量。在信息论中称为信源编码。图像从结构上大体上可分为两大类,一类是具有一定图形特征的结构,另一类是具有一定概率统计特性的结构。基于不同的图像结构特性,应采用不同的压缩编码方法。4.图像数据压缩技术的重要指标(1)压缩比:图像压缩前后所需的信息存储量之比,压缩比越大越好。(2)压缩算法:利用不同的编码方式,实现对图像的数据压缩。(3)失真性:压缩前后图像存在的误差大小。全面评价一种编码方法的优劣,除了看它的编码效率、实时性和失真度以外,还要看它的设备复杂程度,是否经济与实用。常采用混合编码的方案,以求在性能和经济上取得折衷。随着计算方法的发展,使许多高效而又比较复杂的编码方法在工程上有实现的可能。1)办公自动化;2)医学图像处理;3)卫星遥感遥测系统;4)高清晰度电视HDTV;5)可视电话、会议电视;6)移动多媒体图像及视频传输:彩信业务,手机视频;……凡是涉及到图像数据的传输、交换与存储的领域均要求进行图像数据的压缩。5.图像数据压缩的应用领域6.图像编码中的保真度准则图像信号在编码和传输过程中会产生误差,尤其是在有损压缩编码中,产生的误差应在允许的范围之内。在这种情况下,保真度准则可以用来衡量编码方法或系统质量的优劣。通常,这种衡量的尺度可分为客观保真度准则和主观保真度准则。通常使用的客观保真度准则有输入图像和输出图像的均方根误差;输入图像和输出图像的均方根信噪比两种。均方根误差:设输入图像是由N×N个像素组成,令其为f(x,y),其中x,y=0,1,2,…,N-1。这样一幅图像经过压缩编码处理后,送至受信端,再经译码处理,重建原来图像,这里令重建图像为g(x,y)。它同样包含N×N个像素,并且x,y=0,1,2,…,N-1。(1)客观保真度准则在0,1,2,…,N-1范围内x,y的任意值,输入像素和对应的输出图像之间的误差可用下式表示:而包含N×N像素的图像之均方误差为:1010222),(1NxNyyxeNe101022)],(),([1NNNNyxfyxgN由式可得到均方根误差为2/12][eerms(,)(,)(,)exygxyfxy如果把输入、输出图像间的误差看作是噪声,那么,重建图像g(x,y)可由下式表示:),(),(),(yxeyxfyxg在这种情况下,另一个客观保真度准则——重建图像的均方信噪比如下式表示:10102101021010210102)],(),([),(),(),()(NxNyNxNyNxNyNxNymsyxfyxgyxgyxeyxgNS图像处理的结果,大多是给人观看,由研究人员来解释的,因此,图像质量的好坏,既与图像本身的客观质量有关,也与视觉系统的特性有关。有时候,客观保真度完全一样的两幅图像可能会有完全不相同的视觉质量,所以又规定了主观保真度准则,这种方法是把图像显示给观察者,然后把评价结果加以平均,以此来评价一幅图像的主观质量。(2)主观保真度准则评分评价说明1优秀的优秀的具有极高质量的图像2好的是可供观赏的高质量的图像,干扰并不令人讨厌3可通过的图像质量可以接受,干扰不讨厌4边缘的图像质量较低,希望能加以改善,干扰有些讨厌5劣等的图像质量很差,尚能观看,干扰显著地令人讨厌6不能用图像质量非常之差,无法观看另外一种方法是规定一种绝对尺度,如:表6.1电视图像质量评价尺度图像信息源图像预处理图像信源编码信道编码调制信道传输解调信道解码图像信源解码显示图像7.图像的压缩模型二.DCT变换与量化常见频域变换K-L变换小波变换离散傅里叶变换沃尔什-哈达玛变换离散余弦变换(DCT)DCT变换后系数均为实数,且低频系数集中在矩阵的左上角,高频系数分布在右下角,广泛应用于图像压缩。DCT变换原理:将图像分解为8*8的子块或16*16的子块,并对每一个子块进行单独的DCT变换,然后对变换结果进行量化、编码。随着子块尺寸的增加,算法的复杂度急剧上升,因此,实用中通常采用8*8的子块进行变换,但采用较大的子块可以明显的减少图像分块效应。测试图像及其DCT变换DCT变换原理DCT变换是可逆的,经过反变换,理论上可精确还原原有像素矩阵。但由于浮点精度问题,可能产生舍入误差。因此,在很多场合采用经过改进的DCT整数变换,这样有以下两个好处。1.采用整数运算,不会有舍入误差的问题;2.整数运算的代价比乘法要小得多,可以通过整数加减和移位操作完成变换,有利于提高计算效率。DCT整数变换与原DCT变换的结果有微小差异,但由此引入的压缩效率下降的微乎其微,计算速度却得以大幅度提高。N*N的像素块经过DCT变换后依然为N*N的块,变换本身没有明显的压缩作用。DCT变换必须与量化配合使用才能得到较好的压缩效果。可以说,图像压缩的有损压缩的部分主要来自于量化,量过程就是将每一个DCT系数除以一个固定常数,再四舍五入取最接近的整数。由于DCT变换已经将能量集中在块的左上角,很多高频系数非常小,经过量化后变为零,而剩下的系数也很大程度上缩小了动态范围,减小了编码所需的比特数。量化的特点:1.对低频分量采用细量化,高频分量采用粗量化;2.对灰度采用细量化,色度采用粗量化。量化预测编码图像编码无损压缩编码有损压缩编码霍夫曼编码游程编码算术编码频率域方法其他编码方法三.常用的图像压缩编码方法※无损压缩算法中删除的仅仅是图像数据中冗余的信息,因此在解压缩时能精确恢复原图像,无损压缩的压缩比很少有能超过3:1的,常用于要求高的场合。1.无损压缩编码※有损压缩是通过牺牲图像的准确率以实现较大的压缩率,如果容许解压图像有一定的误差,则压缩率可显著提高。有损压缩在压缩比大于30:1时仍然可重构图像,而如果压缩比为10:1到20:1,则重构的图像与原图几乎没有差别2.有损压缩编码霍夫曼编码等长码:对于一个消息集合中的不同消息,用相同长度的不同码字表示,编解码简单,编码效率不高。变长码:与等长码相对应,对于一个消息集合中的不同消息,也可以用不同长度的码字表示,编码效率高,编码解码复杂。霍夫曼编码是一种利用信息符号概率分布特性的变字长的编码方法。对于出现概率大的信息符号编以短字长的码,对于出现概率小的信息符号编以长字长的码。方法:I.将信源符号按出现概率从大到小排成一列,然后把最末两个符号的概率相加,合成一个概率。II.把这个符号的概率与其余符号的概率按从大到小排列,然后再把最末两个符号的概率加起来,合成一个概率。III.重复上述做法,直到最后剩下两个概率为止。IV.从最后一步剩下的两个概率开始逐步向前进行编码。每步只需对两个分支各赋予一个二进制码,如对概率大的赋予码0,对概率小的赋予码1。•哈夫曼编码效率信源熵为:H=-∑Pilog2Pi=-(0.19log20.19+0.2log20.2+0.03log20.03+0.22log20.22+0.15log20.15+0.02log20.02+0.06log20.06+0.13log20.13)=2.7016比特/符号平均码字长度:R=∑βiPiR=∑βiPi=0.19×3+0.2×2+0.03×5+0.22×3+0.15×3+0.02×5+4×0.06+3×0.13=2.74比特/符号编码效率:η=H/R(%)η=H/R=2.7016/2.74=98.6%霍夫曼解码例:编码串001000101101111进行霍夫曼解码。首先按照顺序编历霍夫曼树,遇到00,对应像素1,故解码得1;接着解码得编串变为1000101101111,遇到10001,对应系数2,故解码得2;……因此求得编码串的解码结果为5个像素值1,2,3,7,04.算术编码•从理论上分析,采用哈夫曼编码可以获得最佳信源字符编码效果;•实际应用中,由于信源字符出现的概率并非满足2的负幂次方,因此往往无法达到理论上的编码效率和信息压缩比;算术编码的特点•算术编码是信息保持型编码,它不像哈夫曼编码,无需为一个符号设定一个码字;•算术编码分为固定方式和自适应方式两种编码;•选择不同的编码方式,将直接影响到编码效率;•自适应算术编码的方式,无需先定义概率模型,适合于无法知道信源字符概率分布的情况;•当信源字符出现的概率比较接近时,算术编码效率高于哈夫曼编码的效率,在图像通信中常用它来取代哈夫曼编码;•实现算术编码算法的硬件比哈夫曼编码复杂。编码原理•算术编码方法是将被编码的信源消息表示成0-1之间的一个间隔,即小数区间,消息越长,编码表示它的间隔