文章编号:1671-2250(2002)01-0028-04
基于DCT的JPEG图像压缩编码算法的MATLAB实现
钱裕禄,周雪娇
(浙江万里学院电子信息工程系,宁波315100)
摘要:文章介绍了基于DCT变换的JPEG图像压缩编码算法,并应用MA T LA B影像处理工具箱的相关函
数和命令,从两个不同的角度来实现对此算法的仿真.
关键词:M AT LAB软件;DCT;压缩编码
中图分类号:T P391.9文献标识码:A
在计算机数字图像文件常用格式中,作为静止图像压缩编码技术国际标准推出的JPEG(Joint Photo-g raphic Experts Group)格式是一种称为联合图像专家组的图像压缩格式,它适用于各种不同类型、不同分辨率要求的彩色和黑白静止图像.在JPEG各类图像压缩算法中,基于离散余弦变换(DCT,Discrete Cosine T ransform)的图像压缩编码过程称为基本顺序过程,它应用于绝大多数图像压缩场合,并且它能在图像的压缩操作中获得较高的压缩比,另外,重构图像与源图像的视觉效果基本相同.应用高级语言(如Basic,C,For-tran)编写的仿真程序来实现这一基于DCT的JPEG图像压缩编码算法则较为麻烦,而且仿真效果也不是十分理想.本文主要应用MATLAB5.3中发布的影像处理工具箱中的相关函数和命令来实现基于DCT的JPEG图像压缩编码理论算法的仿真.MATLAB5.3是一套功能十分强大的工程计算及数据分析应用软件,广泛应用于工业、电子、控制、信号及图像处理等各领域.MATLAB5.3本身除了提供强大的图形绘制和输出功能外,同时还发布了影像处理工具箱(Image Processing Toolbox),专门用于图像的处理.
1基于DCT的JPEG图像压缩编码理论算法及MAT LAB仿真基础
1.1基于DCT的JPEG图像压缩编码算法的表述
在编码过程中,首先将输入图像分解为8@8大小的数据块,然后用正向二维DCT把每个块转变成64个DCT系数值,其中1个数值是直流(DC)系数,即8@8空域图像子块的平均值,其余的63个是交流(AC)系数,接下来对DCT系数进行量化,最后将变换得到的量化的DCT系数进行编码和传送,形成压缩后的图像格式.在解码过程中,先对已编码的量子化的DCT系数进行解码,然后求逆量化并把DCT系数转化为8 @8样本像块(使用二维DCT反变换),最后将操作完成后的块组合成一个单一的图像.这样就完成了图像的压缩和解压过程.
1.2结合MATLAB5.3仿真对上述算法的几点解释
1.2.1离散余弦变换(DCT)定义
二维DCT的解析式定义可以由下式表示:
F(0,0)=1
N E N-1
x=0
E N-1
y=0
f(x,y),F(0,v)=2
N
E N-1
x=0
E N-1
y=0
f(x,y)cos(2y+1)v P
2N
,
F(u,0)=
2
N
E N-1
x=0
E N-1
y=0
f(x,y)cos
(2x+1)u P
2N F(u,v)=
2
N
E N-1
x=0
E N-1
y=0
f(x,y)cos
(2x+1)u P
2N cos
(2y+1)v P
2N
第15卷第1期浙江万里学院学报
Vol.15No.1
2002年3月Journal of Zhejiang Wanli University M ar.2002
收稿日期:2001-05-25
作者简介:钱裕禄(1975)),男,浙江象山人,浙江万里学院电子信息工程系教师,主要从事电信类课程教学与计算机仿真方面的研究.