基于MATLAB-的图像压缩处理及
其实现
基于MATLAB 的图像压缩处理及其实现
一.图像压缩的概念
从实质上来说,图像压缩就是通过一定的规则及方法
对数字图像的原始数据进行组合和变换,以达到用最少的数
据传输最大的信息。
二.图像压缩的基本原理
图像数据之所以能被压缩,就是因为数据中存在着
大量冗余信息,另外还有相当数量的不相干信息,这为数
据压缩技术提供了可能。
数据压缩技术就是利用数据固有的冗余性和不相干
性,将一个大的数据文件转化成较小的文件,图像技术压
缩就是要去掉数据的冗余性。
图像数据的冗余主要表现为:图像中相邻像素间的
相关性引起的空间冗余;图像序列中不同帧之间存在相关
性引起的时间冗余;不同彩色平面或频谱带的相关性引起
的频谱冗余。
由于图像数据量的庞大,在存储、传输、处理时非常
困难,因此图像数据的压缩就显得非常重要。
三.图像的编码质量评价
在图像编码中,编码质量是一个非常重要的概念,怎
么样以尽可能少的比特数来存储或传输一幅图像,同时又让
接收者感到满意,这是图像编码的目标。对于有失真的压缩
算法,应该有一个评价准则,用来对压缩后解码图像质量进
行评价。常用的评价准则有两种:一种是客观评价准则;另
一种是主观评价准则。主观质量评价是指由一批观察者对编
码图像进行观察并打分,然后综合所有人的评价结果,给出
图像的质量评价。而对于客观质量评价,传统的编码方法是
基于最小均方误差(MSE)和峰值信燥比(PSNR)准则的编码方
法,其定义如下
MSE=1NxNy∑∑[f(i,j)−f(i,j)]2Njj=0Nii=0 (1)
PSNR=101g(
255×255
MSE
) (2)
式中:Nx,Nr图像在x方向和Y方向的像素数,f(i,j)——原
图像像素的灰度值,f(i,j)--处理后图像像素的灰度值。对
于主观质量,客观质量评价能够快速有效地评价编码图像的
质量,但符合客观质量评价标准的图像不一定具有较好的主
观质量,原因是均方误差只是从总体上反映原始图像和压缩
图像的差别,但对图像中的所有像点同等对待,因此并不能
反映局部和人眼的视觉特性。对于图像信号,人眼是最终的
信号接受者,因此在压缩时不仅要以MSE作为评价标准,还
应当考虑到人的主观视觉特性。
四.图像压缩的基本方法
1.基于dct变换的图像压缩
1.1
基于DCT的图像压缩编码思想
在编码过程中,首先将输入图像分解成8×8 大小的数
据块,然后用正向二维DCT把每个块转变成64个DCT 系数
值,其中1个数值是直流(DC)系数,即8×8 空域图像子
块的平均值,其余的63个是交流(AC)系数,接下来对DCT
系数进行量化,最后将变换得到的量化的DCT系数进行编码
和传送,形成压缩后的图像格式。在解码过程中,先对已编
码的量子化的DCT 系数进行解码,然后求逆量化并把DCT
系数转化成为8×8 样本像块(使用二维DCT 反变换),最
后将操作完成后的块组合成一个单一的图像。这样就完成了
图像的压缩和解压过程。
1.2 DCT的算法解释
DCT的变换核心为余弦函数。
二维DCT的解析式定义可以由下式表示:
F(0,0)=1N∑∑f(x,y)N−1y=0N−1x=0
(3)
F(0,y)=√2N∑∑f(x,y)N−1y=0N−1x=0cos(2y+1)vπ2N (4)
F(u,0)= √2N∑∑f(x,y)N−1y=0N−1x=0cos(2y+1)uπ2N (5)
F(u,v)= √2N∑∑f(x,y)cos(2x+1)uπ2NN−1y=0N−1x=0cos(2y+1)vπ2N
(6)
其中f(x,y)是空间域二维向量之元素,x,y=0,1,2,…,
N-1,F(u.v)是变换系数阵列元素;式中表示的阵列为N×N。
二维 DCT 反变换(IDCT)解析式定义可以表示为:
F(x,y)=
1NF(0,0)+√2N∑F(0,v)cos(2y+1)vπ
2N
N−1
V=1
+
√
2N∑F(u,0)cos(2x+1)uπ
2N
N−1
u=1
+
2N∑∑F(u,v)cos(2x+1)uπ2NN−1v=1N−1u=1cos(2x+1)vπ
2N
(7)
而在应用Matlab 进行仿真实现中,主要是在解析式定
义基础上采用二维DCT 变换的矩阵式定义来实现的,矩阵
式定义可以表示为:
[F(u,v)] = [A]r [F(u, v)][A] (8)
[ f (x, y)] = [A][ f (x, y)][A]r (9)
其中[f(x,y)]是空间数据阵列,[F(u,v)]是变换系数阵列,[A]
是变换矩阵,[A]T 是[A]的转置。系数量化是一个十分重要
的过程,是造成 DCT 编解码信息损失(或失真)的根源,
在数码图像压缩算法中采用均匀量化器,量化定义可以表述
为:对64 个DCT 系数除以其量化步长,四舍五入取整,即
Q(u, v) = IntegerRound(F(u,v) / S(u, v)) (10)
式中,Q(u,v)为量化的系数幅度,S(u,v)为量化步长,它是量
化表的元素,通常随DCT 系数的位置和彩色分量的不同而
取不同的值,量化表的尺寸为8×8 与64 个DCT 系数(一
般将图像分解成8×8 图像子块进行处理)一一对应。量化
的作用是在保证图像质量的前提下,丢掉那些对视觉影响不
大的信息,以获得较高的压缩比。由于DCT 系数包含了空
间频率信息,可充分利用人眼对不同频率敏感程度不同这一
特征来选择量化表中的元素值大小,对视觉重要的系数采用
细量化,如低频系数被细量化,对高频系数采用粗量化。对
于这一点,从Matlab 仿真得到的DCT 变换谱中得到证明。
经过二维 DCT 变换后得到的矩阵,其非零元素主要集中在
左上角,而右下角大部分是零。其原因是由于图像的低频部
分一般都集中在左上角。利用这一特点我们就可以实现对图
像的压缩。在实际传输时,仅仅传输代表低频分量的左上角,
并对其进行量化编码,其余均去除。当反变换时,只要把去
掉的部分用填零的方式来处理。这样就达到图像压缩的目
的。
1.3算法的matlab实现及其仿真结果
实验程序:
2.基于小波变换的图像压缩
2.1
基于小波的图像压缩编码思想
小波变换图像压缩的基本思想是把图像进行多分辨率
分解,然后再对子图像进行系数编码。系数编码是小波变换
压缩的核心,压缩的实质是对系数的量化压缩。图像做小波
分解后,可得到一系列不同分辨率的子图像,不同分辨率的
子图像对应的频率是不相同的,高分辨率子图像上大部分点
的数值接近于0,而表现一个图像最主要的部分就是低频部
分,对这一部分的压缩应尽可能减少失真或者无失真。所以
利用小波分解,去掉图像的高频细节部分而只保留低频近似
部分。可以使用appcodf2( )函数来提取低频近似系数。为了
提高压缩比,同时能够从压缩后图像数据还原出理想的彩色
图像,对提取的低频近似系数做相应的截取处理,来达到较
好的压缩效果。由于采用的是二维小波分解,于是截取它左
上角1/4 大小的子矩阵。
2.2