MATLAB实现JPEG标准下的静态图像压缩

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

下载文档原格式

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

MATLAB实现JPEG标准下的静态图像压

1引言

众所周知,原始图像数据会占用大量的存储空间,对于需要大量存储和传输图像的应用领域,需要有效的方法来存储及传输这些图像文件。因此,对图像信息进行一定的压缩处理成为一个不可或缺的重要环节。

图像数据压缩是指在满足一定图像质量的情况下,用尽可能少的数据量来表示图像。通常情况下,图像中含有大量的冗余信息,图像压缩的目的就是通过消除这种冗余性,减少图像的存储空间,即保留不确定的信息,去掉确定的信息,也就是用一种更接近信息本质的描述来代替原有冗余的描述。

2图像数据压缩系统

2.1图像数据压缩系统的组成

典型的图像数据压缩系统的组成如下:

(1)变换器

由于图像中大量冗余信息的存在,去除图像相关性是提高编码效率的一个很重要的步骤。变换器是无损变换过程,变换后的图像可以无失真恢复原始图像。

(2)量化器

生成一组有限个离散符号来表示压缩的图像。量化过程是一个幅值离散的过程,它是不可逆的,也是有损耗的。

(3)编码器

给量化器输出的每个符号指定一个码字,即二进制位流。编码器可

以使用定长编码或变长编码,变长编码又称为熵编码。图像符号的编码过程和变

换过程一样是无损耗的,即编码和解码过程是可逆过程。

2.2图像压缩系统评价

不同的图像压缩系统,由于其应用环境与处理目标不尽相同,因此

系统结构和具体算法的选择是千变万化的。为了对图像系统的性能有一个统一和

全面的评价,我们通常从恢复图像质量,压缩率,算法复杂度以及通信时延几个

方面来考察一个图像处理系统的压缩效果和可实现性及实用性。

压缩比就是原始图像大小与采用某种算法压缩后的图像大小的比值。恢复图像的高质量与高压缩比总是一对矛盾,因此这一对矛盾解决得好坏就成了

评判压缩算法优劣的重要标准。

3 JPEG标准

由国际标准化组织(ISO/IEC)与国际电报电话咨询委员会(CCITT)联合发起的联合图像专家组,在图像编码研究成果的基础上于20世纪

90年代初制定了静止图像的编码标准,简称JPEG(Joint Photographic Expert Group)标准[1]。 JPEG标准在较低的计算

复杂度下,能提供较高的压缩比与保真度。JPEG压缩技术用有损压缩方式去除冗

余的图像数据,在获得高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质。而且 JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多

种压缩级别,压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;

相反地,压缩比越小,品质就越好。

JPEG中有四种工作模式,包括顺序型DCT方式、渐进型DCT方式、

无失真方式、分层方式。其中最常用的是离散余弦变换(DCT)的顺序型模式,又

称为基本系统(Baseline System)[2-3]。下面针对这种模式来进行分析。

在DCT顺序工作模式中进行JPEG编码时,对原始图像的每一个分量

首先分割成互不重叠的8×8像素块,然后对每个像素块的编码过程可分为二维DCT变换,量化,熵编码三个阶段。

3.1二维离散余弦变换(DCT)

因为DCT算法输出图像的视觉效果相当好,通过它压缩后图像与原

图像的视觉效果几乎一样,所以本文重点讨论DCT算法。

根据图像信号的特点,对图像块进行二维DCT变换可以消除像素间

的相关性。自然图像的像素块经过DCT变换后,图像信号的能量主要集中到块的

左上角。即图像的低频成分中。

在编码器中,8×8像素取样经过FDCT(正向离散余弦变换)成为8×8

的DCT系数阵列。这些系数经过8×8的量化矩阵量化后,再经过系数到代码的

转换成为一系列信息保持转换的代码。在解码器中,那些DCT系数经过与和编码

器同级别的反量化,再经过IDCT(反离散余弦变化)将8×8的DCT阵列转换成

8×8的像素取样值[4]。

3.2量化

DCT变换后得到的系数矩阵中包括左上角的一个直流(DC)系数与

63个交流(AC)系数,从左到右,水平频率增高,从上到下竖直频率增高。接着

对DCT系数量化,再用Z(Zig_Zag)字形扫描变换系数矩阵转换成一维数列。在JPEG算法中,对于8×8的色度块和亮度块,分别给出了推荐使用的量化表,这

两个量化表是在大量实验的基础上,并结合人眼的视觉特性获得的。现给出如下,其中,Q1为亮度量化表,Q2为色度量化表。

Q1 =[ 16 11 10 16 24 40 51 61

12 12 14 19 26 58 60 55

14 13 16 24 40 57 69 56

14 17 22 29 51 87 80 62

18 22 37 56 68 109 103 77

24 35 55 64 81 104 113 92

49 64 78 87 103 121 120 101

72 92 95 98 112 100 103 99 ]

Q2=[ 17 18 24 47 99 99 99 99

18 21 26 66 99 99 99 99

24 26 56 99 99 99 99 99

47 66 99 99 99 99 99 99

99 99 99 99 99 99 99 99

99 99 99 99 99 99 99 99

99 99 99 99 99 99 99 99

99 99 99 99 99 99 99 99]

3.3编解码过程

在JPEG中,对直流(DC)系数使用差分编码,即对同一分量内相邻块的DC系数之差做Huffman编码。对于交流(AC)系数,首先进行游程编码,然后再进行Huffman编码会有效的压缩数据量。

编码过程中使用了JPEG对亮度处理提供的默认的编码表和证明过的量化矩阵。在解码过程中,由于一个Huffman编码的二值序列具有瞬时性并且其解码具有唯一性,所以用查表方式就可以实现的Huffman解码,然后进行反Zig_Zag扫描,反量化及反DCT变换,重建图像。过程中采用与编码时相同的量化表和熵编码表。

4程序说明