注:
1、该博客已经停止维护了,相关文件也早已丢失了,各位非常抱歉!
2、本实验不生成、不存储具体编码,只计算编码长度、PSNR和压缩比等,即计算JPEG性能。
3、本文只提供代码。如果需要完整的实现过程,压缩包下载地址:
https://download.csdn.net/download/weixin_41730407/10371917
4、该程序还使用imwrite实现了相同放大倍数下JPEG2000的压缩,并与JPEG压缩指标进行了对比。
一、实验准备
实验环境:Matlab R2017b
实验准备:lenaXING.mat含:
①codelength.mat:霍夫曼编码码长矩阵(AC、DC亮度编码表),个人整理;
②lena512.mat from https://www.ece.rice.edu/~wakin/images/;
③lighttable.mat:JPEG标准亮度量化表;
④zigzag.mat:快速Z型排序行向量。
二、实验流程
为了简化步骤,我们省略了第一步,而直接对源图像进行处理。
1、图像分割
以8x8为最小单元分割,可分割成4096个方块,从上往下存。得到32768x8的矩阵。
2、DCT变换
对这4096个方阵分别进行DCT变换,得到4096个变换方阵,从上往下存。仍是32768x8的矩阵。
3、量化
对这4096个方阵分别根据JPEG亮度标准量化表进行量化,从上往下存。仍是32768x8的矩阵。
由于四舍五入,许多高频分量已经被舍弃,减小了视觉冗余。
4、系数编码和熵编码
进一步地,我们要对图像进行系数编码和熵编码。
先用一个例子说明以下过程:
a. 对每一个方阵采用ZIG-ZAG排序ÿ