|
职称论文发表 | 职称论文发表 专业提供:发表论文、论文发表、毕业论文、职称论... | |
住在汉口网 | 住在汉口网是一个专业提供汉口房产信息、车辆服务、生活服务、招... | |
职称论文网 | 职称论文网提供:发表论文、论文发表、毕业论文、职称论等服务。 | |
|
方建斌 方育红
摘 要:分析了离散余弦变换的理论和特点,并将其应用于图像压缩之中,利用matlab编程进行了图像压缩实验,取得了较好的较果。
关键词:图像压缩 离散余弦变换 重构
一、引言
数据压缩最初是信息论研究中的一个重要课题,在信息论中被称为信源编码,现在数据压缩已不限于编码方法的探讨和研究,它已逐步形成一个相对独立的体系,并且还扩展到研究数据的表示、传输及转换方法,目的是不断减少数据存储所占的空间和数据传输所需要的时间,从而达到提高工作效率、降低系统工作成本的目的。对于图像来说,如果需要进行快速或实时传输以及大量存储,就需要对图像数据进行压缩。图像压缩研究就是寻找高压缩比的方法且压缩后的图像要有合适的信噪比,在压缩传输后还要恢复信号,并且在压缩、传输、恢复过程中,使图像的失真度最小。图像的压缩技术一般基于如下两点:
(1)图像信息存在很大冗余度,数据之间存在着相关性,如相邻像素之间色彩基本相同;
(2)人的视觉对于边缘急剧变化不敏感,人眼具有对图像的亮度敏感性高、对色度敏感性低的特点。
由此发展出图像压缩的两类基本方法:一类是将相同或相似的数据或数据特征归类,使用较少的数据量描述原始数据,达到减少数据量的目的。这种压缩一般为无损压缩。第二类方法是利用人眼的视觉有针对性地简化不重要的数据,以减少总的数据量。这种压缩一般为有损压缩,只要损失的数据不太影响人眼主观接收的效果,就可采用。
离散余弦变换(Discrete Cosine Transform, DCT)是利用傅立叶变换的对称性,采用图像边界的褶翻操作将图像变换为偶函数形式,然后对这样的图像进行二维离散傅立叶变换,变换后的结果将仅包含余弦项,故称为离散余弦变换。DCT可以将图像描述为不同幅值和频率的正弦值之和的形式。对于一幅典型的图像,DCT有这样的性质:许多有关图像的重要可视信息都集中在DCT变换的一小部分系数中。因此,DCT变换在图像压缩中非常有用,是有损图像压缩国际标准JPEG算法的核心。
1.离散余弦变换的定义
一个 矩阵A的二维DCT定义如下:
(1)
其中
(2) (3)
数值 称为A的离散余弦变换系数。离散余弦变换是一个可逆变换,其逆变换的定义如下:
(4)
DCT逆变换可以理解为:任意一个 矩阵A都可以写成 个如式(5)所示的函数之和的形式:
(5)
这些函数被称为DCT基本函数,DCT系数 可以看成是应用于每个函数的权值。
2.DCT和JPEG
和相同图像质量的其他文件格式(如GIF(可变换的图像文件格式),TIFF(标签图像文件格式),PCX(图形文件格式))相比,JPEG是目前静态图像中压缩比最高的。JPEG比其他几种压缩比要高得多,而图像质量却差不多(JPEG处理的图像只有真彩色和灰度图)。正是由于其高压缩比,使得JPEG被广泛用于多媒体和网络程序中。JPEG有几种模式,其中最常用的是基于DCT的顺序型模式。
用DCT压缩的过程为:
(1)首先将输入图像分解为8×8或16×16的块,然后对每个子块进行二维DCT变换;(2)将变换后得到的量化的DCT系数进行编码和传输,形成压缩后的图像格式。
用DCT解压的过程为:
(1)对每个8×8或16×16的块进行二维DCT反变换;(2)将反变换的矩阵的块合成一个单一的图像。
余弦变换具有把高度相关数据能量集中的趋势,DCT变换后矩阵的能量集中在矩阵的左上角,右下的大多数的DCT系数值非常接近于0。对于通常的图像来说,舍弃这些接近于0的DCT系数值,并不会对重构图像的画面质量带来显著的下降。所以,利用DCT变换进行图像压缩可以节约大量的存储空间。压缩应该在最合理地近似图像的情况下使用最少的系数,使用系数多少也决定了压缩比的大小。
在压缩过程的第2步中,可以合理地舍弃一些系数,从而得到压缩的目的。在压缩过程的第二步,还可以采用RLE和Huffman编码来进一步压缩。
3.实验分析
将一幅图像分成8×8个块进行二维离散余弦变换,再舍弃块中近似于0的系数,只保留64个DCT系数中的10个,然后对每一个块使用二维逆离散余弦变换重新构造图像,最后用原图像与压缩后的图像直减,以便进一步分析图像的压缩效果。压缩前后的图像及它们相减所得的图像分别如图1、图2和图3所示。
图1 图2 图3
利用matlab进行图像压缩的实现代码如下:
I=imread(’cameraman.tif’);
I=im2double(I);
T=dctmtx(8); %产生二维DCT变换矩阵
%计算二维DCT,矩阵T及其转置是DCT函数P1XxXP2的参数
B=blkproc(I,[8 8], ’P1*x*P2’,T,T’);
%二值掩模,用来压缩DCT系数,只留下DCT系数中左上角的10个
mask=[1 1 1 1 0 0 0 0
对比原始图像和压缩后的图像,虽然舍弃了到85%的DCT系数,但图像仍然清晰(当然有一些质量损失),取得了较好的效果。
参考文献
[1] 董长虹.matlab图像处理与应用[M] . 北京:国防工业出版社,2004
[2] 陈杨,陈荣娟,郭颖辉.MATLAB6.X图像编程与图像处理[M].西安:西安电子科技大学出版社,2002
[3] 章毓晋.图象工程[M]. 北京:清华大学出版社,1999
[4] [美]冈萨雷斯等(著).数字图像处理[M].阮秋琦等(译).北京:电子工业出版社,2003
[5] 胡小锋,赵辉.Visual C++/MATLAB 图像处理与识别实用案例精选[M].北京:人民邮电出版社,2004
职称论文发表网http://www.issncn.com
职称论文发表网http://www.issncn.com
|
|
|
|