院(系、所)信息与机电学院专业通信与信息系统考试科目数字压缩第三学期研究生姓名张鹏学号122201115考试成绩导师评语:导师签字年月日摘要图像压缩是关于用最少的数据量来表示尽可能多的原图像的信息的一个过程。对于图像来说,如果需要进行快速或实时传输以及大量存储,就需要对图像数据进行压缩,如果图像数据压缩后再传输,就可以传输更多的图像信息,也就可以增加通信的能力。变换编码是把图像中的各个像素从一种空间变换到另一种空间.然后针对变换后的信号进行量化与编码操作的一种图象压缩编码技术。本文提出了基于DCT变换的图像压缩编码算法进行研究,并用MATLAB进行实验仿真,重点介绍了压缩编码的具体过程和方法,详细介绍了编码中DCT变换、量化、熵编码等模块的原理和数学推导以及各模块的功能分析,基于DCT变换的图像压缩方法简单、方便,既能保证有较高的压缩比,又能保证有较好的图像质量,应用MATLAB仿真出来的结果较好的反应了其编码算法原理。关键词:图像压缩DCT变换MATLABAbstractˎ̥Imagecompressionisaprocessabouttheleastamountofdatatoshowtheoriginalimageinformationasmuchaspossible.Forimages,iftherequirementofhigh-speedandreal-timetransmissionandalargeamountofstorage,weneedtocompresstheimagedata,iftheimagedatacompressionandtransmission,cantransmitmoreinformationoftheimage,alsocanincreasetheabilityofcommunication.Transformcodingisthateachpixelintheimagefromaspacetoanotherspace.Codinganimageandthenquantizationandcodingoperationaccordingtothetransformedsignal.ThispaperputsforwardDCTtransformforimagecompressioncodingalgorithmbasedonstudy,andexperimentalsimulationusingMATLAB,focusesonprocessandcompressioncodingmethod,adetailedanalysisofprincipleandmathematicalderivationoftheDCTtransformcoding,quantization,entropycodingmoduleandthefunctionofeachmodule,DCTtransformforimagethecompressionmethodissimple,convenientandbasedon,whichcanensureahighercompressionratio,butalsoensureabetterimagequality,theapplicationofMATLABsimulationresultsreflectthecodingalgorithm.Keyword:ImagecompressionDCTtransformMATLAB基于DCT变换的图像压缩及matlab仿真一.图像压缩编码的概念压缩的理论基础是信息论,从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息(可推知的),也就是用一种更接近信息本质的描述来代替原有冗余的描述。这个本质的东西就是信息量(即不确定因素)。二.图像编码的分类图像编码压缩的方法目前有很多,其分类方法根据出发点不同而有差异。根据解压重建后的图像和原始图像之间是否具有误差(对原图像的保真程度),图像编码压缩分为无误差(亦称无失真、无损、信息保持)编码和有误差(有失真或有损)编码两大类。无损压缩(冗余度压缩、可逆压缩):是一种在解码时可以精确地恢复原图像,没有任何损失的编码方法,但是压缩比不大,通常只能获得1~5倍的压缩比。用于要求重建后图像严格地和原始图像保持相同的场合,例如复制、保存十分珍贵的历史、文物图像等。有损压缩(不可逆压缩):只能对原始图像进行近似的重建,而不能精确复原,适合大数工用于存储数字化了的模拟数据。压缩比大,但有信息损失,本文采用有损压缩。三.编码压缩系统介绍(1)编码压缩系统基于DCT编码的压缩过程简化图(2)DCT变换离散余弦变换(DCT)是一种与离散傅立叶变换紧密相关的正交变换,8×8的二维离散余弦变换可以将图像的空间表达式转换到频率域,只用少量的数据点来表达图像,用f(x,y)表示8×8的图像块象素值,F(u,v)表示二维离散余弦变换后的值,具体表达式如下:(1.1)其反变换如下式:70701612cos1612cos,41,xyvuvyuxyxfCCvuF(1.2)其中,(1.3)通过对8*8的图像块进行二维DCT变换,可以把每个图像块转化成64个DCT系数值,其中一个数值是直流(DC)系数,即8*8图像空域块的平均值,体现了图像中的低频分量;其余63个是交流(AC)系数,体现了图像的高频细节部分。(3)量化在DCT处理中得到的64个数据中,低频分量包含了图像亮度等主要信息。在从空间域到频域的变换中,图像中的缓慢变化比快速变化更易引起人眼的注意,所以在重建图像时,低频分量的重要性高于高频分量。因而在编码时可以忽略高频分量,即减小非“0”系数的幅度以及增加“0”值系数的数目,从而达到压缩的目的,这也是量化的根据和目的,也是图像质量下降的最主要原因。在JPEG标准中,用具有64个独立元素的量化表来规定DCT域中相应的64个系数的量化精度,使得对某个系数的具体量化阶取决于人眼对该频率分量的视觉敏感程度。量化就是用DCT变换后的系数除以量化表中相对应的量化阶后四舍五入取整。由于量化表中左上角的值较小,而右下角的值较大,因而起到了保持低频分量、抑制高频分量的作用。(4)编码1、“Z”字型扫描量化后的数据本来已经可以直接进行游程编码,但为了提高游程编码的效率,我们必须尽量增加零游程的长度。基于量化后系数的排列特征,采用“Z”字型扫描能有效增加零游程的长度。“Z”字型扫描轨迹如图所示:2、哈夫曼(Huffman)编码及解码哈夫曼编码是1952年由Huffman提出的编码方法,基本思想是根据源数据符合出现的概率大小进行编码,出现概率大的符号分配越短的码字,出现概率越小的符号分配越长的码字,从而达到用尽量少的比特数表示数据源,标准哈夫曼编70701612cos1612cos,41,xyvuvyuxyxFCCyxF其他情况当10u22vCCvu码步骤如下:(1)统计数据源符号出现的概率,得到不同概率的信息符号;(2)将数据源符号按概率递减顺序排列;(3)把两个最小概率相加作为新符号的概率,并按(2)重排;(4)重复(1)、(2),直到概率为1;(5)在每次合并信源时,将合并的信源分别赋“0”和“1”;(6)寻找从每一信源符号到概率为1处的路径,记录路径上的“0”和“1”;(7)从树根开始写出每一符号的“0”、“1”。用标准哈夫曼编码对图像进行编码时效率很高,但需要对原始图像扫描两遍,第一遍要精确统计出每个像素值出现的概率,第二遍是建立哈夫曼树并编码,数据压缩和解压速度较慢,因此,出现了一种改良的哈夫曼编码,它的变长码字不是实时产生而是一个固定的表,在编码和解码过程中不用计算符号概率和排序,直接查表得到,但这个表必须经过大量的统计工作并精心设计才能达到较高的编码效率。在静态图像压缩国际标准(JPEG标准)中,专家组已经对大量自然图像进行了统计,得到了适合于静态自然图像编码的哈夫曼表,在实际编码过程中,我们可直接应用此表进行编码和解码。四.MATLAB仿真代码五.结论