论文.doc

静止图像压缩技术JPEG的分析与应用

收藏

压缩包内文档预览:(预览前20页/共40页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:6350454    类型:共享资源    大小:1.49MB    格式:RAR    上传时间:2017-12-11 上传人:毕****做 IP属地:江苏
12
积分
关 键 词:
获取更多毕业论文/毕业设计 请登录360毕业设计网 www.bysj360.com 或加qq:604664738量身定做!
资源描述:
静止图像压缩技术JPEG的分析与应用,获取更多毕业论文/毕业设计,请登录360毕业设计网,,或加qq:604664738量身定做!
内容简介:
静止图像压缩技术 JPEG 的分析与应用1第一章 绪论图像是对客观事物的一种相似性的、生动的描述,是对客观对像的一种比较直观的表示方式。它包含了被描述对像的有关信息,是人们最主要的信息源。据统计,一个人获得的信息大约有 75%来自视觉。进入信息化时代人们将越来越依靠计算机获取和利用信息,而数字化后的多煤体信息具有数据海量性,与当前硬件技术所能提供的计算机存储资源和网络带宽之间有很大的差距。这样,就对信息的存储和传输造成了很大困难,成为阻碍人们有效获取和利用信息的一个瓶颈问题。图像信息做为计算机上最重要的资源,对其进行有效的压缩处理无疑将会给人们带来巨大的好处。 静止图像压缩不但是各种动态图像压缩、传输的基础,而且还是影响其效果好坏的重要因素。基于这种考虑,本文主要研究静止图像压缩技术 1。1.1 图像压缩的必要性与可能性图像数字化后的数据量是很大的,例如,一幅 1024*768 的 24 位 BMP 图像,其数据量约为 2.25MB。大数据量的图像信息会给存储器的存储容量,通信干线信道的带宽,以及计算机的处理速度增加极大的压力。单纯靠增加存储器容量,提高信道带宽以及计算机的处理速度等方法来解决这个问题是不现实的,这时就要考虑压缩。数字图像的冗余主要表现在以下几种形式:(1)空间冗余。在一幅图像中,规则物体和规则背景(所谓规则就是指表面有序而不是完全杂乱无章的排列)等所具有的相关性,应用一些算法提取并减少这些图像素之间的相关性就可以达到数据压缩的目的。(2)时间冗余。指序列图像(电视图像,运动图像)所包含的相邻图像之间的相关性。(3)结构冗余。 有些图像有着非常强的纹理结构(如草席的图案)或自相似性,称之为结构上的冗余。(4)信息熵冗余 。如果图像中平均每个像素使用的比特数大于该图像的信息熵,则图像存在冗余,这种冗余称为信息熵冗余。(5)视觉冗余。人眼接收信息的能力是有限的,对图像的分辨率也是有限的。去掉或减少人眼不能感知或不敏感的那部份图像信息,从而达到压缩的目的。(6)知识冗余。指有些图像中包含与先验知识有关的信息,如人脸的固定结构。图像数据的这些冗余信息为图像压缩编码提供了依据。因此针对图像的特点对其数据进行压缩编码,以提高储存、传输和处理速度,节省存储空间。福州大学本科生毕业设计(论文)21.2 图像压缩方法的分类图像压缩编码的方法很多,可以从多种方式对其进行分类。根据编码过程中是否存在信息的损耗可以将图像编码分为有损压缩编码和无损压缩编码。无损压缩编码无信息损失,解压时可以从压缩数据精确地恢复到原始图像;有损压缩编码则有信息丢失不能完全恢复原始图像,存在一定程度失真。根据编码原理可以将传统的图像编码分为熵编码、预测编码、变换编码和混合编码等。(1)熵编码 熵编码是纯粹基于信号统计特性的编码技术,是一种无损的编码。熵编码的基本原理是给出概率较大的符号赋予的一个短码字,而给出现概率较小的符号赋予一个长码字,从而使得最终的平均码长很小。常见的熵编码有行程编码、哈夫曼编码和算术编码。(2) 预测编码:预测编码是基于图像数据空间或时间冗余特性,用相邻的已知像素(或像素块)来预测当前像素(或像素块)的取值,然后再对预测误差进行量化和编码。预测编码可分为帧内预测和帧间预测,常用的预测编码有差分脉码调制和运动补偿法。(3) 变换编码 变换编码通常是将空间域上的图像经过正交变换映射到另一变换域上,使变换后的系数之间的相关性降低。图像变换本身不能压缩数据,但变换后图像的大部分能量只集中到少数几个变换上,采用适当的量化和熵编码就可以有效的压缩图像。(4 )混合编码 混合编码是指综合了熵编码、预测编码或变换编码的编码方法。如 JPEG标准和 MPEG 标准 2。除了以上介绍的几种编码外,随着图像编码技术的不断发展,一些新颖的压缩方法也已经被人们提出来并应用到实际的操作中。如,利用人工神经网络的压缩编码(ANN) ,基于对像的压缩编码(Object Based Coding) 、基于模型的压缩编码(Model Based Coding)和分形编码(Fractal Coding)等。1.3 静止图像压缩编码的发展历史和现状图像压缩技术在发展之初,直接借鉴了语音压缩的许多成熟技术。1843 年出现的Morse 电报码是最原始的变长码数据压缩实例。1939 年贝尔实验室开发出第一个语音压缩系统。不过用于数字图像的编码压缩技术是从本世纪四十年代开始的。1948 年 Oliver提出电视信号的线性 PCM 编码至今,图像编码技术的获得了蓬勃的发展。以 CE.Shannon信息论为指导,人们从图像中存在的大量冗余信息和人类视觉特性出发,提出了各种编码方案,如 1952 年 D.A.Huff nan 给出的最优变长码方法,1960 年 J.Max 发表的信号最优标量量化算法等。到了七十年代,人们将这些方法用于电视图像数据,并形成硬件系统。不过这些算法提供的压缩比是有限的。1985 年,瑞士学者 M.Kunt 提出了第一代、第二代图像编码技静止图像压缩技术 JPEG 的分析与应用3术的概念,他指出第一代编码技术以信息论、编码理论及图像信源的统计特性为理论基础,旨在去除图像数据中的相关性,正是这一点使得其压缩比己接近极限;而第二代图像编码技术则不局限于这些经典的理论框架,同时将人类视觉系统(FNS)的研究成果应用于图像编码技术,因而可以获得很高的压缩性能。目前,第二代图像编码技术的理论仍在不断的完善之中,其思想方法还没有得到广泛的统一,通常仍将其看作经典编码技术的深化。随着现代数学理论的逐步深入及其应用领域的不断拓展,八十年代末兴起的现代编码技术迅速发展起来。比较典型的有分形编码技术和物体基编码技术等,这些方法己取得了一些成功,但在实际应用中仍要结合经典编码技术的思想和方法。目前,基于小波理论的第二代图像编码技术是目前研究中较为活跃的领域 3。分形的基本思想是:自然景物(对像)的任何一小部分的形状都与其整体形状相似。分形编码算法始于 1984 年 Barnsley 提出的迭代函数系统(IFS)。其步骤是先把图像分解为若干类景物的子图像,然后找出每一类子图像的 IFS 码,使这组 IFS 码综合得到的分形图像在主观质量上与原始图像非常相似(相似程度由严格的测度标准确定),最后可以取得相当可观的压缩效果。但是这种方法非常耗时,Jacqui。提出了全自动的分形编码算法,改全局变换为局部变换。后来英国的 Monro 等人将 Bath 分形变换(BFT)引入编码系统,提高了编码速度。然而,目前公开的算法还没有完全体现出分形编码的真正特点和优势。基于神经网络的图像编码技术是试图将神经网络中的研究成果应用于图像编码和压缩,直接用于数据压缩的神经网络有两类:反向误差传播型神经网络和自组织映射型神经网络。将神经网络方法与传统方法相结合,可以构成很多基于神经网络的图像编码算法。图像压缩技术发展到今天,己经形成了很多国际标准。静止图像压缩标准JPEG(Joint Photograph Expert Group)以其综合性能的优越而成为 MPEG 等图像压缩方案中的首选技术 4。1.4 本文研究的主要内容本文主要研究的是国际标准组织“联合图片专家组”(the Photograph Expert Group)所推荐的 JPEG 算法,JPEG 标准作为一种混合编码,它同时兼容了好几种重要的编码方法,如哈夫曼编码,行程编码,预测编码等,同时在编码过程中还利用了一种重要的正交变换,离散余弦变换 DCT。这里每一个知识点都是图像处理技术中的一个重要部分。可以说 JPEG 标准是一个相当完整典的图像压缩编码的过程,在利用的是 VB 编程的实验结果可以看到其效果是比较理想的。同时作为一个成熟的压缩技术,我们可以对其中某些部分加以改进以达到更为可喜的效果,对此本文对该算法中 DCT 变换部分进行了改进。本文的篇章安排如下:(1) 简述图像压缩的必要性及其方法分类。福州大学本科生毕业设计(论文)4(2) 介绍几种常见的图像压缩技术(3) 较详细的论述了 JPEG 标准的整个实现过程(4) 对离散余弦变换做进一步研究与改进。(5) JPEG 格式图像文件相关要素简单介绍,并记录、对比、分析了实验结果。第二章 图像压缩的几种常见算法介绍2.1 哈夫曼(Huffman)编码哈夫曼(Huffman)编码是一种常用的压缩编码方法。它的基本原理是频繁使用的数据用较短的代码代替,较少使用的数据用较长的代码代替,每个数据的代码各不相同。这些代码都是二进制码,且码的长度是可变的。举个例子:假设一个文件中出现了 8 种符号 S0,S1,S2,S3,S4,S5,S6,S7,那么每种符号要编码,至少需要 3 比特。假设编码成000,001,010,011,100,101,110,111。那么符号序列 S0S1S7S0S1S6S2S2S3S4S5S0 编码后变成 000001111000001110010010011100101000000001,共用了 42 比特。我们发现S0,S1,S2 这三个符号出现的频率比较大,其它符号出现的频率比较小,如果我们采用一种编码方案使得 S0,S1,S2 的码字短,其它符号的码字长,这样就能够减少占用的比特数。例如,我们采用这样的编码方案:S0 到 S7 的码字分别01,11,101,0000,0001,0010,0011,100 那么上述符号序列变成011110001110011101101000000010010010111,共用了 39 比特,尽管有些码字如S3,S4,S5,S6 变长了(由 3 位变成 4 位),但使用频繁的几个码字如 S0,S1 变短了,所以实现了压缩。下面给出具体的哈夫曼编码算法。(1) 首先统计出每个符号出现的频率,上例 S0 到 S7 的出现频率分别为4/14,3/14,2/14,1/14,1/14,1/14,1/14,1/14。(2) 从左到右把上述频率按从小到大的顺序排列。(3) 每一次选出最小的两个值,作为二叉树的两个叶子节点,将和作为它们的根节点,这两个叶子节点不再参与比较,新的根节点参与比较。(4) 重复(3),直到最后得到和为 1 的根节点。(5) 将形成的二叉树的左节点标 0,右节点标 1。把从最上面的根节点到最下面的叶子节点途中遇到的 0,1 序列串起来,就得到了各个符号的编码。上面的例子用 Huffman 编码的过程如图 9.1 所示,其中圆圈中的数字是新节点产生的顺序。可见,我们上面给出的编码就是这么得到的 5。静止图像压缩技术 JPEG 的分析与应用5图 2-1 Huffman 编码的示意图产生 Huffman 编码需要对原始数据扫描两遍。第一遍扫描要精确地统计出原始数据中,每个值出现的频率,第二遍是建立 Huffman 树并进行编码。由于需要建立二叉树并遍历二叉树生成编码,因此数据压缩和还原速度都较慢,但简单有效,因而得到广泛的应用。2.2 预测编码预测编码是有损压缩编码。主要用于对统计冗余进行压缩。预测的越准,差值的幅度,压缩率越高。采用预测编码时,传输的不是表示图像像素的灰度值,而是根据某一用以往的样本值对于新样本值进行预测,将预测样本值和实际样本值之输出去。它是利用像素之间的相关性,运用一定的数学模型进行预测的。模型足够好且样本的相关性较强,那么所得误差值的方差比原始图像样的方差要小得多,从而达到压缩图像信息的目的。预测模型一般包括两个部分:一个是邻域函数,它用来确定在预测过程中使用哪几个已经编码过的邻近像素,不同的模型中采用了不同的邻近像素,一般使用的像素数目是 3 或 4 个。实验结果显示,在 1, 2, 4, 8,16 个邻近像素数目中选择,使用 4 个邻近点能够对任何一幅测试图像都取得最好的压缩效果;另一部分是在预测过程中如何使用邻域函数确定的像素点,一般使用线性预测。DPCM (Differential Pulse Code Modulation)是差分脉冲编码调制的缩写,它是常用的一种线性预测方法。基本原理是基于图像中相邻像素之间具有较强的相关性。每个像素可根据已知的前几个像素来作预测。因此在预测编码中,编码和传输的并不是像素采样值本身,而是这个采样值的预测值与其实际值之间的差值 DPCM 方法的工作原理如图2-2 所示福州大学本科生毕业设计(论文)6量 化 器预 测 器预 测 器 编 码 器 解 码 器f(i,j)e(i,j)e(i,j)f(i,j)f(i,j)e(i,j)f(i,j) f(i,j)输 入输 出 信道传输f图 2-2 DPCM 编码解码原理图2.3 行程编码行程编码(Run Length Encoding ,RLE),是一种熵编码。在一些待编码的信源序列中,有些符号经常连续的出现,例如在扫描传真图像时经常出现连续 0 或者连续的 1;另外,在有失真编码时,信号经过变换和量化后的系数集中,经常出现连续的 0。针对这些情况,可以采用行程编码。一种形式是(L,V) ,如果连续出现 V 的值 L 次,则可以用这方式来表示。例如当出现 000001111000111 码字时,就可以用行程编码如下:(5,0) , (4,1) , (3,0) ,(3,1) 。这种只有 0.1 两种符号的情况,也可以将行程编码简化为 V0 ,L1, L2 ,.Ln,其中 V0 是起始位置的值,L1,L2,Ln 为各行程的值,前面的例子可以简化为0,5,4,3,3.还有一种常用的编码方式为零行程,一般用于有失真编码量化后的系数编码,0 是唯一经常出现的连续值,而其它值是任意的.在这种情况下,行程数 L 只表示连续 0 的个数,而V 则用来表示 0 串后面紧跟的非 0 值。例如 00000,2,000,5,0000,-3 用零行程编码表示为(5,2) , (3,5) (4,-3) 。在实际的应用中,行程编码(L,V)中的 L 和 V 可以分别用 Huffman 或算术编码进行进一步压缩。如果一幅图像是由很多块颜色相同的大面积区域组成,那么采用行程编码的压缩效率是惊人的。然而,该算法也导致了一个致命弱点,如果图像中每两个相邻点的颜色都不同,用这种算法不但不能压缩,反而数据量增加一倍。2.4 算术编码算术编码的基本原理是将编码的消息表示成实数 0 和 1 之间的一个间隔(Interval) ,消息越长,编码表示它的间隔就越小,表示这一间隔所需的二进制位就越多。 算术编码用到两个基本的参数:符号的概率和它的编码间隔。信源符号的概率决定压缩编码的效静止图像压缩技术 JPEG 的分析与应用7率,也决定编码过程中信源符号的间隔,而这些间隔包含在 0 到 1 之间。编码过程中的间隔决定了符号压缩后的输出。 给定事件序列的算术编码步骤如下: (1)编码器在开始时将“当前间隔” L, H) 设置为0,1)。 (2)对每一事件,编码器按步骤和进行处理 编码器将“当前间隔”分为子间隔,每一个事件一个。 一个子间隔的大小与下一个将出现的事件的概率成比例,编码器选择子间隔对应于下一个确切发生的事件相对应,并使它成为新的“当前间隔” 。 (3)最后输出的“当前间隔”的下边界就是该给定事件序列的算术编码。 算术编码可以是静态的或者自适应的。在静态算术编码中,信源符号的概率是固定的。在自适应算术编码中,信源符号的概率根据编码时符号出现的频繁程度动态地进行修改,在编码期间估算信源符号概率的过程叫做建模。需要开发动态算术编码的原因是因为事先知道精确的信源概率是很难的,而且是不切实际的。当压缩消息时,我们不能期待一个算术编码器获得最大的效率,所能做的最有效的方法是在编码过程中估算概率。因此动态建模就成为确定编码器压缩效率的关键 6。2.5 变换编码变换编码的过程是将原始图像分块,对每一块进行某种形式的正交变换。可以简单地理解为将小块图像由时间域变换到频率域,而且能够想像经变换后能量主要集中在直流分量和频率低的分量上。在误差允许的条件下,只采用直流和有限的低频分量来代表原始数据就能达到数据压缩的目的。在解压缩时,利用已压缩的数据并补上高频分量,而后进行逆变换。通过逆变换就可恢复原始数据。可以想到,在压缩时,忽略了许多高频分量,而在解压缩时,用 0 代替,这必然减少了信源的熵,使信息量减少,从而带来了一定的失真,所以这种变换是一种有损压缩。正交变换的种类很多,比如人们熟知的傅里叶变换、沃尔什哈达玛变换、哈尔变换、斜变换、余弦变换、正弦变换,还有基于统计特性的 K-L 变换。其中 K-L 变换后的各系数相关性小,能量集中,舍弃低值系数所造成的误差最小,但 K-L 存在计算复杂,速度慢等缺点。由于离散余弦变换(DCT)与 K-L 变换性能最为接近,目前几种图像压缩编码的国际标准如静止图像编码标准 JPEG;用于电视电话的 H.261 标准以及 MPEG-1、MPEG-2都采用 DCT 编码方法。它具有快速算法易于硬件实现,而且其编码性能好,因此得到广泛的应用。在利用二维余弦变换进行图像数据压缩时,首先要将输入图像分成若干 NN 的图像块。由于 N 取值小到一定程度时采用变换处理可能带来块与块之间边界上存在着被称为“边界效应”的不连续点,而且当 N8 时,边界效应比较明显,所以正确的选择应是N8,一般取 N=87。福州大学本科生毕业设计(论文)8第三章 静止图像压缩标准的算法研究3.1 JPEG 的概述3.1.1 JPEG 的提出早在 1982 年,ISO/TC97/SC2/WG8 就成立了一个图形图像专家组进行静止图像压缩编码的研究,到 1986 年,该专家组与 CCITT SG VILL 联合成立了“联合图片专家组”(jpeg) ,开发静止图像彩色压缩标准。在传统的标准化模式下,标准的制定是通过对已存在的相互冲突的标准协调来进行的,而 JPEG 则采用了一个全新的模式,即通过真正的国际范围应用合作模式标准的开发。这种模式避免了竞争,从而保证了在世界范围内得到广泛的应用,以后的 MPEG 也真是吸收了 JPEG 的成功经验而建立起来的。1987 年 3 月,有 12 种候选方案被提出,经过测试竞争与改进,确定 DCT 为最佳,并于 1989 年 1 月形成了 JPEG 技术规范的第一个草案,并在一年后成为国际标准,简称 JPEG 标准。3.1.2 JPEG 的简介JPEG 是面向静态图像编码的国际标准。在相同图像质量条件下,JPEG 文件拥有比其他图像文件格式更高的压缩比。JPEG 目前广泛的应用于多媒体和网络程序中,是现今万维网上用得最多的两种图像文件格式之一。JPEG 允许四种编码模式:(1) 顺序式 DCT 方式:从左到右、从上到下对图像顺序进行基于离散余弦变换(DCT)编码。DCT 理论上是可逆的,但在计算时存在误差,因此基于 DCT 的编码模式是一种有损编码。(2) 渐进式 DCT 方式:基于 DCT,对图像分层次进行处理,从模糊到清晰的传输图像。有两种实现方法,一种是频谱选择法,另一种是逐次逼近法。(3) 无失真方式:使用线形预测器,如 DPCM,而不是基于 DCT。(4) 分层方式:在空间域将源图像以不同的分辨率表示,每个分辨率对应一次扫描,处理时间可以基于 DCT 或预测编码,可以渐进式也可以顺序式。JPEG 系统分为基本系统和扩充系统:基本系统由 DCT 顺序型工作模式及 Huffman 码组成,所有符合 JPEG 标准的设备都必须具备基本系统;扩充系统提供不同选择项,即基本系统外的其他编码方式,如渐进型编码、算术码、无失真编码、分层编码等等。下面是针对基于 DCT 的顺序式基本系统编码来说明 JPEG 的编码方法 7。其基本框图如下:静止图像压缩技术 JPEG 的分析与应用9图 3-1 JPEG 编码器流程图 3-2 解码器流程3.2 JPEG 标准的编码和解码过程由上图可知,JPEG 算法的编码器和解码器基本上是对称的。其中编码器由正向离散余弦变换模块、量化器、编码模式以及熵编码器四部分组成;解码器则由熵解编码器、解码模型、反量化器以及反向离散余弦变换模块四部分组成,解码器的每一组成部分都和编码器的相应部分对称。下面就分别介绍其编码和解码的过程并着重论述 JPEG 的编码过程,并给出实现整个过程的程序流程图。3.2.1 JPEG 的编码过程(1)数据分块对图像进行编码前,将每个分量图像分割成不重叠的 8*8 像素块,每一个像素块称为一个数据单元(DU)。在彩色图像中,JPEG 分别压缩图像的每个彩色分量。虽然 JPEG可以压缩通常的 RGB 分量,但在 YCbCr 空间的压缩效果会更好。正是因为人眼对色彩变化不如对亮度变化敏感,因此对色彩的编码可以比对亮度的编码粗糙些,这主要体现在不同的采样频率和量化精度上。因此编码前一般先将图像从 RGB 空间转换到 YCbCr 空间,在把各个分量图像分割成 8*8 的数据块。在对图像采样时,可以采用不同的采样频率,这种技术称为二次采样。由于亮度比色彩更重要,因此对 Y 分量的采样频率可高于对Cb、Cr 的采样频率,这样有利于节省存储空间。通常的采样方案有 YUV411。把采样频率最低的分量图像中一个 DU 所对应的像区上覆盖的所有各分量上的 DU 按顺序组成一个最小编码单元(MCU)。对灰度图像而言,只有一个 Y 分量,MCU 就是一个数据单元。而对彩色图像而言。以 4:1:1 的采样方案为例,则一个 MUC 由 4 个 Y 分量的 DU、1 个 Cb 分量的 DU 和一个 Cr 分量的 DU 组成。福州大学本科生毕业设计(论文)10(2)DCT 处理图像数据块分割后,即以 MCU 为单位顺序将 DU 进行二维离散余弦变换。对以无符号数表示的具有 P 位精度的输入数据,在 DCT 前要减去 2P-1,转换成有符号数,而在 IDCT后,应加上 2P-1, 转换成无符号数。对每个 8*8 数据块 DU 进行 DCT 后,得到 64 个系数代表了该图像块的频率成分,其中低频分量集中在左上角,高频分量分布在右下角。系数矩阵左上角的叫做直流(DC)系数,它代表了该数据块的平均值,其余 63 个叫交流(AC)系数。(3)系数量化为了达到压缩数据的目的,对 DCT 系数需作量化处理。量化的作用是在保持一定质量的前提下,丢弃图像中对视觉效果影响不大的信息。量化是多对映射,是造成 DCT 编码信息损失的根源。在 DCT 处理中得到的 64 个系数中,低频分量包含了图像亮度等主要信息。从空间域到频域的变换中,图像中的缓慢变化比快速变化更易引起人眼的注意,所以在重建图像时,低频分量的重要性高于高频分量。因此在编码中可以忽略高频分量,从而达到压缩的目的,这也是量化的根据和目的。在 JPEG 标准中,用具有 64 个独立元素的量化表来规定 DCT 域中相应的 64 个系数的量化精度,使得某个系数的具体量化阶取决于人眼对该频率分量的视觉敏感程度。理论上,对不同空间分辨率、数据精度等情况,应该有不同的量化表。不过,一般采用表 1-3和表 1-4 所示的量化表,可取得较好的视觉效果。之所以用两张量化表,是因为 Y 分量比 Cb 和 Cr 分量更重要些,因而对 Y 分量采用细量化,而对 Cb 和 Cr 采用粗量化。量化就是 DCT 变换后的系数除以量化表中相应的量化阶后四舍五入取整。由于量化表中左上角的值较小,而右下角的值较大,因此起到了保持低频分量、抑制高频分量的作用。表 3-1 亮度信号的量化表16 11 10 16 24 40 51 6112 12 14 19 26 58 60 5514 13 16 24 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 92 95 98 112 100 103 99静止图像压缩技术 JPEG 的分析与应用11表 3-2 色度信号的量化表17 18 24 47 99 99 99 9918 21 26 66 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 98 99 99 99 99(4)Z 形扫描DCT 系数量化后,构成一个稀疏矩阵,用 Z(Zjgzag)形扫描将其变成一维数列,将有利于熵编码。Z 形扫描的顺序如图 3-3 所示。图 3-3 Z 形扫描(5)系数编码DC 系数反映了一个 8*8 的数据块的平均亮度,一般与相邻块有较大的相关性。JPEG对 DC 系数作差分编码,即用前一个数据块的同一分量的 DC 系数作为当前块的预测值,再对当前块的实际值与预测值的差值作为哈夫曼编码。在 JPEG 对 8*8 块做 DCT 变换后,因为直流分量在-1024+1023 之间变化,则差值在-2047+2047 之间变化。如果为每一个差值都赋予一个码字,则码表过于庞大。因此JPEG 对码表进行了简化,采用“前缀码(SSSS)+尾码”来表示。前缀码指明了尾码的有效位数 B,可通过查表得前缀码对应的哈夫曼编码。尾码的取值取决于 DC 系数的差值和前缀码。如果 DC 系数的差值大于等于 0,则尾码码字有 B 位的原码;否则则取 B 位的福州大学本科生毕业设计(论文)12反。表 3-2 DC 编码系数表SSSS DC 系数差值 亮度码字 色度码字0 0 00 001 - 1,1 010 012 -3,-2,2,3 011 103 -7 -4,47 100 1104 -1518,815 101 1110 5 -31 -16,1631 110 111106 -63 -17, 1763 1110 1111107 -127 -64,64127 11110 11111108 -255 -128, 128255 111110 111111109 -511 -256,256511 1111110 11111111010 -1023 -512,5121023 11111110 111111111011 -2047 -1023,10232047 111111110 11111111110对于 AC 系数,因为结构 Z 形排列后其数列将很可能出现连续 0 组成的字符串,从而对其进行行程编码将有利于压缩数据。JPEG 将一个非零的 DC 系数以及前面的连续 0 的个数组合称为一个事件,每个事件编码表示为“NNNN/SSSS+尾码” ,其中 NNNN 为连续 0的个数,SSSS 表示尾码的有效尾数 B(即当前非 0 的系数所占的比特数) ,如果非零 AC系数大于等于 0,则尾码的码字为该系数的 B 为原码,否则取 B 位反码。由于只用 4 位表示 0 行程长度,故在 JPEG 编码中,最大行程只能等于 15。当 0 行程长度大于 16 时,需要将其分开多次编码,即对前面的每 16 个 0 以“F/0”表示,对剩余的继续编码。我们可以由下表来查出对应的 SSSS8。表 3-3 AC 编码系数表SSSS AC 系数的幅度0 01 -1,12 -3,-2,2,33 -7 -4,474 -15 -8,8155 -31 -16,16326 -63 -17,1763静止图像压缩技术 JPEG 的分析与应用137 -127 -64,64127续表 3-3 AC 编码系数表SSSS AC 系数的幅度8 -255 -128,1282559 -511 -256,25651110 -1023 -512,51210233.2.2 JPEG 的解码过程由图 3-1 和图 3-2 我们可以看出 JPEG 的解码过程与编码过程正好相反。首先待解码的数据输入到熵解码器模块,因为编码时采用的是哈夫曼编码,所以只需根据相应的码表对输入数据进行解码,这种熵编码过程是信息保持型的,因而是无失真的,即解码器的输出能够完全恢复编码前数据。由熵解码器输出的数据送入解码模型。解码模型中进行的过程是编码模型的逆过程,由解码模型中输出的数据则是恢复出来的图像频域中的直流和交流系数,它们的排列仍是 8*8。接下去数据就进入了反量化模块,在反量化模块中,图像模块的每一个系数与相应的量化间隔相乘,以恢复量化前的系数值。因为量化过程带来失真,因此不可能完全精确的恢复量化前的系数值,相应的恢复出的最终图像也会因此引入失真。但,同时,正是由于这样的失真,使我们获得了较高的压缩比。解码器最后一个步骤是反向余弦变换,由反量化器输出的数据经过反向的离散余弦变换,就得到了最终恢复的图像数据 9。综观 JPEG 算法的编码解码过程,在离散余弦变换、量化、编码等过程中,只有量化过程是不可逆的,会给恢复出来的图像带来误差。通过对上面 JPEG 编码和解码的论述,本文利用 VB 对其进行了编程实现,其流程图如下:福州大学本科生毕业设计(论文)14图 3-4 程序流程图3.3 离散余弦变换 DCT离散余弦变换 DCT(Discrete Cosine Transform)是一种重要的正交变换,是数码率压缩需要常用的一个变换编码方法。如 f(n)表示个其值有限的一维实数信号系列的集合(n=0,1, ,N-1),则其一维变换定义为(3-1 ))12(10)(2)( KNNnCOSfkCF式中1-k 12)(k静止图像压缩技术 JPEG 的分析与应用15相应的,其反变换为(3-2))12(10cos)(2)( knNkNkFCnf 在 JPEG 中使用的是二维的 DCT 变换,该变换是先将整体图像分成 N*N 像素块,然后对 N*N 像素块逐一进行 DCT 变换。由于大多数图像的高频分量较小,相应于图像高频分量的系数经常为零,加上人眼对高频成分的失真不太敏感,所以可用更粗的量化。因此,传送变换系数的数码率要大大小于传送图像像素所用的数码率。到达接收端后通过反离散余弦变换回到样值,虽然会有一定的失真,但人眼是可以接受的。二维正反离散余弦变换的算式:(3-3)coscos),()(),( 2)1(2)1(702 NyNxxyNfvCuvF 其中为 u 或 v1-k 12)(k可见二维 DCT 变换可以分解为行方向的一维 DCT 变换和列方向的一维 DCT。因此可以用两次一维 DCT 来实现二维 DCT。其反变换为:(3-4)2)1(),()(2),( NuxCOSvuFNyxf 其中 N 是像块的水平、垂直像素数,一般取 N=8。N 大于 8 时效率增加不多而复杂性大为增加。8*8 的二维数据块经 DCT 后变成 8*8 个变换系数,这些系数都有明确的物理意义。譬如当 U=0,V=0 时 F(0,0)是原 64 个样值的平均,相当于直流分量,随着U,V 值增加,相应系数分别代表逐步增加的水平空间频率和垂直空间频率分量的大小。由 DCT 变换的结果可以看到经过离散余弦变换后所带来的图像压缩的潜力,数据块中将出现大盈的零系数,并且整个模块的能量主要集中在块的左上角,即图像的低频成分中。另一方面,这样一种变换结果(不考虑量化因素)又是和原始图像数据完全等价的,因为离散余弦变换是一种可逆变换,是可以完全恢复原来的图像数据的。从某种意义上说,经过离散余弦变换的数据是一种利于压缩的对原始图像更有效的表示方法。正是由于这样一种特性,所以 JPEG 算法选择了首先对原始图像做离散余弦变换 10。福州大学本科生毕业设计(论文)16第四章 对 DCT 的改进通过以上对 JPEG 算法描述后,我们可以得知,在 DCT 变换中有大量的乘法和加法运算。这些大量的四则运算不仅增加了算法的复杂性与计算机处理的复杂度,而且导致了运算速度减慢和储存量的减小。因此我们将考虑如何对传统的 DCT 变化进行改进达到简化算法的目的。4.1 传统的快速 DCT 变换由于 DCT 广泛的用在声音和图像信号处理,因此迫切的需要实现 DCT 的快速算法,对于 DCT 而言其快速算法很多,现在我们以一维 f(n)(n=1,2,n)系列来说明利用傅立叶变换而进行的快速算法:(4-1))(Re)( )(e)( )12Fk10210210)(21022222NnnknNnknnNwfkCeffCOSfCk Nnkjkjj式中 。 因此快速 DCT 变换计算可以通过快速傅立叶变换(FFT)来求得,Njew2利用这种方法生成的 F(k) (k=0,1, ,N-1)所需的乘法次数减少为 log2N。同样二维DCT 及其快速变换算法也可以通过二维傅立叶变换来计算。DCT 快速运算还可以通过蝶形图来进行,即所谓的代数分解方法。同样一维的 f(n)为例,来说明其步骤。(1)在蝶形图中用小圆圈表示操作数,用连接圆圈的直线表示操作数的流动用直线上方或下方的函数表达式来表示操作数在流向前方时须乘的加权因子。根据 FFT 蝶形图的规定,N 是 2 的幂,且蝶形图的级数为 2log2N。(2)将 f(n) (n=0,1, ,N-1)系列以 f(N/2)为界分为集合 U1=f(0),f(1),.,f(N/2)和 U2=f(N/2),f(N/2+1),f(N-1)。U1 称为上半区,U2 称为下半区。(3) 第一级 的 N 个操作数分别为 f(0),f(1),f(N-1),第一级到第二级同行的圆圈用直线连接,下半区的直线上带有负号,第一级到第二级的另一组连接由第一级静止图像压缩技术 JPEG 的分析与应用17第 i 行到第二级的第 N-i 行连通,i=0,1,.,N-1。(4) 第二到第三级的连接,上半区采用(3)中介绍的方法连接,但此时操作行数已经减少一半。重复该操作,直到 log2N 级为止。(5) 余下的操作数流向用加权因子来确定具体的代数分解。N=4 时具体的 DCT 蝶形图如下所示:图 4-1 DCT 蝶形图)4/cos()21()4/cos()30() ffF 8381)( )/cs()()/cs()()2ffo20o303F ff4.2 查表法实现 DCT 变换4.2.1 实现查表的可能性通过以上对 JPEG 算法描述后,我们可以得知,在 DCT 变换中有大量的乘法和加法运算。这些大量的四则运算不仅增加了算法的复杂性与计算机处理的复杂度,而且导致了运算速度减慢和储存量的减小。因此我们将考虑如何对传统的 DCT 变化进行改进达到简化算法的目的。公式表明,分割为 8*8 子块的图像经过 DCT 变换后的数据是由 64 项组成的和式构成的。每一项都有三部分,第一部分就是图像的原始数 f(x,y) ,其取值范围在 0255 之间,第二和第三部分都是 DCT 系数,可以将它们当作一个整体。上式中变化的是f(x,y) ,而对于每一次变换来说 DCT 系数是一个常数。由此可知,它们进行相乘会有256 种可能,根据这个运算特性我们可以将这 256 种可能做成一张表,来避免乘法运算,加快变换速度。同时,我们观察公式(3-3)中的第二和第三部分,我们发现由于余弦函数运算的周期性,福州大学本科生毕业设计(论文)18其余弦 的计算值必在 之间。而且因为2)1(cos2)1(cosNyx NM2)1(cossf(x,y) 的取值范围也只在 0255 的范围,所以两者最终的乘积也必定在一定的范围内。我们可以根据 DCT 系数的特点来建立一张系数表来优化算法 11。4.2.2 查表法的实现过程1)建立系数表我们用 CN 来表示 COS(N/16) ,其中 N 的值为 015。则系数表如下表 4.1 余弦乘积表C0 C1 C7 C8 C9 C14 C15C0 C0*CO C0*C1 C0*C7 C0*C8 C0*C9 C0*C14 C0*C15C1 C1*C0 C1*C1 C1*C7 C1*C8 C1*C9 C1*C14 C1*C15C2 C2*C0 C2*C1 C2*C7 C2*C8 C2*C9 C2*C14 C2*C15C3 C3*C0 C3*C1 C3*C7 C3*C8 C3*C9 C3*C14 C3*C15C4 C4*C0 C4*C1 C4*C7 C4*C8 C4*C9 C4*C14 C4*C15C5 C5*C0 C5*C1 C5*C7 C5*C8 C5*C9 C5*C14 C5*C15C6 C6*C0 C6*C1 C6*C7 C6*C8 C6*C9 C6*C14 C6*C15C7 C7*C0 C7*C1 C7*C7 C7*C8 C7*C9 C7*C14 C7*C15C8 C8*C0 C8*C1 C8*C7 C8*C8 C8*C9 C8*C14 C8*C15C9 C9*C0 C9*C1 C9*C7 C9*C8 C9*C9 C9*C14 C9*C15C10 C10*C0 C10*C1 C10*C7 C10*C8 C10*C9 C10*C14 C10*C15C11 C11*C0 C11*C1 C11*C7 C11*C8 C11*C9 C11*C14 C11*C15C12 C12*C0 C12*C1 C12*C7 C12*C8 C12*C9 C12*C14 C12*C15C13 C13*C0 C13*C1 C13*C7 C13*C8 C13*C9 C13*14 C13*C15C14 C14*C0 C14*C1 C14*C7 C14*C8 C14*C9 C14*C14 C14*15C15 C15*C0 C15*C1 C15*C7 C15*C8 C15*C9 C15*C14 C15*C15可以看出三角函数值有重复性和对称性,另外表中影阴部分的值为零。该零值将矩阵分为四块。其分布如下 块 1 块 2块 3块 4图 4-2 余弦乘积表分块静止图像压缩技术 JPEG 的分析与应用19块 1 和块 2 植相同,块 3 和块 4 值相同。同时块 1 和块 4 又有内部三角对称。通过以上分析可以得知:只存储块 1 和块 2 的值,而且只存储其对角线以上的数据,则系数表的长度会缩短,降低了存储容量。通过计算可得有用系数的个数为(8*8)/2+8+(8*8)/2=72 个。2)建立 DCT 地址映射表系数表建立后,不能直接查找,必须寻求其查表的方法。由公式 2-3 可知,该和式共有 64 项,当 u,v 确定后,和式中的 COS 项也就确定了,也就是说,f(x,y)和哪一个系数相乘是有 u,v 两数共同决定的。即它们之间形成了一种映射的关系。我们可以根据这种映射关系来建立一张地址映射表,并利用这张表在 DCT 变换中来查询相应的系数。表中一共有 64*64=4096 项,每一项为整数类型,占两个字节,总表长一共为 8192个字节。每 64 项对应一组(u,v)值,从 0 到 63 进行顺序编号,第 0 项的内容为f(0,0)要乘以系数表中所属的起始位置,依次类推,第 63 项内容为(7,7)要乘以系数表中所属的起始位置。3)查表法实现 DCT 变换在 DCT 变换时,首先读入系数表和地址映射表,然后由 u,v 值来确定相应的位置,依次取出后面的 64 个值,根据这些值找到在该系数表中该系数组的起始位置,将这些取出的数依次相加,就完成了 DCT 中某个系数的计算。由上可知,查表法将其系数与所有图像可能值事先乘好,放入表中,运行时进行寻址数相加,这样就避免了乘法,提高了运行的速度 12。福州大学本科生毕业设计(论文)20第五章 实验结果与分析5.1 JPEG 图像的规范经过实验生成的 JPEG 图像在其文件格式和色彩系统等有相应的规范,在这对其进行简单的介绍.5.1.1 JPEG 文件格式图像文件不同,其相应的文件格式也不同。本实验在处理图像时,针对的是 BMP 图像格式,也就是说在压缩前,利用一些软件将其他图像格式转化为 BMP 图像格式。JPEG文件大体上可以分成以下两个部分:标记码(Tag)加压缩数据。先介绍标记码部分。标记码部分给出了 JPEG 图像的所有信息(有点类似于 BMP 中的头信息,但要复杂的多) ,如图像的宽,高,Huffman 表,量化表等等。标记码有很多,但绝大多数的 JPEG文件只包含几种。标记码的结构为:SOI(图像数据开始)DRI (定义量化表标记)SOF0DHT (定义 Haffman 表标记)SOS (扫描开始标记)DHTSOSEOI (图像结束标记) 标记码由两个字节组成,高字节为 0XFF,每个标记码之前可以填上个数不限的填充字节0XFF。 135.1.2 色彩系统计算机显示使用的是 RGB 三色系统,而 JPEG 文件使用的是 亮度-色调-饱和度 色彩系统,既br 色彩系统(1)YIQ:YIQ 是北美 NTSC 电视系统中采用的色彩系统,Y 是指颜色的透明度,或者称做亮度,也可以称做灰度值(Gray Value),I 和 Q 分别是色调和饱和度.YIQ 与 RGB 的转换关系如下:Y=0.299R+0.587G+0.114B R=Y+0.956I+0.621Q静止图像压缩技术 JPEG 的分析与应用21I=0.596R-0.274G-0.322B G=Y-0.272I-0.647QQ=0.211R-0.523G+0.312B B=Y-1.106I-1.703Q(2)YUV:YUV 是欧洲 PAL 电视系统中采用的色彩系统,YUV 的含义和 YIQ 的含义一一对应YUV 与 RGB 的转换关系如下:Y=0.299R+0.587G+0.114B R=Y+1.140VU=-0.148R-0.
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:静止图像压缩技术JPEG的分析与应用
链接地址:https://www.renrendoc.com/p-6350454.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!