基于DCT变换的数字图像压缩(实验4报告).docVIP

基于DCT变换的数字图像压缩(实验4报告).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于DCT变换的数字图像压缩(实验4报告)

多媒体技术实验报告 学院: 城南学院通信1202班 姓名 学号 指导老师:尹波 时间:2015/12/09 实验四:数字图像压缩 1.实验目的 理解有损压缩和无损压缩的概念; 理解图像压缩的主要原则和目的;  了解几种常用的图像压缩编码方式; 利用MATLAB程序进行图像压缩。 2. 实验原理 图像压缩原理 图像压缩主要目的是为了节省存储空间,增加传输速度。图像压缩的理想标准是信息丢失最少,压缩比例最大。不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。 信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质上是减少这些冗余量。高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大的图像信息。 编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。①冗余度压缩方法,也称无损压缩、信息保持编码或嫡编码。具体说就是解码图像和压缩编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。②信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。也就是说解码图像和原始图像是有差别的,允许有一定的失真。 本实验主要利用MATLAB程序进行离散余弦变换(DCT)压缩和行程编码(Run Length Encoding, RLE)。 2)离散余弦变换(DCT)图像压缩原理 离散余弦变换DCT在图像压缩中具有广泛的应用,它是JPEG、MPEG等数据压缩标准的重要数学基础。 用DCT压缩图像的过程为: ①首先将输入图像分解为8×8或16×16的块,然后对每个子块进行二维DCT 变换。 ②将变换后得到的量化的DCT系数进行编码和传送,形成压缩后的图像格式。 用DCT解压的过程为: ①对每个8×8或16×16块进行二维DCT反变换。 ②将反变换的矩阵的块合成一个单一的图像。 余弦变换具有把高度相关数据能量集中的趋势,DCT变换后矩阵的能量集中在矩阵的左上角,右下的大多数的DCT系数值非常接近于0。对于通常的图像来说,舍弃这些接近于0的DCT的系数值,并不会对重构图像的画面质量带来显著的下降。所以,利用DCT变换进行图像压缩可以节约大量的存储空间。压缩应该在最合理地近似原图像的情况下使用最少的系数。使用系数的多少也决定了压缩比的大小。 在压缩过程的第2步中,可以合理地舍弃一些系数,从而得到压缩的目的。在压缩过程的第2步,还可以采用RLE和Huffman编码来进一步压缩。 3. 实验步骤 在matlab命令窗口中直接输入dctdemo选图像flower如图所示: 在右上角8*8 DCT系数图下,调节系数选择滑块。保留系数为白色,置零系数为黑色。 按Apply键,比较原始图象、恢复图象、误差图象,观察原始图象与恢复图象的均方误差,改变系数选择滑块的位置,重做上步。 2)利用离散余弦变换进行JPEG图像压缩。 使用函数dctmtx()产生DCT变换矩阵 T=dctmtx(8);%产生二维8*8 DCT变换矩阵; 使用blkproc?()函数对图像进行分块处理 先使用rgb2gray()函数将原始图像转换成灰度图;再使用blkproc?()函数对图像进行分块处理。 B=blkproc(I,[8,8],P1*x*P2,T,T); %二值掩模,用来压缩DCT系数,只留下DCT系数中左上角的10个 mask=[1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 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 ]; B2=blkproc(B,[8 8],P1.*x,mask) ; %只保留DCT变换的10个系数 I2=blkproc(B2,[8 8],P1*x*P2,T,T) ; %重构图像 4. 实验代码 I1=imread(D:\Backup\我的文档\503-100\lena.jpg); I=rgb2gray(I1); I=im2double(I); T=dctmtx(8); B=blkproc(I,[8,8],P1*x*P2,T,T); mask=[1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0

文档评论(0)

docindpp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档