基于DCT图像编码算法的研究毕业论文

更新时间:2024-05-29 21:43:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

南京师范大学泰州学院

毕 业 论 文

题 目

学生姓名 学 号 专 业 班 级 指导教师

曹峰 09080324 电子信息工程 信0803 孙剑芬

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

2012 年 4 月

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

摘 要

随着科学技术的发展,图像压缩技术越来越引起人们的关注。为此从众多的图像压缩编码标准中选取了基于DCT变换的图像压缩编码算法进行研究,并通过对此对比分析各种软件特性选取了MATLAB进行仿真实验。

首先说明了图像压缩在现代通信中的必要性和可行性,然后讲述了MATLAB及其图像处理工具箱的相关知识,并对基于DCT变换的图像压缩算法进行详细研究,重点介绍了压缩编码的具体过程和方法,详细介绍了编码中DCT变换,量化,DCT编码等模块的原理以及各模块的功能分析。最后应用了MATLB进行了实验仿真并分析结果得出结论。

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

关键词:图像压缩;DCT;MATLAB;图像处理工具箱

I

DCT-based image compression encoding algorithm

Abstract

Image compression technology has been growing concern with the development of science. To this end a large number of images from the selected coding standard DCT-based image compression research, and comparative analysis of various software features through the selection experiment MATLAB simulation.

First, note the image compression in modern communications and the necessity and feasibility, and then tells the MATLAB and its Image Processing Toolbox of relevant knowledge, and DCT-based image compression algorithm is studied in detail, focuses on process and method of compression ,describes theory and mathematical derivation the DCT transform coding,quantization,entropy coding,as well as the functional analysis of each module. The last application of MATLAB to Simulation and experimental results concluded.

Experimental results show that the results table DCT-based image compression method is simple and convenient, not only guarantee a higher compression ratio, but also to ensure both better image quality, MATLAB simulation results reflect a better algorithm principle.

Keywords: image compression;DCT;MATLAB;Image Processing Toolbox

II

目 录

摘 要 .................................................................................................. I Abstract .............................................................................................II 第一章 绪论 ....................................................................................... 1

1.1课题背景及研究意义...................................................................................... 1 1.2图像压缩技术的研究现状与发展趋势.......................................................... 2 1.3论文主要内容与结构安排.............................................................................. 3

第二章 所用开发工具简介................................................................. 4

2.1 MATLAB软件简介............................................................................................ 4 2.2 MATLAB的优势特点........................................................................................ 4 2.3 MATLAB在图像处理中的应用........................................................................ 7

第三章 常见的图像压缩方法 ............................................................. 8

3.1 引言................................................................................................................. 8 3.2 RLE(Run Length Encoding)压缩算法......................................................... 8 3.3 LZW编码.......................................................................................................... 9 3.4哈夫曼(Huffman)编码.................................................................................. 10 3.5基于小波的图像压缩技术............................................................................ 10 3.6变换编码.........................................................................................................11 3.7基于分形的图像压缩与编码.........................................................................11 3.8本章小结........................................................................................................ 12

第四章 基于DCT变换的图像压缩方法 .......................................... 14

4.1引言................................................................................................................ 14 4.2离散余弦变换原理........................................................................................ 14 4.3基于DCT的图像压缩编码步骤.................................................................... 16

4.3.1 基于DCT图像压缩编码流程图........................................................ 16 4.3.2 DCT系数的量化................................................................................. 16

III

4.3.3量化系数的编排................................................................................. 16 4.3.4 DC系数的编码................................................................................... 17 4.3.5 AC系数的编码................................................................................... 18 4.3.5组成位数据流..................................................................................... 19 4.4基于DCT的图像压缩MATLAB仿真.............................................................. 22 4.5本章小结........................................................................................................ 24

结束语 .............................................................................................. 25 参考文献........................................................................................... 26 致 谢 .............................................................................................. 28

IV

南京师范大学泰州学院本科生毕业设计(论文)

第一章 绪论

1.1课题背景及研究意义

随着信息技术的发展,图像信息被广泛应用于多媒体通信和计算机系统中,但是图像数据的一个显著特点就是信息量大。具有庞大的数据量,如果不经过压缩,不仅超出了计算机的存储和处理能力,而且在现有的通信信道的传输速率下,是无法完成大量多媒体信息实时传输的,因此,为了更有效的存储、处理和传输这些图像数据,必须对其进行压缩,因此有必要对图像压缩编码进行研究。由于组成图像的各像素之间,无论是在水平方向还是在垂直方向上都存在着一定的相关性,因此只要应用某种图像压缩编码方法提取或者减少这种相关性, 就可以达到压缩数据的目的[1]。

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

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

时间冗余:序列图像(如电视图像和运动图像)和语音数据的前后有着很强的相关性,经常包含着冗余。在播出该序列图像时,时间发生了推移,但若干幅画面的同一部位没有变化,变化的只是其中某些地方,这就形成了时间冗余。

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

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

结构冗余:相似的,对称的结构如果都加以记录就出现结构冗余。 知识冗余:由图像的记录方式与人对图像的知识差异而产生的冗余。人对许多图像的理解与某些基础知识有很大的相关性。许多规律性的结构,人可以由先验知识和背景知识得到。而计算机存储图像时还得把一个个像素信息存入,这就形成冗余。

1

第一章 绪论

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

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

在图像压缩算法中,一种是以离散余弦变换(DCT,Discrete Cosine Transform)为基础的有损压缩算法,另一种是以预测技术为基础的无损压缩算法。

1.2图像压缩技术的研究现状与发展趋势

1948年提出电视信号数字化后,图像压缩编码的研究工作就宣告开始了。在这项技术发展的早期,限于客观条件,仅对帧内预测法和亚取样内查复原法进行研究,对视觉特性也做了一些极为有限但可贵的研究工作。1966年J.B.O Neal[2]对比分析了DPCM和PCM并提出了用于电视的实验数据。1969年进行了线性预测编码的实际实验。1969年举行首届图像编码会议。70年代开始进行了帧间预测编码的研究。80年代开始对运动估值和模型编码进行研究。

进入90年代,ITU-T和ISO[3]制定了一系列图像编码国际建议,如H.261、JPEG、MPEG-1、H.262、H.263、MPEG-4等。国际标准化组织[12]于1988年成立了一个致力于制定有关运动图像压缩编码的组织MPEG (Moving Picture Experts group),意思是“运动图像专家组”这个专家组的任务是给用于数字存储介质、电视广播和通信的运动图像和它的伴音制定一种通用的编码方法.MPEG组织在工作一开始就考虑到相关标准化组织的研究成果,如JPEG和H.261标准。运动图像可以看成是静止图像的一个序列,所以运动图像的帧内编码技术就采用了JPEG推荐的离散余弦变换DCT技术.此外MPEG又加进了帧间压缩编码技术。1992年MPEG正式推出了MPEG-1标准草案,1993年正式通过.由于多媒体技术、数字电视技术、多媒体通信以及交互电视技术的发展,MPEG-1在视频音频分辨率和传输率方面已不能满足要求,所以ISO/IEC在1994年又推出了ISO/IEC13813 MPEG-2 运动图像及其伴音通用压缩编码标准。MPEG-2已经被国际上公认为HDTV信源压缩编码的标准.数字电视从传输方式上分为卫星数字电视广播、有线数字电视广播和地面数字电视广播,虽然它们的信道编码方式不同,但是信源均采用MPEG-2标准编码。

2

南京师范大学泰州学院本科生毕业设计(论文)

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

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

(1) 更好地实现现有的图像编码国际建议。 研制出集成度更高、性能更好的图像编码专用芯片,使编码系统成本更低、可靠性更高。解决好现有的图像编码系统开发中的技术问题。例如:提高图像质量、提高抗码能力等。

(2) 对图像编码理论和其他图像编码方法的研究。 目前已经提出和正在进行研究的图像编码方法有:多分辨率编码、基于表面描述的编码、模型编码、利用人工神经网络的编码、利用分形几何的编码、利用数学形态学的编码等等。

1.3论文主要内容与结构安排

本文的主要内容是,介绍图像压缩编码算法中的离散余弦变换(DCT)变换算法,和用MATLAB进行仿真,从而得出实验的结果。论文具体分为五章:

第一章:绪论。首先简述了基于DCT图像压缩技术这一课题的研究意义,其次分析了现在图像压缩技术国内外的发展现状。指出DCT变换的图像压缩编码算法现在的优势与方便,有效的传输和压缩图像。

第二章:所用开发工具简介。本章介绍了MATLAB的发展及它的优点,并且简述了MATLAB在图像处理中的应用。

第三章:常见的图像压缩方法。本章简要介绍了现在国内外对图像进行压缩时进行的几种压缩方法。对几种具有代表性、具有意义的压缩方法介绍了它们的基本原理。

第四章:重点介绍了论文的中心——利用DCT变换的编码方法对图像进行压缩。并与其他压缩方法进行对比实验,得出了实验的结果。总结出了DCT变换算法的图像压缩的优势。

结束语:论文的总结。主要概括了论文的目的,并介绍了论文的各章重点以及未来的研究方向。

3

第二章 所用开发工具简介

第二章 所用开发工具简介

2.1 MATLAB软件简介

MATLAB软件由美国Math Works公司于1984年推出,历经十几年的发展和竞争,现已成为(IEEE)国际公认的最优秀的科技应用软件之一。MATLAB已推出Unix、Windows 9x/NT、Linux和Mac等十多种操作系统平台下的版本,大大方便了在不同操作系统平台下的研究工作。

事实上MATLAB既表示一种交互式的数值计算软件,又表示一门高级科学计算语言。MATLAB语言是一种直译式语言,其语法规则非常类似BASIC语言,有编程基础的人很快就可以熟悉并使用。它把计算、图示和编程集成到一个易用的交互式环境中,用大家熟悉的数学表达式来描述问题和求解方法从而使许多用C或FOR-TRAN实现起来十分复杂费时的问题用MATLAB可以轻松解决。

利用MATLAB语言及其所提供的函数进行图像处理,编程简单、操作方便、可靠性强,能够达到预期的效果。MATLAB工具箱功能非常强大,简化了繁琐的数学计算工作,有效的促进了数字图像处理相关的研究开发工作。MATLAB是矩阵实验室(Matrix Laboratory)的简称和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用与工程计算、控制设计。信号处理与通讯、图像处理、信号检测、金融建模设计与分析领域。

现在MATLAB已经发展成为一个系列产品:MATLAB主包和各种工具箱(TOOLBOX)。目前已经推出了30多个工具箱,这些工具箱可分为两大类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及硬件实时交互功能,能用于多种学科。而学科性工具箱是专业比较强的,如控制工具箱、信号处理工具箱、图像处理工具箱和小波工具箱等多个学科的专业工具箱。借助于这些工具箱,各个层次的研究人员就可方便地进行研究工作,提高工作效率。

2.2 MATLAB的优势特点

MATLAB 的优势可以概括为以下几点:

4

南京师范大学泰州学院本科生毕业设计(论文)

1、友好的工作平台和编程环境

MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。

2、简单易用的程序语言

MATLAB——一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句和执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言移植性好、可拓展性强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。

3、强大的科学计算机数据处理能力

MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++。在计算要求相同情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅里叶变换的复杂函数。函数所能解决的问题大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的求解、符号运算、傅里叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。 4、出色的图形处理能力

MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用

5

第二章 所用开发工具简介

图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图像处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。 5、应用广泛的模板集合工具箱

MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱家族中有了自己的一席之地。

6、实用的程序接口和发布平台

新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转化为独立与MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。 7、应用软件开发(包括用户界面)

在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支

6

南京师范大学泰州学院本科生毕业设计(论文)

持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括注释等;在输入输出方面,可以直接向EXCEL和HDP5进行连接。

2.3 MATLAB在图像处理中的应用

图像处理工具包是由一系列支持图像处理操作的函数组成的。所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT变换等)、图像分析和统计、二值图像操作等。

下面就MATLAB在图像处理中各方面的应用分别进行介绍。

(1)图像文件格式的读写和显示。MATLAB提供了图像文件读入函数imread(),用来读取如:bmp、tif、jpg、pcx、tiff、gpeg、hdf、xwd等格式图像文件;图像写出函数imwrite(),还有图像显示函数image()、imshow()等等。

(2)图像处理的基本运算。MATLAB提供了图像的和、差等线性运算,以及卷积、相关、滤波等非线性运算。例如:conv2 (I,J)实现了I,J两幅图像的卷积。

(3)图像变换。MATLAB提供了一维和二维离散傅立叶变换(DFT)、快速傅立叶变换(FFT)、离散余弦变换(DCT)及其反变换函数,以及连续小波变换(CWT)、离散小波变换(DWT)及其反变换。

(4)图像的分析和增强。针对图像的统计计算MATLAB提供了校正、直方图均衡、中值滤波、对比度调整、自适应滤波等对图像进行的处理。

(5)图像的数学形态学处理。针对二值图像,MATLAB提供了数学形态学运算函数:腐蚀(Erode)、膨胀(Dilate)算子,以及在此基础上的开(Open)、闭(Close)算子、厚化(Thicken)、薄化(Thin)算子等丰富的数学形态学运算。

以上所提到的MATLAB在图像中的应用都是由相应的MATLAB函数来实现的,使用时只需按照函数的调用语法正确输入参数即可。具体的用法可参考MATLAB丰富的帮助文档。

7

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

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

3.1 引言

目前,图像压缩编码技术广泛应用于各种图像编码的传输、存储、检索等系统中。自从实现图像压缩技术以来,它已从实验室进入人们的日常生活。因此,研究高效的图像压缩编码方法,以压缩形式存储和传输数字化的图像信息具有重要的意义。

图像压缩编码的目的是以尽量少的比特数表征图像,同时保证复原图像的质量,使它符合预定应用场合的需要。压缩数据量、提高有效性是图像压缩编码的首要目的。通常把图像压缩编码简称为图像编码。图像编码是一种信源编码,其信源是各种类型的图像信息。图3.1是按无损压缩和有损压缩给出的各类算法的分类框图,在本章中将对其中几种算的基本原理进行论述。

图像压缩编码无损压缩编码有损压缩编码行程编码LZW编码熵编码预测编码矢量量化神经网络分形编码模型编码变换编码JPEGMPEG标准 图3.1 各类图像压缩算法分类框图

3.2 RLE(Run Length Encoding)压缩算法

RLE[2]通常称为行程编码。这种压缩法使用于PCX,OFF,BMP等图像格式中,其压缩原理很简单。

其中一种编码的形式是(L,v),将一行中颜色值相同的相邻像素用一个记数值和该颜色值来代替。例如,abbbccccddd经行程压缩处理后可表示为1a3b4c3d。

另一种常用的行程编码方式是零行程,零是唯一经常出现的连续值,而其

8

南京师范大学泰州学院本科生毕业设计(论文)

他值是任意的,在这种情况下,行程数L只用于表示连续0的个数,而V则用于表示0串后紧跟的非零值。例如0005001000000-3表示为(3,5)(2,l)(6,-3)。

当图像中存在很多块颜色相同的大面积区域,则RLE编码产生的压缩率是很高的。但如果图像中很少有两个相邻的像素的灰度值相同时,则RLE编码非但不能压缩,还会造成处理后的图像数据量大于处理前的情况。

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

3.3 LZW编码

LZW[3]编码是由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

9

南京师范大学泰州学院本科生毕业设计(论文)

?1?式中,x,y,u,v?0,1,?,N?1。c(u)?c(v)??2??1u?0,v?0其它

如果采用8×8大小的子块的二维离散余弦变换,在编码器的输入端,把原始图像顺序地分割成一系列8×8的子块,子块的数值在-128到127之间。采用余弦变换获得64个变换系数[8]。

图4.1 MATLAB实现的流程图

变换公式,如式(2-3)所示。

F?u,v??1477c?u?c?v??x?0?y?0f?2x?1??2y?1?x,ycosu?cosv?? (2-3) ??????16??16? 15

第四章 基于DCT变换的图像压缩方法

?1?式中,x,y,u,v?0,1,?,7。c(u)?c(v)??2??1u?0,v?0其它

4.3基于DCT的图像压缩编码步骤

4.3.1 基于DCT图像压缩编码流程图

基于DCT的图像压缩编码的MATLAB实现的流程图如图4.1所示。 4.3.2 DCT系数的量化

量化是对经过DCT变换后的频率系数进行量化,其目的是减小非“0”系数的幅度以及增加“0”值系数的数目,它是图像质量下降的最主要原因。

对于基于DCT的图像压缩编码算法使用如图4.2所示的均匀量化器进行量化,量化步距是按照系数所在的位置和每种颜色分量的色调值来确定。因为人眼对亮度信号比对色差信号更敏感。此外,由于人眼对低频分量的图像比对高频分量的图像更敏感,因此表中的左上角的量化步距要比右下角的量化步距小。

量化系数输出 DCT系数输入

图4.2 均匀量化器

亮度和色度因为代表的图像的信息量不同,亮度代表了图像的低频分量,色度代表了图像的高频分量,要分别对亮度和色度进行量化,所以量化表也是不同的。

4.3.3量化系数的编排

经过DCT变换后,低频分量集中在左上角,其中F(0,0)(即第一行第一列元素)代表了直流(DC)系数,即8×8子块的平均值,要对它单独编码。由于两个相邻的8×8子块的DC系数相差很小,所以对它们采用差分编码DPCM,可以提高压缩比,也就是说对相邻的子块DC系数的差值进行编码。8×8的其它

16

南京师范大学泰州学院本科生毕业设计(论文)

63个元素是交流(AC)系数,采用行程编码[10]。

所以量化后的系数要重新编排,目的是为了增加连续的“0”系数的个数,就是“0”的游程长度,方法是按照Z字形的式样编排。

DCT变换后低频分量多呈圆形辐射状向高频率衰减,因此可以看成按Z字形衰减。因此,量化系数按Z字形扫描读数,这样就把一个8×8的矩阵变成一个1×64的矢量,频率较低的系数放在矢量的顶部。量化后的DCT系数的编排如图4.3所示。

图4.3量化DCT系数的编排

量化后的DCT系数的序号如表4.4所示。

表4.4 量化DCT系数的序号

0 2 3 9 10 20 21 35 1 4 8 11 19 22 34 36 5 7 12 18 23 33 37 48 6 13 17 24 32 38 47 49 14 16 25 31 39 46 50 57 15 26 30 40 45 51 56 58 27 29 41 44 52 55 59 62 28 42 43 53 54 60 61 63 4.3.4 DC系数的编码

8×8子块的64个变换系数经量化后,按直流系数DC和交流系数AC分成两类处理。坐标u?v?0的直流系数DC实质上就是空域图像中64个像素的平均值。

17

第四章 基于DCT变换的图像压缩方法

图像块经过DCT变换之后得到的DC直流系数有两个特点,一是系数的数值比较大,二是相邻8×8图像块的DC系数值变化不大。根据这个特点,JPEG算法使用了差分脉冲调制编码技术。

差分脉冲编码调制(DPCM,Differential Pulse Code Modulation),是一种对模拟信号的编码模式,先根据前一个抽样值计算出一个预测值,再取当前抽样值和预测值之差作为编码用。此差值称为预测误差。抽样值和预测值非常接近(因为相关性强),预测误差的可能取值范围比抽样值变化范围小。所以可用少几位编码比特来对预测误差编码,从而降低其比特率。这是利用减小冗余度的办法,降低了编码比特率。

因此,对DC系数编码进行差分脉冲编码就是对相邻图像块之间量化DC系数的差值(Delta)进行编码,即对相邻块之间的DC系数的差值DIFF=DCi-DCi-1编码。DC采用差值脉冲编码的主要原因是由于在连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少许多。例如差值为5,它的二进制表示值为101,如果差值为-5,则先改为正整数5,再将其二进制转换成1的补数即可。所谓1的补数,就是将每个Bit若值为0,便改成1;Bit为1,则变成0。差值5应保留的位数为3,列出差值所应保留的Bit数与差值内容的对照。 4.3.5 AC系数的编码

DCT变换所得系数除直流系数之外的其余63个系数称为交流系数(AC系数)。量化AC系数的特点是1× 64矢量中包含有许多“0”系数,并且许多“0”是连续的,因此使用非常简单和直观的游程长度编码(RLE)对它们进行编码。

63个AC系数采用行程编码的方式进行编码的格式如图4.5所示。也即在AC01到AC63中,找出每一个非零的AC值,将其表示成(NN/SS)VV的形式,其中:NN表示该AC值前的0的个数。而SS、VV与DC的定义一样。如果连续的非0超过15个时,增加一个扩展字节:(15/0)表示连续16个0。另外若有一串0延伸到AC63,一律用(0/0)表示结束。

对于AC系数,有两个符号。符号1为行程和尺寸,即上面的(RunLength,Size)。(0,0)和(15,0)是两个比较特殊的情况。(0,0)表示块结束标志(EOB),(15,0)表示零行程长度超过15个时(ZRL),当行程长度超过15时,用增加ZRL

18

南京师范大学泰州学院本科生毕业设计(论文)

的个数来解决,所以最多有三个ZRL(3×16+15=63)。符号2为幅度值(Amplitude)。

第一字节

7 6 5 4 3 2 1 0 7 6 第二字节 5 4 3 2 1 0 两个非零值 之间的连续 零的个数 下一个非零 值所占的比 特数 下一个非零系数的实际值

图4.5 AC编码格式

对于DC系数,也有两个符号。符号1为尺寸(Size);符号2为幅度值(Amplitude)。

对于AC系数,符号1和符号2分别进行编码。零行程长度超过15个时,有一个符号(15,0),块结束时只有一个符号(0,0)。 4.3.5组成位数据流

图像编码的最后一个步骤是把各种标记代码和编码后的图像数据组成一帧一帧的数据,这样做的目的是为了便于传输、存储和译码器进行译码,这样的组织的数据通常称为图像位数据流。

表4.6亮度量化后的系数

15 -2 -1 0 0 0 0 0 0 -1 -1 0 0 0 0 0 -1 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 举个例子来说明上述过程。下面为8×8的亮度(Y)图像子块经过量化后的系数,如表4.6所示。

19

第四章 基于DCT变换的图像压缩方法

可见量化后只有左上角的几个点(低频分量)不为零,这样采用行程编码就会很有效。

第一步,熵编码的中间格式表示。

先看DC系数。假设前一个8×8子块DC系数的量化值为12,则本块DC系数与它的差为3,根据表4.7所示。

表4.7 DC系数表

Size 0 1 2 3 4 5 6 7 8 9 10 11 Amplitude 0 –1,1 –3,-2,2,3 –7~-4,4~7 –15~-8,8~15 –31~-16,16~31 –63~-32,32~63 –127~-64,64~127 –255~-128,128~255 –511~-256,256~511 –1023~512,512~1023 –2047~-1024,1024~2047 查表得Size=2,Amplitude=3,所以DC中间格式为(2)(3)。

下面对AC系数编码。经过Zig-Zag扫描后,遇到的第一个非零系数为-2,其中遇到零的个数为1(即RunLength),根据下面这张AC系数表如表4.8所示。

查表得Size=2。所以RunLength=1,Size=2,Amplitude=3,所以AC中间格式为(1,2)(-2)。

其余的点类似,可以求得这个8×8子块熵编码的中间格式为

(DC)(2)(3),(1,2)(-2),(0,1)(-1),(0,1)(-1),(0,1)(-1),(2,1)(-1),(EOB)(0,0)

第二步,熵编码。

20

南京师范大学泰州学院本科生毕业设计(论文)

对于(2)(3):2查DC亮度Huffman表得到11,3经过VLI编码为011;对于(1,2)(-2):(1,2)查AC亮度Huffman表得到11011,-2是2的反码,为01;对于(0,1)(-1):(0,1)查AC亮度Huffman表得到00,-1是1的反码,为0;最后,这一8×8子块亮度信息压缩后的数据流为11011,1101101,000, 000, 000,111000,1010。总共31比特,其压缩比是64×8/31=16.5,大约每个象素用半个比特。

表4.8 AC系数表

Size 1 2 3 4 5 6 7 8 9 10 Amplitude –1,1 –3,-2,2,3 –7~-4,4~7 –15~-8,8~15 –31~-16,16~31 –63~-32,32~63 –127~-64,64~127 –255~-128,128~255 –511~-256,256~511 –1023~512,512~1023 以上是图像压缩编码的整个过程。可以看出,压缩比和图像质量是呈反比的,以下是压缩效率与图像质量之间的大致关系,可以根据需要,选择合适的压缩比。压缩比和图像质量的关系如表4.9所示。

表4.9压缩比与图像质量的关系

压缩效率(单位:bits/pixel) 0.25~0.50 0.50~0.75 0.75~1.5 1.5~2.0

图像质量 中~好,可满足某些应用 好~很好,满足多数应用 极好,满足大多数应用 与原始图像几乎一样 21

第四章 基于DCT变换的图像压缩方法

4.4基于DCT的图像压缩MATLAB仿真

本实验采用了DCT图像压缩算法对图像进行压缩。用了3组数字图像得到了结果。本实验的实验平台为普通PC机,配置为CPU T4200 @2.00GHz , 2.0G的内存。系统为Windows 7,采用了工具MATLAB 7.0 进行实验。

(a1)原始图像 (b1)Huffman压缩后的图像

(c1)DCT变换后的频域图像 (d1)DCT压缩后的图像

图4.10 cameraman图像实验结果

如图4.10所示,图(a1)为cameraman.tif原始图像,图(b1)为Huffman编码压缩后的图像,图(c1)为DCT变换后的频域图像为8×8的图像经过DCT变换后,其低频分量都集中在左上角,高频分量分布在右下角(DCT变换实际上是空间域的低通滤波器)。由于该低频分量包含了图像的主要信息(如亮度),而高频与之相比,就不那么重要了,所以我们可以忽略高频分量,从而达到压缩的目的。图(d1)为DCT变换压缩图像,可以看出来虽然Huffman编码压缩图像比DCT压缩的图像清晰,但是哈夫曼编码对于位的增减都反应敏感,由于哈夫曼编码时所有位都集中在一起,而不考虑字节分界,译码程序判断码结束的唯一方法是达到二叉树的一个分支,因此,如果增加或减少位,译码程序将无法正确译出后面的数据。另外,Huffman压缩编码运行的时间需要Elapsed time is 32.604000 seconds.. DCT编码运行结果的时间需要Elapsed time is 2.231000 seconds.可见DCT编码程序运行速度要快于Huffman编码运行速度,这样在运行结果上节约了不少时间。

22

南京师范大学泰州学院本科生毕业设计(论文)

(a2)原始图像 (b2)Huffman压缩后的图像

(c2)DCT变换后的频域图像 (d2)DCT压缩后的图像

图4.11 city图像实验结果

如图4.11所示,是用另外一数字图像进行实验,图(a2)为原始图像,图(b2) 为Huffman压缩后的图像,图(c2)为DCT变换后的频域图像为8×8的图像经过DCT变换,图(d2)为DCT压缩后的图像。同样的,Huffman压缩编码运行的时间需要33.712000 seconds,DCT编码运行结果的时间需要2.222000 seconds。

如图4.12所示,也是用另外一数字图像进行实验,图(a3)为原始图像,图(b3)为Huffman编码压缩后的图像,图(c3)为DCT变换后的频域图像为8×8的图像经过DCT变换,图(d3)为DCT压缩后的图像。Huffman压缩编码运行的时间需要32.922000 seconds,DCT编码运行结果的时间需要2.321000 seconds。 由上述实验可以看出DCT变换编码的主要特点及优势:

DCT变换具有良好的相关性和能量压缩特性,另一方面DCT变换具有快速实现算法。

DCT属于变换编码,可用于图像处理的二维离散余弦变换。在目前常用的正交变换中,DCT变换其性能接近最佳,仅次于K-L变换,所以DCT变换被认为是一种准最佳变换。另一方面,DCT变换矩阵与图像内容无关,而且由于

23

第四章 基于DCT变换的图像压缩方法

它是构造成对称的数据序列,从而避免了子图像边界处的跳跃和不连续现象,并且也有快速算法(FDCT),所以在图像编码的应用中,往往都采用二维DCT。DCT变换可以通过量化步骤有选择性地消除或较粗糙地量化高频部分。

(a3)原始图像 (b3)Huffman压缩后的图像

(c3)DCT变换后的频域图像 (d3)DCT压缩后的图像

图4.12 plan图像实验结果

与Huffman压缩不同的是Huffman压缩方法对原始数据处理复杂,如果增加或减少位,译码程序将无法正确译出后面的数据等弊端,而DCT编码程序简单,操作方法简单、运行速度快、误差小等优点。

4.5本章小结

本章主要介绍了基于DCT变换的图像压缩编码算法。首先简述了什么是DCT变换,简单介绍了DCT变换是什么样的分析方法和DCT变换分析的应用。其次,又介绍了DCT变换理论,然后重点介绍了DCT变换的图像压缩,介绍了DCT变换算法图像压缩的基本思想。最后,简述了DCT算法图像压缩的实验原理和实验步骤,并进行了图像压缩的算法的实验得出了实验的结果,实验结果表明DCT变换的图像压缩相对于其他算法的优势。

24

南京师范大学泰州学院本科生毕业设计(论文)

结束语

相关技术日新月异的进步,使得数字图像相关技术的应用越来越广泛。数字图像以其较之于传统文字信息大得多的信息量,更加符合人们接受信息的习惯的特点,已经渗透到社会生活的各个方面。

数字图像的固有缺陷是其特别巨大的数据量,与传输网络有限的传输能力形成了一对矛盾,成为制约数字图像应用的瓶颈。因此数字图像的压缩编码与传输是非常有实际使用价值的热点研究问题。本文通过研究设计一个基于DCT变换的图像压缩编码的matlab实现,得到了下面的结论:

论文叙述的图像压缩编码算法。DCT是正交变换,它可以将8*8图像的空间表达式转换为频率域,只需要用少量的数据点表示图像;DCT产生的系数很容易被量化,因此能获得好的块压缩;DCT算法的性能很好,它有快速算法,因此它在软件中容易实现;而且DCT算法是对称的,所以利用逆DCT算法可以用来解压缩图像。

仿真结果说明了压缩比增大时,图像的质量会降低,并且图像的信噪比会变小。利用MATLAB仿真软件来实现离散余弦变换的图像压缩,具有方法简单、速度快、误差小的优点,免去了大量矩阵计算,大大提高了图像压缩的效率和精度。

由于本人能力、时间有限,所以本文的研究内容还存在不足之处,图像细节上有欠缺,论文中语言组织不是太完美,对于MATLAB更是第一次接触,如果有细节上的问题,还请各位老师谅解。

25

参考文献

参考文献

[1] 沙磊,叶霞.利用离散余弦变换进行图像压缩的方法.成都理工学院报 1997(7):109~114

[2] 欧阳林群.谈谈DCT 在图像压缩编码中的应用原理.南平师专学报, 2001,20(4):82~84

[3] 王成优,侯正信.JPEG图像压缩编码及其MATLAB仿真实现.信息技术电子测量技术.天津大学硕士研究生论文.2007(1):135~137

[4] 徐寿芳.JPEG和JPEG2000的内核剖析.湖州职业技术学院报,2003(1):91~94 [5] 宫泽林.基于JPEG图像压缩技术的研究及其Matlab实现.信息技术,2009(9):103 [6] 罗倩玲.JPEG编码与矢量量化编码方法比较[J].电子测量技术,2005(4):35~37 [7] 王芳,汪伟.JPEG2000图像压缩标准及其应用.光盘技术,2006(1):57~59

[8] 吕世良,曲仕敬.基于DCT 的图像压缩及Matlab 实现.科技信息,IT技术论坛:2008 (14):402

[9] 崔春艳,李彩霞.基于DCT 变换的数字图像压缩技术及其Matlab 实现.现代电子技术.2002(9):7~9

[10] 李世军.JPEG压缩编码算法的仿真实现.湖南工程学院学报(自然版),2009.2:36~ 37

[11] [日]原岛博主编.图像信息压缩.薛培鼎,徐国鼐译.北京:科学出版社,2004:234~235

[12] 蔡旸.JPEG静态图像压缩算法的研究.武汉科技大学控制理论与控制工程硕士学位论文:14~29

[13] 刘榴娣,刘明奇,党常民.实用数字图像处理.北京:北京理工大学出版社,1998.8:156~160

[14] 龚声蓉,刘纯平,王强等.数字图像处理与分析.北京:清华大学出版社,2006.7:87~121

[15] Wang Junwen, Detecting JPEG image forgery based on double compression. Journal of Systems Engineering and Electronics, 2009.5:1097~1099

[16] HUANG Fangjun, Calibration based universal JPEG steganalysis Science in China(Series F:Information Sciences),2009.2

26

南京师范大学泰州学院本科生毕业设计(论文)

[17] WALLACE G K. Overview of the JPEG(ISO/CCITT)still image compression standard[J] .Image ProcessingAlgorithms and Techniques, 1990, (12) :220~233

27

致谢

致 谢

非常感谢我的指导老师孙剑芬老师在我大学的最后学习阶段——毕业设计阶段给自己的指导。从最初的定题,到资料收集,到写作、修改,到论文定稿,她给了我耐心的指导和细心的修改。为了我们的毕业论文能达到最好,她对每一位同学严格要求和认真批改,当我没有思路时耐心的指导,在此我向她表示我诚挚的谢意。同时,感谢所有任课老师和所有同学在这四年来给自己的指导和帮助,是他们教会了我专业知识,教会了我如何学习,教会了我如何做人。正是由于他们,我才能在各方面取得显著的进步,在此向他们表示我由衷的谢意,并祝所有的老师培养出越来越多的优秀人才,桃李满天下!

28

本文来源:https://www.bwwdw.com/article/hcc6.html

Top