华东交通大学现代仿真技术大作业1MATLAB在数据压缩技术中的应用摘要离散余弦变换(DiscreteCosineTranform,简称DCT)是一种与傅立叶变换紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数式是偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。时间域中信号需要许多数据点表示;在x轴表示时间,在y轴表示幅度。信号一旦用傅立叶变换转换到频率域,就只需要几点就可以表示这个相同的信号。如我们已经看到的那样,原因就是信号只含有少量的频率成分。这允许在频率域中只用几个数据点就可以表示信号,而在时间域中表示则需要大量数据点。这一技术可以应用到彩色图像上。彩色图像有像素组成,这些像素具有RGB彩色值。每个像素都带有x,y坐标,对每种原色使用8x8或者16x16矩阵。在灰度图像中像素具有灰度值,它的x,y坐标由灰色的幅度组成。为了在JPEG中压缩灰度图像,每个像素被翻译为亮度或灰度值。关键词;图像压缩算法MATLAB软件DCT压缩编码华东交通大学现代仿真技术大作业2目录摘要................................................................................................................................1引言.................................................................................................错误!未定义书签。第一章基于DCT的图像压缩编码理论算法及Matlab仿真基础........................31.1图像压缩编码的概念.....................................................................................31.2图像压缩编码的一般框图.............................................................................3第二章离散余弦变换(DCT).....................................................................................52.1DCT的定义..................................................................................................52.2DCT和图像压缩..........................................................................................52.2.1dct2.....................................................................................................52.2.2idct2....................................................................................................53.1图像编码的分类..............................................................................................63.2无损编码.........................................................................................................63.2.1行程编码(RLE)............................................................................63.2.2Huffman编码....................................................................................63.3有损编码..........................................................................................................63.3.1量化....................................................................................................63.3.2预测编码............................................................................................73.3.3DCT编码...........................................................................................73.4保真度准则.....................................................................................................73.4.1客观保真度准则................................................................................73.4.2主观保真度准则................................................................................8第四章MATLAB仿真及效果..............................................................................84.1程序.................................................................................................................84.2结果...............................................................................................................11第五章作业过程中遇到的问题............................................................................12第六章总结............................................................................................................12参考文献......................................................................................................................13华东交通大学现代仿真技术大作业3引言随着信息技术的发展,图像信息被广泛应用于多媒体通信和计算机系统中。但是图像具有庞大的数据量,不便于存储和传输,必须采用合适的方法对其进行压缩,因此有必要对图像压缩编码标准进行研究。本研究在介绍图像压缩原理的基础上,用Matlab6.5对标准灰度图像进行压缩与重建,并分析实验结果,得出结论。第一章基于DCT的图像压缩编码理论算法及Matlab仿真基础1.1图像压缩编码的概念压缩的理论基础是信息论。从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息(可推知的),也就是用一种更接近信息本质的描述来代替原有冗余的描述。这个本质的东西就是信息量(即不确定因素)。1.2图像压缩编码的一般框图图像压缩的过程可以概括成图所示的三个步骤,原始图像经映射变换后的数据再经量化器和熵编码器成为码流输出。(1)映射变换。其目的是通过映射改变图像数据的特性,使之更有利于压缩编码。(2)量化器。在限失真编码中要对映射后的数据进行量化,若量化是对映射后的数据逐个的进行的,则称标准量化,若量化是成组的进行的,则称矢量量化,量化总会造成某些信息丢失,形成失真,即量化失真或量化噪声,为使失真小,应量化的精细,但压缩比就高不了,这是一对矛盾,应选用恰当的量化级数和量化曲线形状来缓解这对矛盾,量化器的引入是图像编码产生失真的根源,在要求复原图像与原图完全一致的无失真编码器中必须不用量化器,但这样一来,压缩比难以提高,在多数应用中,存在少量失真并不可怕,只要把失真的程度和性质控制在允许的范围内,也就是把复原图像的主观质量控制在允许的程度内,就可以在满足应用要求的前提下提高压缩比,值得注意的是,对于同样的量化失真,不同的映射变换和反变换反映不同性质的复原图像的失真,人眼对某些性质的失真敏感而对另一些性质的失真不敏感。(3)熵编码器。这一步是用来消除符号编码冗余度的,它一般不产生失真,理想华东交通大学现代仿真技术大作业4的情况是编出的码流的平均码长等于量化后数据的信息熵,常用的编码方法有许多种,例如分组码、行程码(RLC)和变长码(VLC)、不分组码以及算术码(ArithmaticCoing等)。行程码传输的是数据行程长度而不是数据本身,例如要传108个0,用行程码是改为传行程码标记和行程长度1080在变长码中最常用的是霍夫曼(Hufman)码,基本原则是对出现概率大的数值用短码来编,对出现概率小的数值用长码来编,从而使平均码长减小。降低码率,在实际编码器中常把RLc和Hufman码结合起来,称为霍夫曼行程码。1.3MATLAB仿真实现根据压缩编码算法,要将一幅灰度图像进行压缩编码,首先把图像分成8×8的像素块,分块进行DCT变换后,根据标准量化表Es]对变换系数进行量化后,再对直流系数(DC)进行预测编码,然后根据标准的Huffman码表蜘进行熵编码,输出压缩图像的比特序列,实现了图像压缩。在接收端,则经过Huffman熵解码、DC系数和AC系数可变长解码、反量化后,再进行反DCT变换得到重建图像。对一幅图像进行编解码的MATLAB程序流程图:开始输入图片分成8*8像素块,DCT变换输入量化表,对变换系数进行量化对变换系数进行量化选择一副图对其进行压缩变换反量化反DCT变换显示所选图像的信噪比结束华东交通大学现代仿真技术大作业5第二章离散余弦变换(DCT)2.1DCT的定义DCT变换利用傅立叶变换的性质.采用图像边界褶翻将像变换为偶函数形式,然后对图像进行二维傅立叶变换,变后仅包含余弦项.所以称之为离散余弦变换。2.2DCT和图像压缩DCT编码属于正交变换编码方式.用于去除图像数据的空间冗余。变换编码就是将图像光强矩阵(时域信号)变换到系数空间(频域信号)上进行处理的方法。在空问上具有强相关的信号,反映在频域上是在某些特定的区域内能量常常被集中在一起,或者是系数矩阵的分布具有某些规律。我们可以利用这些规律在频域上减少量化比特数,达到压缩的目的。图像经DCT变换以后,DCT系数之间的相关性已经很小。而且大部分能量集中在少数的系数上,因此,DCT变换在图像压缩中非常有用,是有