资源描述:
《实验三 JPEG图像编码.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、信息工程学院实验报告成绩:课程名称:多媒体技术指导教师(签名):实验项目名称:实验三JPEG图像编码实验时间:2014-09-19班级:姓名:学号:一、实验目的本实验旨在了解目前最为常用的JPEG压缩算法的工作原理,重点是DCT变换和量化。二、实验设备与软件1.PC计算机系统2.MATLAB软件3.标准测试图像三、实验内容1.用MATLAB生成只有(0,0)系数为1,其余系数均为0的8×8矩阵,并对该系数矩阵做DCT反变换,并以图像方式显示变换后矩阵。实验代码:clc;clear;T=dctmt
2、x(8);I1=[10000000;00000000;00000000;00000000;00000000;00000000;00000000;00000000;]I2=blkproc(I1,[88],'P1*x*P2',T',T);I3=imresize(I1,16);I4=imresize(I2,16);figuresubplot(1,2,1);imshow(I3);subplot(1,2,2);imshow(I4,[]);实验结果:2.改变系数1的位置,重复步骤1,观察输出图像的变化情况,
3、进而理解DCT系数的5物理含义。实验代码:clc;clear;T=dctmtx(8);I1=[00000000;10000000;00000000;00000000;00000000;00000000;00000000;00000000;]I2=blkproc(I1,[88],'P1*x*P2',T',T);I3=imresize(I1,16);I4=imresize(I2,16);figuresubplot(1,2,1);imshow(I3);subplot(1,2,2);imshow(I4,
4、[]);实验结果:3.根据JPEG标准对标准测试图像做DCT变换,并对DCT系数进行量化(选择量化步长为8);然后做反了量化和反变换,得到重建图像,比较原始图像和重建图像的差别。实验代码:clc;clear;%读入指定途径的图像rgb=imread('C:UserslyzDesktopcameraman1.jpg');%RGB转换为YUV,即YCbCryuv=rgb2ycbcr(rgb);%将得到的YUV转换为可进行数学运算的double类型,原来为uint8类型yuv=double(y
5、uv);%分别提取其中的Y,U,V矩阵5y=yuv(:,:,1);u=yuv(:,:,2);v=yuv(:,:,3);%设定量化步长eql=8;%设定块操作时dct矩阵T=dctmtx(8);%将Y,U,V矩阵分割为8*8的小块,并对每个小块进行DCT变换y_dct=blkproc(y,[8,8],'P1*x*P2',T,T');u_dct=blkproc(u,[8,8],'P1*x*P2',T,T');v_dct=blkproc(v,[8,8],'P1*x*P2',T,T');%将得到的DCT
6、系数除以量化步长y_dct=y_dct/eql;u_dct=u_dct/eql;v_dct=v_dct/eql;%将量化后的系数四舍五入y_dct_c=round(y_dct);u_dct_c=round(u_dct);v_dct_c=round(v_dct);%反量化y_dct_c=y_dct_c*eql;u_dct_c=u_dct_c*eql;v_dct_c=v_dct_c*eql;%进行DCT反变换y_idct=blkproc(y_dct_c,[8,8],'P1*x*P2',T',T);u
7、_idct=blkproc(u_dct_c,[8,8],'P1*x*P2',T',T);v_idct=blkproc(v_dct_c,[8,8],'P1*x*P2',T',T);%恢复为YUV矩阵,转换为uint8类型,yuv(:,:,1)=y_idct;yuv(:,:,2)=u_idct;yuv(:,:,3)=v_idct;yuv=uint8(yuv);%YUV转换为RGB5rgb1=ycbcr2rgb(yuv);%显示两幅图像subplot(1,2,1),imshow(rgb),title(
8、'原始图像');subplot(1,2,2),imshow(rgb1),title('处理后图像');实验结果:将实验测试图更换后实验结果:实验结论:由实验的结果可知,在量化步长为8的情况下,根据处理前后图像的对比,尽管损失了一些图像信息,但是基本上和与原图差别不大。4.改变量化步长,重复步骤(3)观察量化步长对图像质量的影响。将量化步长设为2005实验结果:实验结论:随着量化步长的不断增大,图像的像素越少,空间分辨率越低,图像质量越差。5.利用MATLAB自带的JPEG压缩算法,对标准测试图像