ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:100.60KB ,
资源ID:4082884      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4082884.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于DCT的图像压缩编码算法的MATLAB实现.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于DCT的图像压缩编码算法的MATLAB实现.docx

1、基于DCT的图像压缩编码算法的MATLAB实现 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998基于DCT的图像压缩编码算法的MATLAB实现摘要随着科学技术的发展,图像压缩技术越来越引起人们的关注。为此从众多的图像压缩编码标准中选取了基于DCT变换的JPEG图像压缩编码算法进行研究,并通过对比分析各种软件特性选取了MATLAB进行实验仿真。首先说明了图像压缩在现代通信中的必要性和可行性,然后讲述了MATLAB及其图像处理工具箱的相关知识,并对基于DCT变换的JPEG图像压缩算法进行了详细的研究,重点介绍了JPEG压缩编码的具体过程和方

2、法 ,详细介绍了编码中DCT变换、量化、熵编码和霍夫曼编码等模块的原理和数学推导以及各模块的功能分析。最后应用MATLAB进行了实验仿真并分析结果得出结论。实验结果表明基于DCT 变换的JPEG 图像压缩方法简单、方便,既能保证有较高的压缩比,又能保证有较好的图像质量,应用MATLAB仿真出来的结果较好的反应了其编码算法原理。关键词JPEG图像压缩;DCT;MATLAB;图像处理工具箱第1章 绪论 课题背景随着信息技术的发展,图像信息被广泛应用于多媒体通信和计算机系统中,但是图像数据的一个显着特点就是信息量大。具有庞大的数据量,如果不经过压缩,不仅超出了计算机的存储和处理能力,而且在现有的通信

3、信道的传输速率下,是无法完成大量多媒体信息实时传输的,因此,为了更有效的存储、处理和传输这些图像数据,必须对其进行压缩,因此有必要对图像压缩编码进行研究。由于组成图像的各像素之间,无论是在水平方向还是在垂直方向上都存在着一定的相关性,因此只要应用某种图像压缩编码方法提取或者减少这种相关性, 就可以达到压缩数据的目的1。数字图像的冗余主要表现在以下几种形式:空间冗余:规则物体和规则背景的表面物理特性都具有相关性,数字化后表现为数字冗余。例如:某图片的画面中有一个规则物体,其表面颜色均匀,各部分的亮度、饱和度相近,把该图片作数字化处理,生成位图后,很大数量的相邻像素的数据是完全一样或十分接近的,完

4、全一样的数据当然可以压缩,而十分接近的数据也可以压缩,因为恢复后人亦分辨不出它与原图有什么区别,这种压缩就是对空间冗余的压缩。时间冗余:序列图像(如电视图像和运动图像)和语音数据的前后有着很强的相关性,经常包含着冗余。在播出该序列图像时,时间发生了推移,但若干幅画面的同一部位没有变化,变化的只是其中某些地方,这就形成了时间冗余。统计冗余:空间冗余和时间冗余是把图像信号看作概率信号时所反应出的统计特性,因此,这两种冗余也被称为统计冗余。编码冗余:同样长度的编码可以表示不同的信息。结构冗余:相似的,对称的结构如果都加以记录就出现结构冗余。知识冗余:由图像的记录方式与人对图像的知识差异而产生的冗余。

5、人对许多图像的理解与某些基础知识有很大的相关性。许多规律性的结构,人可以由先验知识和背景知识得到。而计算机存储图像时还得把一个个像素信息存入,这就形成冗余。视觉冗余:视觉系统对于图像场的注意是非均匀和非线性的,视觉系统不是对图像的任何变化都能感知。所谓的图像压缩编码技术就是对要处理的图像数据按一定的规则进行变换和组合, 从而达到以尽可能少的数据流(代码)来表示尽可能多的数据信息。在众多的图像压缩编码标准中,JPEG(Joint Photographic Experts Group)格式是一种称为联合图像专家组的图像压缩格式,它适用于不同类型、不同分辨率的彩色和黑白静止图像2。在JPEG图像压缩

6、算法中,一种是以离散余弦变换(DCT,Discrete Cosine Transform)为基础的有损压缩算法,另一种是以预测技术为基础的无损压缩算法。1.1.1 离散余弦变换 DCT变换利用傅立叶变换的性质。采用图像边界褶翻将像变换为偶函数形式,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换。DCT编码属于正交变换编码方式,用于去除图像数据的空间冗余。变换编码就是将图像光强矩阵(时域信号)变换到系数空间(频域信号)上进行处理的方法。在空间上具有强相关的信号,反映在频域上是在某些特定的区域内能量常常被集中在一起,或者是系数矩阵的分布具有某些规律。我们可以利用这些规律在

7、频域上减少量化比特数,达到压缩的目的。图像经DCT变换以后,DCT系数之间的相关性就会变小。而且大部分能量集中在少数的系数上,因此,DCT变换在图像压缩中非常有用,是有损图像压缩国际标准JPEG的核心。从原理上讲可以对整幅图像进行DCT变换,但由于图像各部位上细节的丰富程度不同,这种整体处理的方式效果不好。为此,发送者首先将输入图像分解为8*8或16*16块,然后再对每个图像块进行二维DCT变换,接着再对DCT系数进行量化、编码和传输;接收者通过对量化的DCT系数进行解码,并对每个图像块进行的二维DCT反变换。最后将操作完成后所有的块拼接起来构成一幅单一的图像。对于一般的图像而言,大多数DCT

8、系数值都接近于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

9、比图像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年提出电视信号数字化后,图像压缩编码的研究工作就宣告开始了。在这项技术发展的早期,限于客观条件,仅对帧内预测法和亚取样内查复原法进行研究,对视觉特性也做了一些极为有

10、限但可贵的研究工作。1966年 Neal对比分析了DPCM和PCM并提出了用于电视的实验数据。1969年进行了线性预测编码的实际实验。1969年举行首届图像编码会议。70年代开始进行了帧间预测编码的研究。80年代开始对运动估值和模型编码进行研究3。进入90年代,ITU-T和ISO制定了一系列图像编码国际建议,如、JPEG、MPEG-1、MPEG-4等。1.2.2 图像编码技术的现状经过几十年的发展,图像编码技术业已成熟,一些国际建议的制定极大地推动了图像编码技术的实现和产业化,从而推动图像编码技术以更快的速度发展,目前的研究方向有两个:(1) 更好地实现现有的图像编码国际建议。 研制出集成度更

11、高、性能更好的图像编码专用芯片,使编码系统成本更低、可靠性更高。解决好现有的图像编码系统开发中的技术问题。例如:提高图像质量、提高抗码能力等。 (2) 对图像编码理论和其他图像编码方法的研究。 目前已经提出和正在进行研究的图像编码方法有:多分辨率编码、基于表面描述的编码、模型编码、利用人工神经网络的编码、利用分形几何的编码、利用数学形态学的编码等等。 MATLAB 及其图像处理工具箱 如果应用高级语言(如Basic,C,Fortran)编写仿真程序来实现这一基于DCT的图像压缩编码算法比较麻烦,而且仿真效果也不是十分理想。本文主要应用MATLAB发布的图像处理工具箱中的相关函数和命令来实基于D

12、CT的图像压缩编码理论算法的仿真。MATLAB语言是由美国MathWorks公司推出的计算机软件,经过多年的逐步发展与不断完善,现已成为国际公认的最优秀的科学计算与数学应用软件之一,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境,而且还具有可扩展性特征。MATLAB中的数字图像是以矩阵形式表示的,矩阵运算的语法对MATLAB中的数字图像同样适用,这意味着MATLAB强大的矩阵运算能力对用于图像处理非常有利。图像处理工具箱(Image Processing Toolbox)提供了一套全方位的参照标准算法和图形工具,用于进行图像处理、分析、可视化和算法开发。

13、可进行图像压缩、空间转换、图像增强、特征检测、降噪、图像分割和图像配准等功能。工具箱中大部分函数均以开放式 MATLAB 语言编写,这意味着可以检查算法、修改源代码和创建自定义函数。本文利用MATLAB图像处理工具箱对基于DCT的JPEG图像压缩编码理论算法进行仿真,实验证明该软件功能强大,语言简洁易学,工具箱具有丰富的技术支持并集成了该领域专家的智慧,应用简单而效果良好。第2章 图像压缩编码理论算法 DCT变换的思想来源信号的变换分析方法中,通常是通过一组适当的基函数对信号进行分解,得到信号在变换域的表示方法,利用信号在变换域中某些特征趋于集中的特点来提取其特征从而进行分析。自1822年傅立

14、叶(Fourier)发表“热传导解析理论”以来,傅立叶变换一直是信号处理领域中应用最广泛、效果最好的一种分析手段。但傅立叶变换只是一种纯频域的分析方法,它在频域的定位性是完全准确的(即频域分辨率最高),而在时域无任何定位性(或分辩能力),也即傅立叶变换所反映的是整个信号全部时间下的整体频域特征,而不能提供任何局部时间段上的频率信息。事实上,在我们生活中的常见信号通常都具有非平稳的性质,即其频域性质都是随时间而变化的。对这一类信号用傅立叶变换进行分析,虽然可以知道信号所包含有哪些频率信息,但不能知道这些频率信息具体出现在哪个时间段上,因此不能提供关于信号完整的信息。可见,傅立叶变换不适用于提取局

15、部时间段(或瞬间)的频域特征信息4。为了研究信号在局部时间范围的频域特征,1946年Gabor提出了着名的Gabor变换。其基本思想是,取时间函数作为窗口函数,用与待分析函数相乘,然后再进行傅立叶变换。在Gabor变换的基础上,为了适应不同问题的需要,进一步发展了多种形式的窗口函数,如矩形窗、汉宁窗、哈明窗等,这一类加窗的傅立叶变换统称为短时傅立叶变换(STFT)。STFT从本质上讲,是用窗函数截取原始信号的一个待分析段进行傅立叶变换,因而可以描述信号在某一局部时间段上的频率信息。目前,STFT在许多领域获得了广泛的应用,但由于STFT的定义决定了其窗函数的大小和形状均与时间和频率无关,一旦选

16、定窗口就保持固定不变,不利于分析时变信号。实际上一般的高频信号持续时间较短,而低频信号持续时间较长,因此我们期望对于高频信号采用小时间窗,对于低频信号采用大时间窗进行分析。在进行信号分析时,这种变时间窗的要求同STFT的固定时窗(窗不随频率而变化)的特性是相矛盾的5。离散余弦变换(DCT)从本质上是一种变换分析方法,要在变换时最大的去除分析信号的相关性提取其特征,就必须适当的构造一组基函数,这组基函数以某种形式类似于我们所要表示的数据,甚至具有与数据相同的相关结构。在我们日常生活中常遇到的信号在空间域和频域都具有相关性。在空间上相隔较近的样值间的相关性比相隔较远的大的多,而在频域上通常呈带状。

17、为了分析和表示这样的信号,我们需要基函数在空间域和频域是局域性的。由于离散余弦函数的频域分辨率与时域分辨率成反比,刚好与实际信号长时低频、短时高频的特性相吻合,既能精确定位信号的突发跳变,又能把握信号的整体变化率。由此可见,离散余弦变换是一种比较理想的进行信号处理的数学工具6。图像压缩编码的理论算法。(1)基于DCT的JPEG图像压缩编码理论算法 基于DCT编码的JPEG编码压缩过程框图,如图2-1所示。图2-1 基于DCT编码的JPEG压缩过程简化图上图是基于DCT变换的图像压缩编码的压缩过程,解压缩与上图的过程相反。在编码过程中,首先将输入图像颜色空间转换后分解为88大小的数据块,然后用正

18、向二维DCT把每个块转变成64个DCT系数值,其中1个数值是直流(DC)系数,即88空域图像子块的平均值,其余的63个是交流(AC)系数,接下来对DCT系数进行量化,最后将变换得到的量化的DCT系数进行编码和传送,这样就完成了图像的压缩过程。在解码过程中,形成压缩后的图像格式,先对已编码的量子化的DCT系数进行解码,然后求逆量化并把DCT系数转化为88样本像块(使用二维DCT反变换),最后将操作完成后的块组合成一个单一的图像。这样就完成了图像的解压过程。 基于DCT的JPEG图像压缩编码步骤2.2.1 颜色空间的转换和采样JPEG文件使用的颜色空间为1982年推荐的电视图像数字化标准CCIR

19、601(现为ITU-RB 。在这个色彩空间中,每个分量、每个像素的电平规定为255级,用8位代码表示。JPEG只支持YCbCr颜色模式。其中Y代表亮度,CbCr代表色度。全彩色图像RGB模式转换到YCbCr模式,用下组公式。 (2-1) 其逆变换为: (2-2)JPEG是以88的块为单位来进行处理的,由于人眼对亮度Y的敏感度比色度CbCr的敏感度大的多,所以采用缩减取样的方式,通常采用YUV422取样,图2-2所示。图2-2 YUV422取样示意图即对于1616的块,Y取4个88的块,CbCr各取2个88的块。也有YUV411方式,Y取4个88的块,CbCr各取1个88的块。YUV422取样方

20、式,数据减少1/3。YUV411取样方式,数据减少1/2。缩减取样一般采用图2-3所示方法。图2-3 压缩取样示意图2.2.2 二维离散余弦变换 在傅里叶级数展开式中,如果被展开的函数是实偶函数,那么,其傅里叶技术中只包含余弦项,在将其离散化由此可导出余弦变换,或称之为离散余弦变换(DCT,Discrete Cosine Transform)7。二维离散余弦正变换公式为 (2-3)式中,。二维离散余弦逆变换公式为 (2-4)式中,。 JPEG采用的是88大小的子块的二维离散余弦变换。在编码器的输入端,把原始图像顺序地分割成一系列88的子块,子块的数值在-128到127之间。采用余弦变换获得64

21、个变换系数8。变换公式,如式(2-5)所示。 (2-5)式中,。 在MATLAB的图像处理工具箱中,可以直接调用dct2和idct2来实现二维离散余弦变换及其反变换。(1) dct2dct2函数实现图像的二维离散余弦变换,其语法为:F=dct2(f)运行下列程序:f=imread();f=im2double(f);F=dct2(f);subplot(121),imshow(f, );subplot(122),imshow(log(1+20*abs(F), );运行结果如图24所示。图24 图像显示及图像DCT变换后频谱显示由运行结果可知,DCT变换具有能量集中的性质,数据集中在左上角。因此进行

22、图像压缩时离散余弦变换矩阵可以舍弃右下角的高频数据。(2) idct2 idct2函数实现图像的二维离散余弦逆变换,其语法为:F=idct2(f)在MATLAB图像处理工具箱中,有一个对图像进行块操作的函数blkproc,利用这个函数,可以直接实现图像一系列88子块的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:应用

23、此函数对分别对每个m*n分块的像素进行处理parameter1, parameter2:要传给fun函数的参数mborder nborder:对每个m*n块上下进行mborder个单位的扩充,左右进行nborder个单位的扩充,扩充的像素值为0,fun函数对整个扩充后的分块进行处理。如下列程序:I = imread(); fun = idct2;J = blkproc(I,8 8,fun);imagesc(J), colormap(hot)运行结果如图2-5所示。图2-5 DCT变换后图像88的图像经过DCT变换后,其低频分量都集中在左上角,高频分量分布在右下角(DCT变换实际上是空间域的低通

24、滤波器)。由于该低频分量包含了图像的主要信息(如亮度),而高频与之相比,就不那么重要了,所以我们可以忽略高频分量,从而达到压缩的目的。将高频分量去掉,这就要用到量化,它是产生信息损失的根源。这里的量化操作,就是将某一个值除以量化表中对应的值。由于量化表左上角的值较小,右上角的值较大,这样就起到了保持低频分量,抑制高频分量的目的。JPEG使用的颜色是YUV格式。我们提到过,Y分量代表了亮度信息,UV分量代表了色差信息。相比而言,Y分量更重要一些。我们可以对Y采用细量化,对UV采用粗量化,可进一步提高压缩比。所以上面所说的量化表通常有两张,一张是针对Y的,一张是针对UV的。2.2.3 DCT系数的

25、量化量化是对经过DCT变换后的频率系数进行量化,其目的是减小非“0”系数的幅度以及增加“0”值系数的数目,它是图像质量下降的最主要原因。对于基于DCT的JPEG图像压缩编码算法使用如图2-6所示的均匀量化器进行量化,量化步距是按照系数所在的位置和每种颜色分量的色调值来确定。因为人眼对亮度信号比对色差信号更敏感,因此使用了表2-1所示的种量化表。此外,由于人眼对低频分量的图像比对高频分量的图像更敏感,因此表中的左上角的量化步距要比右下角的量化步距小9。图2-6 均匀量化器亮度和色度因为代表的图像的信息量不同,亮度代表了图像的低频分量,色度代表了图像的高频分量,要分别对亮度和色度进行量化,所以量化

26、表也是不同的。JPEG压缩色度和亮度量化表如表2-1所示。表2-1 JPEG压缩色度和亮度量化表亮度量化表色度量化表16111016244051611718244799999999121214192658605518212666999999991413162440576956242656999999999914172229518780624766999999999999182237566810910377999999999999999924355564811041139299999999999999994964788710312112010199999999999999997992959811

27、2100103999999999999999999量化会产生误差,上图是综合大量的图像测试的实验结果,对于大部分图像都有很好的结果。表中可以看出,高频部分对应的量化值大,目的就是将高频部分编程接近于0,以便以后处理。JPEG可以在压缩比和图像质量间作取舍。方法就是改变量化值。如果量化值放大一倍,则有更多的系数量化为0,提高了压缩比。2.2.4 量化系数的编排经过DCT变换后,低频分量集中在左上角,其中F(0,0)(即第一行第一列元素)代表了直流(DC)系数,即88子块的平均值,要对它单独编码。由于两个相邻的88子块的DC系数相差很小,所以对它们采用差分编码DPCM,可以提高压缩比,也就是说对相

28、邻的子块DC系数的差值进行编码。88的其它63个元素是交流(AC)系数,采用行程编码10。所以量化后的系数要重新编排,目的是为了增加连续的“0”系数的个数,就是“0”的游程长度,方法是按照Z字形的式样编排。DCT变换后低频分量多呈圆形辐射状向高频率衰减,因此可以看成按Z字形衰减。因此,量化系数按Z字形扫描读数,这样就把一个88的矩阵变成一个164的矢量,频率较低的系数放在矢量的顶部。量化后的DCT系数的编排如图2-7所示。图2-7 量化DCT系数的编排量化后的DCT系数的序号如表2-2所示。表2-2 量化DCT系数的序号0156141527282471316262942381217253041

29、4391118243140445310192332394552542022333846515560213437475056596135364849575862632.2.5 DC系数的编码88子块的64个变换系数经量化后,按直流系数DC和交流系数AC分成两类处理。坐标u=v=0的直流系数DC实质上就是空域图像中64个像素的平均值。图像块经过DCT变换之后得到的DC直流系数有两个特点,一是系数的数值比较大,二是相邻88图像块的DC系数值变化不大。根据这个特点,JPEG算法使用了差分脉冲调制编码技术。差分脉冲编码调制(DPCM,Differential Pulse Code Modulation)

30、,是一种对模拟信号的编码模式,先根据前一个抽样值计算出一个预测值,再取当前抽样值和预测值之差作为编码用。此差值称为预测误差。抽样值和预测值非常接近(因为相关性强),预测误差的可能取值范围比抽样值变化范围小。所以可用少几位编码比特来对预测误差编码,从而降低其比特率。这是利用减小冗余度的办法,降低了编码比特率。因此,对DC系数编码进行差分脉冲编码就是对相邻图像块之间量化DC系数的差值(Delta)进行编码,即对相邻块之间的DC系数的差值DIFF=DC-DC编码。DC采用差值脉冲编码的主要原因是由于在连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少许多。例如差值为5,它的二进制表示值为101,如果差值为-5,则先改为正整数5,再将其二进制转换成1的补数即可。所谓1的补数,就是将每个Bit若值为0,便改成1;Bit为1,则变成0。差值5应保留的位数为3,列出差值所应保留的Bit数与差值内容的对照。 在差值前端另外加入一些差值的霍夫曼码值,例如亮度差值为5(101)的位数为3,则霍夫曼码值应该是100,两者连接在一

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1