DCT变换与KLT变换在图像压缩中的应用专业:电子与通信工程学号:1621302616213024姓名:目录1报告简介...............................................................................................12算法原理...............................................................................................12.1DCT算法原理............................................................................12.2KLT算法原理.............................................................................33仿真分析...............................................................................................53.1DCT仿真分析............................................................................53.2KLT仿真分析.............................................................................75总结.......................................................................................................8参考文献.....................................................................................................9附录:MATLAB代码.............................................................................101DCT变换与KLT变换在图像压缩中的应用1报告简介随着数据化时代的开启,图像压缩技术越来越成熟并且应用越来越广泛,本文在研究近年来图像压缩一般方法的基础上,介绍了基于DCT变换的图像压缩的基本原理及其实现步骤,以及扩展研究了KL变换的图像压缩方法,并使用MATLAB,针对同一幅原始图像进行不同方法的压缩比较,给出了实验仿真结果。本论文首先提出了用MATLAB来实现DCT变换的数字图像压缩技术,方法简单,快速,且误差小。然后介绍了KLT图像压缩编码的具体过程和方法。最后分析了图像经过2种压缩方法时,图像质量的变化情况。2算法原理2.1DCT算法原理DCT变换利用傅立叶变换的性质。采用图像边界褶翻将像变换为偶函数形式,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换。DCT编码属于正交变换编码方式,用于去除图像数据的空间冗余。变换编码就是将图像光强矩阵(时域信号)变换到系数空间(频域信号)上进行处理的方法。在空间上具有强相关的信号,反映在频域上是在某些特定的区域内能量常常被集中在一起,或者是系数矩阵的分布具有某些规律。我们可以利用这些规律在频域上减少量化比特数,达到压缩的目的。图像经DCT变换以后,DCT系数之间的相关性就会变小。而且大部分能量集中在少数的系数上,因此,DCT变换在图像压缩中非常有用,是有损图像压缩国际标准JPEG的核心。从原理上讲可以对整幅图像进行DCT变换,但由于图像各部位上细节的丰富程度不同,这种整体处理的方式效果不好。为此,发送者首先将输入图像分解为88或1616块,然后再对每个图像块进行二维DCT变换,接着再对DCT系数进行量化、编码和传输;接收者通过对量化的DCT系数2进行解码,并对每个图像块进行的二维DCT反变换。最后将操作完成后所有的块拼接起来构成一幅单一的图像。对于一般的图像而言,大多数DCT系数值都接近于0,所以去掉这些系数不会对重建图像的质量产生较大影响。因此,利用DCT进行图像压缩确实可以节约大量的存储空间。基于DCT的JPEG图像压缩编码算法原理可用图1表示:(a)编码器(b)解码器图1DCT算法原理框图在编码过程中,首先将输入图像颜色空间转换后分解为8×8大小的数据块,然后用正向二维DCT把每个块转变成64个DCT系数值,其中1个数值是直流(DC)系数,即8×8空域图像子块的平均值,其余的63个是交流(AC)系数,接下来对DCT系数进行量化,量化过程实际上就是对DCT系数的一个优化过程,它是利用了人眼对高频部分不敏感的特性来实现数据的大幅简化。量化过程实际上是简单地把频率领域上每个成份,除以一个对于该成份的常数,且接着四舍五入取最接近的整数。这是整个过程中的主要有损运算。量化是图像质量下降的最主要原因。量化后的数据,有一个很大的特点,就是直流分量相对于交流分量来说要大,而且交流分量中含有大量的0。这样,对这个量化后的数据如何来进行简化,从而再更大程度地进行压缩呢。将量化后的系数进行“Z”字形编排,这样做的特点就是会连续出现多个0,即充分利用相邻两图像块的特性,来再次简化数据,从而再更大程度地进行压缩。最后将变换得到的量化的DCT系数进行编码和传送,这样就完成了图像的压缩过程。构造N*N块量化器正向DCT熵编码压缩图像原图像熵解码逆向DTC量化器构造N*N块压缩图像重构图像3在解码过程中,形成压缩后的图像格式,先对已编码的量子化的DCT系数进行解码,然后求逆量化并把DCT系数转化为8×8样本像块(使用二维DCT反变换),最后将操作完成后的块组合成一个单一的图像。这样就完成了图像的解压过程。一个NN块),(yxf的二维DCT),(vuF的定义如下:1010)2)12(cos(),()2)12(cos()()(2),(NxNyNvyyxfNuxvCuCNvuF(1)对应的NN块的二维IDCT则为:1010)2)12(cos(),()2)12(cos()()(2),(NuNvNvyvuFNuxvCuCNyxf(2)式中,空域的x、y,频域的u、v取值集合均为}1,1,0{N,其中:其他10,u21)(),(vvCuC(3)将离散余弦变换变换写为矩阵形式为:TNNfCCF(4)NTNFCCf(5)其中,NC为NN正交变换矩阵,f为NN原图像块,F为NN变换域图像块。2.2KLT算法原理KLT变换又称Hotelling变换,特征向量变换或主分量方法。KL变换是遥感图像增强和信息提取中用得最多的线性变换,是对原波段图像进行波谱信息的线性投影变换,在尽可能不减少信息量的前提下,将原图像的高维多光谱空间的像元亮度值投影到新的低维空间,减少特征空间维数,达到数据压缩、提高信噪比、提取相关信息、降维处理和提取原图像特征信息的目的,并能有效地提取影像信息。它可使原来多波段图像经变换后提供出一组不相关的图像变量,最前面的主分量具有较大的方差,包含了原始影像的主要信息,所以要集中表达信息,突出图像的某些细部特征,可采用主分量变换来完成。KL变换是图像压缩中的一种最优正交变换。4KLT的突出优点是去相关性好,它根据具体的图像统计特性来决定它的变换矩阵,对图像有最好的匹配效果,能将信号在变换域的相关性全部解除,是最小均方误差下的最佳变换。KLT原理框图可表示为:图2KLT算法原理框图KLT变换就是对8x8的图像矩阵求自协方差矩阵,对自协方差矩阵做特征值分解,得到由特征值从小到大排列的对角矩阵,和由特征向量组成的矩阵,特征矩阵与图像矩阵做乘法,称为正交变换,即KL变换,的到的新的矩阵每一行称为一个新的变量,其中第一行几乎包含了总方差%80以上的信息,其余行包含的信息依次减少,新矩阵的个元素之间是不相关的,因而KL变换去掉了变量之间的相关性。KLT是对向量x做的一个正交变换xy,目的是变换到y后去除数据相关性。其中,是x特征向量组成的矩阵,满足IT,当x都是实数时,是正交矩阵。用ym表示向量y的平均值,y的协方差矩阵记为y,通过变换Txy,得到:),,,(])([])([))((]))([()(110NTTxxTTTxxTTTTxTxTTTTTydiagEEEExTyymmxxmmxxmmxxmmyy(6)写成矩阵形式:恢复图像KLT变换量化区域抽样哈弗曼编码KLT逆变换量化恢复抽样恢复哈弗曼译码原图像52121201100000000000000NNTijyx(6)由此可见,做了KLT变换之后呢,y成为了对角阵,也就是对于任意ji,有0),cov(jiyy,当ji有ijiyy),cov(,因此利用KLT去除了数据相关性。而且,iy的方差与x协方差矩阵的第i个特征值相等即ii2。3仿真分析利用MATLAB对算法进行仿真分析,测试环境为:操作系统为Win7,CPU为i5-3210M,内存为4GB,使用的MATLAB版本为R2012b。利用MATLAB产生仿真图形界面如图3所示。图3DCT和KLT仿真图形界面设计3.1DCT仿真分析输入一幅图像,通过改变DCT量化值进行图像压缩,同时,利用相关参数对图6像质量进行对比分析,图4为经过DCT压缩的效果对比图。(a)原始图像(b)量化程度为16(c)量化程度为32(b)量化程度为64图3运用DCT变化进行图像压缩效果对比图通过肉眼观察,可以发现量化程度越大图像越清晰,反之,越模糊,细节信息越差。采用不同的量化程度可以改变图像的清晰度及文件的大小,本文将利用图像的相关性能参数对压缩图像进行比较。图像的方差、平均梯度、信息熵及对比度与图像质量正相关。图像方差越大,表明图像灰度层次越丰富;平均梯度越大,图像层次越多;信息熵越大,表明图像的信息量越大。通过表1,可以清晰地看出量化程度越大,得到的压缩图像性能越好,相对的图像大小也增大,但原图相比,图像性能变化不明显,但压缩效果明显。7表1DCT变换得到压缩图像性能参数比较方差平均梯度信息熵(bit)文件大小(KB)图3(a)1.9545e+035.43047.177126.4图3(b)1.8785e+033.44707.14129.82图3(c)1.9011e+034.10217.153812图3(d)1.9167e+034.38527.155812.73.2KLT仿真分析利用KLT算法对图4(a)图进行图像压缩得到图5。(a)量化程度为16(b)量化程度为32(c)量化程度为32(b)量化程度为64图4运用KLT变化进行图像压缩效果对比图从图像的方差、信息熵及平均梯度对图像性能进行分析,得到表2。8表2KLT变换得到压缩图像性能参数比较方差平均梯度信息熵(bit)文件大小(KB)图3(a)1.9545e+035.43047.177126.4图4(a)1.8484e+032.88657.12269.21图4(b)1.8759e+033.68477.140411.4图4(c)1.9031e+034.32257.156112.8图4(d)1.9212e+034.45887.156312.8由表2可以得到KLT变换可以对图像进行压缩,并且采用相同的量化程度,DCT比KLT变化效果较好。5总结本文叙述的图像压缩编码算法,DCT是正交变换,它可以将8*8图像的空间表达式转换为频率域,只需要用少量的数据