基于DCT的图像压缩及Matlab实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通信专业课程设计一
太原科技大学
课程设计(论文)
设计(论文)题目:基于DCT的图像压缩及Matlab实现
姓名____
学号_
班级_
学院____
指导教师____
2010年12月31日
太原科技大学课程设计(论文)任务书
学院(直属系):时间:
学生姓名指导教师
设计(论文)题目基于DCT的图像压缩及Matlab实现
主要研究内容
掌握DCT变换实现图像压缩的基本方法,在不损害图像信源的有效信息量的情况下保证图像的质量,在MATLAB环境中进行图像压缩技术的仿真,并对仿真结果进行分析。
研究方法
主要运用实验法与观察法,通过编写程序实现对图像的DCT变换,观察图像结果进而实现对DCT变换的研究。
主要技术指标(或研究目标)
利用DCT变换编码方法进行图像压缩,提高信息传输的有效性及通信质量。
教研室
意见
教研室主任(专业负责人)签字:年月日
目录
摘要.............................................................................................................................................II 第1章绪论. (1)
第2章DCT变换概述 (2)
2.1DCT函数介绍 (2)
2.2DCT变换介绍 (2)
2.2.1DCT变换原理 (2)
2.2.2DCT变换编码的步骤 (3)
第3章程序运行及结果分析 (5)
3.1程序代码 (5)
3.2运行结果分析 (7)
第4章结论 (11)
参考文献 (12)
基于DCT变换函数的图像压缩
摘要
图像压缩是关于用最少的数据量来表示尽可能多的原图像的信息的一个过程。对于图像来说,如果需要进行快速或实时传输以及大量存储,就需要对图像数据进行压缩,在同等的用心容量下.如果图像数据压缩后再传输,就可以传输更多的图像信息,也就可以增加通信的能力。变换编码是把图像中的各个像素从一种空间变换到另一种空间.然后针对变换后的信号进行量化与编码操作的一种图象压缩编码技术。
本文提出了基于DCT变换的JPEG图像压缩编码算法进行研究,并通过对比分析各种软件特性选取了MATLAB进行实验仿真,重点介绍了压缩编码的具体过程和方法,详细介绍了编码中DCT变换、量化、熵编码等模块的原理和数学推导以及各模块的功能分析,基于DCT变换的JPEG图像压缩方法简单、方便,既能保证有较高的压缩比,又能保证有较好的图像质量,应用MATLAB仿真出来的结果较好的反应了其编码算法原理。
关键词:图像压缩DCT变换JPEG MATLAB
第1章绪论
离散余弦变换(DCT for Discrete Cosine Transform)是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换(DFT for Discrete Fourier Transform),但是只使用实数。离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的(因为一个实偶函数的傅里叶变换仍然是一个实偶函数),在有些变形里面需要将输入或者输出的位置移动半个单位(DCT有8种标准类型,其中4种是常见的)。
最常用的一种离散余弦变换的类型是下面给出的第二种类型,通常所说的离散余弦变换指的就是这种。它的逆,也就是下面给出的第三种类型,通常相应的被称为"反离散余弦变换","逆离散余弦变换"或者"IDCT"。
有两个相关的变换,一个是离散正弦变换(DST for Discrete Sine Transform),它相当于一个长度大概是它两倍的实奇函数的离散傅里叶变换;另一个是改进的离散余弦变换(MDCT for Modified Discrete Cosine Transform),它相当于对交叠的数据进行离散余弦变换。
第2章DCT变换概述
2.1DCT函数介绍
常用的信源编码方法有算术编码、矢量量化、预测编码和变换编码等多种方法,变换编码就是经变换后的信号的样值能更有效地编码,也就是通过变换来解除或减弱信源符号间的相关性,再将变换后的样值进行标量量化,或采用对于独立信源符号的编码方法,以达到压缩码率的目的。
在实用中常用离散余弦变换(DCT),尤其是对视频图像信号,其统计特性接近一阶马尔可夫链,离散余弦变换的正交矢量近似于相应的K-L变换的正交矢量。
余弦变换的完备正交归一函数是
(2-1)
,t(2-2)
对这些函数在(0,T)内取N个样值,即得离散余弦变换矩阵的元为
(2-3)
(2-4)分别可得变换和反变换的矩阵形式。
2.2DCT变换介绍
2.2.1DCT变换原理
基于DCT(离散余弦变换)压缩编码算法是有失真的压缩编码,图2.1为DCT变换编码原理图。
原图像
压缩图像
图2.1DCT变换编码原理图
RGB/YUV DCT量化编码
解码
解量化
IDCT
YVU/RGB
2.2.2DCT变换编码的步骤
DCT变换编码的主要步骤是:颜色空间转换,正向离散余弦变换(FDCT),量化,熵编码(哈达码编码和算术编码)[1]。
1)颜色空间转换和采样
JPEG压缩只支持Y颜色模式,其中Y代表亮度,代表色度,所以在将彩色图像进行数据压缩之前必须对颜色模式进行转换,将RGB模式转为Y模式。转换可通过计算下述公式完成:
Y=0.299R+0.587G+0.114B(2-5)=-0.169R-0.331G+0.5B(2-6) =0.5R-0.4187G-0.0813B(2-7)对转换后的数据进行采样,采样比例一般是4:2:2或4:1:1。
经过采样后的图像数据的色度数据比原来减少了一半。选择这样的采样方式是因为人的视觉对亮度要比对色度更敏感,而重建后的图像与原图的差异是人的视觉所不易察觉到的。
2)DCT变换[2]
在进行DCT变换之前,先把图像分成88的子块。
将用P位表示的图像数据(一般用8位表示一个像素的颜色分量),即在[0,]范围内表示的无符号整数,变成[]范围内表示的有符号数,作为DCT变换的
输入量。经过DCT变换,将空域中表示的图像数据转换到频域中进行表示,并获得N个变换系数。变换公式为
(2-8)逆DCT变换公式为
(2-9)