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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于DCT的图像压缩编码算法研究.docx

1、基于DCT的图像压缩编码算法研究课程设计任务书学生:王晓飞专业班级: 通信1001班指导教师:洪涛工作单位:信息工程学院题目:通信工程应用技术综合训练与实习初始条件:MATLAB软件平台设计任务与要求:图像通信之前需要进行数据量压缩,编程实现JPEG图像压缩标准的主要环节,完成压缩和解压过程,计算压缩比。要求:将彩色图像进行颜色空间转换、对不同的颜色分量进行不同的采样、对于3个分量进行88的DCT变换、对DCT系数矩阵按照JPEG推荐的量化表进行量化;对量化后的系数进行Z形扫描,最后进行熵编码,形成码流,计算比特数,和压缩比。解压从量化后的DCT系数表开始逆向进行。时间安排:序号设计容所用时间

2、1根据设计任务,分析电路原理,确定实验方案2天2根据实验条件进行电路的测试,并对结果进行分析7天3撰写课程设计报告1天合计2周指导教师签名:年月日系主任(或责任教师)签名:年月日5 心得体会.15附录.18摘要随着科学技术的发展,图像压缩技术越来越引起人们的关注,本论文研究了基于DCT变换的JPEG图像压缩编码算法。首先说明了图像压缩在现代通信中的必要性和可行性以与MATLAB图像处理工具箱的相关知识,然后重点介绍了JPEG压缩编码的具体过程和方法,详细介绍了编码中DCT变换、量化、熵编码和霍夫曼编码等模块的原理。最后分析了图像经过不同压缩比时,图像质量的变化情况。基于DCT 变换的JPEG

3、图像压缩方法简单、方便,既能保证有较高的压缩比,又能保证有较好的图像质量,是一种非常有用的图像压缩方法。关键词:图像压缩技术 DCT变换 JPEG图像 MATLAB图像处理工具箱AbstractWith the development of science and technology, image compression technology has drawn increasing attention, this thesis DCT-based JPEG image compression algorithm. The outset that the image compression

4、in the modern communications and the necessity and feasibility of MATLAB image processing toolbox of knowledge, and then focuses on the specific process of JPEG compression and methods described in detail in the DCT transform coding, quantization, entropy coding and the principle of Huffman coding a

5、nd other modules. Finally after a different compression ratio of the image, the image quality changes. DCT-based JPEG image compression method is simple, convenient, and can guarantee a higher compression ratio, but also ensures better image quality, is a very useful image compression method.Keyword

6、s:imagecompression technology, DCT transform , JPEG image , MATLAB Image Processing Toolbox 1概述1.1 图像压缩编码技术3所谓的图像压缩编码技术就是对要处理的图像数据按一定的规则进行变换和组合, 从而达到以尽可能少的数据流(代码)来表示尽可能多的数据信息。在众多的图像压缩编码标准中,JPEG(Joint Photographic Experts Group)格式是一种称为联合图像专家组的图像压缩格式,它适用于不同类型、不同分辨率的彩色和黑白静止图像。1.2离散余弦变换(DCT)在JPEG图像压缩算法中

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

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

9、因此,利用DCT进行图像压缩确实可以节约大量的存储空间。在实验中,先将输入的原始lena图像分为8*8块,然后再对每个块进行二维DCT变换。MATLAB图像处理上具箱中提供的二维DCT变换与DCT反变换函数如下:dct2实现图像的二维离散余弦变换,其语法格式为:a、B=dct2(A) 返回图像A的二维离散余弦变换值,其大小与A一样且各元素为离散余弦变换的系数B(k1,k2)。b、B=dct2(A,m,n)或B=dct2(A,m,n) 如果m和n比图像A大,在对图像进行二维离散余弦变换之前,先将图像A补零至m*n如果m和n比图像A小。则进行变换之前,将图像A剪切。idct2可以实现图像的二维离散

10、余弦反变换,其语法格式为:B=idct2(A);B=idct2(A,m,n)或B=idct2(A,m,n) (1.2.2-1)1.3 MATLAB 与其图像处理工具箱MATLAB语言是由美国MathWorks公司推出的计算机软件,经过多年的逐步发展与不断完善,现已成为国际公认的最优秀的科学计算与数学应用软件之一,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境,而且还具有可扩展性特征。MATLAB中的数字图像是以矩阵形式表示的,矩阵运算的语法对MATLAB中的数字图像同样适用,这意味着MATLAB强大的矩阵运算能力对用于图像处理非常有利。图像处理工具箱(I

11、mage Processing Toolbox)提供了一套全方位的参照标准算法和图形工具,用于进行图像处理、分析、可视化和算法开发。可进行图像压缩、空间转换、图像增强、特征检测、降噪、图像分割和图像配准等功能。工具箱部分函数均以开放式 MATLAB 语言编写,这意味着可以检查算法、修改源代码和创建自定义函数。利用MATLAB图像处理工具箱对基于DCT的JPEG图像压缩编码理论算法进行仿真,软件功能强大,应用简单而效果良好。2 基于DCT的图像压缩编码算法2.1 基于DCT的图像压缩编码算法的过程基于DCT编码的JPEG编码压缩过程框图,如图2.1-2所示。图2.1-2 基于DCT编码的JPEG

12、压缩过程简化图上图是基于DCT变换的图像压缩编码的压缩过程,解压缩与上图的过程相反。在编码过程中,首先将输入图像颜色空间转换后分解为88大小的数据块,然后用正向二维DCT把每个块转变成64个DCT系数值,其中1个数值是直流(DC)系数,即88空域图像子块的平均值,其余的63个是交流(AC)系数,接下来对DCT系数进行量化,最后将变换得到的量化的DCT系数进行编码和传送,这样就完成了图像的压缩过程。在解码过程中,形成压缩后的图像格式,先对已编码的量子化的DCT系数进行解码,然后求逆量化并把DCT系数转化为88样本像块(使用二维DCT反变换),最后将操作完成后的块组合成一个单一的图像。这样就完成了

13、图像的解压过程。2.2 基于DCT的JPEG图像压缩编码步骤2.2.1 颜色空间的转换和采样JPEG文件使用的颜色空间为1982年推荐的电视图像数字化标准CCIR 601(现为ITU-RB T.601)。在这个色彩空间中,每个分量、每个像素的电平规定为255级,用8位代码表示。JPEG只支持YCbCr颜色模式,其中Y代表亮度,CbCr代表色度。全彩色图像RGB模式转换到YCbCr模式,用下组公式 (2.2.1-3) 其逆变换为: (2.2.1-4)JPEG是以88的块为单位来进行处理的,由于人眼对亮度Y的敏感度比色度CbCr的敏感度大的多,所以采用缩减取样的方式,通常采用YUV422取样,图2

14、.2.1-5所示。图2.2.1-5 YUV422取样示意图即对于1616的块,Y取4个88的块,CbCr各取2个88的块。也有YUV411方式,Y取4个88的块,CbCr各取1个88的块。YUV422取样方式,数据减少1/3。YUV411取样方式,数据减少1/2。2.2.2 二维离散余弦变换在傅里叶级数展开式中,如果被展开的函数是实偶函数,那么,其傅里叶级数中只包含余弦项,在将其离散化由此可导出余弦变换,或称之为离散余弦变换(DCT,Discrete Cosine Transform)。二维离散余弦正变换公式为:(2.2.2-6)式中,。二维离散余弦逆变换公式为(2.2.2-7)式中,。JPE

15、G采用的是88大小的子块的二维离散余弦变换。在编码器的输入端,把原始图像顺序地分割成一系列88的子块,子块的数值在-128到127之间。采用余弦变换获得64个变换系数。变换公式,如式(2-5)所示。(2.2.2-8)式中,。在MATLAB的图像处理工具箱中,可以直接调用dct2和idct2来实现二维离散余弦变换与其反变换。a、dct2函数实现图像的二维离散余弦变换,其语法为:F=dct2(f)b、idct2函数实现图像的二维离散余弦逆变换,其语法为:F=idct2(f)在MATLAB图像处理工具箱中,有一个对图像进行块操作的函数blkproc,利用这个函数,可以直接实现图像一系列88子块的DC

16、T变换。其语法格式为:B = blkproc(A,m n,fun, parameter1,,parameter2, .)B = blkproc(A,m n,mborder nborder,fun,.)B = blkproc(A,indexed,.)88的图像经过DCT变换后,其低频分量都集中在左上角,高频分量分布在右下角(DCT变换实际上是空间域的低通滤波器)。由于该低频分量包含了图像的主要信息(如亮度),而高频与之相比,就不那么重要了,所以我们可以忽略高频分量,从而达到压缩的目的。将高频分量去掉,这就要用到量化,它是产生信息损失的根源,这里的量化操作,就是将某一个值除以量化表中对应的值。由于

17、量化表左上角的值较小,右上角的值较大,这样就起到了保持低频分量,抑制高频分量的目的2.2.3 DCT系数的量化量化是对经过DCT变换后的频率系数进行量化,其目的是减小非“0”系数的幅度以与增加“0”值系数的数目,它是图像质量下降的最主要原因。对于基于DCT的JPEG图像压缩编码算法使用如图2.2.3-9所示的均匀量化器进行量化,因此使用了表2.2.3-10所示的一种量化表。此外,由于人眼对低频分量的图像比对高频分量的图像更敏感,因此表中的左上角的量化步距要比右下角的量化步距小。图2.2.3-9均匀量化器亮度和色度因为代表的图像的信息量不同,亮度代表了图像的低频分量,色度代表了图像的高频分量,要

18、分别对亮度和色度进行量化,所以量化表也是不同的。JPEG压缩色度和亮度量化表如表2.2.3-10所示。表2.2.3-10 JPEG压缩色度和亮度量化表亮度量化表色度量化表16111016244051611718244799999999121214192658605518212666999999991413162440576956242656999999999914172229518780624766999999999999182237566810910377999999999999999924355564811041139299999999999999994964788710312112010

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

20、行编码。88的其它63个元素是交流(AC)系数6,采用行程编码。所以量化后的系数要重新编排,目的是为了增加连续的“0”系数的个数,就是“0”的游程长度,方法是按照Z字形的式样编排。DCT变换后低频分量多呈圆形辐射状向高频率衰减,因验结果,对于大部分图像都有很好的结果。表中可以看出,高频部分对应的量化值大,目此可以看成按Z字形衰减。因此,量化系数按Z字形扫描读数,这样就把一个88的矩阵变成一个164的矢量,频率较低的系数放在矢量的顶部。量化后的DCT系数的编排如图2.2.4-11所示。图2.2.4-11 量化DCT系数的编排量化后的DCT系数的序号如表2.2.4-12所示。01561415272

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

22、冲编码调制(DPCM,Differential Pulse Code Modulation),是一种对模拟信号的编码模式,先根据前一个抽样值计算出一个预测值,再取当前抽样值和预测值之差作为编码用。此差值称为预测误差。抽样值和预测值非常接近(因为相关性强),预测误差的可能取值围比抽样值变化围小。所以可用少几位编码比特来对预测误差编码,从而降低其比特率。这是利用减小冗余度的办法,降低了编码比特率。因此,对DC系数编码进行差分脉冲编码就是对相邻图像块之间量化DC系数的差值(Delta)进行编码,即对相邻块之间的DC系数的差值DIFF=DC-DC编码。DC采用差值脉冲编码的主要原因是由于在连续色调的图

23、像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少许多。例如差值为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矢

24、量中包含有许多“0”系数,并且许多“0”是连续的,因此使用非常简单和直观的行程长度编码(RLE)对它们进行编码。所谓行程编码(Run-Length Encoding)就是指仅存储一个像素值以与具有一样颜色的像素数目的图像数据编码方式,或称游程编码,常用RLE(Run-Length Encoding)表示。该压缩编码技术相当直观和经济,运算也相当简单,因此解压缩速度很快。RLE压缩编码尤其适用于计算机生成的图形图像,对减少存储容量很有效果。图2.2.6-13 AC编码格式63个AC系数采用行程编码的方式进行编码的格式如图2.2.6-13所示。也即在AC01到AC63中,找出每一个非零的AC值,将

25、其表示成(NN/SS)VV的形式,其中:NN表示该AC值前的0的个数。而SS、VV与DC的定义一样。如果连续的非0超过15个时,增加一个扩展字节:(15/0)表示连续16个0。另外若有一串0延伸到AC63,一律用(0/0)表示结束。对于AC系数,有两个符号。符号1为行程和尺寸,(0,0)和(15,0)是两个比较特殊的情况。(0,0)表示块结束标志EOB,(15,0)表示ZRL,当行程长度超过15时,用增加ZRL的个数来解决,所以最多有三个ZRL(316+15=63)。符号2为幅度值(Amplitude)。对于DC系数,也有两个符号。符号1为尺寸(Size),符号2为幅度值(Amplitude)

26、。对于AC系数,符号1和符号2分别进行编码。零行程长度超过15个时,有一个符号(15,0),块结束时只有一个符号(0,0)。对符号1进行Huffman编码(亮度,色差的Huffman码表不同),对符号2进行变长整数(VLI)编码。举例来说:Size=6时,Amplitude的围是-63-32,以与3263,对绝对值一样,符号相反的码字之间为反码关系。所以AC系数为32的码字为100000,33的码字为100001,-32的码字为011111,-33的码字为011110。符号2的码字紧接于符号1的码字之后。对于DC系数,Y和UV的Huffman码表也不同。3 基于DCT图像压缩的MATLAB实现

27、基于DCT的图像压缩编码的MATLAB实现的流程图:从上至下的步骤为:开始;输入图片;分成8*8的像素块,进行DCT变换;输入量化表,对变换系数量化;对量化系数进行扫描;选择一幅图对其进行不同的压缩比变换;反量化;反DCT变换;显示所选图像的信噪比;结束。如程序流程图3.2-18。图3.2-18 程序流程图4 MATLAB仿真结果 原始图像 亮度量化矩阵倍乘1,色度倍乘1 亮度量化矩阵倍乘1,色度倍乘10 亮度量化矩阵倍乘1,色度倍乘20亮度度量化矩阵倍乘10,色度倍乘1 亮度度量化矩阵倍乘20,色度倍乘15 心得体会经过这两周的课程设计,让我收获多多。刚开始接到课程设计任务时,还很兴奋,因为

28、这次的课设只用软件仿真就可以了,而不用做实物,这样可以大节约时间。但事实证明我的想法是错误的。虽然之前有接触MATLAB这个软件,但是也只是会调用一些简单的函数来做计算,或用一些简单的画图命令来作图,一直觉得这个仿真软件的功能很强大,但没有怎么深入地去运用。这次的课设让我知道,我之前对它的了解简直只是冰山一角。而要用它来实现自己的专业目的,更是增加了难度。将在课堂上学到的理论知识用它来仿真实现,这就要求我们对理论知识有全面深入透彻的理解,并且很熟悉仿真软件,但我在这两个方面都有欠缺,所以实际操作起来也没有刚开始想象的那样容易。总之,课程设计让我收获颇丰,同时也让我发现了自身的不足。在实验课上学

29、得的,我将发挥到其它中去,也将在今后的学习和工作中不断提高、完善;在此间发现的不足,我将努力改善,通过学习、实践等方式不断提高,克服那些不应成为学习、获得知识的障碍。在今后的学习、工作中有更大的收获,在不断地探索中、在无私的学习、奉献中实现自己的人身价值!参考文献:1 庆栋:图像编码基础,清华大学,2006.6, P31-P422 余明:图像编码标准H.246技术,人民邮电,2006.2, P7-P103 春田、育挺:图像压缩编码,清华大学,2006.4,P3-P74 钟玉琢:基于对象的多媒体数据压缩编码国际标准MPEG-4与其校验模型,科学,2000.6, P21-P305 兰荪、卓 力:小

30、波编码与网络视频传输,科学,2008.8 , P52-P576 王相海、宋传鸣:图像与视频可分级编码,科学,2009.7, P15-P27 7 导向科技:MATLAB6.0程序设计与实例应用,中国铁道. 2001.5, P135-P1418 蒲 俊:MATLAB6.0数学手册,浦东电子,2002,P21P289 于万波:基于MATLAB的计算机图形与动画技术,清华大学,2007,P51P107 附录 源程序:%jpeg.mfunction copy,gao,kuan,bpp,comp,psnr=jpeg()global mm nn col row im1 u1 u2 ticinitEncode;r

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

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