DCT图像压缩方法_第1页
DCT图像压缩方法_第2页
DCT图像压缩方法_第3页
DCT图像压缩方法_第4页
DCT图像压缩方法_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DCT图像压缩方法图像压缩方法基于基于MATLAB仿真实现仿真实现 一.项目要求 二.DCT压缩方法概述 三.DCT压缩原理流程 四.MATLAB仿真结果 五.实验分析 六.程序代码目录目录 要求学生学习并掌握一种图像压缩方法,学习算法的基本原理,进行算法设计,掌握matlab编程。最终利用matlab实现压缩算法的仿真并分析。压缩算法可选用DCT压缩方法和JPEG压缩方法。学生也可自主选择其他方法。要求完成算法设计、仿真、分析等工作。一一.项目要求项目要求 常用的信源编码方法有算术编码、矢量量化、预测编码和变换编码等多种方法,变换编码就是经变换后的信号的样值能更有效地编码,也就是通过变换来解

2、除或减弱信源符号间的相关性,再将变换后的样值进行标量量化,或采用对于独立信源符号的编码方法,以达到压缩码率的目的。 在实用中常用离散余弦变换(DCT)尤其是对视频图像信号,其统计特性接近一阶马尔可夫链,离散余弦变换的正交矢量近似于相应的K-L变换的正交矢量。 二二.DCT压缩方法概述压缩方法概述 DCT(即离散余弦变换)是对实信号定义的一种变换,变换后在频域中得到的也是一个实信号,相比DFT而言,DCT可以减少一半以上的计算。DCT还有一个很重要的性质(能量集中特性):大多书自然信号(声音、图像)的能量都集中在离散余弦变换后的低频部分,因而DCT在(声音、图像)数据压缩中得到了广泛的使用。由于

3、DCT是从DFT推导出来的另一种变换,因此许多DFT的属性在DCT中仍然是保留下来的。 余弦变换的完备正交归一函数是 对这些函数在(0,T)内取N个样值,即得离散余弦变换矩阵的元为 分别可得变换和反变换的矩阵形式。三三.DCT压缩原理流程压缩原理流程读入图像DCT变换huffman编码量化DCT反变换重构图像逆量化huffman解码 在进行DCT变换之前,先把图像分成88的子块。 将用P位表示的图像数据(一般用8位表示一个像素的颜色分量),即在0,2范 围内表示的无符号整数,变成-2 ,2 -1范围内表示的有符号数,作为DCT变换的输入量。经过DCT变换,将空域中表示的图像数据转换到频域中进行

4、表示,并获得N个变换系数。变换公式为DCT变换变换 逆DCT变换公式为 其中 输出系数排列 按Zig-zag排序,其中直流量为DC系数,交流量为AC系数。排列中越往后0越多。 经过DCT变换后的数据,极大限度的去除了相关性,并且实现了能量的集中,那么会出现数据特别大而多数数据特别小的情况。量化的过程就是对这些数据做新的映射处理,目的是减少非“0”系数的幅度以及增加“0”值系数的数目。量化量化 Huffman编码是1952年由Huffman提出的非等长最佳编码方法。所谓最佳编码,就是在具有相同输入概率集合的前提下,其平均码长比其他任何一种编码都要短。Huffman编码是一种统计编码,属于无损压缩

5、编码。霍夫曼编码的码长是变化的,对于出现频率高的信息,编码的长度较短;而对于出现频率低的信息,编码长度较长。这样,处理全部信息的总码长一定小于实际信息的符号长度。Huffman编码编码 MATLAB图像处理工具箱支持四种图像类型,分别为RGB图像(真彩色图像)、索引图像、灰度图像、二值图像,由于有的函数对图像类型有限制,这四种类型可以用工具箱的类型转换函数相互转换。 MATLAB可操作的图像文件包括BMP、HDF、JPEG、PCX、TIFF、XWD等格式。下面就图像处理的基本过程讨论工具箱所实现的常用功能。 MATLAB为用户提供了专门的函数来从图像格式的文件中读写图像数据。这种方法不像其他编

6、程语言,需要编写复杂的代码,只需要简单地调用MATLAB提供的函数即可。基于基于DCT的图像压缩的图像压缩MATLAB仿真实现仿真实现 本组所选图像四四.MATLAB仿真结果仿真结果仿真结果仿真结果 利用MATLAB软件来实现离散余弦变换的图像压缩,具有方法简单,速度快,误差小的特点,避免了大量的矩阵计算,大大提高了图像压缩的效率和精度。 图像经过不同的量化系数(即压缩比),图像的质量也不一样,压缩比越大,图像质量越差,压缩时间也越长。所以可以根据对图像质量的要求而选择合适的压缩比。五五.实验分析实验分析 根据得出的图像分析DCT和IDCT变换过程中,矩形系数变换受到了影响。经过DCT系数量化

7、阈值设定,从而改变中间矩阵“0”数量的多少,因此要想得到较好的压缩比,又想保持图像不失真过度,可以根据对图像质量的要求而选择合适的压缩比。 I=imread(16.jpg) I=im2double(I) %转换图像矩阵为双精度型。 J=dct2(I); T=dctmtx(8) %产生二维DCT变换矩阵 a1=16 11 10 16 24 40 51 61; 12 12 14 19 26 58 60 55; 14 13 16 24 40 57 69 56; 14 17 22 29 51 87 80 62; 18 22 37 56 68 109 103 77; 24 35 55 64 81 104

8、 113 92; 49 64 78 87 103 121 120 101; 72 92 95 98 112 100 103 99 ;六六.程序代码程序代码 for i=1:8:200 for j=1:8:200 P=I(i:i+7,j:j+7); K=T*P*T; I2(i:i+7,j:j+7)=K; K=K./a1; %量化 K(abs(K)0.03)=0; I3(i:i+7,j:j+7)=K; end end figure; imshow(I2); title(DCT变换后的频域图像); %显示DCT变换后的频域图像 for i=1:8:200 for j=1:8:200 P=I3(i:i

9、+7,j:j+7).*a1; %反量化 K=T*P*T; I4(i:i+7,j:j+7)=K; end end figure; imshow(I4); title(复原图像); B=blkproc(I,8,8,P1*x*P2,T,T) %计算二维DCT矩阵T及其转置是DCT函数P1*X*P2的参数 mask=1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %二值掩模用来压缩DCT系数只留下DCT系数中左上角的10个 B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论