1、燕山大学毕 业 设 计 ( 论 文 )基于 DCT 的图象压缩学院(系)信息科学与工程学院年级专业 04 级电子信息工程 学生姓名 赵夕指导教师 练秋生答辩日期 2008 年 6 月 26 日 燕山大学毕业设计任务书学院: 信息科学与工程学院 系级教学单位:电子与通信系 学号 02xxx8学生姓名 111专 业班 级 电子 4 班题目名称 基于 DCT 的图象压缩题目性质1.理工类:工程设计 ( ) ;工程技术实验研究型( ) ;理论研究型( ) ;计算机软件型( ) ;综合型( ) 。2.管理类( ) ;3.外语类( ) ;4.艺术类( ) 。题目类别 1.毕业设计( ) 2.论文( )题目
2、题目来源 科研课题( ) 生产实际( )自选题目( ) 主要内容1. 学习 DCT 变换和数字图像的基本原理2. 掌握图像压缩的基本算法3. 熟悉 JPEG 压缩算法4. 熟悉 JPEG 块效应去除算法5. 用软件实现 JPEG 压缩、解压缩及块效应去除算法基本要求1. 用 Matlab 或 C+Builder 实现恢复算法2. 优化系统的性能。3软件具有一定的通用性,具有较高的可读性和可移植性,结构清晰。参考资料数字图象处理图像压缩中国期刊网,google 及相关电子资源周 次 14 周 58 周 912 周 1316 周 1718 周应完成的内容查阅资料 算法设计软件编程软件调试 算法优化
3、结果分析撰写论文指导教师:练秋生职称:副教授 08 年 3 月 1日系级教学单位审批:年 月 日燕山大学本科生毕业设计(论文)I摘 要图象压缩所要达到的目的就是用最小的信息量来表示尽可能多的信息。对于图象来说,如果需要进行快速或实时传输以及大量存储,就需要对图象数据进行压缩。如果图象数据压缩后再传输,就可以传榆更多的图象信息也就可以增加通信的能力。变换编码是把图象中的各个像素从一种空间变换到另一种空间,然后针对变换后的信号进行量化与编码操作的一种图象压缩编码技术。DCT(离散余弦变换)是变换编码中的一种映射变换方法,是 JPEG 标准中认可的编码技术;优点:能用静态图象有较高的压缩比,正由于这
4、种优越性,DCT 得到广泛使用。本文后半部分主要研究了经过 JPEG 压缩后图象产生块效应,产生块效应的原理,解决的途径及消除这种块效应的具体办法。提出了一种 DCT 均值块效应去除算法,在保护图象的完整性的前提下,有效的减少了图象的高频分量,以此达到去除图象方块效应的目的。关键词 图象压缩;DCT(离散余弦变换) ;JPEG;块效应;燕山大学本科生毕业设计(论文)IIAbstractThe objective of Image compression is to use the smallest amount of information to indicate as much inform
5、ation as possible. if there is need for quick or real-time transmission and a large amount of storage, it is impossible to do the image data compression. If the image data compression doing after the transformation, you can transform more image information. It can increase communications capacity. T
6、ransform coding is a image coding technology of encoded in each pixel from one space to another kind of transformation of space, and then transform the signal for the quantification and the operation. DCT is a mapping transformation method in the transformation, is recognized in the JPEG standard co
7、ding technology; advantages: static images can use a higher compression ratio, for this superiority, DCT is widely used. The latter part introducing a major study of the JPEG compressed images blocking artifacts, the principle of blocking artifacts, the means and the specific method of resolve to el
8、iminate the blocking artifacts. Give a new method of DCT removal algorithm, under the Premise of protect the integrity of images, effectively reducing the image of the high frequency. To achieve the objective of removing images blocking artifacts.Keywords Image compression; DCT; JPEG; Blocking artif
9、actsIII目 录摘 要 .IAbstract.II目 录 III第 1 章 绪论 .11.1 课题背景 .11.2 静态图象压缩编码技术 .31.3 研究静态图象编码技术的意义 .41.4 本文结构 .6第 2 章 JPEG 标准 72.1 JPEG 基本系统 82.2 JPEG 基本系统的实现 92.2.1 前向余弦变换(FDCT)和反向余弦变换(IDCT) .92.2.2 量化与反量化 .122.2.3 熵编码与解码 .142.3 CXIMAGE 函数库 18第 3 章 JPEG 图象块效应去除 193.1 图象块效应的产生 .193.1.1 JPEG 系统存在的问题 193.1.2
10、块效应产生原理 .193.2 消除块效应算法 .203.2.1 DCT 均值去块效应算法的具体实现 213.2.2 程序流程图 .213.3 本章小结 .24第 4 章 实验结果 .264.1 图像数据压缩性能评价和度量 .264.1.1 图象的压缩比 .26IV4.1.2 图象质量评价 .264.2 实验结果对比 274.3 本章小结 32结论 .33参考文献 .34致谢 .35附录 1 I附录 2 VIII附录 3XII附录 4 XIX燕山大学本科生毕业设计(论文)1燕山大学本科生毕业设计(论文)1第 1章 绪论1.1 课题背景随着微电子,计算机和传感器等技术的高速发展,世界已进入信息时代
11、,信息时代的重要特征是信息的数字化,这些信息包括:数值,文字,语言,声音,图形,动化,视频,图象等多种多媒体信号。这些多媒体信号由模拟量转换成数字量信息后,送到计算机存储,存储后的数据或者仍由计算机对其自身进行处理,或者将通过传输通道进行传输 1。可以看出,图象,声音等媒体信息的记录,存储,传输正朝着数字化的方向发展。而这些被数字化了的图象,视频,音频等信号的数据量之大是非常惊人的。例如:一幅 3000 2000 个象素组成的灰度图片,每个象素用 8bit 数据量来表示,那么这幅数字图象需要:(1-1)bitsbit81048203如此庞大的数据量存储开销很大,这些大容量的数据无疑对存储器寸量
12、,计算机的速度都增加了极大的压力。解决这一问题,单纯的扩大存储器的容量是不现实的 2。图象不仅在存储和处理的时候因其数据量大而造成大量问题,同时在图象数据的传输过程中也因为网络带宽和图象数据量之间的瓶颈极大的制约着网络多媒体技术的发展。网络通信技术飞快发展,网络上传输的数据量将越来越多,数据的复杂度也越来越大,单纯增加通信可、干线的传输率也是不现实的。这些数据如果通过数据压缩手段把信息数据量压下来,以压缩的形式存储和传输,即节约了存储空间,又提高了通信干线的传输效率,同时也使计算机能实时处理高质量的音频、视频信息。通过压缩图像数据,最直接的后果就是减少了传输图像所需的带宽,同时不需额外的物理设
13、备和存储容量,达到传输更多,更精确的信息,为此减少了因此而带来的一系列费用和问题。使用图形、声音、动画、活动图像等多媒体信息时,特别是具有较高的质量要求时,不仅需要占用相当大的存储空间,而且需要相当高的数据传输率。因此可以看出,对静态图像进行压缩是绝对必要的 3。从以上的论述可以看出图像数据必然要通过压缩,但是这种压缩是否燕山大学本科生毕业设计(论文)2可行?压缩后的数据是否会影响到图像的品质? 信息论的核心理论将证明图像压缩技术具有可行性并有待进一步优化。信息论的观点认为信源中心总是或多或少地含有自然冗余度,这些冗余度既来自信源本身的相关性,又来自信源概率分布的不均匀性。这些冗余包括空间冗余
14、、时间冗余、信息熵冗余、结构冗余、知识冗余、视觉冗余、图像区域的相同性兀余等多种图像冗余。这些冗余大部分来自图像数据自身, ,部分来自外界环境和主观因素。对于这些冗余,根据它对图像生成的影响程度来分,信息熵冗余和图像区域的相同性冗余是造成图像信息量大于其要表达的信息量的主要原因。图像压缩编码是在对数字图像进行大量统计分析,掌握和了解图像信息的统计特性的基础上,充分利用图像本身的相关性强的特点,寻求消除或减少相关性或改变图像信源概率分布不均匀性的方法,实现数据的压缩。信息论发展中期,削斯特(Kerstern)通过实验方法 7,来估计自然图像的熵和冗余。他使用了 8 幅不同的图像,L 每幅图像都是
15、 128x128 个象素,每个象素为 4bit(即 16 级灰度)。通过不断添加图像的重要信息部分,记录图像的失真程度,得出 9:(1-2)实 际 比 特 率 熵实 际 比 特 率实 际 比 特 率熵冗 余 度 1这里熵的概念是指信息量的概率平均值。即随机变量 I(a)的数学期望值,也叫做信息熵,其含义可以用下面这个公式来定义 9:(1-3)jmjjmj PIPxHlog)()(1图像编码研究属于信息论中信源编码范畴,其主要宗旨是利用图像信号的统计特性及人类视觉的生理学及心理学特性对图像信号进行高效编码,并研究数据压缩技术,以解决数据量大的问题。一般来说,图像压缩编码的目的 5为:1.减少数据
16、存储量。2.降低数据率以减少传输宽带。3.压缩信息量,便于特征抽取,为识别做准备。信息论对图像压缩编码是否存在科学依据做了详细、有利的证明,大量压缩算法从产生逐渐成熟。燕山大学本科生毕业设计(论文)31.2 静态图象压缩编码技术 图像压缩编码技术可以追溯到 1948 年提出的电视信号数字化,到今天己经有 50 年的历史了。Kont 提出了第一代数据压缩编码的概念。他把 20 世纪 40 年代中研究的以去除冗余为基础的编码方法称为第一代编码。如 PCM、DPCM、亚取样编码法、变换编码中的 DFT、DCT、walsh 一 Hadamard 变换等方法以及以此为基础的混合编码法属少经典的第一代编码
17、方法。直至五十年代和六十年代的图像压缩技术由于受到电路技术等的制约,仅仅停留在预测编码、亚采样以及内插复原等技术的研究,还很不成熟。A.H.ffman 于 1952年第一次发表了他的论文“最小冗余度代码的构造方法” 。从此,数据压缩开始在商业程序中实现并被应用在许多技术领域 1。第二代数据压缩编码从 20 世纪 90 年代开始,数学家们因为不满足于Huffman 编码中的某些致命弱点,设计出另一种更为精确,更能接近信息论中“熵”极限的编码方法一算术编码。在算术编码的基础上又发展了变换编码中如金字塔编码法、Fractal 编码、模型基编码。其中最具有代表性的是 LZ77 和 LZ78,将基于这一
18、思路的编码方法称作“ 字典”式编码。辛典式编码不但在压缩效果上大大超过了 Huffman,而且,好实现,其压缩和解压缩的速度也异常惊人。1984 年,LZ78 算法的一个变种:LZW 产生。LZW 继承了 LZ77 和 LZ78 压缩效果好、速度快的优点,而且在算法描述上更容易被人们接受。70 年代末 80 年代初,人们逐渐意识对于多数灰度或是彩色图像乃至声音文件,没有必要忠实地保留其所有信息,在允许一定的精度损失的情况下,可以实现更为有效的压缩方法。到 80 年代末,许多人已经在这一领域取得了不小的收获,设计出了一批在压缩效果上让人惊讶不已的声音和图像压缩算法 1。第三代数据压缩编码技术主要
19、从 90 年代至今,图像压缩技术的主要成果体现在小波编码、分形编码等,矢量量化编码技术也有较大发展。由于小波变换理论,分形理论,人工神经网络理论,视觉仿真理论的建立,人们开始突破传统的信源编码理论,例如不再假设图像是平稳的随机场。有关于图像编码技术的科技成果和科技论文与日俱增,图像编码技术开始走向繁荣。现代编码技术的特点是:充分考虑人的视觉特性,在恰当地考虑燕山大学本科生毕业设计(论文)4对图像信号的分解与表达时,采用图像的合成与识别方-案压缩数据。图像压缩编码向着更高的压缩比和更好的压缩质量的道路前进,进入了一个崭新的、欣欣向荣的大发展时期 2,3。压缩编码的方法主要分成以下 4 大类:1.
20、像素编码;2.预测编码;3.变换编码;4.其它方法。在数据压缩编码技术的发展过程中,获得最大成功的,并被广泛应用在各个领域的就是压缩技术第二代中的 JPEG 压缩算法 1。JPEG(Joint Photographic Experts group)是 1952 年 150(国际质量认证组织)和国际通信联盟联合组成的。JPEG 组织提出和制定的一种压缩标准,主要适用于静态图像信号的压缩和编码。JPEG 标准结合采用了预测、不定长等多种压缩编码方法,压缩比可以达到 10:1100:1,而且压缩比可以在一定范围内由用户进行选择。当压缩比小于 40:1 时,可以被认为压缩结果是无失真的。但是采用 JP
21、EG 标准制定的压缩算法的计算量比较大,如对一幅较高精度的真彩色图像使用 JPEG 压缩时,大约要进行上亿次运算操作,这对实现JPEG 压缩、编码的软件、硬件设备产品提出了较高的要求。早期的 JPEG压缩多数做成专用的压缩卡,以专用的高速 CPU 芯片实现压缩处理,现在通用的计算机 CPU 速度不断提高的情况下,JPEG 压缩也可以用软件来实现。为了解决 JPEG 中存在计算复杂,块效应的问题,近些年来出现了很多新的压缩编码方法,如使用人工神经元网络(Artificial Neural Network,ANN) 的压缩编码算法;分形(Fractl); 小波 (Wavelet);基于对象(Obj
22、ect 一 Based)的压缩编码算法;基于模型(Model 一 Based)的压缩编码算法(应用在 MPEG4 及未来的视频压缩编码标准中)。1.3 研究静态图象编码技术的意义近年来越来越多的研究人员开始注重图像压缩技术,其主要原因就在于图像文件不仅占据内存空间,而且也占据大量的传输带宽,这使得许多信息行业必须通过使用图像压缩系统,才能解决因为图像数据量大而带来的存储和传输问题。利用压缩我们可以解决许多原先不能解决的问题。随着数字化媒体技燕山大学本科生毕业设计(论文)5术的发展,产生了许多新的技术,例如远程诊断和图像建档及通信系统。在这些应用中,数字医学图像的传输和存储,给图像压缩技术提出了
23、新的要求。医学图像的数据量往往大过普通图像的好多倍,在有效地利用通信带宽或节约存储空间的意义上,有损压缩是更期望被采用的;另一方面,对医学图像的任何处理,都潜在地会给诊断结果带来影响,如何决定哪些信息可以被压缩,哪些信息不可以被压缩?基于感兴趣区域的图像压缩,能够在编码过程,结合观察者的主观判断,是走出这一困境的有希望的途径。有了图像压缩技术,我们就可提出一种对医学图像的感兴趣区域进行交互式传输编码的方案。首先,对图像进行最基本的压缩。然后,根据图像接收者要求的感兴趣区域,以及这些区域解码恢复后要达到的视觉质量,对感兴趣区域进行特定压缩率的编码。在将来的改进过程中,我们还可以做到远端不必等待所
24、有的数据都传到,即可从传输的信息数据流中解压出逐步清晰的图像;用户在观察中可以多次指定新的感兴趣区域,编码过程在已经发送的数据基础上继续编码,而不需要重新开始。我们已经看出图像数据的压缩不仅仅可以用一些简单的数字可以说明其必要性,同时也说明了它的必然。图像压缩是一个很有发展前途的研究领域,这一领域的突破对于通信和多媒体事业的发展将具有深远的影响。国际上静态图像压缩技术已经趋向成熟化发展,但就国内的情况而言,静态图像压缩技术的应用还是很不普遍,人们理论研究,诸如探索图像压缩编码等,而对于将成熟技术转化为实际应用方面做的还不够。目前国内图像压缩主要应用在图像传输,特别是在卫星向地面传输图像。图像压
25、缩分无损及有损压缩两类,无损压缩由于其压缩比有一定的极限,所以目前己经不是研究的热点,大家的研究主要集中在有损压缩上。所谓的有损压缩就是压缩后图像的某些信息会丢失 2,3。由于各类专业图像所关心的信息不同,其压缩方法也不相同,针对各种类型图像开发专用的压缩算法是当前研究的热点。当对其有损压缩(大压缩比)后发到地面后,有些细节就丢失了,而这些细节往往正是我们关心的,因此在对这类图像压缩时,必须采用特殊的算法以保证在压缩后能保留这些细节。另外,对于指纹这样的特殊图像如何在压缩后保存其完整特征也是一个重要的研究方向。因此,在图像压缩方面投入一定的资金燕山大学本科生毕业设计(论文)6和人力,进行深入的
26、研究,将有助于提高我国在高科技领域方面的国际竞争力 5。1.4 本文结构本文基于 DCT 算法,对 JPEG 进行了比较详细的介绍,并对算法进行了改进。同时图象经过 JPEG 压缩之后,会产生一定的块效应,当压缩比很大的时候这种效应由为突出。本文后半部分着重对块效应的处理进行了研究,利用一种均值算法有效的去除了压缩后所产生的块效应,并与其他的去除块效应算法进行了比较,得到了较好的效果。本文写作结构为:第一章 绪论:介绍国内外发展现状,研究图象技术的意义。第二章 主要阐述基于 DCT 变化的 JPEG 系统:DCT 变换原理,量化与反量化,熵编码及解码,JPEG 算法的实现和 CXIMAGE 函
27、数库。第三章 研究了 JPEG 算法的缺陷,主要是块效应的产生原理,近年来国际上解决块效应的各种算法,及本文解决块效应的算法的思路和具体实现。第四章 对实验结果的检验,在不同压缩比的情况下,算法的效果及与几种主流算法的比较。燕山大学本科生毕业设计(论文)7第 2章 JPEG 标准JPEG 标准是静态图像的压缩编码和译码标准。它是第一个压缩静态数字图像的国际标准,既可以用于灰度图像,又可以用于彩色图像。为了适应各种应用的不同要求,它支持两种图像的建立模式:顺序型、渐进型。同时它包括有两种基本的压缩算法。一种算法是基于 DCT(离散余弦变换)的有损压缩算法,另一种是基于预测方法的无损压缩算法。综合
28、以上 JPEG 标准的图像建立模式和基本压缩算法,JPEG 总共有四个工作模式 1:顺序型编码工作模式:图像的所有 8x8 像素的图像子块从左到右、从上到下依次输入。图像子块经离散余弦变换(DCT)后形成 8x8DCT 系数阵列,每一个系数阵列被量化后立即进行熵编码并作为压缩图像数据的一部分输出,从而尽可能地降低了对系数存储的要求。渐进型编码工作模式:所有 8x8 图像子块仍然按照上述顺序编码,但对图像需要进行多次扫描。这通过在量化和熵编码之间加一个与图像一样大小的系数缓存来实现。当一个 8x8DCT 系数阵列被量化后,它的系数存入该缓存。所有系数阵列均完成量化并存入缓存后分几次扫描来编码,每
29、次只有部分被编码。因此解码时输出的图像也是分几次完成的。缓存中的量化后的 DCT 系数被分批扫描处理的方式有两种:一种是频谱选择法 ;另一种是逐次逼近法。在频谱选择法中,每次扫描 Z 形序列中的指定段并进行编码,每一段位于 8x8DCT 系数阵列频谱的高频或低部分。在逐次逼近法中,每一次扫描的系数的各个位不全部参与编码,而是从高到低按指定的位数逐次编码。两种过程可以单独使用,也可以是灵活地组成使用。无失真编码工作模式:被编码的图像可以保证恢复到与源图像数据完全一致。分层编码工作模式:一幅图像被编码成一些帧的序列。这些帧给出参考重建分用作后续帧的预测。对于给定分量,除了第一帧外,差分帧是对源分量
30、和参考重建分量的差值编码的结果。差值的编码可以使用基于 DCT燕山大学本科生毕业设计(论文)8的处理,或使用无失真处理,或使用基于 DCT 的对每一分量进行无失真处理。可见 JPEG 提供了多种工具,以应付各种应用场合,这样的通用系统成本较高。为此,将 JPEG 系统分成基本系统和扩展系统:基本系统由 DCT的顺序型工作模式及 Huffman 编码组成,所有符合 JPEG 标准的设备必须具备基本系统:扩展系统提供不同的选项,即除基本系统外的其他编码方式,如渐进型编码、算术编码、无失真编码、分层编码等等。2.1 JPEG基本系统 原始图映射变换F(m,n)量化器 熵编码器信道熵解码器反量化器反映
31、射复原后F(m,n)图 2-1 基于 DCT 的编解码示意图上图是 JPEG 建议的基本系统框架图。首先将要压缩的图像分割成一定的 8x8 像素的图像子块,再用前向余弦变换(FDCT)将个子块变为 8x8 的 DCT 系数阵列;然后用一个 8x8 的量化值阵列对这些系数进行量化;最后用熵编码器将量化后的系数编码成一串比特数据流。经过传输或存储,比特数据流经过熵解码器进行解码,重新生成一组量化了的 DCT 系数,使用与编码时相同的量化值阵列对这些量化了的系数进行反量化,最后利用反向余弦变换(IDCT)将此 8x8DCT 系数阵列变换成空间域的 8x8 图像子块。一般来说输入图像和输出图像之间存在
32、有误差,这个误差是由量化、反量化过程引起的,熵编码、解码过程没有信息损失。以上介绍的是 JPEG 的基本系统。由于 JPEG 用途广泛,因此,需要在基本系统之上扩充一些其他的编码方法,提高编码效率,满足不同的应燕山大学本科生毕业设计(论文)9用需求。限于篇幅,这里将不再做详细介绍。2.2 JPEG基本系统的实现2.2.1 前向余弦变换(FDCT)和反向余弦变换(IDCT)JPEG 采用 8x8 子块的二维离散余弦变换算法。在编码器的输入端,把原始图像(对彩色图像是每个颜色成分)顺序地分割成一系列 8x8 的子块。在 8x8 图像块中,像素值一般变化较平缓,因此具有较低的空间频率。实施三维 8x
33、8 离散余弦变换可以将图像块的能量集中在极少数系数上,其它系数的值与这些系数相比,绝对值要小得多。对于高度相关的图像数据进行这样变换的效果使能量高度集中,便于后续的压缩处理。通过离散余弦变换(DCT)去除数据冗余。一维离散余弦变换(FDCT 和 IDCT):设x(m)是 M 个有限值的一维实数序列集合,m=0,1,2,M-1,余弦变化的完备正交函数系是:(2-1) 1.,32,0),(2)1(cos),(,0 MktTktk对这些函数在(0,T) 内取 M 个样值,即得离散余弦变:(2-2) 1.,32;1.3,2,2)1(cos),0(1, mkTmtm离散余弦变换(DCT) 形式为: 10
34、10 .2)(1cos.2)1(3cos2)1(cos . MM xMy (2-3)燕山大学本科生毕业设计(论文)10其矢量形式为:(2-4)TXY其中 (2-5)1.,20,2)1(cos)2 MmkMkCT以求和形式表示的一维 DCT 为:(2-6) 10)(cos)()(mkxy (2-7)1.2,1)(kCDCT 的反变换 IDCT 的形式为:(2-8) 1010 .2)(1cos.2)1(cos. 3.32)(coscos2. MM yMx 二维离散余弦变换(FDCT 和 IDCT):二维 DCT 主要用于图像数据的压缩编码。设图像数据是一个 mxn 的矩阵,每个数据用 x(m,n)
35、表示。为了减弱或去除图像数据的相关性,用二维 DCT 将图像从空间域,即 mn 平面,转换为 DCT 变换域,即 KL 平面。同一维 DCT 一样,二维 mxn 阶 DCT 的分量表示形式也可写成求和形式,即:,NlnMklCkMNlkyMNn 2)1(cos2)1(cos)()(2),(10 (2-9).2,;.,(2-10)1.,0,1)(k(2-11).2,)(MlC燕山大学本科生毕业设计(论文)11(2-12)NknMkmlCklnmg 2)1(cos2)1(cos)(),( (2-13);)(),(U; (2-14)NlnlnV21cos(2-15),(,),(Vkmkg所以可将二维
36、 DCT 变换公式改为: MkmlnxlCNMlkymn 2)1(cos21cos,(2)2),(1010 .;., lk(2-16)10),(,)()(NnlVmlx则(2-17)10),(,2),(MmkUlxlky这样二维 DCT 实际上己分解成双重一维 DCT:先解 x(m, l),得到一个中间结果,再以中间结果为变量,进行第二次一维 DCT,最终得到变换结果为 y(k, l)。通过以上论证可以将 y(k,l)简化为:(2-18)TXY其中(2-19)1.2,0,2)1(cos)2 MmkMkCT而(2-20).,)(s)1 NlNlnlT原始图像通过硬件采样后,成为要处理的离散采样值
37、。首先通过离散余弦变换,将采样数据从空域变成变换域:即频域范围。通过 DCT 变换,原始图像中较为平坦的成分对应于频域中的低频部分,而原始图像中细节部分主要集中在高频区域。正是由于这一特性,使得我们能够针一对图像燕山大学本科生毕业设计(论文)12中的不同成分采用不同的处理方法。对于图像中比较重要的低频成分,采用较小的量化间隔,分配其较多的比特,以精确保持其信息:而对于人眼不太敏感的高频成分,可以采用较大的量化间隔,以获得更大的间隔,以获得更大的压缩比,由此达到压缩图像的目的。基于这种思想,将正向离散余弦变换输出的频率图像送入量化器。将变换用于图像的目的在于:减少图像相关性:理想的变换将完全消除
38、图像块中数据的相关,即把大部分能量压缩进最少的系统中去。基本函数与图像相关:由于图像间的统计特征变换大,最佳的变换通常依赖于图像图像本身。但是,寻求这种与图像无关的基本变换函数是件很费计算时间的任务。如果图像块不是静态的,就必须使用多组基本函数,以便高度地减少相关性。这样一种处理不仅特别费时,而且需要用附加信息把基本函数信号送到解码端,从而也就降低了压缩率。所以,一般期望用图像无关的基本函数变换数替换,形成优性能变换。基于以上变换图像特性,我采用 JPEG 中对所有的图像使用的同一个与图像无关的变换基本函数,即离散余弦变换函数,只在做计算的过程中做改进。2.2.2 量化与反量化在 JPEG 中
39、将浮点型数表示的变换结果用标量量化后的整型数表示,随之而引起的误差在经过反向离散余弦变换而传递到图像,由于人眼对对这个误差几乎是察觉不到的,所以量化的过程是可行的。同时,为了达到更高的压缩比,又尽可能地保持原来图像的质量,JPEG 通过多次实验,结合人眼的视觉特性,有针对性地设计相应的量化表。这种针对性是指对在图像中占有较大能量的低频成分,赋予较小的量化间隔和较多的比特以较为精确地表示原来的系数值,这样以达到尽量保持原始图像的视觉效果的前提下,获得较高的压缩比。为了达到压缩数据的目的,对 DCT 系数需作量化处理。量化的作用是在保持一定质量前提下,丢弃图像中对视觉效果影响不大的信息。量化是多对
40、一映射,是造成 DCT 编码信息损失的根源。JPEG 标准中采用线性均匀量化器,量化过程为对 64 个 DCT 系数除以量化步长并四舍五入取整,量化步长由量化表决定。量化表元素因 DCT 系数位置和彩色分量的不同燕山大学本科生毕业设计(论文)13而取不同值。量化表为 8x8 矩阵,与 DCT 变换系数一一对应。量化表一般由用户规定 JPEG 标准中给出了参考值,并作为编码器的一个输入。量化表中元素为 1 到 255 之间的任意整数,规定了其所对应 DCT 系数的量化步长。DCT 变换系数除以量化表中对应位置的量化步长,并去掉小数部分,其他变为零,从而达到了压缩的目的。在 JPEG 量化过程中,
41、量化表中的某个对应值用于相对应的系数值进行量化处理。量化过程就是简单地将变换系数除以量化阶后再取整。如果用 C(k,1) 表示量化后的系数,量化处理算法如下:(2-21),(),(lkQYroundlkc其中 round()函数是取其最近整数( 四舍五入)。反量化处理时反量化的 DCT 系数通过下式得到:(2-22),(,),(llClkY从灵活性的角度出发,JPEG 从没有规定量化表,仅是推荐了亮度和灰度两个量化表根据具体要求可以构造专用的量化表,所推荐的量化表是针对灰度为 8 的图像源。使用该量化表,图像可达到失真不明显的主观质量。因此,只要线性地改变量化表中的量化阶就可控制重建图像质量以
42、及相应的压缩比,在 JPEG 中通过调整一个公共因子来实现。表 2-1 灰度量化表 117 18 24 47 99 99 99 9918 22 26 99 99 99 99 9924 26 56 99 99 99 99 9947 66 99 99 99 99 99 9999 99 99 99 99 99 99 9999 99 99 99 99 99 99 9999 99 99 99 99 99 99 9999 99 99 99 99 99 99 99量化后的 DCT 变换值,低能量区域被量化成零,而高能量区域即低频区则保留下来,这样只要将保留下的低频值进行编码,就可以在允许误燕山大学本科生毕业
43、设计(论文)14差的条件下存储图像的重要信息以用来还原图像。由表可见,对不同的DCT 系数采用粗细不同的量化,相应于人的主观视觉对高频失真不如对低频失真敏感的特性,随着空间频率的增加,量化步长也应该相应的增大,这样才能保证图像的一致性。表 2-2 亮度量化表16 11 10 16 24 40 51 6112 12 14 19 26 58 60 5514 13 16 25 40 57 69 5614 17 22 29 51 87 80 6218 22 37 56 68 109 103 7724 35 55 64 81 104 113 9249 64 78 87 103 121 120 10172
44、 92 95 98 112 100 103 992.2.3 熵编码与解码DCT 系数经过量化以后,直流分量 DC 和 63 个交流分量 AC(163)分别进行熵编码。对量化后的 AC 系数,则按表 2-3 所示的 Z 字形(zigzag)顺序进行扫描。按照这种扫描顺序,低频系数在前,高频系数图 2-2 JPEG 线形均匀量化器燕山大学本科生毕业设计(论文)15在后,由于在高频系数为零的几率较大,因此,这种排序对于提高后面的熵编码的压缩效率非常有利。直流分量的编码和解码对直流分量,并不直接进行编码,而是利用差分编码的方法,对本块和前一块的直流分量之差 Diff=DC(I)-DC(I-1),(I
45、为块号 )编码。同时,由于亮度分量和灰度分量的统计特性不同,他们的 Haffman 编码也不相同,其码字结构为:(2-23),(附 加 位SC其中 4bit 二进制码“SSSS” 用来将 DC 的差值幅度范围分为 255。其后的附加位用以唯一的规定该类中一个具体的差值幅度。将附加位用Haffman 码进行变长编码,其码表也由 JPEG 预先给出。其 Haffman 编码表如下:表 2-3 直流分量 Haffman 表亮度 DC 系数差值 色度 DC 系数差值分类码长 码字 码长 码字0 2 00 2 001 3 010 2 012 3 011 2 103 3 100 3 1104 3 101
46、4 11105 3 110 5 111106 4 1110 6 1111107 5 11110 7 11111108 6 111110 8 111111109 7 1111110 9 11111111010 8 11111110 10 111111111011 9 111111110 11 11111111110直流分量在解码时,只需要用在编码过程中相同的这张 Huffman 表解码就可以了,其过程比较简单,所以在这里不再详细论述。 交流分量的编码燕山大学本科生毕业设计(论文)16JPEG 用 Z 形扫描的方法将二维 DCT 系数展开成一维,其码字结构为 :(2-24)尾 数 )),(SNC其
47、中低 4 位“SSSS”同直流分量的含义一样表示尾数的位数,高 4 位“NNNN”给出了当前这个非零系数相对于前一个非零系数的位置 JPEG 对“NNNNSSSS”采用二维 Haffman 码编码,这有利于提高编码效率,同样这张二维码表也由 JPEG 预先给定。64 个变换数经量化后,左上角系数是直流分量(DC 系数),即空间域中 64 个图像采样值的均值。相邻 8x8 块之间的 DC 系数一般有很强的相关性,JPEG 标准对 DC 系数采用 DPCM 编码(差分编码 )方法,即对相邻像素块之间的 L 系数的差值进行编码。其余 63 个交流分量 (AC 系数)使用游程编码,从左上角开始沿对角线
48、方向,以 Z 字形 (zigzag)进行扫描直至结束。量化后的 AC 系数通常会有许多零值,以 Z 字形路径进行游程编码有效地增加了连续出现的零值个数。为了进一步压缩数据,对 DC 码和AC 行程编码的码字再作基于统计特性的熵编码。 JPEG 标准建议使用的熵编码方法有 Huffman 编码和自适应二进制算术编码。表 2-4 各系数在 zigzag 序列中的序号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 4
49、6 51 55 6021 34 37 47 50 56 59 6135 36 48 49 57 58 62 63以上过程主要是基于数据的自身特点及其统计特性,整个过程以达到最大压缩里比为目的,其中又考虑到图像数据的统计特性。以上过程已经有相应的软件证明这个压缩编码系统的可行性,同时根据 Shannon(香农)无噪声编码定理,定义如果对熵为某个特定值的信号源做无失真编码,计算所得的平均码长为一个围绕熵值向上波动的某个比特值,因此可能达到的最大压缩比为:燕山大学本科生毕业设计(论文)17(2-25)熵 的 波 动 值熵 值manC通过分析 JPEG 压缩的过程,认识到 JPEG 的目的是为了给出一个适用于连续色