图像编码与压缩技术摘要:本文首先介绍了图像编码的可行性,随后阐述了图像编码压缩的发展历程,介绍了图像编码压缩的方法,并对图像压缩方法进行了比较,最后对图像编码压缩技术进行了展望。AbstractInthispaper,wefirstintroducethefeasibilityofimagecoding,thendescribesthedevelopmentprocessofimagecodingandcompression,imagecompressioncodingmethodisintroduced,andtheimagecompressionmethodsarecompared,finally,theimagecompressioncodingtechnologyisprospected.关键字:图像编码压缩;变换编码;行程编码;高压缩比一.引言图像是客观对象的一种相似性的、生动性的描述或写真,是人类社会活动中最常用的信息载体[1]。据统计,一个人获取的信息大约有75%来自视觉[2],所以说图像对于人类生活来说十分重要,一种好的图像处理方法能使人类生活更加便捷和丰富多彩。图像的大小,图像通过什么方式传输,图像储存在哪里等因素都会引起图像的失真,所以必须对图像进行一些处理,这些处理主要是利用数学运算加工图像,减少图像的失真,便于图像传输和保存,使人们收到清晰的图像。图像编码与压缩技术是数字图像处理最重要的技术之一。随着科技的快速发展,人们对信息的需求量和质量要求的提高,图像编码与压缩技术变得越来越重要。图像的数据量非常大,因此图像的存储和传输也随着变得困难。利用数字图像编码技术处理图像后,这些问题也就迎刃而解了。图像中包含很多冗余信息,如空间冗余、知识冗余、信息熵冗余、视觉冗余等,而人眼识别不了这种信息,根据这一现象,压缩图像数据的难度不大。二.图像编码与压缩技术的发展历程图像编码与压缩技术发展历程现阶段可以分为三个时期。第一阶段,图像编码压缩技术刚刚开始研究,实验设备、技术等方面的并不发达,人们对图像编码压缩的研究重心放在这方面的理论知识上,在实验上的研究进展不大。在这一阶段,许多关于图像编码压缩理论知识方面的研究成果被提出,如霍夫曼(Hufman)编码、预测编码和变换编码[3]。第二阶段,人们对图像压缩编码的热情日益高涨,意识到仅在纸上推理是远远不够的,研究这们技术的最终目的还是使其能应用到生活实际中来,便捷人们的生活,加上科技的发展,实验条件的改善,此时,研究者们逐渐将重心放在实验中对图像压缩编码的研究。1966年,J.B.ONeal花费大量时间和精力,,通过实验研究分析差分脉冲编码调制和脉冲编码调制,并得出它们之间的差异。在这次实验中的大量实验数据为他之后对线性预测码的研究提供了条件,并取得了很好的成绩,促进了图像编码压缩技术的发展。1969年是数字图像编码与压缩技术发展历史中的一个加速点,在这一年,在众人的呼声中,第一次图像编码会议顺利召开。在这次会议上研究者们相互交流,共同探讨,促进了数字图像编码与压缩技术算法的研究快速发展,人们增强了对数字图像编码压缩的热情。在这次会议之后,许多图像编码压缩方法陆续被成功研究并推行,如离散哈德玛变换、离散斜变换等[4]。这些编码压缩方法在生活被广泛应用,便捷了人们的生活,节约了成本。但是因为实验方面的研究刚刚起步,这些编码方法还是有一些缺陷,并不那么完善。例如,经过处理后的图像压缩效果不是很好,复原出来的图像和原图像的差异比较大等。第三阶段,图像压缩效果更好的编码压缩方法被研究出来,图像压缩技术也进入了另一繁荣阶段,比较显著的成就有以下几个。1987年Mflat统一小波变换的构造方法,在这之前,小波变换的构造方法很多,这导致在进行构造小波变换时,众说纷纭,各说各的好,不利于进行图像压缩技术之间的交流。Mflat在这方面主要做的工作是在小波变换中引入多尺度思想,以此达到统一构造方法的目的。另一标志性事件是1998年Bansley和Sloan提出分形图像编码压缩方法,这种方法极具创新性,突破了传统图像编码压缩方法的禁锢,在进行图像压缩时压缩比高,同时也为之后的分形编码改进算法奠定了基础。20世纪90年代末期,一种具有阶段性突破的图像压缩编码方法被提出,即基于零树的编码方法。这种方法中利用的是在同方向子带中,小波系数具有相似性的特点。在这种图像编码压缩方法的基础上加以改进,嵌入式零树小波变换编码算法、分层小波树集合分割算法[6]被研究出来。小波变换因其独特的优势,人们在进行图像编码压缩研究时广泛应用小波变换,国际图像压缩标准中的核心算法就是小波变换。近年来,图像编码压缩技术的优越性日益显现,人们充分引起了对其的重视,图像编码压缩技术发展速度进一步加快,在众多领域显现出了不可替代的重要作用。越来越多的图像编码标准被制定推行,规范图像编码压缩过程,减少研究者们讨论过程中的分歧。例如,JPEG和JPEG2000是对静止图像制定的标准[7]。图像编码压缩方法发展的同时,带动了其他领域的发展,为其他领域的研究提供了有利条件。例如,通过图像编码压缩,使得广播电视,计算机,电话等领域之间的交流更加顺畅,加快了它们之间的交流,为这些领域之间的合作提供的可能,一种各个领域协调合作发展的新环境正在形成[8]。三.图像编码与压缩方法图1展现的是数字系统传输模型[9],对信源的编码包括信源编码和信源解码两个过程,对信道的编码包括信道编码和信道解码两个过程。信源编码和信道编码是信息论中两个重要的课题,信道编码能降低信息传输的失真率,信源编码能提高信息传输的有效性。信源编码的核心思想是在满足信源无失真传输的条件下,通过信源编码方法对信源进行处理,使码元序列长度最短。图1数字系统传输模型压缩图像能大幅度地降低图像的内存大小,但图像压缩也伴随着图像质量的降低。所以在实际应用中因根据实际需要选择合适的压缩比,在提高传输效率的同时保障图像的质量。图像编码压缩分为无误差编码和有误差编码。一副图像中含有大量无用的冗余信息,正因为这一点,才为图像的压缩的实现提供了可能。在图像编码压缩过程只删掉其中的冗余信息的技术叫做无差错编码,因为这种编码方法没删除掉人类想要获得的信息,所以不会使图像产生任何失真。无误差编码方法很多,主要是属于统计编码的,例如霍夫曼编码、算术编码、LempelZew编码、行程编码等。无差错编码方法适合对图像质量要求非常高的环境,如军事中的信息传递。有误差编码过程中不仅删除了无用的冗余信息,也删除掉了一部分有用信息,这种方法是在保障一定的视觉效果的基础上,尽可能的实现高压缩比,降低存储信息时所需要的内存,提高传输速度,降低了成本,缺点就是会导致图像发生一定程度的失真。在数字电视和多媒体等应用中,通过它们获得信息时,并不要求图像的失真率非常低,仅仅是要求接受信息后能基本无误的通过逻辑或其他手段还原信息即可,因此,有误差编码与压缩方法适用于这些领域。有误差编码与压缩方法包括量化编码、预测编码、变换编码等。混合编码结合了有误差编码方法和无误差编码方法的优点。图像编码压缩方法分类如图2.图2数字压缩方法分类1.霍夫曼编码通过霍夫曼编码对信源进行编码,能获得最佳码。霍夫曼编码方法的核心思想是对于概率大的分配一个短的编码,概率小的信号的编码长度就相对更长,这样使整体的平均码长达到最小,从而达到一种最佳的状态。霍夫曼编码方法的步骤如下:(1)按照信源符号概率的大小按照从大到小的顺序排序。(2)把0和1分配给概率最小的和第二小的信源符号,并合并它们的概率,同时按照大小顺序重新排到概率队列中。(3)重复步骤二,直到只剩下两个概率,并将0和1分配给它们。(4)按照从后往前的顺序读出每个信源符号的编码。图3霍夫曼编码实例图3显示了信源X={x1=0.5,x2=0.15,x3=0.13,x4=0.1,x5=0.08,x6=0.04}利用霍夫曼编码方法的编码过程。编码后结果如下:符号xx1x2x3x4x5x6概率分布0.50.150.130.10.080.04霍夫曼编码1010000001011001111图4霍夫曼编码结果霍夫曼编码具有以下三个特点:(1)通过霍夫曼编码方法构造出的编码值有很多种形式,因为在第二、三步过程中,0和1分配给最小和第二小的信源符号时是任意的,即0可以分配给最小的,也可以分配给第二小的,分配1也如此。虽然构造出来的码字不唯一,但是它们的平均码长都是相等的。(2)霍夫曼编码方法在不同的图像中的效率是不一样的。图像的灰度值分布得越不均匀,霍夫曼编码效率越高。所以霍夫曼编码方法适用于灰度分布不均匀的图像,而不适合对灰度分布很均匀的图像进行处理。(3)霍夫曼编码缺乏构造性。在对图像数据编码之前,必须先对信源数据进行相关处理,生成编码表。这种方法适合信源符号不多的情况,那是因为如果信源符号很多,相应生成的编码表就会很大,在数据的储存、传输、编码的过程中都产生了一定的麻烦。2.预测编码一副图像转换成灰度表示时,一般相邻的像素灰度值相差不大,通过图像的这一特性,就可以将图像中某个像素灰度值用与它相邻的那个像素表示,这就是预测编码的原理。例如,图像的某一区域的灰度值为130,131,132,133,134,135,利用预测编码方法,此时的像素灰度值就可以表示为130,1,1,1,1,1。这样表示的好处是图像的信息所占的内存空间大幅度减小,预测编码方法就是据此来实现图像压缩的。在对像素灰度值进行预估产生的值与这之前的灰度值可能成线性关系也可能成非线性关系,据此可以将预测编码分为线性预测编码和非线性预测编码。线性预测编码在进行预测估计时会比非线性预测编码简便。预测编码方法利用的是图像像素灰度值之间的相关性,当一副图像灰度值是离散的,相邻灰度值之间的差异较大时,利用预测编码对图像进行压缩的效果就不会很明显。所以说预测编码方法适合对像素相关性强的图像进行处理。3.行程编程图像中包含的数据量非常大,因此必定含有很多连续相同灰度值的像素,行程编码方法就是利用这一点,将连续相同灰度值像素用相同的符号来表示,这样就达到了图像压缩的目的。例如,图像中某一行有100个连续的像素的灰度值为50,30个连续的灰度值为90,60个连续的灰度值为150,10个相邻的像素的灰度值为200,通过行程编码进行处理后,这一行就可以用(50,100),(90,30),(150,60),(200,10)来表示[10]。利用行程编码方法处理图像能取得较好的效果,但是它有一个缺点,就是如果想获得某一点的存储位置,就必须将它之前的所有点译码,这样就导致在采样过程中速度很慢,图像压缩压缩效率不高。为了改善行程编码的性能,人们加强在这方面的研究,改进版的行程编码算法成功被提出。这种算法的特别之处就是在处理图像时是把每一行分开处理,每一行都有一个行存储方式特征表和像素值存储区表示[11]。在这种算法中,如果想确定某一点的存储位置就只需找到它所在的行,然后根据在行中的位置就可以查找到,此时的采样速率明显提高。例如,图(a)是一副纹理图像,它由8×4个灰度值表示。对图(a)所示的图像进行行程编码改进算法的处理后,得到了它的存储结构,如图(b)所示。在图(a)中的第2行,前6个元素的灰度值都是4,那么在行存储特征表中第3行,写入6,在后边的像素值存储区写入4,;最后两个元素都为0,则在行存储特征表中写入2,像素值存储区中写入0。后边的斜线部分表示这一部分是自由空间。图5改进算法示意4.变换编码图6变换编码压缩原理图在变换编码方法中,在对图像进行处理之前,先将图像分割成很多个小图像,然后对每个图像进行逐个处理。这个处理是指对图像信息进行正交变换,获取变换后的系数。用这些系数来代表图像,其中系数大的保留下来,忽略小系数,用0表示。根据相同的原理,接收到这些系数后,采用与编码时相反的操作,复原图像[12]。(A)(B)(C)例如,有个一个如上面图(A)所示的图像数据,对这个图像数据进行进行相关变换处理,得到了如图(B)所示的变换系数。由图可以看出,左上角的数值比其