基于DCT变换的图像压缩及matlab仿真
基于DCT的数字图像压缩及Matlab实现
实验三基于DCT的数字图像压缩及Matlab实现兰州大学信息学院08级通信工程一班赵军伟一、课程设计的目的和要求等内容实验目的:掌握基于DCT变换的图像压缩的基本原理及其实现步骤;通过使用MATLAB,对同一幅原始图像进行压缩,进一步掌握DCT和图像压缩。
实验要求:1、学生在实验操作过程中自己动手独立完成,2人为1组。
2、上机过程中由指导老师检查结果后方可做其他内容。
3、完成实验报告:按照实验的每个题目的具体要求完成二、基本原理或方法(一)图像压缩基本原理图像数据压缩的目的是在满足一定图像质量的条件下,用尽可能少的比特数来表示原始图像,以提高图像传输的效率和减少图像存储的容量,在信息论中称为信源编码。
图像压缩是通过删除图像数据中冗余的或者不必要的部分来减小图像数据量的技术,压缩过程就是编码过程,解压缩过程就是解码过程。
压缩技术分为无损压缩和有损压缩两大类,前者在解码时可以精确地恢复原图像,没有任何损失;后者在解码时只能近似原图像,不能无失真地恢复原图像。
假设有一个无记忆的信源,它产生的消息为{ai},1≤i≤N,其出现的概率是已知的,记为P(ai)。
则其信息量定义为:由此可见一个消息出现的可能性越小,其信息量就越多,其出现对信息的贡献量越大,反之亦然。
信源的平均信息量称为“熵”(entropy),可以表示为:对上式取以2为底的对数时,单位为比特(bits):根据香农(Shannon)无噪声编码定理,对于熵为H的信号源,对其进行无失真编码所可能达到的最低比特数为,这里为一任意小的正数,因此可能达到的最大压缩比为:其中B是原始图像的平均比特率。
在图像压缩中,压缩比是一个重要的衡量指标。
可以定义压缩比为:(二)图像压缩的基本模型图像编码包括两个阶段,前一个阶段就是利用预测模型或正交模型对图像信号进行变换;后一个阶段是利用已变换信号的统计特性,对其分配适当的代码来进行编码传输。
编码器与解码器的结构分别如图(a)、(b)。
基于DCT的图像压缩及Matlab实现
通信专业课程设计一太原科技大学课程设计(论文)设计(论文)题目:基于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的图像压缩及Matlab实现(4)
摘要:基于DCT图像压缩编码技术提出了用Marlab实现离散余弦变换的图像压缩方法,该方法具有方法简单、速度快、误差小的优点,免去了大量的矩阵计算,既保证具有较高的压缩比,又保证了较好的图像质量。
关键词:DCT; 图像压缩;Matlab中图分类号:TN 919.81文献标识码:B文章编号:1673-5382(2007)02-0058-04白淑岩(烟台职业学院 基础部,山东 烟台 264000)1 引言图像数据的一个显著特点就是信息量大。
组成图像的各像素之间,无论是在行方向还是在列方向上都存在着一定的相关性。
应用某种编码方法提取或者减少这种相关性,就可以达到压缩数据的目的。
从信息论观点看,描述图像信源的数据是由有效信息量和冗余量两部分组成,去除冗余量能够节省图像存储和传输中的开销,同时又不损害图像信源的有效信息量。
保证重构图像的质量。
所谓的图像压缩编码技术就是对要处理的图像源数据按一定的规则进行变换和组合,从而达到以尽可能少的代码(符号)来表示尽可能多的数据信息,目前的编码技术很多,其中应用最广泛的方法之一就是基于离散余弦(DCT)的混合编码技术。
DCT变换是最小均方误差条件得出的较优的正交变换,已经成为许多图像编码国际标准DCT变幻的数字图像压缩技术中的核心。
DCT的变换和是余弦函数,计算速度快,有利于图像压缩和其他处理。
2 基于DCT的图像压缩编码理论算法2.1 基于DCT的图像压缩编码算法表述在编码过程中,首先将输入图像分解为8*8大小的数据块,然后用正向二维DCT把每个块砖变成64个DCT系数值,其中1个数值是直流(DC)稀疏,即8*8控与图像子块的平均值,其余的63个是交流(AC)稀疏,接下来对DCT系数进行量化,最后将变换得到的量化的DCT系数进行解码,然后求逆量化把DCT系数转化为8*8样本橡块(使用二维DCT反变换),最后将操作完成后的块组合成一个单一的图像,这样就完成了图像的压缩和解压缩过程。
基于DCT变换的数字图像压缩技术及其Matlab实现
基于DCT变换的数字图像压缩技术及其Matlab实现
崔春艳;李彩霞
【期刊名称】《现代电子技术》
【年(卷),期】2002(000)009
【摘要】介绍了Matlab的基本功能,提出了用Matlab来实现DCT变换的数字图像压缩技术,方法简单,快速,且误差小.
【总页数】3页(P7-9)
【作者】崔春艳;李彩霞
【作者单位】河北大学电子与信息工程学院,保定,071002;河北大学电子与信息工程学院,保定,071002
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于DCT变换的图像压缩编码的MATLAB实现 [J], 彭干涛;禹峰;林嘉居
2.基于DCT变换的数字水印研究及其MATLAB实现 [J], 阳鑫
3.基于JPEG图像压缩技术的研究及其Matlab实现 [J], 宫泽林
4.基于MATLAB实现数字图像边缘检测 [J], 曹洋
5.一种基于DCT变换域的数字图像水印技术的实现方法 [J], 冯岩;王晓红
因版权原因,仅展示原文概要,查看原文内容请购买。
二维DCT变换在JPEG图像压缩中的应用及其MATLAB实现
d i s t o r t i o n o f i m a g e , a n d a l s o w o n t h e h i g h c o m p r e s s i o n r a t i o . T h e m e t h o d i s s i m p l e , f a s t a n d s u i t a b l e f o r t h e
0 引言
随着 网络技术和信 息技术 的飞速发展 , 网络中信息的需求量 越 来越 大。 这其 中就包括有对 信息传输 的需求, 而 信息传输 中大 部分又表现为 图像 , 所 以图像信 息量的大小将 直接 影响到网络传 输的速度 。 因此 , 为 了保证 图像信息 的存储与传输 , 对 图像进 行压 缩成为 当前最迫切 的需求 。 图像 压缩 就是在没有明显失真的前提 下, 尽 量减少表示 数字 图像 时需要 的数据量 , 从而 节省 图像 的存 储空间 , 减少传输信道 的容量、 缩短 图像加工处理 的时 间等 。 在所 有 的图像压缩编码 中 J P E G是第 一个被广泛应 用的适用 于 ( 包括
行仿 真验 证, 实验结果显示 图像无 明显失真 , 同时又 获得 了高压缩 比。 该方法操作简单、 速度快 , 适用于 日常数字 图像 的压缩需
求。
关键词 : 图像压缩 ; D C T; M A T L A B; J P E G A
M ATLAB t w o- d i me ns i o na l DCT t r a ns f o r m a nd i t s a p pl i c a t i on i n t he J PE G r e a iz l a t i o n o f i ma g e c o mp r e s s i o n
基于DCT变换的数字图像压缩(实验4报告)
多媒体技术实验报告学院:城南学院通信1202班姓名学号指导老师:***时间:2015/12/09实验四:数字图像压缩1.实验目的1)理解有损压缩和无损压缩的概念;2)理解图像压缩的主要原则和目的;3)了解几种常用的图像压缩编码方式;4)利用MATLAB程序进行图像压缩。
2. 实验原理1)图像压缩原理图像压缩主要目的是为了节省存储空间,增加传输速度。
图像压缩的理想标准是信息丢失最少,压缩比例最大。
不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。
压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。
信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质上是减少这些冗余量。
高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大的图像信息。
编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。
①冗余度压缩方法,也称无损压缩、信息保持编码或嫡编码。
具体说就是解码图像和压缩编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。
②信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。
也就是说解码图像和原始图像是有差别的,允许有一定的失真。
本实验主要利用MA TLAB程序进行离散余弦变换(DCT)压缩和行程编码(Run Length Encoding,RLE)。
2)离散余弦变换(DCT)图像压缩原理离散余弦变换DCT在图像压缩中具有广泛的应用,它是JPEG、MPEG等数据压缩标准的重要数学基础。
用DCT压缩图像的过程为:①首先将输入图像分解为8×8或16×16的块,然后对每个子块进行二维DCT变换。
②将变换后得到的量化的DCT系数进行编码和传送,形成压缩后的图像格式。
用DCT解压的过程为:①对每个8×8或16×16块进行二维DCT反变换。
基于DCT变换的数字图像压缩技术及其Matlab实现_崔春艳
收稿日期:20020711基于DCT 变换的数字图像压缩技术及其Matlab 实现Digital Image Compression Technology Based on Discrete Cosine Transformand Realization Based on Matlab崔春艳CU I Chunyan,李彩霞L I Caix ia(河北大学电子与信息工程学院 保定 071002)(College of Elect ro nic and Inform ational Eng ineering ,Hebei U niv ersity ,Baoding 071002,China )摘 要:介绍了M atlab 的基本功能,提出了用M atlab 来实现DCT 变换的数字图像压缩技术,方法简单,快速,且误差小。
关键词:离散余弦;M atlab ;图像压缩当前处于信息高速流通时代,要求在保证质量的前提下,以较小的空间存储图像和较小的比特率传输图像,这就需要采用各种图像压缩编码技术来实现。
DCT 变换是最小均方误差条件得出的较优的正交变换,且已经获得广泛的应用,并已经成为许多图像编码国际标准DCT 变换的数字图像压缩技术中的核心。
离散余弦变换的变换核是余弦函数,计算速度较快,有利于图像压缩和其他处理。
1 离散余弦变换的概念1.1 一维离散余弦正反变换的公式 F (k )=2∑N -1n =0f (n )cos P (2n +1)k 2N n ,k =0,1,2,…,N -1(1) f (n )=1N ∑N -1k =0F (k )cos P (2n +1)k 2N n ,k =0,1,2,…,N -1(2)1.2 二维离散余弦正反变换的公式正变换公式:5 结 论单片机控制技术应用越来越广泛,其核心技术是单片机控制系统的设计。
对工程技术人员来说,抓住系统的原理构成、软件设计、硬件设计以及系统调试方法的要点是十分必要的。
基于DCT的图像压缩及Matlab实现
量化表。此外, 由于人眼对低频分量的图像比对高频右下角的量化步长
小, 量化机要使得大部分数据得以压缩, 同时又要保证通过量化和编
码之后能输出一个与信道传输速率匹配的比特流。
4.Ma tla b 程序实现
4.1Matlab 的功能与特点 Matalab 有主包和功能各异的工具箱组
反变换公式:
"=0 "=1,2,!,M- 1
M- 1 N- 1
f(x,y)=!!c(u)c(")F(u,")cos !(2x+1)u cos !(2y+1)"
x=0 "=0
2M
2N
2.2.3 二维离散余弦变换的简化 在 二 维 离 散 余 弦 变 换 中 , x,y 为
空 间 与 采 样 值 , 通 常 数 字 图 像 用 像 素 方 阵 表 示 , 即 M=N,在 这 种 情 况
用 Matlab 来实现离散余弦变换的图像压缩, 具有方 法 简 单 、速 度 快、误差小的优点, 免去了大量的矩阵计算, 大大提高了图像压缩的效 率 和 精 度 。科
● 【参 考 文 献 】 [ 1] 许波等编著, Matlab 工程数学应用, 北京, 清华大学出版社, 2000. [ 2] 陈桂明等编著, 应用 Matlab 语言处理数字信号与数字图像, 北京, 科 学 出 版 社, 2000. [ 3] 樊启斌, Matlab 语言的功能、特点及其应用, 测绘信息与工程, 2000. [ 4] 刘富强, 钱建生, 曹国清, 多媒体图像技术及应用, 北京, 人民邮电出版社, 2000, 19- 20.
基于DCT变换的图象压缩技术的Matlab实现
基于DCT 变换的图象压缩技术的Matlab 实现一、背景图象的离散余弦变换具有把高度相关数据能量集中的趋势,因此广泛用于图象压缩。
下面使用二维离散余弦变换进行图象压缩。
利用离散余弦变换进行图象压缩,首先要将输入图象分解为88⨯或1616⨯的块,然后对每个块进行二维离散余弦变换,最后将变换得到的DCT 系数进行编码和传送,解码时对每个88⨯或1616⨯的图象块进行二维DCT 反变换,最后将反变换后的块组合成一幅图象。
对于通常的图象来说,大多数的DCT 系数的值非常接近于0。
如果舍弃这些接近于0的DCT 系数值,在重构图象时并不会带来画面质量的显著下降。
所以,利用DCT 进行图象压缩可以节约大量的存贮空间。
压缩应该在最合理的近似原图象的情况下使用最少的系数,使用系数的多少也决定了压缩比的大小。
源程序:Sig1=imread('qq.bmp');Sig=rgb2gray(Sig1);rat=1/4;Sig=double(Sig)/255;[a,b]=size(Sig);figure(1);imshow(Sig);T=dctmtx(8);DCTcoe=blkproc(Sig,[8 8],'P1*x*P2',T,T'); coeVar=im2col(DCTcoe,[8 8],'distinct');coe=coeVar;[Y,Ind]=sort(coeVar);[m,n]=size(coeVar);%Snum=64-64*rat;for i=1:ncoe(Ind(1:Snum),i)=0;endB2=col2im(coe,[8 8],[a b],'distinct');I2=blkproc(B2,[8 8],'P1*x*P2',T',T);% figure(4);imshow(I2);二、实验内容1、调试上述程序,将运行结果显示如下。
基于DCT的图像压缩技术研究与仿真实现
2010届毕业生毕业论文题目:基于DCT的图像压缩技术研究与仿真实现院系名称:国际学院专业班级:电子信息工程技术07级03班学生姓名:梁岑学号:20073930304指导教师:朱春华教师职称:讲师2010 年5月10 日摘要离散余弦变换(Discrete Cosine Transform,简称DCT)常被认为是对语音和图像信号进行变换的最佳方法。
为了工程上实现的需要,国内外许多学者花费了很大精力去寻找或改进DCT的快速算法。
由于近年来DSP的发展,加上专用集成电路设计上的优势,这就牢固地确立DCT在目前图像编码中的重要地位,成为H.261、JPEG、MPEG等国际上公用的编码标准的重要环节。
MATLAB是由美国Math-Works公司推出的用于数值计算和图形处理的科学计算软件,它集数值分析、矩阵计算、信号处理和图形显示多种功能于一体,构成了一个方便的界面友好的用户环境。
MATLAB中的图像处理工具箱是许多基于MATLAB技术计算环境的函数包的集合,图形功能完备。
本文主要讨论了DCT变换方法,并讨论了应用MATLAB中的图像处理工具箱中的相关函数和命令来实现离散余弦变换的图像压缩算法的仿真。
关键词:离散余弦变换(简称DCT);MATLAB;DCT变换方法;图像处理;图像压缩;仿真SummaryDCT (Discrete Cosine Transform, referred to as DCT) is often considered the voice and image signals, the best way to transform. The need to work to achieve many national and international scholars to spend a great effort to find or improve the DCT fast algorithm. In recent years the development of DSP, coupled with the advantages of ASIC design, which firmly established in the current DCT encoded images in an important position, as H.261, JPEG, MPEG and other international standards on the public an important part of the encoding . MATLAB is a U.S. Math-Works Inc. introduced for numerical computing and graphics processing in scientific computing software, which combines numerical analysis, matrix computation, signal processing and graphical display multiple functions into one, forming a convenient user friendly interface environment. MATLAB Image Processing Toolbox is the MATLAB technical computing environment, many based on a function of the set of packages, graphics, fully functional.This paper discusses the DCT transform, and discusses the application of MATLAB Image Processing Toolbox in order to achieve the correlation function and discrete cosine transform image compression algorithm is proved.Keywords: discrete cosine transform (the DCT); MATLAB; DCT transform;image processing;Image compression; simulation目录1 绪论 (1)2 图像压缩基本原理及模型 (3)2.1图像压缩基本原理 (3)2.1.1图像压缩的基本思想 (3)2.1.2图像压缩的方法 (3)2.2图像压缩系统流程图 (4)2.3分析图像压缩的主要模块 (5)2.3.1色度空间转换 (5)2.3.2离散余弦变换 (5)2.3.3量化编码 (6)2.3.4“Z”字型扫描 (6)2.3.5哈夫曼(Huffman)编码及解码 (7)2.4图像数据压缩的目 (7)2.5图像压缩的基本模型 (9)3 离散余弦变换的MATLAB仿真 (10)3.1离散余弦变换(DCT) (10)3.2M ATLAB的功能 (11)3.3离散余弦变换的M ATLAB仿真 (12)结论 (14)致谢 (15)参考文献 (16)附录 (17)1 绪论进入21世纪,人类已步入信息社会,新信息技术革命使人类被日益增多的多媒体信息所包围,这也正好迎合了人类对要示提高视觉信息的需求。
基于DCT的图像压缩编码算法的MATLAB实现
摘要跟着科学技巧的成长,图像紧缩技巧越来越引起人们的存眷.为此从浩瀚的图像紧缩编码尺度中拔取了基于DCT变换的JPEG图像紧缩编码算法进行研讨,并经由过程比较剖析各类软件特点拔取了MATLAB进行试验仿真.起首说清楚明了图像紧缩在现代通讯中的须要性和可行性,然后讲述了MATLAB及其图像处理对象箱的相干常识,并对基于DCT变换的JPEG图像紧缩算法进行了具体的研讨,重点介绍了JPEG紧缩编码的具体进程和办法 ,具体介绍了编码中DCT变换.量化.熵编码和霍夫曼编码等模块的道理和数学推导以及各模块的功效剖析.最后运用MATLAB进行了试验仿真并剖析成果得出结论.试验成果标明基于DCT变换的JPEG图像紧缩办法简略.便利,既能包管有较高的紧缩比,又能包管有较好的图像质量,运用MATLAB仿真出来的成果较好的反响了其编码算法道理.症结词JPEG图像紧缩;DCT;MATLAB;图像处理对象箱目录摘要IAbstract ..................................................................................... 错误!未界说书签. 第1章绪论11.1课题布景 (1)1.1.1 离散余弦变换 (2)1.1.2 猜测技巧 (3)1.2图像紧缩技巧的成长和近况 (3)1.2.1 图像编码技巧成长汗青 (3)1.2.2 图像编码技巧的近况 (4)1.3MATLAB及其图像处理对象箱 (4)第2章图像紧缩编码理论算法62.1DCT变换的思惟起源 (6)2.2基于DCT的JPEG图像紧缩编码步调 (8)2.2.1 色彩空间的转换和采样 (8)2.2.2 二维离散余弦变换 (9)2.2.3 DCT系数的量化 (12)2.2.4 量化系数的编排 (13)2.2.5 DC系数的编码 (14)2.2.6 AC系数的编码 (15)2.2.7 构成位数据流 (16)2.2.8 DCT变换在图像紧缩中的运用 (19)2.3代码实现错误!未界说书签.第1章绪论1.1 课题布景跟着信息技巧的成长,图像信息被普遍运用于多媒体通讯和盘算机体系中,但是图像数据的一个明显特色就是信息量大.具有宏大的数据量,假如不经由紧缩,不但超出了盘算机的存储和处理才能,并且在现有的通讯信道的传输速度下,是无法完成大量多媒体信息及时传输的,是以,为了更有效的存储.处理和传输这些图像数据,必须对其进行紧缩,是以有须要对图像紧缩编码进行研讨.因为构成图像的各像素之间,无论是在程度偏向照样在垂直偏向上都消失着必定的相干性,是以只要运用某种图像紧缩编码办法提取或者削减这种相干性,就可以达到紧缩数据的目标[1].数字图像的冗余重要表示在以下几种情势:空间冗余:规矩物体和规矩布景的概况物理特点都具有相干性,数字化后表示为数字冗余.例如:某图片的画面中有一个规矩物体,其概况色彩平均,各部分的亮度.饱和度邻近,把该图片作数字化处理,生成位图后,很大数量的相邻像素的数据是完全一样或十分接近的,完全一样的数据当然可以紧缩,而十分接近的数据也可以紧缩,因为恢复后人亦分辨不出它与原图有什么差别,这种紧缩就是对空间冗余的紧缩.时光冗余:序列图像(如电视图像和活动图像)和语音数据的前后有着很强的相干性,经常包含着冗余.在播出该序列图像时,时光产生了推移,但若干幅画面的统一部位没有变更,变更的只是个中某些地方,这就形成了时光冗余.统计冗余:空间冗余和时光冗余是把图像旌旗灯号看作概率旌旗灯号时所反响出的统计特点,是以,这两种冗余也被称为统计冗余.编码冗余:同样长度的编码可以暗示不合的信息.构造冗余:类似的,对称的构造假如都加以记载就消失构造冗余.常识冗余:由图像的记载方法与人对图像的常识差别而产生的冗余.人对很多图像的懂得与某些基本常识有很大的相干性.很多纪律性的构造,人可以由先验常识和布景常识得到.而盘算机存储图像时还得把一个个像素信息存入,这就形成冗余.视觉冗余:视觉体系对于图像场的留意长短平均和非线性的,视觉体系不是对图像的任何变更都能感知.所谓的图像紧缩编码技巧就是对要处理的图像数据按必定的规矩进行变换和组合, 从而达到以尽可能少的数据流(代码)来暗示尽可能多的数据信息.在浩瀚的图像紧缩编码尺度中,JPEG(Joint Photographic Experts Group)格局是一种称为结合图像专家组的图像紧缩格局,它实用于不合类型.不合分辨率的黑色和诟谇静止图像[2].在JPEG图像紧缩算法中,一种是以离散余弦变换(DCT,Discrete Cosine Transform)为基本的有损紧缩算法,另一种是以猜测技巧为基本的无损紧缩算法.离散余弦变换DCT变换运用傅立叶变换的性质.采取图像鸿沟褶翻将像变换为偶函数情势,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换.DCT编码属于正交变换编码方法,用于去除图像数据的空间冗余.变换编码就是将图像光强矩阵(时域旌旗灯号)变换到系数空间(频域旌旗灯号)长进行处理的办法.在空间上具有强相干的旌旗灯号,反应在频域上是在某些特定的区域内能量经常被分散在一路,或者是系数矩阵的散布具有某些纪律.我们可以运用这些纪律在频域上削减量化比特数,达到紧缩的目标.图像经DCT变换今后,DCT系数之间的相干性就会变小.并且大部分能量分散在少数的系数上,是以,DCT变换在图像紧缩中异常有效,是有损图像紧缩国际尺度JPEG的焦点.从道理上讲可以对整幅图像进行DCT变换,但因为图像各部位上细节的丰硕程度不合,这种整体处理的方法后果不好.为此,发送者起首将输入图像分化为8*8或16*16块,然后再对每个图像块进行二维DCT 变换,接着再对DCT系数进行量化.编码和传输;吸收者经由过程对量化的DCT系数进行解码,并对每个图像块进行的二维DCT反变换.最后将操纵完成后所有的块拼接起来构成一幅单一的图像.对于一般的图像而言,大多半DCT系数值都接近于0,所以去掉落这些系数不会对重建图像的质量产生较大影响.是以,运用DCT进行图像紧缩确切可以勤俭大量的存储空间.在试验中,先将输入的原始lena图像分为8*8块,然后再对每个块进行二维DCT变换.MATLAB图像处理上具箱中供给的二维DCT变换及DCT反变换函数如下.dct2实现图像的二维离散余弦变换.其语法格局为:(1)B=dct2(A) 返回图像A的二维离散余弦变换值,其大小与A雷同且各元素为离散余弦变换的系数B(K1,k2).(2)B=dct2(A,in,n)或B=dct2(A,[m,n]) 假如m和n比图像A大,在对图像进行二维离散余弦变换之前,先将图像A补零至m*n假如m和n比图像A 小.则进行变换之前,将图像A剪切.idct2可以实现图像的二维离散余弦反变换,其语法格局为:B=idct2(A);B=idct2(A,m,n)或B=idct2(A,[m,n]).1.1.2 猜测技巧它是运用空间中相邻数据的相干性,运用曩昔和如今消失过的点的数据情形来猜测将来点的数据.通经常运用的办法是差分脉冲编码调制(DPCM)和自顺应差分脉冲编码调制(ADPCM).1.2.1 图像编码技巧成长汗青1948年提出电视旌旗灯号数字化后,图像紧缩编码的研讨工作就宣布开端了.在这项技巧成长的早期,限于客不雅前提,仅对帧内猜测法和亚取样内查回复复兴法进行研讨,对视觉特点也做了一些极为有限但宝贵的研讨工作.1966年J.B.O Neal比较剖析了DPCM和PCM并提出了用于电视的试验数据.1969年进行了线性猜测编码的现实试验.1969年举办首届图像编码会议.70年月开端进行了帧间猜测编码的研讨.80年月开端对活动估值和模子编码进行研讨[3].进入90年月,ITU-T和ISO制订了一系列图像编码国际建议,如H.261.JPEG.MPEG-1.H.262.H.263.MPEG-4等.变换编码是1968年H.C.Andrews等人提出的,采取的是二维离散傅立叶变换,此后接踵消失用其他变换办法的变换编码,个中包含二维离散余弦变换.1.2.2 图像编码技巧的近况经由几十年的成长,图像编码技巧业已成熟,一些国际建议的制订极大地推进了图像编码技巧的实现和财产化,从而推进图像编码技巧以更快的速度成长,今朝的研讨偏向有两个:(1) 更好地实现现有的图像编码国际建议. 研制出集成度更高.机能更好的图像编码专用芯片,使编码体系成本更低.靠得住性更高.解决好现有的图像编码体系开辟中的技巧问题.例如:进步图像质量.进步抗码才能等.(2) 对图像编码理论和其他图像编码办法的研讨. 今朝已经提出和正在进行研讨的图像编码办法有:多分辨率编码.基于概况描写的编码.模子编码.运用人工神经收集的编码.运用分形几何的编码.运用数学形态学的编码等等.1.3 MATLAB及其图像处理对象箱假如运用高等说话(如Basic,C,Fortran)编写仿真程序来实现这一基于DCT的图像紧缩编码算法比较麻烦,并且仿真后果也不是十分幻想.本文重要运用MATLAB宣布的图像处理对象箱中的相干函数和敕令来实基于DCT的图像紧缩编码理论算法的仿真.MATLAB说话是由美国MathWorks公司推出的盘算机软件,经由多年的慢慢成长与不竭完美,现已成为国际公认的最优良的科学盘算与数学运用软件之一,它集数值剖析.矩阵运算.旌旗灯号处理和图形显示于一体,构成了一个便利的.界面友爱的用户情形,并且还具有可扩大性特点.MATLAB中的数字图像是以矩阵情势暗示的,矩阵运算的语法对MATLAB中的数字图像同样实用,这意味着MATLAB壮大的矩阵运算才能对用于图像处理异常有利.图像处理对象箱(Image Processing Toolbox)供给了一套全方位的参照尺度算法和图形对象,用于进行图像处理.剖析.可视化和算法开辟.可进行图像紧缩.空间转换.图像加强.特点检测.降噪.图像朋分和图像配准等功效.对象箱中大部分函数均以凋谢式MATLAB 说话编写,这意味着可以检讨算法.修正源代码和创建自界说函数.本文运用MATLAB图像处理对象箱对基于DCT 的JPEG图像紧缩编码理论算法进行仿真,试验证实该软件功效壮大,说话简练易学,对象箱具有丰硕的技巧支撑并集成了该范畴专家的聪明,运用简略而后果优越.第2章图像紧缩编码理论算法2.1 DCT变换的思惟起源旌旗灯号的变换剖析办法中,平日是经由过程一组恰当的基函数对旌旗灯号进行分化,得到旌旗灯号在变换域的暗示办法,运用旌旗灯号在变换域中某些特点趋于分散的特色来提取其特点从而进行剖析.自1822年傅立叶(Fourier)揭橥“热传导解析理论”以来,傅立叶变换一向是旌旗灯号处理范畴中运用最普遍.后果最好的一种剖析手腕.但傅立叶变换只是一种纯频域的剖析办法,它在频域的定位性是完全精确的(即频域分辨率最高),而在时域无任何定位性(或分辨才能),也即傅立叶变换所反应的是全部旌旗灯号全体时光下的整体频域特点,而不克不及供给任何局部时光段上的频率信息.事实上,在我们生涯中的罕有旌旗灯号平日都具有非安稳的性质,即其频域性质都是随时光而变更的.对这一类旌旗灯号用傅立叶变换进行剖析,固然可以知道旌旗灯号所包含有哪些频率信息,但不克不及知道这些频率信息具体出如今哪个时光段上,是以不克不及供给关于旌旗灯号完全的信息.可见,傅立叶变换不实用于提取局部时光段(或刹时)的频域特点信息[4].提出了有名的Gabor变换.,,,然后再进行傅立叶变换.在Gabor变换的基本上,为了顺应不合问题的须要,进一步成长了多种情势的窗口函数,如矩形窗.汉宁窗.哈明窗等,这一类加窗的傅立叶变换统称为短时傅立叶变换(STFT).STFT从本质上讲,是用窗函数截取原始旌旗灯号的一个待剖析段进行傅立叶变换,因而可以描写旌旗灯号在某一局部时光段上的频率信息.今朝,STFT在很多范畴获得了普遍的运用,但因为STFT的界说决议了其窗函数的大小和外形均与时光和频率无关,一旦选定窗口就保持固定不变,晦气于剖析时变旌旗灯号.现实上一般的高频旌旗灯号中断时光较短,而低频旌旗灯号中断时光较长,是以我们期望对于高频旌旗灯号采取小时光窗,对于低频旌旗灯号采取大时光窗进行剖析.在进行旌旗灯号剖析时,这种变时光窗的请求同STFT的固准时窗(窗不随频率而变更)的特点是相抵触的[5].离散余弦变换(DCT)从本质上是一种变换剖析办法,要在变换时最大的去除剖析旌旗灯号的相干性提取其特点,就必须恰当的构造一组基函数,这组基函数以某种情势类似于我们所要暗示的数据,甚至具有与数据雷同的相干构造.在我们日常生涯中常碰到的旌旗灯号在空间域和频域都具有相干性.在空间上相隔较近的样值间的相干性比相隔较远的大的多,而在频域上平日呈带状.为了剖析和暗示如许的旌旗灯号,我们须要基函数在空间域和频域是局域性的.因为离散余弦函数的频域分辨率与时域分辨率成反比,刚好与现实旌旗灯号长时低频.短时高频的特点相吻合,既能准肯定位旌旗灯号的突发跳变,又能掌控旌旗灯号的整体变更率.由此可见,离散余弦变换是一种比较幻想的进行旌旗灯号处理的数学对象[6].图像紧缩编码的理论算法.(1)基于DCT的JPEG图像紧缩编码理论算法基于DCT编码的JPEG 编码紧缩进程框图,如图2-1所示.上图是基于DCT变换的图像紧缩编码的紧缩进程,解紧缩与上图的进程相反.在编码进程中,起首将输入图像色彩空间转换后分化为8×8大小的数据块,然后用正向二维DCT把每个块转变成64个DCT系数值,个中1个数值是直流(DC)系数,即8×8空域图像子块的平均值,其余的63个是交换(AC)系数,接下来对DCT 系数进行量化,最后将变换得到的量化的DCT 系数进行编码和传送,如许就完成了图像的紧缩进程.在解码进程中,形成紧缩后的图像格局,先对已编码的量子化的DCT 系数进行解码,然后求逆量化并把DCT 系数转化为8×8样本像块(运用二维DCT 反变换),最后将操纵完成后的块组合成一个单一的图像.如许就完成了图像的解压进程.2.2 基于DCT 的JPEG 图像紧缩编码步调2.2.1 色彩空间的转换和采样JPEG 文件运用的色彩空间为1982年推举的电视图像数字化尺度CCIR 601(现为ITU-RB T.601).在这个色彩空间中,每个分量.每个像素的电平划定为255级,用8位代码暗示.JPEG 只支撑YCbCr 色彩模式.个中Y 代表亮模式转换到YCbCr 模式,用下组公式.JPEG 是以8×8的块为单位来进行处理的,因为人眼对亮度Y 的迟钝度比色度CbCr 的迟钝度大的多,所以采取缩减取样的方法,平日采取YUV422取样,图2-2所示.图2-2Y U V 422取样示意图即对于16×16的块,Y 取4个8×8的块,CbCr 各取2个8×8的块.也有YUV411方法,Y 取4个8×8的块,CbCr 各取1个8×8的块.YUV422取样方法,数据削减1/3.YUV411取样方法,数据削减1/2.缩减取样一般采取图2-3所示办法.图2-3 紧缩取样示意图2.2.2 二维离散余弦变换在傅里叶级数睁开式中,假如被睁开的函数是实偶函数,那么,其傅里叶技巧中只包含余弦项,在将其离散化由此可导出余弦变换,或称之为离散余弦变换(DCT,Discrete Cosine Transform)[7].式中式中JPEG 采取的是8×8大小的子块的二维离散余弦变换.在编码器的输入端,把原始图像次序地朋分成一系列8×8的子块,子块的数值在-128到127之间.采取余弦变换获得64个变换系数[8].变换公式,如式(2-5)所示.()()()()7712121,,cos cos 41616x y x y F u v c u c v f x y u v ππ==++⎛⎫⎛⎫= ⎪ ⎪⎝⎭⎝⎭∑∑(2-5)式中,7,,1,0,,, =v u y x .⎪⎩⎪⎨⎧====其它10,021)()(v u v c u c在MATLAB 的图像处理对象箱中,可以直接挪用dct2和idct2来实现二维离散余弦变换及其反变换.(1) dct2dct2函数实现图像的二维离散余弦变换,其语法为: F=dct2(f) 运行下列程序: f=imread('cameraman.tif'); f=im2double(f); F=dct2(f);subplot(121),imshow(f,[ ]);subplot(122),imshow(log(1+20*abs(F)),[ ]); 运行成果如图2-4所示.图2-4图像显示及图像DCT 变换后频谱显示由运行成果可知,DCT 变换具有能量分散的性质,数据分散在左上角.是以进行图像紧缩时离散余弦变换矩阵可以舍弃右下角的高频数据.(2) idct2 idct2函数实现图像的二维离散余弦逆变换,其语法为: F=idct2(f)在MATLAB图像处理对象箱中,有一个对图像进行块操纵的函数blkproc,运用这个函数,可以直接实现图像一系列8×8子块的DCT变换.其语法格局为:B = blkproc(A,[m n],fun, parameter1,,parameter2, ...)B = blkproc(A,[m n],[mborder nborder],fun,...)B = blkproc(A,'indexed',...)[m n]是指图像以m*n为分块单位,对图像进行处理(如8像素*8像素) Fun:运用此函数对分离对每个m*n分块的像素进行处理parameter1, parameter2:要传给fun函数的参数mborder nborder:对每个m*n块高低进行mborder个单位的扩充,阁下进行nborder个单位的扩充,扩充的像素值为0,fun函数对全部扩充后的分块进行处理.如下列程序:I = imread('cameraman.tif');fun = idct2;J = blkproc(I,[8 8],fun);imagesc(J), colormap(hot)8×8的图像经由DCT变换后,其低频分量都分散在左上角,高频分量散布在右下角(DCT变换现实上是空间域的低通滤波器).因为该低频分量包含了图像的重要信息(如亮度),而高频与之比拟,就不那么重要了,所以我们可以疏忽高频分量,从而达到紧缩的目标.将高频分量去掉落,这就要用到量化,它是产生信息损掉的根源.这里的量化操纵,就是将某一个值除以量化表中对应的值.因为量化表左上角的值较小,右上角的值较大,如许就起到了保持低频分量,克制高频分量的目标.JPEG运用的色彩是YUV格局.我们提到过,Y分量代表了亮度信息,UV分量代表了色差信息.比拟而言,Y分量更重要一些.我们可以对Y采取细量化,对UV采取粗量化,可进一步进步紧缩比.所以上面所说的量化表平日有两张,一张是针对Y的,一张是针对UV的.DCT系数的量化量化是对经由DCT变换后的频率系数进行量化,其目标是减小非“0”系数的幅度以及增长“0”值系数的数量,它是图像质量降低的最重要原因.对于基于DCT的JPEG图像紧缩编码算法运用如图2-6所示的平均量化器进行量化,量化步距是按照系数地点的地位和每种色彩分量的色调值来肯定.因为人眼对亮度旌旗灯号比对色差旌旗灯号更迟钝,是以运用了表2-1所示的种量化表.此外,因为人眼对低频分量的图像比对高频分量的图像更迟钝,是以表中的左上角的量化步距要比右下角的量化步距小[9].亮度和色度因为代表的图像的信息量不合,亮度代表了图像的低频分量,色度代表了图像的高频分量,要分离对亮度和色度进行量化,所以量化表也是不合的.JPEG紧缩色度和亮器量化表如表2-1所示.量化会产生误差,上图是分解大量的图像测试的试验成果,对于大部分图像都有很好的成果.表中可以看出,高频部分对应的量化值大,目标就是将高频部分编程接近于0,以便今后处理.JPEG可以在紧缩比和图像质量间作弃取.办法就是转变量化值.假如量化值放大一倍,则有更多的系数量化为0,进步了紧缩比.2.2.4 量化系数的编排经由DCT变换后,低频分量分散在左上角,个中F(0,0)(即第一行第一列元素)代表了直流(DC)系数,即8×8子块的平均值,要对它单独编码.因为两个相邻的8×8子块的DC系数相差很小,所以对它们采取差分编码DPCM,可以进步紧缩比,也就是说对相邻的子块DC系数的差值进行编码.8×8的其它63个元素是交换(AC)系数,采取行程编码[10].所以量化后的系数要从新编排,目标是为了增长中断的“0”系数的个数,就是“0”的游程长度,办法是按照Z字形的式样编排.DCT变换后低频分量多呈圆形辐射状向高频率衰减,是以可以算作按Z 字形衰减.是以,量化系数按Z字形扫描读数,如许就把一个8×8的矩阵变成一个1×64的矢量,频率较低的系数放在矢量的顶部.量化后的DCT系数的编排如图2-7所示.图2-7 量化DCT系数的编排量化后的DCT系数的序号如表2-2所示.表2-2 量化DCT系数的序号0 1 5 6 14 15 27 282 4 7 13 16 26 29 423 8 12 17 25 30 41 439 11 18 24 31 40 44 5310 19 23 32 39 45 52 5420 22 33 38 46 51 55 6021 34 37 47 50 56 59 6135 36 48 49 57 58 62 63DC系数的编码8×8子块的64个变换系数经量化后,按直流系数DC和交换系数AC分成两类处理.坐标u=v=0的直流系数DC本质上就是空域图像中64个像素的平均值.图像块经由DCT变换之后得到的DC直流系数有两个特色,一是系数的数值比较大,二是相邻8×8图像块的DC系数值变更不大.依据这个特色,JPEG算法运用了差分脉冲调制编码技巧.差分脉冲编码调制(DPCM,Differential Pulse Code Modulation),是一种对模仿旌旗灯号的编码模式,先依据前一个抽样值盘算出一个猜测值,再取当前抽样值和猜测值之差作为编码用.此差值称为猜测误差.抽样值和猜测值异常接近(因为相干性强),猜测误差的可能取值规模比抽样值变更规模小.所以可用少几位编码比特来对猜测误差编码,从而降低其比特率.这是运用减小冗余度的办法,降低了编码比特率.是以,对DC系数编码进行差分脉冲编码就是对相邻图像块之间量化DC系进行编码,即对相邻块之间的DC系数的差值.DC采取差值脉冲编码的重要原因是因为在中断色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少很多.例如差值为5,它的二进制暗示值为101,假如差值为-5,则先改为正整数5,再将其二进制转换成1的补数即可.所谓1的补数,就是将每个Bit若值为0,便改成1;Bit为1,则变成0.差值5应保存的位数为3,列出差值所应保存的Bit数与差值内容的对比.在差值前端别的参加一些差值的霍夫曼码值,例如亮度差值为5(101)的位数为3,则霍夫曼码值应当是100,两者衔接在一路即为100101.2.2.6 AC系数的编码DCT变换所得系数除直流系数之外的其余63个系数称为交换系数(AC 系数).量化AC系数的特色是1×64矢量中包含有很多“0”系数,并且很多“0”是中断的,是以运用异常简略和直不雅的游程长度编码(RLE)对它们进行编码.所谓行程编码(Run-Length Encoding)就是指仅存储一个像素值以及具有雷同色彩的像素数量标图像数据编码方法,或称游程编码,经常运用RLE(Run-Length Encoding)暗示.该紧缩编码技巧相当直不雅和经济,运算也相当简略,是以解紧缩速度很快.RLE紧缩编码尤其实用于盘算机生成的图形图像,对削减存储容量很有后果[11].63个AC系数采取行程编码的方法进行编码的格局如图2-8所示.也即在AC01到AC63中,找出每一个非零的AC值,将其暗示成(NN/SS)VV的情势,个中:NN暗示该AC值前的0的个数.而SS.VV与DC的界说一样.假如中断的非0超出15个时,增长一个扩大字节:(15/0)暗示中断16个0.别的如有一串0延长到AC63,一律用(0/0)暗示停止.图2-8 AC 编码格局对于AC 系数,有两个符号.符号1为行程和尺寸,即上面的(RunLength,Size).(0,0)和(15,0)是两个比较特别的情形.(0,0)暗示块停止标记(EOB),(15,0)暗示ZRL,当行程长度超出15时,用增长ZRL 的个数来解决,所以最多有三个ZRL(3×16+15=63).符号2为幅度值(Amplitude).对于DC 系数,也有两个符号.符号1为尺寸(Size);符号2为幅度值(Amplitude).对于AC 系数,符号1和符号2分离进行编码.零行程长度超出15个时,有一个符号(15,0),块停止时只有一个符号(0,0).对符号1进行Huffman 编码(亮度,色差的Huffman 码表不合).对符号2进行变长整数VLI 编码.举例来说:Size=6时,Amplitude 的规模是-63~-32,以及32~63,对绝对值雷同,符号相反的码字之间为反码关系.所以AC 系数为32的码字为100000,33的码字为100001,-32的码字为011111,-33的码字为011110.符号2的码字紧接于符号1的码字之后.对于DC 系数,Y 和UV 的Huffman 码表也不合.2.2.7 构成位数据流JPEG 编码的最后一个步调是把各类标识表记标帜代码和编码后的图像数据构成一帧一帧的数据,如许做的目标是为了便于传输.存储和译码器进行译码,如许的组织的数据平日称为JPEG 位数据流(JPEGbitstream)[12].举个例子来解释上述进程.下面为8×8的亮度(Y)图像子块经由量化后的系数,如表2-3所示.第一字节第二字节。
基于DCT的图像压缩编码算法及Matlab实现
基于DCT的图像压缩编码算法及Matlab实现电子与信息工程学院信号与信息处理刘厚鹏1030092090基于DCT的图像压缩编码算法及Matlab实现一.DCT介绍离散余弦变换(Discrete Cosine Transform,简称DCT变换)是一种与傅立叶变换紧密相关的数学运算。
在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。
二.基于DCT的图像压缩编码算法的表述在编码过程中,首先将输入图像分解为8⨯8大小的数据块,然后用正向二维DCT,把每个块转变成64个DCT系数值,其中1个数值是直流(DC)系数,即8⨯8空域图像子块的平均值,其余的63个是交流(AC)系数,接下来对DCT系数进行量化,最后将变换得到的量化的DCT系数进行编码和传送,形成压缩后的图像格式.在解码过程中,先对已编码的量子化的DCT系数进行解码,然后求逆量化并把DCT系数转化为8⨯8样本像块(使用二维DCT反变换),最后将操作完成后的块组合成一个单一的图像.这样就完成了图像的压缩和解压过程.三.Matlab实现应用MATLAB仿真实现中,主要是在解析式定义基础上采用二维DCT变换的矩阵式定义来实现的.MATLAB仿真实现过程:I=imread('1.tif');I=im2double(I);T=dctmtx(8);B=blkproc(I,[8 8],'P1*x*P2',T,T');mask=[1 1 1 1 0 0 0 01 1 1 0 0 0 0 01 1 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0];B2=blkproc(B,[8 8],'P1.*x',mask);I2=blkproc(B2,[8 8],'P1*x*P2',T',T);imshow(I)title('原始图像')figure;imshow(I2)title('压缩后的图像')四:压缩结果:原始图像:压缩后的图像五:结论数字图像的固有缺陷是其特别巨大的数据量,与传输网络有限的传输能力形成了一对矛盾,成为制约数字图像应用的瓶颈。
实验三 基于DCT的数字图像压缩及Matlab实现【定稿材料】
Icpress2=blkproc(Id2,[16,16],'P1.*x',M2);%压缩数据,只保留左上角低频数据
Iodct2=blkproc(Icpress2,[16,16],'P1*x*P2',T2',T2);%DCT反变换,得到压缩后的图像
cha2=abs(Idouble2-Iodct2);
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 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 0 0];
(2)DCT和图像压缩
DCT编码属于正交变换编码方式,用于去除图像数据的空间冗余。变换编码就是将图像光强矩阵(时域信号)变换到系数空间(频域信号)上进行处理的方法。在空间上具有强相关的信号,反映在频域上是在某些特定的区域内能量常常被集中在一起,或者是系数矩阵的分布具有某些规律。我们可以利用这些规律在频域上减少量化比特数,达到压缩的目的。
%压缩数据,只保留左上角低频数据
Iodct=blkproc(Icpress,[8,8],'P1*x*P2',T',T);
%DCT反变换,得到压缩后的图像
cha=abs(Idouble-Iodct);
junfang=mse(cha);
figure(1);
subplot(211)
imshow(I)
title('原始图像','Fontsize',26);
基于MATLAB的DCT变换在JPEG图像压缩中的应用
基于MATLAB的DCT变换在JPEG图像压缩中的应用
基于MATLAB的DCT变换在JPEG图像压缩中的应用
介绍了JPEG图像压缩算法,并在MATLAB数学分析工具环境下从实验角度出发,较为直观地探讨了DCT在JPEG图像压缩中的应用.仿真实验表明,用MATLAB来实现离散余弦变换的图像压缩,具有方法简单、速度快、误差小的优点,大大提高了图像压缩的效率和精度.
作者:李秀敏万里青周拥军 LI Xiu-min WAN li-qing ZHOU Yong-jun 作者单位:李秀敏,万里青,LI Xiu-min,WAN li-qing(河南科技大学,电子信息工程学院,河南,洛阳,471003)
周拥军,ZHOU Yong-jun(中航一集团洛阳电光设备研究所,河南,洛阳,471009)
刊名:电光与控制ISTIC PKU 英文刊名:ELECTRONICS OPTICS & CONTROL 年,卷(期):2005 12(2) 分类号:V271.4 TN391.9 关键词: MATLAB软件 DCT变换 JPEG标准图像压缩。
基于DCT的JPEG图像压缩及实现
基于DCT的JPEG图像压缩摘要:对于图像来说,如果需要进行快速或实时传输,就要对图像进行压缩,而随着网络的发展,图像压缩技术越来越被人们所关注。
DCT变换是图像压缩的一项重要技术。
本文主要针对基于DCT变换的JPEG图像压缩进行探讨和研究,为了体现压缩变换其效果的明显程度,借助于Matlab软件编写对应算法,进行了算法仿真。
同时,通过具体的实例图片,对所压缩图像前后效果进行对比,压缩效果明显。
其方法简单、速度快且误差小,大大提高了图像压缩的效率。
关键词:DCT变换图像压缩Matlab实现Abstract: For images, if needed fast or real-time transmission, it is very necessary to compress compress the image, and with the development of networks,what the image compression technology has been growing concern. DCT transform is an important h- -echnology for image compression. In this paper, DCT-based JPEG image studies, a- -nd simulation using Matlab for the algorithm, the method is simple, fast and error is small, greatly improving image compression efficiency.Keywords:DCT transform image compression Matlab implementation1、引言对于图像来说,如果需要进行快速或实时传输,就需要对图像进行压缩,图像压缩研究的就是寻找高压缩比的方法且压缩后的图像要有合适的信噪比,在压缩传输后还要恢复原信号。
DCT图像压缩方法
•
•
根据得出的图像分析DCT和IDCT变换过程中, 矩形系数变换受到了影响。经过 DCT 系数量化阈值 设定,从而改变中间矩阵 “0”数量的多少,因此要想 得到较好的压缩比,又想保持图像不失真过度,可 以根据对图像质量的要求而选择合适的压缩比。
六.程序代码
• I=imread('16.jpg') • I=im2double(I) • J=dct2(I); %转换图像矩阵为双精度型。
Huffman编码
• Huffman 编码是 1952 年由 Huffman 提出的非等长最 佳编码方法。所谓最佳编码,就是在具有相同输入 概率集合的前提下,其平均码长比其他任何一种编 码都要短。 Huffman 编码是一种统计编码,属于无 损压缩编码。霍夫曼编码的码长是变化的,对于出 现频率高的信息,编码的长度较短;而对于出现频 率低的信息,编码长度较长。这样,处理全部信息 的总码长一定小于实际信息的符号长度。
• 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;
DCT图像压缩方法
——基于MATLAB仿真.DCT压缩方法概述 • 三.DCT压缩原理流程
• 四.MATLAB仿真结果
• 五.实验分析 • 六.程序代码
一.项目要求
• 要求学生学习并掌握一种图像压缩方法,学习 算法的基本原理,进行算法设计,掌握 matlab 编程。 最终利用 matlab 实现压缩算法的仿真并分析。压缩 算法可选用DCT压缩方法和JPEG压缩方法。学生也 可自主选择其他方法。要求完成算法设计、仿真、 分析等工作。
基于DCT图像压缩及MATLAB实现
大学本科生毕业设计(论文)基于DCT的图像压缩及MATLAB实现学院(系):专业班级:学生姓名:指导教师:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。
本人完全意识到本声明的法律后果由本人承担。
作者签名:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权省级优秀学士论文评选机构将本学位论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
本学位论文属于1、保密囗,在年解密后适用本授权书2、不保密囗。
(请在以上相应方框内打“√”)作者签名:年月日导师签名:年月日本科生毕业设计(论文)任务书学生姓名:专业班级:指导教师:工作单位:设计(论文)题目:基于DCT的图像压缩及MATLAB实现设计(论文)主要内容:论文阐述DCT(离散余弦变换)的图像压缩基本理论,以及用MATLAB实现DCT 的图像压缩方法。
重点讨论基于DCT图像压缩的方法,并在MATLAB环境下进行仿真实验,与其他图像压缩方法进行比较,总结其优缺点以及基于DCT的图像压缩技术的现实意义。
要求完成的主要任务:1.掌握图像压缩的基本原理;2.掌握DCT基本原理;3.分析基于DCT的图像压缩编码理论;4.在MATLAB环境下,对基于DCT图像压缩进行仿真实验;5.总结基于DCT的图像压缩技术的现实意义;6.要求阅读相关的参考文献不少于15篇,其中英文文献不少于3篇,翻译与选题相关的英文参考文献不少于2万印刷符;7.按照学校的论文撰写规范,正确、按时的完成论文。
必读参考资料:1.《数字图像处理(第二版)》,冈萨雷斯著,阮秋琦译,电子工业出版社2.《数字图像处理与压缩编码技术》,黄贤武、王加俊、李宗华著,电子科技大学出版社3.《MATLAB及在电子信息课程中的应用(第3版)》,陈怀琛、吴大正、高西全著,电子工业出版社指导教师签名:系主任签名:院长签名(章)本科生毕业设计(论文)开题报告目录摘要.............................................................................................................................................................. I Abstract .......................................................................................................................................................... II 1 绪论. (1)1.1 图像压缩的必要性 (1)1.2离散傅里叶变换(DFT)与离散余弦变换(DCT)的比较 (3)2 图像压缩的基本原理 (4)2.1 图像压缩的基本思想 (4)2.2 图像压缩的基本原理模型 (4)3 DCT编码算法 (7)3.1 一维DCT (7)3.2 二维DCT (9)3.3 一维DCT快速算法 (10)4 DCT系数的量化 (16)5 MA TLAB实现 (19)5.1 MA TLAB语言的特点 (19)5.2 MA TLAB的功能 (19)5.3 离散余弦变换的MA TLAB实现 (20)6 图像压缩中DCT算法和其他算法的比较 (24)6.1 KLT和DCT两种算法的比较 (24)6.2 小波变换和DCT两种算法的比较 (25)6.3 算法比较总结 (27)7 利用DCT进行图像压缩的优缺点 (27)小结 (29)参考文献 (30)致谢 (31)摘要本文对DCT的算法原理进行了分析,利用二维DCT对图像进行压缩,并使用MATLAB软件进行压缩过程的仿真,之后将DCT和其他的压缩算法进行比较,总结其优缺点,所得结果具有重要的理论价值和现实意义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
院(系、所)信息与机电学院专业通信与信息系统考试科目数字压缩第三学期研究生姓名张鹏学号*********摘要图像压缩是关于用最少的数据量来表示尽可能多的原图像的信息的一个过程。
对于图像来说,如果需要进行快速或实时传输以及大量存储,就需要对图像数据进行压缩,如果图像数据压缩后再传输,就可以传输更多的图像信息,也就可以增加通信的能力。
变换编码是把图像中的各个像素从一种空间变换到另一种空间.然后针对变换后的信号进行量化与编码操作的一种图象压缩编码技术。
本文提出了基于DCT变换的图像压缩编码算法进行研究,并用MATLAB进行实验仿真,重点介绍了压缩编码的具体过程和方法 ,详细介绍了编码中DCT变换、量化、熵编码等模块的原理和数学推导以及各模块的功能分析,基于DCT 变换的图像压缩方法简单、方便,既能保证有较高的压缩比,又能保证有较好的图像质量,应用MATLAB仿真出来的结果较好的反应了其编码算法原理。
关键词:图像压缩 DCT变换 MATLABAbstractˎ̥Image compression is a process about the least amount of data to show the original image information as much as possible. For images, if the requirement of high-speed and real-time transmission and a large amount of storage, we need to compress the image data, if the image data compression and transmission, can transmit more information of the image, also can increase the ability of communication. Transform coding is that each pixel in the image from a space to another space. Coding an image and then quantization and coding operation according to the transformed signal.This paper puts forward DCT transform for image compression coding algorithm based on study, and experimental simulation using MATLAB, focuses on process and compression coding method, a detailed analysis of principle and mathematical derivation of the DCT transform coding, quantization, entropy coding module and the function of each module, DCT transform for image the compression method is simple, convenient and based on, which can ensure a higher compression ratio, but also ensure a better image quality, the application of MATLAB simulation results reflect the coding algorithm.Key word:Image compression DCT transform MATLAB基于DCT变换的图像压缩及matlab仿真一.图像压缩编码的概念压缩的理论基础是信息论,从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息(可推知的),也就是用一种更接近信息本质的描述来代替原有冗余的描述。
这个本质的东西就是信息量(即不确定因素)。
二.图像编码的分类图像编码压缩的方法目前有很多,其分类方法根据出发点不同而有差异。
根据解压重建后的图像和原始图像之间是否具有误差(对原图像的保真程度),图像编码压缩分为无误差(亦称无失真、无损、信息保持)编码和有误差(有失真或有损)编码两大类。
无损压缩(冗余度压缩、可逆压缩):是一种在解码时可以精确地恢复原图像,没有任何损失的编码方法,但是压缩比不大,通常只能获得1~5倍的压缩比。
用于要求重建后图像严格地和原始图像保持相同的场合,例如复制、保存十分珍贵的历史、文物图像等。
有损压缩(不可逆压缩):只能对原始图像进行近似的重建,而不能精确复原,适合大数工用于存储数字化了的模拟数据。
压缩比大,但有信息损失,本文采用有损压缩。
三.编码压缩系统介绍(1)编码压缩系统基于DCT 编码的压缩过程简化图(2)DCT 变换离散余弦变换(DCT)是一种与离散傅立叶变换紧密相关的正交变换,8×8的二维离散余弦变换可以将图像的空间表达式转换到频率域,只用少量的数据点来表达图像,用f(x,y)表示8×8的图像块象素值,F(u,v)表示二维离散余弦变换后的值,具体表达式如下:(1.1)其反变换如下式:(1.2)其中,(1.3)通过对8*8的图像块进行二维DCT 变换,可以把每个图像块转化成64个DCT 系数值,其中一个数值是直流(DC )系数,即8*8图像空域块的平均值,体现了()()()()()()⎥⎦⎤⎢⎣⎡++=∑∑==70701612cos 1612cos ,41,x y v u v y u x y x f C C v u F ππ()()()()()()⎥⎦⎤⎢⎣⎡++=∑∑==70701612cos 1612cos ,41,x y v u v y u x y x F C C y x F ππ()()()()⎪⎩⎪⎨⎧===其他情况当10u 22v C C v u图像中的低频分量;其余63个是交流(AC)系数,体现了图像的高频细节部分。
(3)量化在DCT处理中得到的64个数据中,低频分量包含了图像亮度等主要信息。
在从空间域到频域的变换中,图像中的缓慢变化比快速变化更易引起人眼的注意,所以在重建图像时,低频分量的重要性高于高频分量。
因而在编码时可以忽略高频分量,即减小非“0”系数的幅度以及增加“0”值系数的数目,从而达到压缩的目的,这也是量化的根据和目的,也是图像质量下降的最主要原因。
在JPEG标准中,用具有64个独立元素的量化表来规定DCT域中相应的64个系数的量化精度,使得对某个系数的具体量化阶取决于人眼对该频率分量的视觉敏感程度。
量化就是用DCT变换后的系数除以量化表中相对应的量化阶后四舍五入取整。
由于量化表中左上角的值较小,而右下角的值较大,因而起到了保持低频分量、抑制高频分量的作用。
(4)编码1、“Z”字型扫描量化后的数据本来已经可以直接进行游程编码,但为了提高游程编码的效率,我们必须尽量增加零游程的长度。
基于量化后系数的排列特征,采用“Z”字型扫描能有效增加零游程的长度。
“Z”字型扫描轨迹如图所示:2、哈夫曼(Huffman)编码及解码哈夫曼编码是1952年由Huffman提出的编码方法,基本思想是根据源数据符合出现的概率大小进行编码,出现概率大的符号分配越短的码字,出现概率越小的符号分配越长的码字,从而达到用尽量少的比特数表示数据源,标准哈夫曼编码步骤如下:(1)统计数据源符号出现的概率,得到不同概率的信息符号;(2)将数据源符号按概率递减顺序排列;(3)把两个最小概率相加作为新符号的概率,并按(2)重排;(4)重复(1)、(2),直到概率为1;(5)在每次合并信源时,将合并的信源分别赋“0”和“1”;(6)寻找从每一信源符号到概率为1处的路径,记录路径上的“0”和“1”;(7)从树根开始写出每一符号的“0”、“1”。
用标准哈夫曼编码对图像进行编码时效率很高,但需要对原始图像扫描两遍,第一遍要精确统计出每个像素值出现的概率,第二遍是建立哈夫曼树并编码,数据压缩和解压速度较慢,因此,出现了一种改良的哈夫曼编码,它的变长码字不是实时产生而是一个固定的表,在编码和解码过程中不用计算符号概率和排序,直接查表得到,但这个表必须经过大量的统计工作并精心设计才能达到较高的编码效率。
在静态图像压缩国际标准(JPEG标准)中,专家组已经对大量自然图像进行了统计,得到了适合于静态自然图像编码的哈夫曼表,在实际编码过程中,我们可直接应用此表进行编码和解码。
四.MATLAB仿真代码五.结论人生中每一次对自己心灵的释惑,都是一种修行,都是一种成长。
相信生命中的每一次磨砺,都会让自己的人生折射出异常的光芒,都会让自己的身心焕发出不一样的香味。
我们常常用人生中的一些痛,换得人生的一份成熟与成长,用一些不可避免的遗憾,换取生命的一份美丽。
在大风大雨,大风大浪,大悲大喜之后,沉淀出一份人生的淡然与淡泊,静好与安宁,深邃与宽厚,慈悲与欣然……生活里的每个人,都是我们的一面镜子,你给别人什么,别人就会回待你什么。
当你为一件事情不悦的时候,应该想想你给过人家怎样负面的情绪。
世界上的幸福,没有一处不是来自用心经营和珍惜。
当你一味的去挑剔指责别人的时候,有没有反思过自己是否做得尽善尽美呢?假如你的心太过自我,不懂得经营和善待,不懂得尊重他人的感受,那么你永远也不会获得真正的爱和幸福……人生就像一场旅行,我们所行走的每一步都是在丰富生命的意义。
我们一边穿越在陌生的吸引里,一边咀嚼回味着一抹远走光阴的旧味,一切都是不可预料,一切又似在预料之中。
人生看的多了,走的多了,经历的多了,也就懂得多了。
每一份深刻的感悟大多来自一个人深刻的经历。
人生总有那么一两件重大的事情让你成熟和改变。
这份错失,会让你反思自己,检讨自己,叩问自己,也让你意识到了自己真正的缺失,这或许就是一份痛苦的领悟吧!人生可以平平淡淡,亦可以异彩纷呈。
相信只要自己的德馨足够善美,上天就会把最好的一切赐予你。
予人快乐,收获快乐;予人幸福,收获幸福;予人真情,收获厚意。
人生的一切往来皆有因果,生活只善待有心人……假如你有一颗计较的心,你就会很难获得一份幸福。
当一个人放下了自己内心的那份累心的奢求,你的心空就会变得更加蔚蓝干净。