您的当前位置:首页正文

图像的JPEG压缩编码

来源:化拓教育网


实验4 图像的JPEG压缩编码

选题意义

图像压缩编码是减少图像数据的重要手段,分为有损压缩和无损压缩两种。

要 求

结合相关课程,完成实验内容所列条款,写出实验报告。

实验目的

掌握图像的JPEG压缩编码。

实验原理

(1)数据分块

(2)DCT处理

(3)系数量化

(4)Z型扫描

(5)DC系数编码

1

(6)AC系数编码

实验仪器及设备

(1)微型计算机;

(2)Matlab 图像处理软件。

实验内容及步骤:

实现一个简单的JPEG图像编解码过程,省略Z型扫描,DC系数编码,AC系数编码。

1、图像编码:

(1)读入1幅彩色图像

rgb=imread(' ');

(2)RGB转换为YUV,即YCbCr

yuv=rgb2ycbcr(rgb);

(3)将得到的YUV转换为可进行数学运算的double类型,原来为uint8 类型

yuv=double(yuv);

2

(4)分别提取其中的Y,U,V矩阵

y=yuv(:,:,1);

u=yuv(:,:,2);

v=yuv(:,:,3);

(5)设定量化步长

eql=8;

(6)设定块操作时dct矩阵

T = dctmtx(8);

(7)将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');

(8)将得到的DCT系数除以量化步长

3

y_dct=y_dct/eql;

u_dct=u_dct/eql;

v_dct=v_dct/eql;

(9)将量化后的系数四舍五入

y_dct_c=fix(y_dct);

u_dct_c=fix(u_dct);

v_dct_c=fix(v_dct);

2、图像解码:

(1)反量化

根据上面的变量编写程序;

(2)进行DCT反变换

根据上面的变量编写程序;

(3)恢复为YUV矩阵,转换为uint8 类型

4

根据上面的变量编写程序;

(4)YUV转换为RGB

rgb1=ycbcr2rgb(yuv);

(5)显示两幅图像

subplot(211),imshow(rgb),title('原始图像');

subplot(212),imshow(rgb1),title('处理后图像');

分析图像压缩前后的变化。

预习要求

数字图像处理中的第6章图像编码;设计程序。

实验报告

整理程序、数据,分析实验结果。

思考题

考虑图像的JPEG编码步骤中减少了哪些冗余。

5

因篇幅问题不能全部显示,请点此查看更多更全内容