基于MATLAB 的图像压缩处理及其实现

发布时间:2020-09-26 06:54:43

基于MATLAB 的图像压缩处理及其实现

一.图像压缩概念

从实质上来说,图像压缩就是通过一定的规则及方法对数字图像的原始数据进行组合和变换,以达到用最少的数据传输最大的信息。

二.图像压缩的基本原理

图像数据之所以能被压缩,就是因为数据中存在着大量冗余信息,另外还有相当数量的不相干信息,这为数据压缩技术提供了可能。

数据压缩技术就是利用数据固有的冗余性和不相干性,将一个大的数据文件转化成较小的文件,图像技术压缩就是要去掉数据的冗余性。

图像数据的冗余主要表现为:图像中相邻像素间的相关性引起的空间冗余;图像序列中不同帧之间存在相关性引起的时间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余。

由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。

三.图像的编码质量评价

在图像编码中,编码质量是一个非常重要的概念,怎么样以尽可能少的比特数来存储或传输一幅图像,同时又让接收者感到满意,这是图像编码的目标。对于有失真的压缩算法,应该有一个评价准则,用来对压缩后解码图像质量进行评价。常用的评价准则有两种:一种是客观评价准则;另一种是主观评价准则主观质量评价是指由一批观察者对编码图像进行观察并打分,然后综合所有人的评价结果,给出图像的质量评价。而对于客观质量评价,传统的编码方法是基于最小均方误差(MSE)和峰值信燥比(PSNR)准则的编码方法,其定义如下

MSE= (1)

PSNR=101g( (2)

式中:NxNr图像在x方向和Y方向的像素数,f(i,j)——原图像像素的灰度值,f(i,j)--处理后图像像素的灰度值。对于主观质量,客观质量评价能够快速有效地评价编码图像的质量,但符合客观质量评价标准的图像不一定具有较好的主观质量,原因是均方误差只是从总体上反映原始图像和压缩图像的差别,但对图像中的所有像点同等对待,因此并不能反映局部和人眼的视觉特性。对于图像信号,人眼是最终的信号接受者,因此在压缩时不仅要以MSE作为评价标准,还应当考虑到人的主观视觉特性。

.图像压缩的基本方法

1.基于dct变换的图像压缩

1.1 基于DCT图像压缩编码思想

在编码过程中,首先将输入图像分解成8×8 大小的数据块,然后用正向二维DCT把每个块转变成64DCT 系数值,其中1个数值是直流(DC)系数,即8×8 空域图像子块的平均值,其余的63个是交流(AC)系数,接下来对DCT 系数进行量化,最后将变换得到的量化的DCT系数进行编码和传送,形成压缩后的图像格式。在解码过程中,先对已编码的量子化的DCT 系数进行解码,然后求逆量化并把DCT 系数转化成为8×8 样本像块(使用二维DCT 反变换),最后将操作完成后的块组合成一个单一的图像。这样就完成了图像的压缩和解压过程。

1.2 DCT的算法解释

DCT的变换核心为余弦函数。

二维DCT的解析式定义可以由下式表示:

F(0,0)= (3)

F(0,y)= (4)

F(u,0)= (5)

F(u,v)= (6)

其中f(x,y)是空间域二维向量之元素,xy=012,…,N-1F(u.v)是变换系数阵列元素;式中表示的阵列为N×N 二维 DCT 反变换(IDCT)解析式定义可以表示为:

F(x,y)= cos (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

基于MATLAB 的图像压缩处理及其实现

相关推荐