数字图像处报告.doc
《数字图像处报告.doc》由会员分享,可在线阅读,更多相关《数字图像处报告.doc(19页珍藏版)》请在沃文网上搜索。
1、一 图像压缩的介绍(一) 图像压缩的意义 随着信息技术的发展,图像以其信息量丰富的特点,成为信息的重要载体,但同时图像的数据量很大,因而图像压缩是图像存贮和传输方面的一个重要课题。高效的压缩技术能大大减小图像存贮的空间。对于尺寸较大、质量较高的真彩色图像,图像压缩具有特殊重要的意义,它能够节省占用的存储资源空间。因此,论文将主要研究彩色静止图像的压缩编码。(二)图像压缩的原理 1图像压缩的根据图像能够被压缩,是因为原始图像的数据量远远大于它所提供的有效信息量。也就是说原始的图像数据文件包含大量的冗余信息和不相干的信息。冗余信息是重复出现在的信息,它的删除对原始信息并没有损失。不相干的信息的删除
2、对原始信息有一定的影响,但在限制条件下不会影响信息内容的理解。但通常不必准确区别这两个概念。只删除冗余信息的算法被称为“无损压缩”,它可以完全恢复原文件,但其压缩比率会降低;不干信息的算法被称为“有损压缩”,它只能近似的恢复原文件,它的压缩比率比较高。如果用n1表示一副原图的数据量,n2表示压缩后的数据量,压缩率Cr定义为:Cr=n1/n2,冗余量Rd=1-1/Cr。 2数据冗余的类型 1)编码冗余 对图像编码时须建立数据与编码的对应关系。图像的每个灰度值对应一个码字。下面我们讲的哈夫曼算法和行程编码算法都是利用编码冗余做的。2) 像素间冗余 它指的是像素灰度级间具有的相关性。它包括以下三种形
3、式:(1)空间冗余:是指在一副图像内,物体和背景的表面物理特性各自具有很强的相关性。(2)时间冗余:序列图像间存在明显的相关性。(3)结构冗余:有的图像构成非常规则,如纹理结构在人造图像中经常出现,如果能找到纹理基元,就可以通过仿射变换生成图像的其他部分。(4)知识冗余:人类拥有的知识也可以用于图像编码系统的设计,如人脸具有固定结构,只是不同的人在局部的表达不同而已。3) 心理视觉冗余我们的视觉系统具有非线性、非均匀性特点,对图像上呈现的信息具有不同的分辨率。也就是说很多图像间的微小变化人眼察觉不到,这部分可以认为是心理视觉冗余的,删除此类信息不会明显降低图像的视觉质量。(三)图像压缩的分类
4、压缩可分为两大类:第一类压缩过程是可逆的,也就是说,从压缩后的图象能够完全恢复出原来的图象,信息没有任何丢失,称为无损压缩;第二类压缩过程是不可逆的,无法完全恢复出原图象,信息有一定的丢失,称为有损压缩选择哪一类压缩,要折衷考虑,尽管我们希望能够无损压缩,但是通常有损压缩的压缩比(即原图象占的字节数与压缩后图象占的字节数之比,压缩比越大,说明压缩效率越高)比无损压缩的高。(四)图像压缩的方法图像数据压缩的目的是节省图像存储空间、减少传输信道的容量和缩短图像加工处理时间。针对不同应用目的可以使用不同的压缩办法。在数字处理领域如下几种压缩方法:1)平均信息法(象素编码):平均信息法是对每个像素进行
5、单独处理,不考虑像素之间的相关性。在象素编码中常用的几种方法有:(1)脉冲编码调制(Pulse Code Modulation,简称PCM);(2)熵编码(Entropy Coding);常用的哈弗曼编码属于熵编码。(3)行程编码(Run Length Coding);(4)位平面编码(Bit Plane Coding)。2)预测编码法:预测编码法是利用相邻像素之间的相关性,去掉图像中冗余的信息,只对有用信息进行编码。例如由于像素灰度是连续的,所以在一片区域中,相邻像素之间灰度值的差别可能很小。如果只记录一个像素的灰度,其他像素的灰度都用其与其前一个灰度之差来表示,就能起到压缩的目的。举个简单
6、的例子,因为象素的灰度是连续的,所以在一片区域中,相邻象素之间灰度值的差别可能很小。如果我们只记录第一个象素的灰度,其它象素的灰度都用它与前一个象素灰度之差来表示,就能起到压缩的目的。如248,2,1,0,1,3,实际上这6个象素的灰度是248,250,251,251,252,255。表示250需要8个比特,而表示只需要两个比特,这样就实现了压缩。 常用的预测编码方法有增量调制(简称DM)和微分预测编码(简称DPCM)。3)变换编码法:变换编码法是指给定的图像变换到另一个数据域上,使得大量的信息能用较少的数据来表示,从而达到压缩的目的的方法。常用的有正交变换编码、离散余弦变换和离散沃尔什-哈达
7、玛变换等。4)其他编码法:其他编码法方法还很多,如内插法中的低取样和来取样法、方块编码、混合编码、矢量化和LZW算法等。这些年又出现了新的压缩方法:如使用人工神经元网络的压缩编码方法、分形、小波、基于对象的压缩编码算法和基于模型的压缩编码算法等。 本次课程设计采用了游程编码、哈弗曼编码、余弦变换编码、LBG矢量量化编码、小波变换编码和JND量化编码。二 图像压缩编码方法 (一)哈弗曼编码1哈弗曼编码的具体算法哈夫曼(Huffman)编码是一种常用的压缩编码方法,是Huffman于1952年为压缩文本文件建立的。它的基本原理是频繁使用的数据用较短的代码代替,较少使用的数据用较长的代码代替,每个数
8、据的代码各不相同。这些代码都是二进制码,且码的长度是可变的。举个例子:假设一个文件中出现了8种符号S0,S1,S2,S3,S4,S5,S6,S7,那么每种符号要编码,至少需要3比特。假设编码000,001,010,011,100,101,110,111(称做码字)。那么举例给出的符号序列S0S1S7S0S1S6S2S2S3S4S5S0S0S1经过哈夫曼(Huffman)编码后变成如下000001111000001110010010011100101000000001,共用了42比特。我们发现S0,S1,S2这三个符号出现的频率比较大,其它符号出现的频率比较小,如果我们采用一种编码方案使得S0,
9、S1,S2的码字短,其它符号的码字长,这样就能够减少占用的比特数。例如,我们采用这样的编码方案:S0到S7的码字分01,11,101,0000,0001,0010,0011,100经过哈夫曼(Huffman)编码后变成如下011110001110011101101000000010010010111,共用了39比特,尽管有些码字如S3,S4,S5,S6变长了(由3位变成4位),但使用频繁的几个码字如S0,S1变短了,所以实现了压缩。下面给出具体的Huffman编码算法:1)首先统计出每个符号出现的频率,例如S0到S7的出现频率分别为:0.25,0.19,0.08,0.06,0.21,0.02,
10、0.03,0.16 2) 从左到右把上述频率按从大到小的顺序排列。3) 将最小的两个数相加的值表上*号,其余的数据不变,然后将得到的数据排序4) 重复(3),直到只有两个数据。5) 从最后一列概率编码,从而得到最终编码。2哈夫曼算法的MATLAB实现程序h=imread(lufei.jpg);m,n=size(h);subplot(1,2,1);imshow(h);title(yuantu);h=h(:);s=0:255;for i=0:255 p(i+1)=length(find(h=i)/(m*n);enddict=huffmandict(s,p);enco=huffmanenco(h,d
11、ict);deco=huffmandeco(enco,dict);deco=col2im(deco,m,n,m,n,distinct);subplot(1,2,2);imshow(uint8(deco);title(huffman)3实验结果及分析从仿真的效果来看,两幅图基本没什么差异,因此哈夫曼算法是无损压缩。但是,我们从运算速度来看,哈夫曼算法的速度不快,原因是对于一般尺寸的彩色图像来说,运用imread读出图像信息的矩阵是个三维大容量的矩阵(这源于图像的像素量很大,每个像素的颜色分别由红、绿、蓝三种灰度决定),故按照哈夫曼这种统计算法耗时比较长。4压缩比(二)行程编码1行程编码的介绍 行
12、程编码又称“运行长度编码”或“游程编码”,是一种统计编码,该编码属于无损压缩编码。行程编码的基本思想:将一行中颜色值相同的相邻象素用一个计数值和该颜色值来代替。例如aaabccccccddeee可以表示为3a1b6c2d3e,即有3个a,1个b,6个c,2个d,3个e。如果一幅图象是由很多块颜色相同的大面积区域组成,那么采用行程编码的压缩效率是惊人的。然而,该算法也导致了一个致命弱点,如果图象中每两个相邻点的颜色都不同,用这种算法不但不能压缩,反而数据量增加一倍。因此对有大面积色块的图像用行程编码效果比较好。行程编码的可行性讨论:行程编码的压缩方法对于自然图片来说是不太可行的,因为自然图片像素
13、点错综复杂,同色像素连续性差,如果硬要用行程编码方法来编码就适得其反,图像体积不但没减少,反而加倍。鉴于计算机桌面图,图像的色块大,同色像素点连续较多,所以行程编码对于计算机桌面图像来说是一种较好的编码方法。行程编码算法特点:有算法简单、无损压缩、运行速度快、消耗资源少等优点。2行程编码的Matlab实现image1=imread(lufei.jpg); %读入图像imshow(image1); %显示原图像title(原图);% 以下程序是将原图像转换为二值图像image2=rgb2gray(image1);threshold=graythresh(image2);BW=im2bw(imag
14、e2,threshold);image3=reshape(image2,256,256); % 重建二维数组图像,并设为image3% 以下程序为对原图像进行行程编码,压缩X=image3(:); %令X为新建的二值图像的一维数据组x=1:1:length(X); % 显示行程编码之前的图像数据j=1;image4(1)=1;for z=1:1:(length(X)-1) % 行程编码程序段if X(z)=X(z+1)image4(j)=image4(j)+1;elsedata(j)=X(z); % data(j)代表相应的像素数据j=j+1;image4(j)=1;endenddata(j)
15、=X(length(X); % 最后一个像素数据赋给dataimage4length=length(image4); % 计算行程编码后的所占字节数,记为image4lengthy=1:1:image4length ; % 显示编码后数据信息% 下面程序是游程编码解压l=1;for m=1:image4length for n=1:1:image4(m); rec_image(l)=data(m); l=l+1; end endu=1:1:length(rec_image); % 查看解压后的图像数据figure,plot(u,rec_image(u);rec2_image=reshape(r
16、ec_image,256,256); % 重建二维二维图像数组figure,imshow(rec2_image); % 显示解压恢复后的图像title(解压恢复图像);3实验结果 4压缩比从仿真的效果来看,两幅图基本没什么差异,因此行程编码算法也是无压缩。 从计算速度来看,行程编码的编码速度快于哈夫曼算法,因为它只是对图像灰度做一个统计,并不需要再进行二元编码,但行程编码的最大缺点就是,对并非是大块色图的图像,不仅没有起到压缩的效果,反而增大了空间容量。(三)LBG矢量量化编码1矢量量化的定义要想得到好的性能编码,仅采用标量量化是不可能的。当把多个信源符号联合起来形成多维矢量,再对矢量进行标量
17、量化时自由度将更大,同样的失真下,量化基数可进一步减少,码率可进一步压缩。这种量化叫矢量量化。2LBG矢量量化编码算法一种有效和直观的矢量量化码书设计算法LBG算法(也叫GLA算法)是由Linde、Buzo和Gray于1980年首先提出来的。该算法基于最佳矢量量化器设计的最佳划分和最佳码书这两个必要条件,且是Lloyd算法在矢量空间的推广,其特点为物理概念清晰、算法理论严密及算法实现容易。设训练矢量集为,待产生的码书为,其中,则码书设计过程就是需求把训练矢量集分成个子集的一种最佳聚类方案,而子集的质心矢量作为码字。假设平方误差测度用来表征训练矢量和码字之间的失真,即:则码书设计的准则可用下列数
18、学形式表达: 最小化 约束条件 ,其中为矩阵,其元素满足: 矩阵可看作训练矢量的聚类结果。根据,可计算码字: 其中 代表子集中训练矢量的数目,或者说是矩阵第行中非零元素的数目。 针对训练矢量集为,其LBG算法的具体步骤如下: 步骤1:给定初始码书,令迭代次数,平均失真,给定相对误差门限。 步骤2:用码书中的各码字作为质心,根据最佳划分原则把训练矢量集划分为个胞腔,满足 步骤3:计算平均失真 判断相对误差是否满足 若满足,则停止算法,码书就是所求的码书。否则,转步骤4。 步骤4:根据最佳码书条件,计算各胞腔的质心,即 由这个新质心形成新码书,置,转步骤2。3LBG编码用Matlab实现程序cle
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 报告
