图像DCT变换编码与压缩.doc

上传人:豆**** 文档编号:33431670 上传时间:2022-08-11 格式:DOC 页数:4 大小:34.50KB
返回 下载 相关 举报
图像DCT变换编码与压缩.doc_第1页
第1页 / 共4页
图像DCT变换编码与压缩.doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《图像DCT变换编码与压缩.doc》由会员分享,可在线阅读,更多相关《图像DCT变换编码与压缩.doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品文档,仅供学习与交流,如有侵权请联系网站删除 图像DCT变换编码与压缩一、实验目的:(1)掌握离散余弦变换DCT的实现方法,了解DCT的幅度分布特性,从而加深对DCT变换的认识。(2)掌握图像DCT变换编码的实现方法,从而加深对变换编码压缩图像原理的理解。二、实验内容: 编程实现图像DCT变换编码。三、实验原理:变换编码是在变换域进行图像压缩的一种技术。图1显示了一个典型的变换编码系统。图1 变换编码系统在变换编码系统中,如果正变换采用DCT变换就称为DCT变换编码系统。DCT用于把一幅图像映射为一组变换系数,然后对系数进行量化和编码。对于大多数的正常图像来说,多数系数具有较小的数值且可以

2、被粗略地量化(或者完全抛弃),而产生的图像失真较小。DCT是仅次于K-L变换的次最佳正交变换,且以获得广泛应用,并成为许多图像编码国际标准的核心。离散余弦变换的变换核为余弦函数,计算速度快,有利于图像压缩和其他处理。对于NN的数字图像,二维DCT变换的正反变换可表示为:(1)其中,MATLAB图像处理工具箱实现离散余弦变换有两种方法:(1)使用函数dct2,该函数用一个基于FFT的算法来提高当输入较大的方阵时的计算速度。(2)使用由dctmtx函数返回的DCT变换矩阵,这种方法较适合于较小的输入方阵(例如88或1616)。函数:dct2 实现图像的二维离散余弦变换。调用格式为: B = dct

3、2(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 = idct2(A,M N) B = idct2(A,M

4、,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变换和反变换。编程中可写成:Y=blkproc(

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

6、像和误差图像的直方图。量化时可采用JPEG标准推荐的归一化数组,如表1所示。表1 JPEG标准化数组1611101624405161121214192658605514131624405769561417222951878062182237566810910377243555648110411392496478871031211201017292959811210010399程序如下:x=imread(lena,bmp);M,N=size(x);%得到原始举矩阵大小m= 1611101624405161; 1212141926586055; 1413162440576956; 14172229

7、51878062; 182237566810910377; 243555648110411392; 4964788710312112010; 7292959811210010399;I=x;x=double(x);%变成双精度t=dctmtx(8);%得到DCT变换矩阵y1=blkproc(x,8 8,P1*x*P2,t,t);%进行DCT变换得到变换矩阵y2=blkproc(y1,8 8,round(x./P1),m);%量化 y3=blkproc(y2,8 8,x.*P1,m);%反量化y=blkproc(y3,8 8,P1*x*P2,t,t);%反DCT变化 IDCTsubplot(2,

8、2,1);imshow(I);title(原始图像);subplot(2,2,2);imshow(mat2gray(y);title(重建图像);%reconstruted imaged=x-y;%original-reconstruted原始矩阵和变化矩阵的差值,即变化误差subplot(2,2,3);imshow(mat2gray(d);title(误差图像);h,k=hist(d(:),256);%生成直方图数据subplot(2,2,4);bar(k,h,k);title(误差图像直方图);五、思考题目:(1)观察图像88子块的DCT系数的分布,并分析其特点。答:经DCT变换以后,系数大多数集中在左上角(即低频分量),其余系数大多很小或为零。(2)将量化步长分别增大为初始值的2倍、4倍、8倍后再进行DCT变换编码,显示不同量化步长条件下的重建图像、误差图像以及误差图像的直方图。分析重建图像质量和量化步长的关系。答:由以上结果对比可看出随着量化补偿的加大,图像误差变大,失真越来越严重。【精品文档】第 4 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁