没有合适的资源?快使用搜索试试~ 我知道了~
采用离散余弦变换和小波变换对静态图像的压缩
3星 · 超过75%的资源 需积分: 15 10 下载量 186 浏览量
2010-12-18
15:21:59
上传
评论
收藏 401KB DOC 举报
温馨提示
试读
12页
采用离散余弦变换和小波变换对静态图像的压缩。主要对两种方法的原理结合实例进行实现
资源推荐
资源详情
资源评论
静态图像压缩综述
摘要:本文主要介绍了离散余弦变换和小波变换两种图像压缩方法。介绍了基
于DCT变换和小波变换的图像压缩的基本原理及其实现步骤。并使用
MATLAB,针对两种不同变换下的压缩方法对原始静止图像进行压缩,给出了
实验仿真结果。并分析了两种压缩方法的优缺点。
关键词:离散余弦变换 小波变换 图像压缩
Abstract: This paper introduces the discrete cosine transform and wavelet transform
image compression method. And it introduces the basic principles of image
compression and its implementation steps based on DCT transform and wavelet
transform. Using MATLAB to transform the original still image compression for two
different compression methods, and it gives the simulation results. It analyzes the
advantages and disadvantages of the two compression methods.
Keywords: discrete cosine transform; wavelet transform; image compression
0
引言
一幅数字化图像包含有大量的数据,由于存储空间和网格带宽的
限制,对图像进行存储和传输之前首先要对图像进行压缩。在保证质
量要求的前提下,减少或消除图像中的冗余,达到节省存储和传输的带
宽。在需要时,再对压缩图像进行解码和重构。DCT编码属于正交变
换编码方式,用于去除图像数据的空间冗余。小波变换具有时频局
部性,它在频率和位置上都是可变的,非常适合分析瞬态信号。
1 离散余弦变换(DCT)
DCT利用傅里叶变换的性质,采用图像边界褶翻将像变换为偶
函数形式,然后对图像进行二维傅里叶变换,变换后仅包含余弦项,
所以称之为离散余弦变换。
1) 离散余弦变换(DCT) 正反变换公式
正变换公式:
0,1, , 1; 0,1, , 1 1u M v N
式中:
1
1
, 0
, 0
2 2 , 1,2, , 1
, 1,2, , 1
v
u
N
M
N v N
u N
M
c u c v
反变换公式:
1 1
0 0
2 1 2 1
, , cos cos
2 2
M N
u v
x u y v
f x y c u c v F u v
M N
式中: 为空间域采样值; 是频率域采样值。其中 是空
间域二维向量的元素, 是变换系数阵列元素。
在二维离散余弦变换中,通常,数字图像用像素方阵来表示,
即 ,在这种情况下,二维离散余弦的正反变换可简化为
式中
在MATLAB仿真实现中, 主要是采用二维DCT变换的矩阵式定
义来实现的,矩阵式定义可以表示为
其中 是空间数据阵列, 是变换系数阵列, 是
变换矩阵, 是 的转置。
2)实验分析
离散余弦变换属于正交变换编码方式,用于去除图像数据的空
间冗余。变换编码就是将图像时域信号变换到频域信号上进行处理
的方法。在空间上具有强相关的信号反应到频域上是在某些特定的
区域上能量常集中在一起,或者是系数矩阵的分布具有某些规律。
我们可以利用这些规律在频域上减少量化比特数,已达到压缩的目
的。图像经DCT变换后,DCT系数之间的相关性就会减少,而且大
部分能量集中在少数的系数中。从原理上讲可以对整幅图像进行
DCT变换,但由于图像上各部位的细节的丰富程度不一样,这种整
体处理的方式效果不好。为此发送者首先将发送图像分解成
块,本文就分解成 块进行实验,然后对每个图像块进
行二维DCT变换。接着再对DCT系数进行量化、编码和传输;接收
者通过对量化后的DCT系数进行解码,并对每个图像块进行二维
DCT反变换。最后将操作后的所有的块拼接在一起构成一幅单一的
图像。对于一般的图像而言,大部分DCT系数都为零,所以去掉这
些系数对于图像的重构质量影响不大。因此利用DCT变换压缩图像
确实可以节省很大的空间。在试验中先将输入的原始lena图像分块,
然后再对每个块进行二维离散余弦变换。程序如下:
I=imread('lena.bmp');%装入原始图像
I=im2double(I);
T=dctmtx(8); %计算离散余弦变换
B=blkproc(I,[8 8],'P1*x*P2',T,T');%对图像I的每个不同8*8数据块应用矩阵式
P1*P2进行处理,其中p1=T,p2=T
,
mask=[1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
剩余11页未读,继续阅读
资源评论
- qq_271775852015-04-06骗子,,根本就看不了
- mxadxj2012-12-23对余弦变换和小波变换的原理阐述清晰,值得借鉴
- hga6662013-04-17采用离散余弦变换和小波变换实现对静态图像的压缩,程序运行能得出结果,正好能用到我的课程设计中,感谢分享
hundanwaba
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功