蔡滨滨论文终稿.doc

基于DCT变换的图像压缩技术的研究

收藏

压缩包内文档预览:(预览前20页/共46页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:155459266    类型:共享资源    大小:1.67MB    格式:RAR    上传时间:2021-10-17 上传人:好资料QQ****51605 IP属地:江苏
20
积分
关 键 词:
基于 DCT 变换 图像 压缩 技术 研究
资源描述:
基于DCT变换的图像压缩技术的研究,基于,DCT,变换,图像,压缩,技术,研究
内容简介:
本科毕业设计论文题 目 : 基于DCT变换的图像压缩技术的研究 专业名称 : 通信工程 学生姓名 : 蔡滨滨 指导教师 : 李颖华 毕业时间 : 2014年6月 设计论文毕业 任务书一、题目基于DCT变换的图像压缩技术的研究二、指导思想和目的要求指导思想:图像信息给人们以直观、生动的形象,成为人们获取外部信息的重要途径。然而数字图像具有极大的数据量。在目前的计算机系统条件下,若图像信息不经过压缩,则会占用信道,传输速率变慢,而且传输成本变得昂贵,这对图像的储存、传输及使用都非常不利,同时也阻碍了人们对图像的有效获取和使用。因此,图像压缩技术的重要性也越来越高,在学习、生产、生活等方面的作用也越来越显著,对图像进行压缩成为图像研究领域的重要课题。目的要求:基于DCT变换的图像压缩技术,首先介绍图像压缩的基本原理及方法,然后了解离散余弦变换的性质以及JPEG图像压缩算法,最后从DCT变换、量化以及熵编码三个过程进行详细论述,利用MATLAB仿真软件实现基于DCT变换的图像压缩,去除冗余数据,节约文件所占的码字,降低原始图像数据量,解决图像数据量巨大的问题,以达到对图像进行压缩的目的。三、主要技术指标图像的质量评价方法主要有两种:一种是主观评价,另一种是客观评价。主观评价直接反映人眼的视觉感受,主要从亮度、色调、饱和度和细节分辨等方面入手,但因观察者个体差异、人力成本较高等原因而存在许多不足之处。通常客观评价的方法应用更广泛。常用的客观评价方法和标准有压缩比(CR)和峰值信噪比(PSNR)两种。再根据不同的量化系数得到不同的压缩比和峰值信噪比。设待评价图像和标准图像0的大小是MN,常用客观评价指标定义如下:压缩比:r=/0 不同的量化系数压缩比也不同(量化系数分别为:1、3、5、10、15等)由于量化系数不同得到的峰值信噪比也不同,根据均方差得出峰值信噪比。 均方差: MSE = 式中,运算符Q表示在计算前,为使计算值与人眼视觉感受一致而进行的某种预处理,如对数处理、幂处理等。常用的Q为K,其中K1,K2,K3,b均为常数。 峰值信噪比: PSNR=10 , 式中,为图像的最大灰度值。四、进度和要求(一)进度:第3周至第4周查阅资料,确定方案,撰写开题报告第5周至第6周学习使用MATLAB软件,翻译英文资料第7周至第13周学习JPEG图像压缩的算法及DCT变换;设计图像压缩算法流程图;编写程序,通过MATLAB软件进行调试;对程序进行修改完善,完成论文初稿第14周至第15周整理、完成毕业设计,并撰写论文第16周至第17周准备及完成毕业设计答辩(二)要求完成:(1)外文科技资料翻译(译文字数15002000字),要求译文与原文相符并与论文内容相关;(2)论文1份,打印稿(用学校规定的稿纸),论文字数不少于1.5万字,含中、英文摘要(不少于400字);(3)用PowerPoint制作论文答辩电子稿1份。五、主要参考书及参考资料1孙兆林. MATLAB 6.X 图像处理M. 北京:清华大学出版社,2002.5 2张德丰. 详解MATLAB数字图像处理M. 北京:电子工业出版社,2010.73郑继刚,王边疆. 基于MATLAB的数字图像处理研究M. 云南:云南大学出版社,20104杨丹,赵海滨,龙哲. MATLAB图像处理实例详解M. 北京:清华大学出版社,2013.75闫敬文. 数字图像处理(MATLAB版)M. 北京:国防工业出版社,2011.86Rafael C. Gonzalez Richard E. Woods Steven L. 等. 数字图像处理的MATLAB的实现M. 北京:清华大学出版社,2013.47何小海. 图像通信M. 西安:西安电子科技大学出版社,20058罗倩玲. JPEG编码与矢量量化编码方法比较J. 电子测量技术,2005(4)9朱艳秋,初连禹,陈贺新. 一种基于二维DCT的分形静止彩色图象压缩编J. 中国图像图形学报,1997(7)10李在铭. 数字图像处理压缩与识别技术M. 成都:电子科技大学出版社11白淑岩. BAI Shu-yan. 基于DCT的图像压缩及MATLAB实现J. 烟台职业学院学报,2007.13(2)12赵珊,赵倩. 基于DCT系数的JPEG图像检索算法J. 计算机工程,2010(19)学生 : 指导教师 :_ 系主任 :_西北工业大学明德学院本科毕业设计论文摘 要随着科学技术的发展,图像压缩技术越来越引起人们的关注。离散余弦变换常被认为是对语音和图像信号进行变换的最佳方法,图像经过离散余弦变换后,其低频分量都集中在左上角,高频分量分布在右下角。由于该低频分量包含了图像的主要信息,而高频与之相比,就不那么重要了,所以可以忽略高频分量,从而达到压缩的目的。本文的主要内容是对基于离散余弦变换的JPEG图像压缩编码算法进行研究,并利用MATLAB软件进行仿真。首先说明了图像压缩在现代通信中的必要性和可行性,然后阐述图像压缩的基本原理和方法,并对基于离散余弦变换的JPEG图像压缩算法进行了详细的研究,重点介绍了JPEG压缩编码的具体过程和方法,详细介绍了编码中离散余弦变换、量化、熵编码和霍夫曼编码等模块的原理及各模块的功能分析。通过MATLAB仿真表明基于离散余弦变换的JPEG 图像压缩方法简单、方便,既能保证有较高的压缩比,又能保证有较好的图像质量。关键词:离散余弦变换,图像压缩,MATLAB ABSTRACTWith the development of science and technology, image compression technology has attracted more and more attention. Discrete cosine transform is often considered to be the best method to transform the voice and image signal, the image by discrete cosine transform, the low frequency components are concentrated in the upper left corner, the high frequency component distribution in the lower right corner. Because of the low frequency component contains the main information of the image, while the high frequency compared with it, will be less important, so we can ignore the high frequency components, so as to achieve the purpose of compression. The main content of this paper is on the JPEG discrete cosine transform image compression coding algorithm based on study, and the use of MATLAB software simulation. First explained the necessity and feasibility of image compression in modern communications, and then discusses the basic principles and methods of image compression, and the JPEG image compression algorithm based on discrete cosine transform is studied in detail, introduces the process and method of JPEG coding, introduces in detail the principle analysis of the DCT transform coding, quantization, entropy coding and Hoffman coding module and the function of each module. Through the MATLAB simulation results show that the JPEG discrete cosine transform image compression method based on simple, convenient, can guarantee a higher compression ratio, but also ensure a better image quality.KEY WORDS:discrete cosine transform,image compression,MATLAB目 录第一章 绪 论11.1 课题背景及研究意义11.2 图像压缩技术的研究现状与发展趋势21.3 本文研究的主要内容3第二章 图像压缩理论基础42.1 图像压缩基本原理42.2 图像压缩系统42.3 图像压缩方法52.3.1 无损压缩52.3.2 有损压缩62.4 静态图像压缩标准72.4.1 JPEG压缩标准72.4.2 JPEG2000压缩标准8第三章 基于DCT的图像压缩技术93.1 离散余弦变换原理93.2 DCT在图像压缩中的应用103.3 基于DCT的图像压缩编码步骤113.3.1 基于DCT的图像压缩编码流程图133.3.2 DCT系数的量化143.3.3 量化系数的编排143.3.4 DC系数的编码143.3.5 AC系数的编码163.3.6 组成位数据流17第四章 基于DCT的图像压缩的MATLAB仿真实现214.1 MATLAB简介214.2 DCT的编程实现234.3 程序流程图274.4 MATLAB仿真结果分析274.5 本章小结29第五章 全文总结30参考文献31致 谢33毕业设计小结34附 录35- 37 -第一章 绪 论1.1 课题背景及研究意义进入21世纪,人类已步入信息社会,新信息技术革命使人类被日益增多的多媒体信息所包围,这也正好迎合了人类对要示提高视觉信息的需求。多媒体信息主要有三种形式:文本、声音和图像。从信息传输的发展史(电报、电话、传真、收音机、电视机直至现在的网络)可以看出,人们逐渐将信息传输的重点从声音转向图像,然而图像是三种信息形式中数据量最大的,这给图像的传输和存储带来了极大的困难。例如,一幅640480分辨率的24位真彩色图像的数据量约为900kb;一个100Mb的硬盘只能存储约l00幅静止图像画面。对于如此巨大的数字图像数据量,如果不经过压缩,不仅超出了计算机的存储和处理能力,而且在现有的通信信道的传输速率下,是无法完成大量多媒体信息实时传输的,数字图像高速传输和存贮所需要的巨大容量已成为推广数字图像通信和最大障碍。因此,为了存储、处理和传输这些数据,必须进行压缩。图像压缩之所以能够进行是因为原始图像数据是高度相关的,存在很大的数据冗余。数字图像包含的冗余信息一般有以下几种:空间冗余、时间冗余、信息熵冗余、统计冗余、结构冗余、视觉冗余以及知识冗余等。图像压缩算法就是要在保证图像一定的重建质量的同时,尽可能多的去除这些冗余信息,以达到对图像压缩的目的。图像信息给人们以直观、生动的形象,成为人们获取外部信息的重要途径。然而数字图像具有极大的数据量。在目前的计算机系统条件下,要想实时处理,若图像信息不经过压缩,则会占用信道,传输速率变慢,而且传输成本变得昂贵,这对图像的储存、传输及使用都非常不利,同时也阻碍了人们对图像的有效获取和使用。另外,随着现代科学计算机技术的发展,图像压缩技术在通信系统和多媒体系统中的重要性也越来越高,在我们学习、生产、生活等方面的作用也越来越显著。为此,人们对图像压缩技术的关注越来越高以及如何用较少的数据来表示图像信息,即对图像进行压缩成为图像研究领域的重要课题。1.2 图像压缩技术的研究现状与发展趋势从国际数据压缩技术的发展尤其是JPEG的发展可以看出,基于内容的图像压缩编码方法是未来编码的发展趋势。它不仅能满足进一步获得更大的图像数据压缩比的要求,而且能够实现人机对话的功能。另外,任意形状物体的模型建立的关键问题还没有解决,这严重影响其应用的广泛性。因此,视频编码将朝着多模式和跨模式的方向发展。通过元数据进行编码也是今后编码的发展方向。元数据是指详细的描述音频、视频信息的基本元素,利用元数据来描述音视频对象的同时也就完成了编码,因为此时编码的对象是图像的一种描述而不再是图像本身。从另一个角度来说,进一步提高压缩比,提高码流的附属功能(码流内容的可访问性、抗误码能力、可伸缩性等)也将是未来的编码的两个发展方向。经过几十年的发展,图像编码技术业已成熟,一些国际建议的制定极大地推动了图像编码技术的实现和产业化,从而推动图像编码技术以更快的速度发展,目前的研究方向有两个:(1)更好地实现现有的图像编码国际建议。研制出集成度更高、性能更好的图像编码专用芯片,使编码系统成本更低、可靠性更高。解决好现有的图像编码系统开发中的技术问题。例如:提高图像质量、提高抗码能力等。 (2)对图像编码理论和其他图像编码方法的研究。 目前已经提出和正在进行研究的图像编码方法有:多分辨率编码、基于表面描述的编码、模型编码、利用人工神经网络的编码、利用分形几何的编码、利用数学形态学的编码等等。离散余弦变换(DCT)是N. Ahmed等人在1974年提出的正交变换方法。它常被认为是对语音和图像信号进行变换的最佳方法。由于近年来数字信号处理芯片(DSP)的发展,加上专用集成电路设计上的优势,这就牢固地确立离散余弦变换(DCT)在目前图像编码中的重要地位,成为H.261、JPEG、MPEG等国际上公用的编码标准的重要环节。在视频压缩中,最常用的变换方法是离散余弦变换,离散余弦变换被认为是性能接近K-L变换的准最佳变换,变换编码的主要特点有:(1)在变换域里视频图像要比空间域里简单。(2)视频图像的相关性明显下降,信号的能量主要集中在少数几个变换系数上,采用量化和熵编码可有效地压缩其数据。(3)具有较强的抗干扰能力,传输过程中的误码对图像质量的影响远小于预测编码。1.3 本文研究的主要内容本课题研究的内容是基于DCT的图像压缩技术和利用MATLAB进行仿真实现。第一章:简述图像压缩的研究意义、现状及发展趋势。第二章:简要介绍图像压缩的基本原理、方法及静态图像的压缩标准,重点介绍基于DCT的JPEG图像压缩标准;通过对比JPEG和JPEG2000,总结出两种压缩标准的特点。第三章:对离散余弦变换(DCT)原理和应用进行介绍,详细描述基于DCT的图像压缩编码的步骤和流程图,其中包括DCT系数量化和量化系数的编码等。第四章:利用MATLAB软件仿真实现基于DCT的图像压缩。通过对图片的压缩编码,总结出DCT在图像压缩方面的优势。第二章 图像压缩理论基础2.1 图像压缩基本原理图像数据之所以能被压缩,就是因为数据中存在着冗余。图像数据的冗余主要表现为:图像中相邻像素间的相关性引起的空间冗余;图像序列中不同帧之间存在相关性引起的时间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余。数据压缩的目的就是通过去除这些数据冗余来减少表示数据所需的比特数。由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。信息时代带来了“信息爆炸”,使数据量大增,因此,无论传输或存储都需要对数据进行有效的压缩。在遥感技术中,各种航天探测器采用压缩编码技术,将获取的巨大信息送回地面。图像压缩是数据压缩技术在数字图像上的应用,它的目的是减少图像数据中的冗余信息从而用更加高效的格式存储和传输数据1-3。2.2 图像压缩系统基于DCT算法的图像压缩是有损的。简单地说,它就是把大量的数据简化为较小的、真正有意义的数据,删除只带有极少视觉效果的信息,并且根据数据出现的概率大小选择不同码长的码字来表示。由于人眼对亮度信息比较敏感,而对颜色的反应相对较弱,所以可以通过色度空间转化,把三基色(RGB)表示的图像转换为由色度亮度(YCbCr)表示的图像,然后对视觉效果影响不大的色度信息进行二次采样,使输入编码器的信息量先减少一半,然后对各分量分成88象素块,这些块以特定顺序输入编码器,系统流程图如图 2-1 所示15。色度空间转换采样分块前向DCT量化扫描Huffman编 码量化表Huffman表压缩后的数据流编码器预处理图2-1 基于DCT的编码器系统流程图图像编码器的具体工作步骤为:首先通过前向余弦变换,使每块的真正有用信息集中到块的左上角,然后进行量化,使数值的精确度减小,并使数值较小的数据变为零,Z形扫描可以增加零游程的长度,使霍夫曼编码更有效,最后通过霍夫曼编码得到编码数据流。2.3 图像压缩方法图像压缩可以是有损数据压缩也可以是无损数据压缩。对于绘制的技术图、图表或者漫画优先使用无损压缩,这是因为有损压缩方法,尤其是在低的位速条件下将会带来压缩失真。如医疗图像或者用于存档的扫描图像等这些有价值的内容的压缩也尽量选择无损压缩方法。有损方法非常适合于自然的图像,例如一些应用中图像的微小损失是可以接受的(有时是无法感知的),这样就可以大幅度地减小位速。2.3.1 无损压缩无损压缩是对文件本身的压缩,和其它数据文件的压缩一样,是对文件的数据存储方式进行优化,采用某种算法表示重复的数据信息,文件可以完全还原,不会影响文件内容,对于数码图像而言,也就不会使图像细节有任何损失。无损压缩方法的优点是能够比较好地保存图像的质量,但是相对来说这种方法的压缩率比较低。但是,如果需要把图像用高分辨率的打印机打印出来,最好还是使用无损压缩几乎所有的图像文件都采用各自简化的格式名作为文件扩展名。从扩展名就可知道这幅图像是按什么格式存储的,应该用什么样的软件去读写等等。常用的无损压缩有两种无损工作模式,一种是霍夫曼编码(Huffman)的无损编码;另一种是算数编码的无损编码。Huffman编码是一种常用的压缩编码方法,是于1952年为压缩文本文件建立的。它的基本原理是将频繁使用的数据用较短的代码代替,将较少使用的数据用较长的代码代替,每个数据的代码都各不相同。这些代码都是二进制码,且码的长度是可变的。例如,假设一个文件中出现了 8 种符号S0、S1、S2、S3、S4、S5、S6、S7,那么每种符号都要编码,至少需要 3 比特,假设将 8 种符号分别编码成 000、001、010、011、100、101、110、111(称做码子)、那么符号序列 S0S1S7S0S1S6S2S2S3S4S5S0S0S1 编码后将变成 0000011110000011100100100 11100101000000001,共用了 42 比特。可以发现在符号序列中 S0、S1、S2的码字短,其他符号的码子长,这样就能够减少占用的比特数。算数编码的无损编码是图像压缩的主要算法之一。它是一种无损数据压缩方法,也是一种熵编码的方法。和其它熵编码方法不同的地方在于,其他的熵编码方法通常是把输入的消息分割为符号,然后对每个符号进行编码,而算术编码是直接把整个输入的消息编码为一个数,一个满足(0.0 n 1.0)的小数n7。2.3.2 有损压缩有损压缩可以减少图像在内存和磁盘中占用的空间,在屏幕上观看图像时,不会发现它对图像的外观产生太大的不利影响。因为人的眼睛对光线比较敏感,光线对景物的作用比颜色的作用更为重要,这就是有损压缩技术的基本依据。有损压缩的特点是保持颜色的逐渐变化,删除图像中颜色的突然变化。生物学中的大量实验证明,人类大脑会利用与附近最接近的颜色来填补所丢失的颜。例如,对于蓝色天空背景上的一朵白云,有损压缩的方法就是删除图像中景物边缘的某些颜色部分。当在屏幕上看这幅图时,大脑会利用在景物上看到的颜色填补所丢失的颜色部分。利用有损压缩技术,某些数据被有意地删除了,而被取消的数据也不再恢复。无可否认,利用有损压缩技术可以大大地压缩文件的数据,但是会影响图像质量。如果使用了有损压缩的图像仅在屏幕上显示,可能对图像质量影响不太大,至少对于人类眼睛的识别程度来说区别不大。可是,如果要把一幅经过有损压缩技术处理的图像用高分辨率打印机打印出来,那么图像质量就会有明显的受损痕迹。无损压缩有两种无损工作模式:一种是有损变换编解码工作模式,另外一种是预测编解码工作模式5。有损变换编解码是首先对图像或者声音进行采样、切成小块、变换到一个新的空间、量化,然后对量化值进行熵编码。预测编解码是先前的数据以及随后解码数据用有损压缩来预测当前的声音采样或者图像帧,预测数据与实际数据之间的误差以及其它一些重现预测的信息进行量化与编码。有些系统中同时使用这两种技术,变换编解码用于压缩预测步骤产生的误差信号。2.4 静态图像压缩标准静态图像压缩技术主要是对空间信息进行压缩。统一的国际标准是不同国家地区和厂商的产品能够相互兼容和协调的基础。有关图像压缩编码已有的国际标准(或建议),如 JPEG 标准和 JPEG2000 标准。具有较高压缩比的图形文件,在压缩过程中的失真程度很小。而对动态图像来说,除对空间信息进行压缩外,还要对时间信息进行压缩。2.4.1 JPEG压缩标准JPEG 是联合图像专家组(Joint Photographic Expert Group)的简称,它是一个由国际标准组织(ISO, International Standardization Organization)和国际电话电报咨询委员会(CCITT, Consultation Committee of the International Telephone and Telegraph)所建立的,从事静态图像压缩标准制定的委员会。现在人们也用 JPEG 表示静态图像压缩标准,其国际标准号为 ISO/IEC 10918。由于 JPEG 标准具有高压缩比,使得它广泛应用于多媒体和网络传输中5-7。JPEG 是用于彩色和灰度静止图像的一种完善的有损、无损压缩方法,对相邻像素颜色相近的连续色调图像的处理效果很好,而用于处理二值图像效果较差。JPEG 是一种图像压缩方法,它对一些图像特征如像素宽高比、彩色空间或位图行的交织方式等并未作严格的限制。JPEG 标准包括基于 DPCM (差分脉冲编码调制)的无损压缩编码,基于DCT(离散余弦变换)和 Fuffman编码的有损压缩算法两个部分。前者不会产生失真,但压缩比很小;后一种算法进行图像压缩信息虽有损失,但压缩比可以很大,例如压缩20倍左右时,人眼基本上看不出失真。目前我们对 JPEG 标准的应用主要是其高压缩比的有损压缩算法8。2.4.2 JPEG2000压缩标准随着多媒体应用领域的激增,传统JPEG压缩技术已无法满足人们对多媒体图像资料的要求。因此,更高压缩率以及更多新功能的新一代静态图像压缩技术 JPEG 2000 随之诞生。JPEG2000 标准同样由 JPEG 组织负责制定。自1997年3月开始筹划,于2000年3月出台。其标准号为 ISO 15444。JPEG2000 与传统 JPEG最大的不同,在于它放弃了 JPEG 所采用的以离散馀弦转换(DCT)为主的区块编码方式,而改采用以小波转换(Wavelet transform)为主的多解析编码方式。小波转换的主要目的是要将图像的频率成分抽取出来,分别加以控制及编码。其优点是:JPEG2000作为JPEG升级标准,高压缩比(低码率)是其目标,其压缩率比JPEG高约30%左右;JPEG2000同时支持有损和无损压缩,其无损压缩具有很好的实用价值,因此它适合保存重要图片;JPEG2000的一个极其重要的特征就是采用小波变换后,JPEG2000能实现渐进传输,这也就是我们常说的“渐现”特性。它先传输图像的轮廓,然后逐步传输数据,不断提高图像质量,让图像由朦胧到清晰显示,而不必是像现在的JPEG一样,由上到下慢慢显示;JPEG2000能方便的实现对码流的随机存取与处理,保证位错误的鲁棒性;JPEG2000支持所谓的感兴趣区域特性,你可以任意指定图像上你感兴趣区域的压缩质量,还可以选择指定的部份先解压缩,这样我们就可以很方便的突出图片中的重点进行浏览。在不久的将来,JPEG2000无论是在传统的JPEG市场(如数码相机、扫描仪等)还是在新兴应用领域(如网路传输、无线通讯、医疗影像等)都将大有用武之地。相信在它的正式标准确定之后,现有的JPEG将迅速被其取代21。第三章 基于DCT的图像压缩技术3.1 离散余弦变换原理离散余弦变换(Discrete Cosine Transform,简称DCT)利用傅立叶变换的性质,采用图像边界褶翻将图像变换为偶函数形式,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换。离散余弦变换(DCT)是一种与离散傅立叶变换紧密相关的正交变换,88的二维离散余弦变换可以将图像的空间表达式转换到频率域,只用少量的数据点来表达图像,用f(x, y)表示88的图像块象素值,F(u, v)表示二维离散余弦变换后的值,具体表达见式3-115。 (3-1)其反变换如式3-2所示: (3-2)其中, (3-3) 二维离散余弦变换核具有可分离性,即可以先对每行进行一维离散余弦变换,再对每列进行一维离散余弦变换,因此,二维离散余弦变换可表示为式3-4和式3-5。(3-4)(3-5)如果直接按照公式计算,其计算量很大,所以实际应用中普遍采用快速傅立叶变换(FFT)算法来实现离散余弦变换的快速算法。3.2 DCT在图像压缩中的应用JPEG格式是目前网络上最流行的图像格式,是可以把文件压缩到最小的格式,在 Photoshop软件中以JPEG格式储存时,提供11级压缩级别,以010级表示。其中0级压缩比最高,图像品质最差。即使采用细节几乎无损的10 级质量保存时,压缩比也可达 5:1。以BMP格式保存时得到428MB图像文件,在采用JPG格式保存时,其文件仅为178KB,压缩比达到24:1。经过多次比较,采用第8级压缩为存储空间与图像质量兼得的最佳比例。JPEG格式的应用非常广泛,特别是在网络和光盘读物上,都能找到它的身影。目前各类浏览器均支持JPEG这种图像格式,因为JPEG格式的文件尺寸较小,下载速度快。离散余弦变换编码属于正交变换编码方式,用于去除图像数据的空间冗余。变换编码就是将图像光强矩阵(时域信号)变换到系数空间(频域信号)上进行处理的方法。在空间上具有强相关的信号,反映在频域上是在某些特定的区域内能量常常被集中在一起,或者是系数矩阵的分布具有某些规律。我们可以利用这些规律在频域上减少量化比特数,达到压缩的目的。图像经离散余弦变换以后,离散余弦变换系数之间的相关性就会变小。而且大部分能量集中在少数的系数上,因此,离散余弦变换在图像压缩中非常有用,是有损图像压缩国际标准JPEG的核心。从原理上讲可以对整幅图像进行离散余弦变换,但由于图像各部位上细节的丰富程度不同,这种整体处理的方式效果不好。为此,发送者首先将输入图像分解为8*8或16*16块,然后再对每个图像块进行二维离散余弦变换,接着再对离散余弦变换系数进行量化、编码和传输;接收者通过对量化的离散余弦变换(DCT)系数进行解码,并对每个图像块进行的二维离散余弦变换(DCT)反变换。最后将操作完成后所有的块拼接起来构成一幅单一的图像。对于一般的图像而言,大多数离散余弦变换(DCT)系数值都接近于0,所以去掉这些系数不会对重建图像的质量产生较大影响。因此,利用离散余弦变换(DCT)进行图像压缩确实可以节约大量的存储空间。在实验中,先将输入的原始lena图像分为8*8块,然后再对每个块进行二维离散余弦变换(DCT)。MATLAB图像处理上具箱中提供的二维离散余弦变换(DCT)及离散余弦变换(DCT)反变换函数如下。dct2实现图像的二维离散余弦变换。其语法格式为16-18:(1)B=dct2(A) 返回图像A的二维离散余弦变换值,其大小与A相同且各元素为离散余弦变换的系数B(K1, k2)。(2)B=dct2(A, in, n)或B=dct2(A, m, n) 如果m和n比图像A大,在对图像进行二维离散余弦变换之前,先将图像A补零至m*n如果m和n比图像A小。则进行变换之前,将图像A剪切。idct2可以实现图像的二维离散余弦反变换,其语法格式为:B=idct2(A);B=idct2(A, m, n)或B=idct2(A, m, n)。 3.3 基于DCT的图像压缩编码步骤JPEG文件使用的颜色空间为1982年推荐的电视图像数字化标准CCIR 601(现为ITU-RB T.601)。在这个色彩空间中,每个分量、每个像素的电平规定为255级,用8位代码表示。JPEG只支持YCbCr颜色模式。其中Y代表亮度,CbCr代表色度。用(3-6)公式所示,将全彩色图像RGB模式转换到YCbCr模式。 (3-6) 其逆变换为: (3-7) JPEG是以88的块为单位来进行处理的,由于人眼对亮度Y的敏感度比色度CbCr的敏感度大的多,所以采用缩减取样的方式,通常采用YUV422取样,如图3-1所示。图 3-1 YUV422取样示意图即对于1616的块,Y取4个88的块,CbCr各取2个88的块。也有YUV411方式,Y取4个88的块,CbCr各取1个88的块。YUV422取样方式,数据减少1/3。YUV411取样方式,数据减少1/2。缩减取样一般采用图3-2所示方法19。abcdebd图 3-2 压缩取样示意图3.3.1 基于DCT的图像压缩编码流程图离散余弦变换从本质上是一种变换分析方法,要在变换时最大的去除分析信号的相关性提取其特征,就必须适当的构造一组基函数,这组基函数以某种形式类似于我们所要表示的数据,甚至具有与数据相同的相关结构。在日常生活中常遇到的信号在空间域和频域都具有相关性。在空间上相隔较近的样值间的相关性比相隔较远的大的多,而在频域上通常呈带状。为了分析和表示这样的信号,需要基函数在空间域和频域是局域性的。由于离散余弦函数的频域分辨率与时域分辨率成反比,刚好与实际信号长时低频、短时高频的特性相吻合,既能精确定位信号的突发跳变,又能把握信号的整体变化率。由此可见,离散余弦变换是一种比较理想的进行信号处理的数学工具。基于DCT的JPEG图像压缩编码理论算法,基于DCT编码的JPEG编码压缩过程框图,如图3-3所示7。原始图像数据分成8*8的小块DCT变换量化器熵编码器压缩数据码表量化表 图 3-3 基于DCT编码的JPEG压缩过程简化图图3-3是基于DCT的图像压缩编码的压缩过程,解压缩与图3-3的过程相反。在编码过程中,首先将输入图像颜色空间转换后分解为88大小的数据块,然后用正向二维DCT把每个块转变成64个DCT系数值,其中1个数值是直流(DC)系数,即88空域图像子块的平均值,其余的63个是交流(AC)系数,接下来对DCT系数进行量化,最后将变换得到的量化的DCT系数进行编码和传送,这样就完成了图像的压缩过程。在解码过程中,形成压缩后的图像格式,先对已编码的量子化的DCT系数进行解码,然后求逆量化并把DCT系数转化为88样本像块(使用二维DCT反变换),最后将操作完成后的块组合成一个单一的图像。这样就完成了图像的解压过程。3.3.2 DCT系数的量化量化是对经过DCT变换后的频率系数进行量化,其目的是减小非“0”系数的幅度以及增加“0”值系数的数目,它是图像质量下降的最主要原因。对于基于DCT的JPEG图像压缩编码算法使用如图3-4所示的均匀量化器进行量化,量化步距是按照系数所在的位置和每种颜色分量的色调值来确定。因为人眼对亮度信号比对色差信号更敏感。此外,由于人眼对低频分量的图像比对高频分量的图像更敏感,因此表中的左上角的量化步距要比右下角的量化步距小。DCT系数输入量化系数输出图 3-4 均匀量化器量化会产生误差,图3-4是综合大量的图像测试的实验结果,对于大部分图像都有很好的结果。表中可以看出,高频部分对应的量化值大,目的就是将高频部分编程接近于0,以便以后处理。JPEG可以在压缩比和图像质量间作取舍。方法就是改变量化值。如果量化值放大一倍,则有更多的系数量化为0,提高了压缩比。3.3.3 量化系数的编排经过DCT变换后,低频分量集中在左上角,其中F(0, 0)(即第一行第一列元素)代表了直流(DC)系数,即88子块的平均值,要对它单独编码。由于两个相邻的88子块的DC系数相差很小,所以对它们采用差分编码DPCM,可以提高压缩比,也就是说对相邻的子块DC系数的差值进行编码。88的其它63个元素是交流(AC)系数,采用行程编码。所以量化后的系数要重新编排,目的是为了增加连续的“0”系数的个数,就是“0”的游程长度,方法是按照Z字形的式样编排。离散余弦变换(DCT)后低频分量多呈圆形辐射状向高频率衰减,因此可以看成按Z字形衰减。因此,量化系数按Z字形扫描读数,这样就把一个88的矩阵变成一个164的矢量,频率较低的系数放在矢量的顶部。量化后的DCT系数的编排如图3-5所示7。图3-5 量化DCT系数的编排量化后的DCT系数的序号如表3-6所示。表3-6 量化DCT系数的序号01561415272824713162629423812172530414391118243140445310192332394552542022333846515560213437475056596135364849575862633.3.4 DC系数的编码88子块的64个变换系数经量化后,按直流系数DC和交流系数AC分成两类处理。坐标u=v=0的直流系数DC实质上就是空域图像中64个像素的平均值。图像块经过DCT之后得到的DC直流系数有两个特点,一是系数的数值比较大,二是相邻88图像块的DC系数值变化不大。根据这个特点,JPEG算法使用了差分脉冲调制编码技术。差分脉冲编码调制(Differential Pulse Code Modulation ,DPCM),是一种对模拟信号的编码模式,先根据前一个抽样值计算出一个预测值,再取当前抽样值和预测值之差作为编码用。此差值称为预测误差。抽样值和预测值非常接近(因为相关性强),预测误差的可能取值范围比抽样值变化范围小。所以可用少几位编码比特来对预测误差编码,从而降低其比特率。这是利用减小冗余度的办法,降低了编码比特率。因此,对DC系数编码进行差分脉冲编码就是对相邻图像块之间量化DC系数的差值(Delta)进行编码,即对相邻块之间的DC系数的差值 DIFF=DC-DCDC采用差值脉冲编码的主要原因是由于在连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少许多。例如差值为5,它的二进制表示值为101,如果差值为-5,则先改为正整数5,再将其二进制转换成1的补数即可。所谓1的补数,就是将每个Bit若值为0,便改成1;Bit为1,则变成0。差值5应保留的位数为3,列出差值所应保留的Bit数与差值内容的对照。 在差值前端另外加入一些差值的霍夫曼码值,例如亮度差值为5(101)的位数为3,则霍夫曼码值应该是100,两者连接在一起即为1001018。3.3.5 AC系数的编码DCT变换所得系数除直流系数之外的其余63个系数称为交流系数(AC系数)。量化AC系数的特点是1 64矢量中包含有许多“0”系数,并且许多“0”是连续的,因此使用非常简单和直观的游程长度编码(RLE)对它们进行编码。所谓行程编码(Run-Length Encoding)就是指仅存储一个像素值以及具有相同颜色的像素数目的图像数据编码方式,或称游程编码,常用RLE(Run-Length Encoding)表示。该压缩编码技术相当直观和经济,运算也相当简单,因此解压缩速度很快。RLE压缩编码尤其适用于计算机生成的图形图像,对减少存储容量很有效果。63个AC系数采用行程编码的方式进行编码的格式如图2-8所示。也即在AC01到AC63中,找出每一个非零的AC值,将其表示成(NN/SS)VV的形式,其中:NN表示该AC值前的0的个数。而SS、VV与DC的定义一样。如果连续的非0超过15个时,增加一个扩展字节:(15/0)表示连续16个0。另外若有一串0延伸到AC63,一律用(0/0)表示结束17-18。7654321076543210第一字节第二字节两个非零值之间的连续零的个数下一个非零值所占的比特数下一个非零系数的实际值图 3-7 AC编码格式对于AC系数,有两个符号。符号1为行程和尺寸,即上面的(RunLength,Size)。(0, 0)和(15, 0)是两个比较特殊的情况。(0, 0)表示块结束标志(EOB),(15, 0)表示ZRL,当行程长度超过15时,用增加ZRL的个数来解决,所以最多有三个ZRL(316+15=63)。符号2为幅度值(Amplitude)。对于DC系数,也有两个符号。符号1为尺寸(Size);符号2为幅度值(Amplitude)。对于AC系数,符号1和符号2分别进行编码。零行程长度超过15个时,有一个符号(15, 0),块结束时只有一个符号(0, 0)。对符号1进行Huffman编码(亮度,色差的Huffman码表不同)。对符号2进行变长整数VLI编码。举例来说:Size=6时,Amplitude的范围是-63-32,以及3263,对绝对值相同,符号相反的码字之间为反码关系。所以AC系数为32的码字为100000,33的码字为100001,-32的码字为011111,-33的码字为011110。符号2的码字紧接于符号1的码字之后。对于DC系数,Y和UV的Huffman码表也不同。3.3.6 组成位数据流JPEG编码的最后一个步骤是把各种标记代码和编码后的图像数据组成一帧一帧的数据,这样做的目的是为了便于传输、存储和译码器进行译码,这样的组织的数据通常称为JPEG位数据流(JPEG bit stream)13。举个例子来说明上述过程。下面为88的亮度(Y)图像子块经过量化后的系数,如表3-8所示。表 3-8 亮度量化后的系数150-100000-2-1000000-1-10000000000000000000000000000000000000000000000 可见量化后只有左上角的几个点(低频分量)不为零,这样采用行程编码就会很有效。第一步,熵编码的中间格式表示。先看DC系数。假设前一个88子块DC系数的量化值为12,则本块DC系数与它的差为3,根据表3-9可知:表 3-9 DC系数表SizeAmplitude0011,123,-2,2,337-4,47415-8,815531-16,1631663-32,32637127-64,641278255-128,1282559511-256,256511101023512,5121023112047-1024,10242047查表得Size=2,Amplitude=3,所以DC中间格式为(2) (3)。下面对AC系数编码。经过Zig-Zag扫描后,遇到的第一个非零系数为-2,其中遇到零的个数为1(即RunLength),根据表3-10 AC系数表:表3-10 AC系数表SizeAmplitude11,123,-2,2,337-4,47415-8,815531-16,1631663-32,32637127-64,641278255-128,1282559511-256,256511101023512,5121023查表得Size=2。所以RunLength=1,Size=2,Amplitude=3,所以AC中间格式为(1, 2) (-2)。其余的点类似,可以求得这个88子块熵编码的中间格式为(DC) (2) (3),(1, 2) (-2),(0, 1) (-1),(0, 1) (-1),(0, 1) (-1),(2, 1) (-1),(EOB)(0, 0)第二步,熵编码。对于(2) (3):2查DC亮度Huffman表得到11,3经过VLI编码为011;对于(1, 2)(-2):(1, 2)查AC亮度Huffman表得到11011,-2是2的反码,为01;对于(0,1)(-1):(0, 1)查AC亮度Huffman表得到00,-1是1的反码,为0;最后,这一88子块亮度信息压缩后的数据流为11011,1101101,000, 000, 000,111000,1010。总共31比特,其压缩比是648/31=16.5,大约每个象素用半个比特。以上是图像压缩编码的整个过程。从上面的例子可以看出,压缩比和图像质量是成反比的,表3-11所示是压缩效率与图像质量之间的关系,可以根据需要,选择合适的压缩比7。表3-11 压缩比与图像质量的关系压缩效率(单位:bits/pixel)图像质量0.250.50中好,可满足某些应用0.500.75好很好,满足多数应用0.751.5极好,满足大多数应用1.52.0与原始图像几乎一样第四章 基于DCT的图像压缩的MATLAB仿真实现4.1 MATLAB简介MATLAB是近几年来在国内外广泛流行的一种科学计算可视化软件,其特点是语法结构简单,数值计算高效,图形功能完备。MATLAB之所以成为世界顶尖的科学计算与数学应用软件,是因为它随着版本的升级与不断完善而具有愈来愈强大的功能20。(1)数值计算功能:MATLAB出色的数值计算功能是使之优于其他数学应用软件的决定性因素。(2)符号计算功能:在数学科学、应用科学和工程计算领域,常常会遇到符号计算问题。1993年,Math Works公司以 Maple 的“内核”作为符号计算功能的“引擎”,依靠 Maple 已有的库函数,开发出了在MATLAB环境下实现符号计算功能的系统组件。(3)数据分析功能:在科学计算和工程应用中,大量的原始数据和数值计算结果需要进行分析,MATLAB将这些数据以图形的方式显示出来,不仅使数据间的关系清晰明了,而且对于揭示其内在本质往往有着非常重要的作用。(4)动态仿真功能:MATLAB提供了一个模拟动态系统的交互式程序SIMULINK,允许用户在屏幕上绘制框图来模拟一个系统,并能动态地控制该系统。SIMULINK采用鼠标驱动方式,能处理线性、非线性、连续、离散等多种系统。(5)程序接口功能:MATLAB提供了方便的应用程序接口(API),用户可以在MATLAB环境下直接调用已经编译过的C和Fortran子程序,可以在MATLAB和其他应用程序之间建立客户机/服务器关系。同样,在C和Fortran程序中也可以调用MATLAB的函数或命令,使得这些语言可以充分利用MATLAB强大矩阵运算功能和方便的绘图功能。(6)文字处理功能:MATLAB NOTEBOOK能成功地将MATLAB与文字处理系统Microsoft Word集成一个整体,为用户进行科学计算、工程设计和文字处理等营造了一个完美统一的工作环境10-11。数字图像文件的读写步骤:(1)图像文件的读取。MATLAB中利用函数imread来实现图像文件的读取操作。其语法格式为:A=imread(filename,fmt)X,map=imread(filename,fmt)=imread(filename)Filename:图像文件名;fmt:图像文件格式。A = imread(filename,fmt) 读取图像到A,如果文件是包含灰度图像,A是二维矩阵,如果文件是包含真彩色图像(RGB),A是三维矩阵(M-by-N-by-3)。文件必须在当前目录下,或在matlab的路径上。如果imread不能够找到名称为filename的文件,那么它将找一名为filename. fmt的文件X, map = (imread filename,fmt) 把图像filename读入与它相关的图像色彩信息写入map,图像色彩信息值在范围0, 1中自动地重新调整。 = imread(filename)这种方式是试图得到文件的格式从文件所包含的信息。 (2)图像文件的输出。 MATLAB中利用函数imwrite来实现图像文件的输出和保存操作。其语法格式为:Imwrite(A,filename,fmt)Imwrite(X,map,filename,fmt)Imwrite(,filename)Imwrite(A,filename,fmt)把图像 A 写入图像文件 filename。Imwrite(X,map,filename,fmt)把 X和它的相关色彩信息map写入filename。Imwrite(, filename)把图像 写入图像文件filename,并推测可能的格式用来做filename的扩展名,扩展名必须是fmt中一合法名。(3)图像文件的显示。在MATLAB中,可以调用image函数来显示图像,其语法格式为:Image(C)Image(C) 把矩阵 C 转成一图像。C 可以是一MN 或 MN3维的矩阵,且可以是包含 double, uint8,或 uint16 数据。image是用来显示附标图像,即显示的图像上有x、y坐标轴的显示,可以看到图像的像素大小。但可以加上axis off命令即可把坐标去掉。在MATLAB的图像处理工具箱中,还提供了一个应用很广泛的图像显示函数,即imshow函数,其调用格式为:Imshow(I,n)Imshow(I,low high)Imshow(BW)Imshow(X,map)imshow(RGB)imshow filenameImshow(I,n)显示一幅n个灰度级的图像I。Imshow(I,low high)一定灰度范围内显示灰度图像,low和high参数分别为数据数组的最小值和最大值。Imshow(BW)显示二进制图像。Imshow(X,map)显示索引图像,其中X代表索引图像的数据矩阵,map为颜色映射表。imshow filename 显示一幅在当前目录下的合法文件。imshow(RGB)显示RGB图像。RGB是一个mn3的数组。对于RGB中的每个像素(r, c),imshow显示数值(r, c, 1:3)所描述的颜色。例如下面的程序:imread(zyj.bmp);imshow(I),title(图像读出) 44.2 DCT的编程实现DCT变换是数字图像处理中重要的变换,很多重要的图像算法、图像应用都是基于DCT变换的,如JPEG图像编码方式。对于大尺寸的二维数值矩阵,倘若采用普通的DCT变换来进行,其所花费的时间将是让人难以忍受甚至无法达到实用。而要克服这一难点,DCT变换的快速算法是比较好的选择。就目前而言,DCT变换的快速算法无非有以下两种方式:(1)由于FFT算法的普便采用,直接利用FFT来实现DCT变换的快速算法相比来说就相对容易。但是此种方法也有不足:计算过程会涉及到复数的运算。由于DCT变换前后的数据都是实数,计算过程中引入复数,而一对复数的加法相当于两对实数的加法,一对复数的乘法相当于四对实数的乘法和两对实数的加法,显然是增加了运算量,也给硬件存储提出了更高的要求。(2)在MATLAB的图像处理工具箱中,可以直接调用dct2和idct2来实现二维离散余弦变换及其反变换。 dct2dct2函数实现图像的二维离散余弦变换,其语法为:F=dct2(f)运行下列程序:f=imread(cameraman.tif);f=im2double(f);F=dct2(f);subplot(121),imshow(f, );subplot(122),imshow(log(1+20*abs(F), );运行结果如图4-1所示。图4-1 图像显示及图像DCT变换后频谱显示由图4-1可知,DCT变换具有能量集中的性质,数据集中在左上角。因此进行图像压缩时离散余弦变换矩阵可以舍弃右下角的高频数据。 idct2idct2函数实现图像的二维离散余弦逆变换,其语法为:F=idct2(f)在MATLAB图像处理工具箱中,有一个对图像进行块操作的函数blkproc,利用这个函数,可以直接实现图像一系列88子块的DCT变换。其语法格式为:B = blkproc(A,m n,fun, parameter1,parameter2, .)B = blkproc(A,m n,mborder nborder,fun,.)B = blkproc(A,indexed,.)m n是指图像以m*n为分块单位,对图像进行处理(如8像素*8像素)Fun:应用此函数对分别对每个m*n分块的像素进行处理parameter1,parameter2:要传给fun函数的参数mborder nborder:对每个m*n块上下进行mborder个单位的扩充,左右进行nborder个单位的扩充,扩充的像素值为0,fun函数对整个扩充后的分块进行处理4。如下列程序:I = imread(cameraman.tif); fun = idct2;J = blkproc(I,8 8,fun);imagesc(J),colormap(hot);运行结果如图4-2所示。图4-2 DCT变换后图像由图4-1可知,88的图像经过DCT变换后,其低频分量都集中在左上角,高频分量分布在右下角(DCT变换实际上是空间域的低通滤波器)。由于该低频分量包含了图像的主要信息(如亮度),而高频与之相比,就不那么重要了,所以可以忽略高频分量,从而达到压缩的目的。将高频分量去掉,这就要用到量化,它是产生信息损失的根源。又由图4-2所示的量化操作可知,就是将某一个值除以量化表中对应的值。由于量化表左上角的值较小,右上角的值较大,这样就起到了保持低频分量,抑制高频分量的目的。JPEG使用的颜色是YUV格式,Y分量代表了亮度信息,UV分量代表了色差信息。相比而言,Y分量更重要一些,因此,可以对Y采用细量化,对UV采用粗量化,从而进一步提高压缩比。所以上述量化表通常有两张,一张是针对Y的,一张是针对UV的。鉴于此,本文采用第二种方法来实现DCT变换的快速算法,其指令如下所示19: T = dctmtx(8); %离散余弦变换矩阵B = blkproc(I,8 8,P1*x*P2,T,T); %对源图像进行DCT变换B2 = blkproc(B,8 8,P1.*x,mask); %数据压缩,丢弃右下角高频数据I2 = blkproc(B2,8 8,P1*x*P2,T,T); % 进行DCT反变换4.3 程序流程图基于DCT的图像压缩编码的MATLAB实现的流程图如图4-3所示。开始输入图片分成8*8像素块,DCT变换输入量化表,对变换系数量化对量化系数进行扫描选择一幅图对其进行不同的压缩比变换反量化反DCT变换结束显示所选图像的压缩比和峰值信噪比图4-3 程序流程图4.4 MATLAB仿真结果分析利用DCT进行图像压缩,首先要将输入的图像分解成8*8的块,然后对每个块进行二维离散变换,最后将变换得到的DCT系数进行量化和编码;解码时,首先对每个块进行二维DCT反变换,然后再将反变换后的块组合成一幅图像。对于通常的灰度图像来说,大多数DCT系数的值非常接近于0,如果舍弃这些接近于0的值,在重构图像时并不会带来图像质量的显著下降。所以,利用DCT进行图像压缩时,在最合理的近似原图像的前提下应使用最少的量化系数。图像经过不同的量化系数个数压缩后,图像质量的变化结果如图4-4所示。 (a)原始图像 (b)量化系数为1 (c)量化系数为3 (d)量化系数为5 (e)量化系数为10 (f)量化系数为15 图4-4 量化系数个数不同的压缩图像从图4-4 可以看出,量化系数个数不同的压缩图像的质量也不相同,随着量化系数个数的增加,压缩后的图像逐渐接近原始图像。当量化系数个数为1时(如图4-4(b)所示),压缩图像出现了明显的 “块”失真,这是由于该压缩算法为有损压缩,压缩后的图像丢失了原始图像部分数据信息;随着量化系数个数的增加,“块”失真现象随之减弱。由于DCT有使图像能量集中在左上方的特性,因此当量化系数个数为10时(如图4-4(e)所示),压缩图像无明显的“块”失真,并保留了原始图像大部分的特征,其视觉效果接近原始图像。量化系数个数不同的图像的压缩比(CR)及峰值信噪比(PSNR)如表4-3所示。表4-3 量化系数个数不同的图像的压缩比(CR)和峰值信噪比(PSNR)量化系数压缩比峰值信噪比114.844423.033731.566026.631651.349327.5491101.140230.8642151.075632.4463 从表4-3和图4-4中可以看出,量化系数个数越少,压缩比越大,峰值信噪比越小,图像失真越多。这说明图像经过不同的压缩比处理后,图像质量变化的同时,图像的信噪比也随之变化。压缩比较小时,压缩后的图像保留了原始图像大部分的信息,其视觉效果与原始图像相差不大;当压缩比较大时,压缩图像的信噪比减小,出现失真。4.5 本章小结本章详细叙述了基于DCT的图像压缩方法及MATLAB仿真实现。DCT是正交变换,它可以将8*8图像的空间表达式转换为频率表达式,只需要用少量的数据点表示图像;DCT产生的系数很容易被量化,因此能获得好的块压缩;DCT算法的性能很好,并有快速算法,因此在软件中容易实现;另外,DCT算法是对称的,可以利用其逆运算实现图像的解压缩。通过仿真结果的对比分析,可以看出图像的压缩比增大时,压缩图像的质量随之降低,并且图像的信噪比也随之变小。利用MATLAB仿真软件来实现基于DCT的图像压缩,具有算法简单、速度快的优点,免去了大量矩阵计算,大大提高了图像压缩的效率和精度。第五章 全文总结 本文主要进行了基于DCT编码的图像压缩技术研究。通过JPEG和JPEG2000压缩标准进行比较,采用了以JPEG为核心的离散余弦变换(DCT),并对其系数的量化、编码以及数据编排,利用MATLAB软件对灰度图像在不同的量化系数进行仿真实验,得到不同的压缩比和峰值信噪比。实验结果表明:DCT通过空间域表示转换为频率域表示,具有信息能量集中的特点,因而可以只用少量的数据来表示图像,大幅度压缩了原始图像数据冗余,具有压缩效果好、图片质量高的特点,能有效达到节约存储空间、便于传输的目的。DCT具有算法简单,易于实现等优点,从而广泛应用于图像压缩领域,尤其在较高比特率的传输条件下能取得令人满意的压缩效果。然而,它在低比特率条件下的“方块效应”成了不容忽视的“瓶颈”缺陷,原因就在于DCT处理的图像是分块进行的,块与块边界两边的像素相关性不能去掉,从而形成了明显的方块边界。若将DCT与其它编码方法(如小波变换、分形等)相结合,会得到更好的效果。数据压缩技术的优劣主要是由压缩所能达到的压缩倍数、从压缩后的数据所能恢复的图像的质量和算法的复杂度、解码的速度等方面来衡量的。基于DCT的混合编码技术对于彩色图像的压缩倍数可以达到几十倍甚至上百倍,而且重建的图像又具有较高的质量,因此得到广泛的应用。用MATLAB来实现离散余弦变换的图像压缩,具有方法简单、速度快、误差小的优点,免去了大量的矩阵计算,大大提高了图像压缩的效率和精度。 参考文献1孙兆林. MATLAB 6.X 图像处理M. 北京:清华大学出版社,2002.5 2张德丰. 详解MATLAB数字图像处理M. 北京:电子工业出版社,2010.73郑继刚,王边疆. 基于MATLAB的数字图像处理研究M. 云南:云南大学出版社,20104杨丹,
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:基于DCT变换的图像压缩技术的研究
链接地址:https://www.renrendoc.com/paper/155459266.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!