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

  • 格式:docx
  • 大小:22.57 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

一.图像压缩的概念

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

二.图像压缩的基本原理

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

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

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

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

三.图像的编码质量评价

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

MSE=1

NxNy ∑∑[f(i,j)−f(i,j)]2

Nj

j=0

Ni

i=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)=1

N ∑∑f(x,y)

N−1

y=0

N−1

x=0

(3)

F(0,y)=√2

N ∑∑f(x,y)

N−1

y=0

N−1

x=0

cos(2y+1)vπ

2N

(4)

F(u,0)=√2

N ∑∑f(x,y)

N−1

y=0

N−1

x=0

cos(2y+1)uπ

2N

(5)

F(u,v)=√2

N ∑∑f(x,y)cos(2x+1)uπ

2N

N−1

y=0

N−1

x=0

cos(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)=1

N F(0,0)+√2

N

∑F(0,v)cos(2y+1)vπ

2N

N−1

V=1

+

√2 N ∑F(u,0)cos(2x+1)uπ

2N

N−1

u=1

+

2 N ∑∑F(u,v)cos(2x+1)uπ

2N

N−1

v=1

N−1

u=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 图像子块进行处理)一一对应。量化