基于DCT的图像压缩编码算法论文.docx

上传人:b****7 文档编号:11507269 上传时间:2023-03-02 格式:DOCX 页数:57 大小:534.16KB
下载 相关 举报
基于DCT的图像压缩编码算法论文.docx_第1页
第1页 / 共57页
基于DCT的图像压缩编码算法论文.docx_第2页
第2页 / 共57页
基于DCT的图像压缩编码算法论文.docx_第3页
第3页 / 共57页
基于DCT的图像压缩编码算法论文.docx_第4页
第4页 / 共57页
基于DCT的图像压缩编码算法论文.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

基于DCT的图像压缩编码算法论文.docx

《基于DCT的图像压缩编码算法论文.docx》由会员分享,可在线阅读,更多相关《基于DCT的图像压缩编码算法论文.docx(57页珍藏版)》请在冰豆网上搜索。

基于DCT的图像压缩编码算法论文.docx

基于DCT的图像压缩编码算法论文

基于DCT的图像压缩编码算法及其MATLAB实现

摘要

在信息爆炸的当今社会,图像压缩技术是促进多媒体技术进一步发展的关键技术之一。

对于图像来说,如果需要进行快速或实时传输,就要对图像进行压缩。

离散余弦变换(DCT)由于在图像压缩编码方面的独有优势,被广泛推广和应用。

本文首先说明了图像压缩在现代通信中的必要性和可行性以及MATLAB图像处理工具箱的相关知识,然后重点介绍了JPEG压缩编码的具体过程和方法,详细介绍了编码中DCT变换、量化、熵编码和霍夫曼编码等模块的原理。

并对JPEG和JPEG2000进行了比较。

最后分析了图像经过不同压缩比时,图像质量的变化情况。

实验结果表明基于DCT变换的图像压缩方法简单,方便,即能保证有较高的压缩比,又能保证较好的图像质量,应用MATLAB仿真出来的结果比较好的反应了其编码原理。

关键词:

图像压缩技术,DCT变换,JPEG图像,MATLAB图像处理工具箱

 

IMAGECOMPRESSIONCODINGTECHNOLOGYALGORITHM

BASEDONDCTANDREALIZATIONBASEDONMATLAB

 

Abstract

Intheageofinformationexplosionnowadays,imagecompressionisoneofthekeytechnologiestopromotethefurtherdevelopmentofmultimediatechnology.Forimages,ifnecessaryforfastorreal-timetransmission,ithastocompresstheimage.Duetotheuniqueadvantageofdiscretecosinetransform(DCT)inimagecompressionandcoding,itiswidelyextendedandapplied.

TheoutsetthattheimagecompressioninthemoderncommunicationsandthenecessityandfeasibilityofMATLABimageprocessingtoolboxofknowledge,andthenfocusesonthespecificprocessofJPEGcompressionandmethodsdescribedindetailintheDCTtransformcoding,quantization,entropycodingandtheprincipleofHuffmancodingandothermodules.PerformancebetweenJPEG2000andJPEGarecompared.Finallyafteradifferentcompressionratiooftheimage,theimagequalitychanges.

ExperimentalresultsshowthattheresultstableDCT-basedimagecompressionmethodissimpleandconvenient,notonlyguaranteeahighercompressionratio,butalsotoensurebothbetterimagequality,MATLABsimulationresultsreflectabetteralgorithmprinciple.

 

KEYWORDS:

imagecompressiontechnology,DCTtransform,JPEGimage,MATLABImageProcessingToolbox

 

目录

 

第一章绪论1

1.1数字图像压缩编码的可能性1

1.2图像压缩技术1

1.2.1图像编码技术的发展和现状1

1.2.2离散余弦变换(DCT)2

1.3MATLAB及其图像处理工具箱3

第二章常见的图像压缩方法4

2.1RLE(RunLengthEncoding)压缩算法4

2.2LZW编码5

2.3哈夫曼(Huffman)编码5

2.4基于小波的图像压缩技术6

2.5变换编码6

2.6基于分形的图像压缩与编码7

第三章基于DCT的图像压缩编码算法8

3.1基于DCT的图像压缩编码算法的过程8

3.2基于DCT的JPEG图像压缩编码步骤9

3.2.1颜色空间的转换和采样9

3.2.2二维离散余弦变换10

3.2.3DCT系数的量化12

3.2.4Z字形编码13

3.2.5DC系数的编码14

3.2.6AC系数的编码15

3.2.7熵编码16

3.2.8组成位数据流18

3.3JPEG2000压缩算法18

3.3.1小波变换19

3.3.2量化19

3.3.3熵编码19

3.3.4位流组织20

3.4JPEG与JPEG2000的区别20

第四章基于DCT的图像压缩MATLAB仿真实现22

4.1MATLAB对图像文件的操作22

4.1.1图像文件的读取22

4.1.2图像文件的输出22

4.1.3图像文件的显示22

4.2程序流程图23

4.3DCT变换的编程实现24

4.4Matlab仿真结果24

4.5实验结果分析27

第五章结论与展望29

致谢30

参考文献31

附录1外文原文32

附录2外文翻译41

第1章绪论

1.1数字图像压缩编码的可能性

图像压缩的理论基础是信息论。

从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息(可推知的),也就是用一种更接近信息本质的描述来代替原有冗余的描述。

一幅图像存在这大量的数据冗余和主观视觉冗余,因此图像数据压缩是必要的,也是可能的。

数字图像的冗余主要表现在以下几种形式:

A、空间冗余:

规则物体和规则背景的表面物理特性都具有相关性,数字化后表现为数字冗余。

例如:

某图片的画面中有一个规则物体,其表面颜色均匀,各部分的亮度、饱和度相近,把该图片作数字化处理,生成位图后,很大数量的相邻像素的数据是完全一样或十分接近的,完全一样的数据当然可以压缩,而十分接近的数据也可以压缩,因为恢复后人亦分辨不出它与原图有什么区别,这种压缩就是对空间冗余的压缩。

B、时间冗余:

序列图像(如电视图像和运动图像)和语音数据的前后有着很强的相关性,经常包含着冗余。

在播出该序列图像时,时间发生了推移,但若干幅画面的同一部位没有变化,变化的只是其中某些地方,这就形成了时间冗余。

C、统计冗余:

空间冗余和时间冗余是把图像信号看作概率信号时所反应出的统计特性,因此,这两种冗余也被称为统计冗余。

D、编码冗余:

同样长度的编码可以表示不同的信息。

E、结构冗余:

相似的,对称的结构如果都加以记录就出现结构冗余。

F、知识冗余:

由图像的记录方式与人对图像的知识差异而产生的冗余。

人对许多图像的理解与某些基础知识有很大的相关性。

许多规律性的结构,人可以由先验知识和背景知识得到。

而计算机存储图像时还得把一个个像素信息存入,这就形成冗余。

G、视觉冗余:

视觉系统对于图像场的注意是非均匀和非线性的,视觉系统不是对图像的任何变化都能感知。

1.2图像压缩技术

所谓的图像压缩编码技术就是对要处理的图像数据按一定的规则进行变换和组合,从而达到以尽可能少的数据流(代码)来表示尽可能多的数据信息。

在众多的图像压缩编码标准中,JPEG(JointPhotographicExpertsGroup)格式是一种称为联合图像专家组的图像压缩格式,它适用于不同类型、不同分辨率的彩色和黑白静止图像。

1.2.1图像编码技术的发展和现状

1948年提出电视信号数字化后,图像压缩编码的研究工作就宣告开始了。

在这项技术发展的早期,限于客观条件,仅对帧内预测法和亚取样内查复原法进行研究,对视觉特性也做了一些极为有限但可贵的研究工作。

1966年J.B.ONeal对比分析了DPCM和PCM并提出了用于电视的实验数据;1969年进行了线性预测编码的实际实验;1969年举行首届图像编码会议;70年代开始进行了帧间预测编码的研究;80年代开始对运动估值和模型编码进行研究。

进入90年代,ITU-T和ISO制定了一系列图像编码国际建议,如H.261、JPEG、MPEG-1、H.262、H.263、MPEG-4等。

变换编码是1968年H.C.Andrews等人提出的,采用的是二维离散傅立叶变换,此后相继出现用其他变换方法的变换编码,其中包括二维离散余弦变换。

经过几十年的发展,图像编码技术业已成熟,一些国际建议的制定极大地推动了图像编码技术的实现和产业化,从而推动图像编码技术以更快的速度发展,目前的研究方向有两个:

A、更好地实现现有的图像编码国际建议。

研制出集成度更高、性能更好的图像编码专用芯片,使编码系统成本更低、可靠性更高。

解决好现有的图像编码系统开发中的技术问题。

例如:

提高图像质量、提高抗码能力等。

B、对图像编码理论和其他图像编码方法的研究。

目前已经提出和正在进行研究的图像编码方法有:

多分辨率编码、基于表面描述的编码、模型编码、利用人工神经网络的编码、利用分形几何的编码、利用数学形态学的编码等等。

1.2.2离散余弦变换(DCT)

在JPEG图像压缩算法中,有一种是以离散余弦变换(DCT,DiscreteCosineTransform)为基础的有损压缩算法。

DCT变换利用傅立叶变换的性质,采用图像边界褶翻将图像变换为偶函数形式,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换。

DCT编码属于正交变换编码方式,用于去除图像数据的空间冗余。

变换编码就是将图像光强矩阵(时域信号)变换到系数空间(频域信号)上进行处理的方法。

在空间上具有强相关的信号,反映在频域上是在某些特定的区域内能量常常被集中在一起,或者是系数矩阵的分布具有某些规律。

我们可以利用这些规律在频域上减少量化比特数,达到压缩的目的。

图像经DCT变换以后,DCT系数之间的相关性就会变小,而且大部分能量集中在少数的系数上,因此,DCT变换在图像压缩中非常有用,是有损图像压缩国际标准JPEG的核心[5]。

从原理上讲可以对整幅图像进行DCT变换,但由于图像各部位上细节的丰富程度不同,这种整体处理的方式效果不好。

为此,发送者首先将输入图像分解为8*8或16*16块,然后再对每个图像块进行二维DCT变换,接着再对DCT系数进行量化、编码和传输;接收者通过对量化的DCT系数进行解码,并对每个图像块进行的二维DCT反变换,最后将操作完成后所有的块拼接起来构成一幅单一的图像。

对于一般的图像而言,大多数DCT系数值都接近于0,所以去掉这些系数不会对重建图像的质量产生较大影响。

因此,利用DCT进行图像压缩确实可以节约大量的存储空间。

在实验中,先将输入的原始图像分为8*8块,然后再对每个块进行二维DCT变换。

MATLAB图像处理上具箱中提供的二维DCT变换及DCT反变换函数如下:

dct2实现图像的二维离散余弦变换,其语法格式为:

a、B=dct2(A)返回图像A的二维离散余弦变换值,其大小与A相同且各元素为离散余弦变换的系数B(k1,k2)。

b、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.3MATLAB及其图像处理工具箱

如果应用高级语言(如Basic,C,Fortran)编写仿真程序来实现这一基于DCT的图像压缩编码算法比较麻烦,而且仿真效果也不是十分理想。

本文主要应用MATLAB发布的图像处理工具箱中的相关函数和命令来实基于DCT的图像压缩编码理论算法的仿真。

MATLAB语言是由美国MathWorks公司推出的计算机软件,经过多年的逐步发展与不断完善,现已成为国际公认的最优秀的科学计算与数学应用软件之一,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境,而且还具有可扩展性特征。

MATLAB中的数字图像是以矩阵形式表示的,矩阵运算的语法对MATLAB中的数字图像同样适用,这意味着MATLAB强大的矩阵运算能力对用于图像处理非常有利。

图像处理工具箱(ImageProcessingToolbox)提供了一套全方位的参照标准算法和图形工具,用于进行图像处理、分析、可视化和算法开发。

可进行图像压缩、空间转换、图像增强、特征检测、降噪、图像分割和图像配准等功能。

工具箱中大部分函数均以开放式MATLAB语言编写,这意味着可以检查算法、修改源代码和创建自定义函数。

利用MATLAB图像处理工具箱对基于DCT的JPEG图像压缩编码理论算法进行仿真,软件功能强大,应用简单而效果良好。

 

第2章常见的图像压缩方法

目前,图像压缩编码技术广泛应用于各种图像编码的传输、存储、检索等系统中。

自从实现图像压缩技术以来,它已从实验室进入人们的日常生活。

因此,研究高效的图像压缩编码方法,以压缩形式存储和传输数字化的图像信息具有重要的意义。

图像压缩编码的目的是以尽量少的比特数表征图像,同时保证复原图像的质量,使它符合预定应用场合的需要。

压缩数据量、提高有效性是图像压缩编码的首要目的。

通常把图像压缩编码简称为图像编码。

图像编码是一种信源编码,其信源是各种类型的图像信息。

图2-1是按无损压缩和有损压缩给出的各类算法的分类框图,在本章中将对其中几种算的基本原理进行论述。

 

2.1RLE(RunLengthEncoding)压缩算法

RLE通常称为行程编码。

这种压缩法使用于PCX,OFF,BMP等图像格式中,其压缩原理很简单。

其中一种编码的形式是(L,v),将一行中颜色值相同的相邻像素用一个记数值和该颜色值来代替。

例如,abbbccccddd经行程压缩处理后可表示为1a3b4c3d。

另一种常用的行程编码方式是零行程,零是唯一经常出现的连续值,而其他值是任意的,在这种情况下,行程数L只用于表示连续0的个数,而V则用于表示0串后紧跟的非零值。

例如0005001000000-3表示为(3,5)(2,l)(6,-3)。

当图像中存在很多块颜色相同的大面积区域,则RLE编码产生的压缩率是很高的。

但如果图像中很少有两个相邻的像素的灰度值相同时,则RLE编码非但不能压缩,还会造成处理后的图像数据量大于处理前的情况。

虽然这种压缩格式使用不是太广泛,但是存储的图像文件读取速度快,保真程度高,特别适合于信息量大、保真程度高的信息显示系统中。

2.2LZW编码

LZW编码是由Lemple和ZIV于是1997年提出的一种算法,后来经过Welch加以改进,故称LZW算法。

LZW用于GIF,TIFF等图像文件中,属于字典压缩法。

LZW压缩算法不需要在编码之前构造码表,而是在压缩过程中逐步建立字典的。

其基本思想是将每一个字节的值都要与下一个字节的值配成一个字符对,并为每一个字符设置一个代码。

当同样的一个字符对再度出现时就用代号代替这一字符对,然后再用这个代号与下一个字符配对。

在配对过程中,必须建立三个表格,分别为:

字首表、字符表和代号表。

所有的字符对和代号都分别存入这三个表格中。

LZW不仅可以与RLE压缩算法一样对连续出现的相同字符进行压缩,而且可以对经常出现的由不同字符组成的字符串进行压缩。

因此在压缩处理不同值数据串方面,LZW压缩方法优于RLE压缩算法。

但是如果原始图像数据值中带有随机变化的“噪音图像”,则很难利用LZW算法来压缩。

由于RLE算法有一个很严重的缺陷:

如果大量出现的是两个字节或三个字节为“循环节”的重复。

由于行程较短,因而RLE效果较差。

为了解决这个问题,LEW编码把出现过多次的子串称高频子串,并且将其编成一张表,生成高频字典。

每个子串都有一个序号,每当碰到一个高频子串时,就用这个序号代替它。

比如构造一个有256个常用词的字典,那么每个词可以用0-255之间的一个数来表示。

也就是说,用一个字节代替一个字串,因而可以大大压缩数据。

当然,在压缩数据中要把这个小字典放进去,以供还原算法查字典用,一般字典4K-6K之间。

对图像而言,LZW作为一种无损编码适用于呈现出高度规律的图像,此时,其压缩比最大甚至可以达到10:

1。

对具有一般规律的图像,LZW编码对图像的压缩比为3:

1。

显然,LEW编码不适用于无规律性的图像。

2.3哈夫曼(Huffman)编码

上述的两种方案在原理上有相同之处,都是试图找出原始数据中各种形式的存在规律性,然后以一种有效的方式重新编码存储。

目前一些常用的计算机数据文件压缩软件就是采用上述两种方法。

RLE和RLW都是在不改变原始数据字符编码方式基础上的算法,即压缩前后都是用8个比特来表示一个字符。

假若数据的重复率不高时,RLW压缩效果都较差。

例如“ABCAABA”这个字串有7个字节共56比特,对其进行压缩,RLE和RLW都不太合适。

因其中既没有单个字节的多次重复,也没有子串的多次重复。

但经过观察发现各字节出现的概率不同:

A出现4次,B出现2次,C出现1次。

假如彻底改变ABC的定长编码方式,使出现次多的A占较少的比特,出现次数少的C用较多的比特:

A编码0、B编码为10、C编码为11,则“ABCAABA”可比特流表示成为“0101100100”,这样只需要10个位(不到两个字节)。

这种编码思想是由霍夫曼博士在1952年提出来的。

因而该算法称霍夫曼压缩编码(Huffmancoding)。

Huffman压缩方法使用于TIFF,JPEG等图像格式中。

该编码是Huffman为压缩文本文件而建立的,其压缩原理是先统计需要编码的字符的出现概率,然后将短的码赋予出现频率高的字符,而将长的码赋予出现频率低的字符。

因为哈夫曼编码较为简单有效,所以得到了广泛的应用。

但是产生哈夫曼编码要对原始数据扫描两遍:

第一遍扫描要精确地统计出原始数据中每个值出现的频率;第二遍扫描是建立哈夫曼树并进行编码。

由于需要建立二叉树并遍历二叉树生成编码,因此数据压缩和还原速度都较慢。

另外哈夫曼编码对于位的增减都反应敏感,由于哈夫曼编码时所有位都集中在一起,而不考虑字节分界,译码程序判断码结束的唯一方法是达到二叉树的一个分支,因此,如果增加或减少位,译码程序将无法正确译出后面的数据。

2.4基于小波的图像压缩技术

小波变换的概念是1984年法国地球物理学家J.Morlet在分析处理地球物理勘探资料时提出来的。

小波变换的数学基础是19世纪的傅里叶变换,其后理论物理学家A.Grossman采用平移和伸缩不变性建立了小波变换的理论体系。

1985年,法国数学家Y.Meyer第一个构造出具有一定衰减性的光滑小波。

1988年,比利时数学家I.Daubechies证明了紧支撑正交标准小波基的存在性并成功构造了它,使得离散小波分析成为可能。

1989年S.Mallat提出了多分辨率分析概念,统一了在此之前各种构造小波的方法,特别提出了二维离散小波变换的快速算法,使得小波变换走向实用性。

小波分析方法是一种窗口大小(即窗口面积)固定但其形状可改变,时间窗和频率窗都可改变的时频局域化分析方法,即在低频部分具有较高的频率分辨率和较低的时间分辨率,在高频部分具有较高的时间分辨率和较低的频率分辨率,所以被称为“数学显微镜”。

真是这种特性,使得小波变换具有对信号的自适应性。

2.5变换编码

变换编码的基本思想是把空间域的图像信号转换到变换域。

若变换是正交变换,则变换域的能量与空域相等并且熵保持不变。

但是变换前后信息能量得到了重新分布。

空间域中的像素之间存在很强的相关性,而变换域中能量则主要集中在直流和少数低频的变换系数上,这部分占图像信息的90%,而高频部分的幅值很小或几乎为零。

同时变换系数间基本上是统计独立的,相关性较小。

因此,可以仅对低频的变换系数进行量化、编码和传输,而对高频部分则不予编码,从而达到图像压缩的日的。

实际中一般采用阈值编码法:

即事先设定一个阈值,只对大于此阈值的变换系数编码,这样可使图像的某些高频成分得到保留,重建图像时图像品质得到改善。

有很多类型的正交变换,如K-L(离散信号的Hotelling)变换、离散余弦变换DCT、沃尔什-哈达玛变换和斜变换等。

在这些正交变换中,采用均方误差最小准则的K-L变换是最佳变换,但其无快速算法且依赖于信源的统计特性,所以很难进行实时编码。

2.6基于分形的图像压缩与编码

分形是Manderbrot提出的几何学新概念。

它来白拉丁文fractal泛指不规则地相互聚集在一起的“碎片”所代表的状态,用于描述自然界各种各样景物的复杂形状。

自然界中的绝大多数景物比起欧几里德几何图形要复杂得多。

例如,树木和云彩在分形理论中由于采用新的几何学定义,其维数不是整数而是分数。

分形最显著的特点是自似性:

即几何尺度不论怎样变化,景物任何一个小部分的形状都与较大部分的形状极其相似。

这种尺度不变性在自然现象中广泛存在,海岸线就可以看成是白相似性的典型例子。

其次,分形具有精细的结构,即在任意小的尺度下,它总有复杂的细节。

分形图像压缩是利用分形的自相似性原理。

因为分形的局部与总体,局部与局部的相似性,实际上是一种尺度上的信息冗余。

分形图像压缩正是利用这种相似性,通过消除尺度上的相似性来达到压缩图像的目的。

图像用一组仿射变换系数来表征,仿射变换系数是通过仿射变换来实现的,编码的对象就是这些仿射变换的系数。

由于仿射变换系数的数据量远小于图像块的数据量,因此可以实现压缩的目的。

分形编码主要有以下几个步骤:

(1)将图像划分为互不重叠人小相等的域块和值块,一般域块比值块大一些。

(2)在值块中搜索与域块最佳匹配块的位置,最佳匹配的含义是通过如下变换:

,其中

为灰度比例因子,?

g为平移量,T为仿射变换,找出匹配误差最小的块,记下相应的?

g、n以及匹配的坐标x,y,即为相应的迭代函数。

最终,每个域块子图像只需要上述的5个参数就完全表示了。

(3)解码时可由任意一幅图像作为初始图像。

由于迭代函数的变换收敛性,只要迭代下去,就可以从任何一幅初始图像得到我们所需要的图像。

所谓迭代过程就是把仿射变换作用于这幅图像上,重复几次,最后收敛于原图,一般迭代8次就足够了。

如果图像内容有很好的分形特点,如一棵树和一片云等,这样很容易在迭代函数系统中寻找与这些子图像对应的迭代函数,同时通过迭代函数的反复迭代能够更好地逼近原来的子图像,因而能得到很高的压缩比。

但对一般图像,无论是编码精度还是解码效果都较筹。

就目前的分形压缩技术而言,其编码时间过长,还无法满足实时性的要求。

尽管如此,由于分形图像压缩突破了传统压缩方法的局限性,引入了局部和全局相关去冗余的思想,为实现高压缩比提供了可能性,因而对分形图像压缩的研究引起了人们的广泛兴趣。

第3章基于DCT的图像压缩编码算法

信号的变换分析方法中,通常是通过一组适当的基函数对信

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

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

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