数据压缩试验汇报

上传人:时间****91 文档编号:139950749 上传时间:2022-08-22 格式:DOCX 页数:21 大小:24.16KB
收藏 版权申诉 举报 下载
数据压缩试验汇报_第1页
第1页 / 共21页
数据压缩试验汇报_第2页
第2页 / 共21页
数据压缩试验汇报_第3页
第3页 / 共21页
资源描述:

《数据压缩试验汇报》由会员分享,可在线阅读,更多相关《数据压缩试验汇报(21页珍藏版)》请在装配图网上搜索。

1、数据压缩试验汇报 篇一:4 (2)DCT 是仅次于 K-L 变换的次最好正交变换, 且以取得广泛应用, 并成为很多图像编码国际桂 林 理 工 大 学 实 验 报 告(2021 2021 学年度 第 一 学期)标准的关键。离散余弦变换的变换核为余弦函数,计算速度快,有利于图像压缩和其它处理。对于NN的数字图像,二维DCT变换的正反变换可表示为:N?1N?1(2x?1)u?(2y?1)v?F(u,v)?c(u)c(v)f(x,y)coscos班级: 学号 : 姓名:?2N2Nx?0y?0N ?1 N1试验名称:试验四 图像DCT变换编码和压缩日期: 2021年12月12日2? (2x?1)u?(2

2、y?1)v?(2.2.1)一、试验题目:图像DCT变换编码和压缩二、试验目标:(1)掌握离散余弦变换DCT的实现方法,了解DCT的幅度分布特征,从而加深对DCT变换的认识。(2)掌握图像DCT变换编码的实现方法,从而加深对变换编码压缩图像原理的了解。三、试验内容:编程实现图像DCT变换编码。四、预备知识:(1)熟悉DCT原理。 (2)熟悉变换编码原理。(3)熟悉在MATLAB环境下对图像文件的I/O操作。五、试验原理:变换编码是在变换域进行图像压缩的一个技术。图2.2.1显示了一个经典的变换编码系统。输入图压缩像NN图像图2.2.1 变换编码系统在变换编码系统中,假如正变换采取DCT变换就称为

3、DCT变换编码系统。DCT用于把一幅图像映射为一组变换系数,然后对系数进行量化和编码。对于大多数的正常图像来说,多数系数含有较小的数值且能够被粗略地量化(或完全抛弃),而产生的图像失真较小。f(x,y)?N?c(u)c(v)F(u,v)cosu?0v?02Ncos2N其中。c(u)?c(v)?u?0或v?0?1,2,.,N?1?1u,v?MATLAB图像处理工具箱实现离散余弦变换有两种方法:(1)使用函数dct2,该函数用一个基于FFT的算法来提升当输入较大的方阵时的计算速度。(2)使用由dctmtx函数返回的DCT变换矩阵,这种方法较适合于较小的输入方阵(比如88或1616)。函数:dct2

4、实现图像的二维离散余弦变换。调用格式为: B = dct2(A) B = dct2(A,M N) B = dct2(A,M,N)式中A表示要变换的图像,M和N是可选参数,表示填充后的图像矩阵大小,B表示变换后得到的图像矩阵。函数:dctmtx除了用dct2函数实现二维离散余弦变换,还可用 dctmtx函数来计算变换矩阵,调用格式为:D = dctmtx(N)式中D是返回NN的DCT变换矩阵,假如矩阵A是NN方阵,则A的DCT变换可用DAD来计算。这在有时比dct2计算快,尤其是对于A很大的情况。函数:idct2实现图像的二维离散余弦反变换。调用格式为: B = idct2(A) B = idc

5、t2(A,M N) B = idct2(A,M,N) 式中参数同dct2。另外,为了实现88子块的DCT图像变换还要用到MATLAB中的blkproc函数。将这个函数和函数dctmtx一起用于块处理能够大大简化运算。调用函数blkproc的格式为:B=blkpro(A,M,N,FUN,P1,P2,)其中,A表示原图像,M,N指定了大小为MN的滑动邻域,FUN是对MN的矩阵进行计算的函数,Pi是传输给FUN的附加参数。该函数自动实现图像块处理的整个过程。Blkproc把A分成MN个块,对每个块调用参数为P1,P2,的函数FUN,并重新将结果组合到输出图像B。blkproc函数实现nn矩阵的DCT

6、变换和反变换。编程中可写成: Y=blkproc(F,8 8,P1*x*P2,H,H) 一样的道理,blkproc函数还用于量化和反量化。显示误差直方图可能用到的MATLAB函数有: Max %找图像差最大值 =hist %用于生成直方图数据 Bar %显示图像差值直方图以上函数用MATLAB的help查看详细使用方法。图2.2.2显示了采取JPEG标准化矩阵进行DCT变换编码的结果。图2.2.2 DCT变换编码六、试验步骤:DCT变换编码步骤以下: 步骤1:设置JPEG标准化数组; 步骤2:求88快的DCT变换矩阵; 步骤3: 计算88快的DCT变换; 步骤4:对DCT系数量化和反量化; 步

7、骤5:求反量化系数的逆DCT变换;步骤6:重新显示重建图像、误差图像和误差图像的直方图。 量化时可采取JPEG标准推荐的归一化数组,如表2.2.1所表示。表2.2.1 JPEG标准化数组七、试验程序代码:function y=dctcoder(x,quality) m=16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 62 18 22 37 56 68 109 103 77 24 35 55 64 81 104 113 92 49 64 78 87 103 1

8、21 120 101 72 92 95 98 112 100 103 99*quality; xm,xn=size(x); xx=x; x=double(x); t=dctmtx(8);y1=blkproc(x,8 8,P1*x*P2,t,t);%DCT y2=blkproc(y1,8 8,round(x./P1),m);%Q y3=blkproc(y2,8 8,x.*P1,m);%IQ y=blkproc(y3,8 8,P1*x*P2,t,t);%IDCT subplot(2,2,1);imshow(xx);title(原始图像);subplot(2,2,2);imshow(mat2gray

9、(y);title(重建图像);%reconstruted image d=x-y;%original-reconstrutedsubplot(2,2,3);imshow(mat2gray(d);title(误差图像); h,k=hist(d(:),512);subplot(2,2,4);bar(k,h,k);title(误差图像直方图);篇二:试验一 常见压缩软件的使用一、试验目标使用部分常见的压缩软件,对数据压缩的概念、分类、技术和标准形成初步的认识和了解。二、试验要求1认真阅读试验指导书,按试验步骤完成试验内容。2试验过程中注意思索试验提出的问题,并经过试验解释这些问题。3经过试验达成试

10、验目标。三、试验环境计算机硬件:CPU处理速度1GHz以上,内存258M以上,硬盘10G以上软件:Windows操作系统2021或XP。四、试验内容1 使用WinZip或WinRAR两种压缩软件分别对文本文件(.txt,.doc)、程序源代码文件(.c)、数据文件(.dat)、二进制目标代码文件(.obj)、图像文件(.bmp)、音频文件(.wav)和视频文件(.avi,.wmv)进行压缩,分别计算出压缩率,判定这两种压缩软件采取的是可逆压缩还是不能够压缩,猜测其可能用到了那些压缩(编码)技术?2 使用jpegimager、TAK和BADAK分别进行图像、音频和视频的压缩,体验其压缩效果。3

11、使用bcl程序对文本文件、程序源代码文件、数据文件、二进制目标代码文件、图像文件等进行多个统计编码技术的压缩,包含香农-费诺(shannon-fano)编码、霍夫曼(huffman)编码、游程编码rle、字典编码lz等,统计每种压缩方法对不一样类型文件的压缩效果并进行比较,结合所学知识,解释其中的原因。五、试验步骤1、下载并打开WinZip和WinRAR两种压缩软件2、分别新建两个文档:qqjj.winzip 和wiar。添加所要压缩的文件:文本文件(.txt,.doc)、程序源代码文件(.c)、数据文件(.dat)、二进制目标代码文件(.obj)、图像文件(.bmp)、音频文件(.wav)和

12、视频文件(.avi,.wmv)进行压缩,图所表示:3、WinZip压缩软件能够直接看出各文件的压缩率,而wiar压缩软件不能直接看出各文件的压缩率,要在wiar压缩软件的屏幕上只显示一个压缩文件时,右健该压缩文件,点击显示信息方可看到该压缩文件的压缩率。比如black的压缩率,图所表示:用类似的方法能够看到其它文件的压缩率。Microsoft.txt为48%,outline.doc为18%,shannonfano.c为25%,shannonfano.obj为39%,tu.bmp为1%,star.wav为95%,clock.avi六、试验结论WinZip和WinRAR两种压缩软件采取的是可逆压缩

13、,WinRAR是经过牺牲压缩效率来增强压缩比的!winzip在现有压缩文件里再添加文件比WINRAR更加快。追求速度选WINZIP,追求功效选WINRAR 。七、试验总结经过这次试验,知道使用部分常见的压缩软件,对数据压缩的概念、分类、技术和标准形成初步的认识和了解。和体会到部分常见压缩软件的优势。试验二、霍夫曼编解码一、试验目标1 掌握r元Huffman编码的方法;2 了解Huffman编码效率及冗余度的计算;3、了解用matlab实现Huffman编码的方法。二、试验要求掌握了解霍夫曼编码的原理和过程三、试验内容(叙述操作过程,提交关键程序段)打开软件。输入以下程序,保留运行即可得到试验结

14、论。function h,l=huffman(p)p=0.1 0.3 0.05 0.09 0.21 0.25;if (length(find(p10e-10)error(Not a prob.vector,component do not add to 1)endn=length(p);q=p;m=zeros(n-1,n);for i=1:n-1q,l=sort(q); %对q排序,排序结果存放在q中,元素位置存放在l中m(i,:)=l(1:n-i+1),zeros(1,i-1);q=q(1)+q(2),q(3:n),1;endfor i=1:n-1c(i,:)=blanks(n*n);end

15、c(n-1,n)=0; %c存放编码,开始编码c(n-1,2*n)=1; %先设置第一次的两个分支,2*n是为了拉开每个编码的距离,方便观看,可查看c的改变for i=2:n-1 %继续编码c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)=1).-(n-2):n*(find(m(n-i+1,:)=1);c(n-i,n)=0;c(n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)=1;for j=1:i-1c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,.n*(find(m(n-i+1,:)=j+1)-1)+1:n*fin

16、d(m(n-i+1,:)=j+1);endendfor i=1:n %将最终的编码放在h中,ll存放每位的编码长度h(i,1:n)=c(1,n*(find(m(1,:)=i)-1)+1:find(m(1,:)=i)*n);ll(i)=length(find(abs(h(i,:)=32);endl=sum(p.*ll); %计算平均码长r元(r=3)霍夫曼编码参考程序:clearp=0.1 0.3 0.05 0.09 0.21 0.25;r=3;N=length(p);q=p(1:N),zeros(1,ceil(N-r)/(r-1)*(r-1)+r-N);n=length(q);A=(n-r)/

17、(r-1)+1;m=zeros(A,n);for i=1:Aq,l=sort(q);m(i,:)=l(1:n-2*(i-1),zeros(1,2*(i-1);q=sum(q(1:r),q(r+1:n),ones(1,r-1);endfor i=1:Ac(i,:)=blanks(n*n);endc(A,n)=0;c(A,2*n)=1;c(A,3*n)=2;for i=1:(A-1)c(A-i,1:n-1)=c(A-i+1,n*(find(m(A-i+1,:)=1). -(n-2):n*(find(m(A-i+1,:)=1);c(A-i,n)=0;c(A-i,n+1:2*n-1)=c(A-i,1:

18、n-1);c(A-i,2*n)=1;c(A-i,2*n+1:3*n-1)=c(A-i,1:n-1);c(A-i,3*n)=2;for j=1:2*ic(A-i,(j+2)*n+1:(j+3)*n)=c(A-i+1,n*(find(m(A-i+1,:). =j+1)-1)+1:n*find(m(A-i+1,:)=j+1); endendfor i=1:Nh(i,1:n)=c(1,n*(find(m(1,:)=i)-1)+1:find(m(1,:)=i)*n) ll(i)=length(find(abs(h(i,:)=32)endH=-sum(p.*log2(p)l=sum(p.*ll)Q=H/(

19、l*log2(r)四、试验结论h =20ll =2h =201ll =2 1篇三:试验汇报-数据滤波和数据压缩试验试验题目:使用Haar小波和傅里叶变换方法滤波及数据压缩 1 试验目标(1)掌握离散数据的Haar小波变换和傅里叶变换的定义,基础原理和方法 (2)使用C+实现数据的Haar小波变换和离散傅里叶变换 (3)掌握数据滤波的基础原理和方法(4)掌握使用Haar小波变换和离散傅里叶变换应用于数据压缩的基础原理和方法,而且对两种数据压缩进行评价2 试验步骤2.1 算法原理2.1.1 Haar小波变换 (1)平均,细节及压缩原理设x1,x2是一组两个元素组成的信号,定义平均和细节为a?(x1

20、?x2)/2。d?(x1?x2)/2。则能够将a,d作为原信号的一个表示,且信号可由a,d恢复,x1?a?d,x2?a?d。由上述能够看出,当x1,x2很靠近时,d会很小。此时,x1,x2能够近似的用a来表示,由此实现了信号的压缩。重构的信号为a,a,误差信号为|x1?a|,|x2?a|?|d|,|d|。所以,平均值a能够看做是原信号的整体信息,而d可以看成是原信号的细节信息。用a近似的表示原信号,能够实现对原信号的压缩,而且丢失的细节对于最终信号的重构不会有重大影响。对于多元素的信号,能够看成是对于二元信号的一个推广。 (2)尺度函数和小波方程在小波分析中,引入记号?(t)?X1,0)(t)

21、其中。X1,0)(t)表示区间1,0上的特征函数。定义?j,k(t)?(2jt?k),k?0,1,.,2j?1全部能够由称?(t)为Haar尺度函数。由上式可知。?j,k(t)?0,0(t)伸缩和平移得到。小波分析中,对于信号有不一样分辨率的表示,当用较低分辨率来表示原始信号时,会丢失细节信息,需要找到一个函数来描述这种信息,该函数称之为小波函数。基础的小波函数定义以下:?1,0?t?1/2?(t)?X0,1/2)(t)?X1/2,1)(t)?1,1/2?t?1?0,其它?称为两尺度方程。则?(t)?(2t)?(2t?1)。?(t)称为Haar小波。?(t)?1,0(t)?1,1(t)?(t)

22、?1,0(t)?1,1(t)称为小波方程。(3)Haar小波变换计算方法 设x1,x2.x2n是一个长度为2(n1)的离散信号序列,记为nan,0,an,1.an,2n?1该序列能够用以下的带有尺度函数来表示:f(t)?an,0?n,0(t)?.?an,2n?1?n,2n?1(t)一次小波分解的结果:f(t)?an?1,0?n?1,0(t)?.?an?1,2n?1?1?n?1,2n?1?1(t)?dn?1,0?n?1,(:.xiaocaoFanwEn.cOM 小草:)0(t)?.?dn?1,2n?1?1?n?1,2n?1?1(t)对上式积分,由尺度函数的正交性,可得?1f(t)?n?1,k(t

23、)dt?an?1,k令k=0得到an?1,0?(an,0?an,1)通常的,有an?1,k?(an,2k?an,2k?1)/k?0,1,.2n?1?1dn?1,k?(an,2k?an,2k?1)/k?0,1,.2n?1?1同理2.1.2 傅里叶变换(1)一维连续函数的傅里叶变换定义设f(t)为连续的时间信号,则定义F(u)?f(t)e?j2?utdt为f(t)的傅里叶变换,其反?变换为。(2)一维离散傅里叶变换对连续的时间信号f(t)等间隔采样,得到离散序列f(n)。假设采样N次,则序列表示为f(t)?F(u)ej2?utduf(0),f(1),.,f(N?1)。令n为离散变量,u为离散频率变

24、量,则一维离散傅里叶变换及其反变换定义:1N?1F(u)?f(n)e?j2?un/N,u?0,1,.,N?1Nn?0f(n)?F(u)ej2?un/N,n?0,1,.,N?1u?0N?1傅里叶变换的数学性质中,最主要的一点是:一个在时域或空域上看起来很复杂的信号(比如声音或图像)通常在频域上只集中在很小一块区域内,而很大一部分数值全部靠近于零。即一个在空域中看起来占满全空间的信号,从频域中很可能只占用了极小一块区域,而大部分频率是被为零的。这就得到一个极为实用的结论:一个看起来信息量很大的信号,其实能够只用极少的数据就可加以描述。只要对它先做傅里叶变换,然后只统计那些不靠近零的频域信息就能够达

25、成数据压缩的目标。(3)快速傅里叶变换FFT原理 FFT的基础思想:将大点数的DFT分解为若干个小点数DFT的组合,从而降低运算量。n,kWN令1N?1n,kF(k)?f(n)WN?j2?nk/N?eNn?0则F(u)可改写为。令N=2M,其中M为一正整数。带入式中,得到1F(k)?2M2M?1?n?0,kf(n)W2nM1?1F(k)?2?M1Fe(k)?M令则有M?1?n?0f(2n)Wn,kM1?MM?1?n?0?n,kf(2n?1)WMW2kM?M?1n?0M?1n?0?f(2n)Wn,kM1Fo(k)?M。?f(2n?1)Wn,kMF(k)?11k?F(k)?F(k)WF(k?M)?

26、Fe(k)?Fo(k)W2kM?eo2M?22。上述推导说明:对一个长度为N的序列进行傅里叶变换能够经过将其划分为2个N/2的序列进行傅里叶变换,对于N/2的傅里叶变换,可划分为两个N/4的变换,这一过程不停迭代,知道两点的序列为止,可计算出该序列的傅里叶变换。(4)时间抽取的基2FFT蝶形算法对于(3)中的计算方法,能够采取蝶形运算符号来表示。本试验中采取的算法是时间抽取的基2FFT算法实现快速傅里叶变换。 2.1.3 数据压缩的评价准则 (1)数据压缩比 设原始信号f(n)的数据量大小为S,经过数据压缩后,信号的数据量变为M,通常情况下MS。则数据压缩比率的定义为:?(S?M)/S由上式可

27、知,数据压缩得越小,其数据压缩比越大。 (2)数据失真度 对于压缩后的数据,能够采取反变换等方法还原信号。设原信号为f(n),还原信号为f1(n),则我们定义还原信号和原始信号的差异为数据失真度。显然,数据恢复越靠近原始信号,数据失真度越小。2.2 算法步骤(1)Haar小波方法步骤a) 读入原始数据f(n)b) 对原始数据f(n) 进行小波变换。对原始数据进行不一样层级(分辨率)下的小波变换,得到不一样的小波变换结果An , Dnc) 对于上步中的小波变换结果,把细节分量Dn置为0,即滤波得到压缩数据 An d) 对于滤波结果 An,经过小波逆变换,恢复数据 e) 计算恢复数据和原始数据的差

28、异,进行压缩评价 (2)离散傅里叶变换步骤a) 读入原始数据f(n)b) 对原始数据f(n)进行离散傅里叶变换。使用蝶形算法计算傅里叶变换结果F(u) c) 对F(u)进行滤波,保留低频成份,舍弃高频成份,即得到原始数据的近似表示 d) 对滤波结果的低频数据,高频分量恢复为零值,使用傅里叶反变换,恢复数据 e) 计算恢复数据和原始数据的差异,进行压缩评价2.3 程序步骤图图1 Haar小波变换步骤图在图1中,原始数据存放在文本文件eggs.txt中,由程序运行时读入。对结果的滤波是舍弃小波分解的细节部分。计算结果写入dwt.txt文件中。图2 Haar小波压缩数据差异计算步骤图图2是计算使用Haar小波进行数据压缩后,和原始数据差异。图中的f(n)表示原始数据,A(n)是小波改变结果,f1(n)表示逆变换结果。图3 离散傅里叶变换步骤图图3是傅里叶变换步骤图。原始数据是eggs.txt。对F(u)滤波时,舍弃高频信息。计算结果写入fft.txt文件中。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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