论数字图象压缩算法研究与实现
2018-03-28严小红
严小红
(新疆交通职业技术学院,新疆 乌鲁木齐 831401)
经济的发展,为人们在科学技术领取取得突破性成果奠定了雄厚的物质基础。近年来,随着互联网的迅猛发展,多媒体技术的应用和发展越来越受到人们的关注,而数字图像压缩算法的研究与实现对于多媒体技术,特别是数字图像技术的发展起着决定性的作用。在信息化时代的大背景下,数字图像处理技术的到了广泛的应用,图像成为当今时代人们交流沟通、数字应用等方面的重要元素之一,而数字图像需要占据大量的数据空间,对于数字图像的存储和网络的传输都产生了重要的影响。因此,加大数字图像压缩算法的研究与实现有着鲜明的时代意义。
一、数字图象压缩的具体原理
数字图像信息离开不计算机技术,数字图像的信息需要存储在存储器设备中,数字图像信息是通过二进制数据形式在存储器上存储的[1]。与文字信息不同的是数字图像信息数据量比较大,因此数字图像信息占据的存储空间也较大;另外数字图像信息在互联网上进行传输时消耗的网络流量也较大。例如当前一颗卫星每天的卫星云图数据大概就要占据1.1G的存储空间,一张100G的硬盘只能存储大约90天的卫星云图数据,这与海量的数据存储需求严重不相符。图像数据之间存在一定的冗余,而数字图像压缩就是通过减少这些冗余空间来实现数字图像信息占用空间的压缩。所有的数字图像信息都存在冗余,因此可以看出,数字图像其实是数据信息和数据冗余的组合[2]。
(一)图像冗余
通过上面的介绍我们,已经知道数字图像之间存在冗余,这些数据冗余为数字图像的压缩提供了可能。不同的数字图像的数据冗余不同,也就是说数字图像的冗余度不同。不难看出,数字图像的压缩就是降低冗余度的过程,而降低数字图像的冗余度需要考虑数字信号源的统计特性或者建立信号源的统计模型[3]。
图像的冗余分为以下几种情况:
1、时间冗余:数字图像的时间冗余指的是数字图像的活动图像的两个连续帧之间的冗余。
2、空间冗余:空间冗余其实就是数字图像内部像素点之间存在的相关性造成的冗余。
3、知识冗余:知识冗余一般是指数字图像中包含某种结构、与验证知识有关的信息冗余。
4、视觉冗余:视觉冗余指的是数字图像中那些人眼无法感知或者不敏感的那部分图像信息形成的冗余。
5、结构冗余:结构冗余是指在数字图像中存在很强的纹理结构或者自相似性的冗余。
6、信息熵冗余:信息熵冗余也被称为编码冗余,指的是数字图像中平均每个像素使用的二进制数据大于该图像的信息熵而存在的冗余。
(二)压缩原理
数字图像的压缩原理就是通过去除数字图像之间存在的冗余,减少数字图像的二进制比特数据[4]。数字图像的压缩原理一般遵循两个基本原理:
1、数字图像的相关性。研究表明,数字图像的内部像素之间往往存在某种很强的相关性,这些相关性主要分布在数字图像的同一行像素中的相邻像素或者活动图像的相邻帧的对应像素之间。这种相关性对于数字图像的压缩有着一定的影响,因此,在对数字图像压缩时应该去除或者减少这些像素之间的相关性。只有减少甚至去除这些数字图像像素之间的相关性才能有效降低数字图像的冗余度,才能真正实现数字图像的压缩。
2、人的视觉心理特征
在数字图像之中,人眼能够感知图像中的大部分像素,但是有部分像素是人眼无法感知的或者人眼敏感度较低的。由于视觉的掩盖效应,人眼对于边缘产生急剧变化的像素不敏感,对颜色分辨力较弱。利用人眼的视觉掩盖效应可以适当去除数字图像中的这部分无法感知或者感知度较低的数据,降低数字图像的编码精度,从而降低数字图像的数据大小。采用这个方法压缩数字图像,既能够对数字图像有效压缩,减少数字图像的数据量,同时也能够保证人并不会使人从视觉上感受到数字图像的失真变化。
二、数字图象压缩的具体算法研究
关于数字图像的压缩算法一般分为两种:一种是有损压缩;另一种是无损压缩。有损压缩一般采用变换编码方法,对数字图像中那些人类感知不到或者感知度较低的成分进行压缩[5]。有损压缩从名称可以看出这种压缩方法会使数字图像损失一定的信息,并且损失的这部分信息无法还原,但是损失信息的数字图像并不会对人们理解图像产生太大的影响。例如JPEG格式的二进制图片,这种格式就是采用了有损压缩。有损压缩的方法主要有基于小波变换的方法、基于离散余弦变换的变换编码方法等。离散余弦变化方法会去除数字图像中人眼不敏感的数据信息,进而提高图像的压缩比率。无损压缩主要是利用数字图像中的数据统计冗余进行压缩,这种压缩方法可以在解压缩后恢复原始数据,使得数字图像不会失真[6]。不难发现,无损压缩的压缩比率受到冗余度的影响。PNG是无损数据压缩的图片数据格式,这种格式的数字图像一般采用LZ77派生的无损压缩算法。LZ77压缩算法采用的是基于窗口的词典方式,该压缩算法将看到的数据信息作为词典,词典中会存在一个指针,该指针会会代替数据信息中的短语以实现数据压缩。该压缩算法的主要数据结构是一个固定大小的窗口,而这个窗口又会被划分成两个不同的部分,其中一部分是由最近被编码的正文构成的字典,窗口的另一部分是尚未编码的字符构成的缓冲区。该算法的核心是在文本构成的词典中寻找超前缓冲区内输入的数据串的最长数据匹配串。
(一)有损数据压缩
人眼对图像颜色的感知程度是有损压缩技术的基本依据,有损压缩能够有效减少数字图像的大小,但是有损压缩是一种破坏性压缩,并且这种破坏性不具备可复原性。有损压缩的具体做法是保持数字图像颜色的逐渐变化,将图像中突然变化的颜色去除。据科学研究表明,人脑会利用与周围最相近的颜色来填充图像中缺失的颜色。在有损压缩过程中,数字图像的信息会损失一部分,因此,数字图像会产生一定的失真,但是,这却大大提高了数字图像的压缩比率,经过有损压缩后得到的数字图像跟原图大部分相似。采用有损压缩需要根据数字图像的使用场合而定。通常情况下,流媒体、视频社交、电话会议、互联网传输等场合下使用的数字图像都会经过有损压缩。需要注意的是采用有损压缩时应该注意控制压缩比率,压缩比率太大会使图像信息过分失真,影响到对图像的观察和理解。色彩空间、色度抽样、分形压缩、变换编码等方法是有损压缩经常采用的具体方法。
(二)无损数据压缩
通过上面的论述我们已经知道无损数据压缩是采用数据的统计冗余进行压缩,经过无损数据压缩后,数字图像的数据信息不会受到损失,被压缩后的数据经过解压缩操作可以恢复原始数据。
无损数据压缩的基本原理是对于数字图像中相同颜色的只保存一次。因此,无损压缩要首先对数字图像进行扫描,确定哪些区域的颜色是相同的,哪些区域的颜色是不同的。比如,数字图像中有一片树叶,无损压缩软件会记录下来这片树叶的数据起始点和终止点,然后会这个数据区间的颜色进行识别,将相同颜色的数据只保留一次,多余的进行去除,注意在这个过程中,颜色相似的数据并不会被去除。可见无损压缩的比率取决于数字图像中的相同颜色的重复率,重复率越高,无损压缩的比率也就越高。需要特别指出的是无损压缩可以有效减少数字图像的磁盘存储空间,但是,并不会减少图像在内存中的信息量,因为,将数字图像的二进制数据读取到内存时,会将压缩的信息重新填充到数字图像中。无损压缩在当前的很多领域都受到的广泛的应用,比如计算机程序、移动端的手机APP、医疗图像、指纹图像、工程制图等。无损压缩的具体方法主要有:游程编码、Huffman编码、LZW编码、熵编码、Shannon-Fano编码等。虽然无损压缩可以完全恢复压缩的数据信息,也正是基于这个原因,无损压缩的压缩比并不高,造成无损压缩后的数字图像的空间占用量依然较大,这是无损压缩的一个难以取舍的关键点。
(三)形状自适应离散小波变换
零树熵编码的扩展和SA-DWT编码方式以及嵌入式小波编码共同组成了SA-DWT编码。
在形状自适应离散小波变化中通过SA-DWT之后的系数个数,与原来任意形状的可视化对象的像素个数是完全相同的;嵌入式小波编码则是采用了嵌入式编码和渐进式量化编码,这种编码方式打破了常规,其编码复杂度较低。嵌入式小波编码采用了较低复杂度的编码算法完成了高效的压缩编码。
(四)Egger方法
Egger方法提出了一个应用于任意形状对象的小波变换方案。具体说来,该方法是利用了小波变换的局域特性,在需要压缩的数字图像中,将可视对象的行像素推到边界框的右侧边界相平齐的位置处,然后对每一行的有用像素实施小波变换,然后再接下来的工作中,将另一方向再实施小波变换。这种变换方法存在一个问题,使用Egger方法,很可能引起数字图像重要的高频部分同边界部分合并,不能保证分布系数彼此之间有正确的相同相位,以及可能引起第二个方向小波分解的不连续性等问题。
(五)形状自适应DCT算法
离散余弦变化(DCT)是数字图像压缩中的重要算法之一,形状自适应DCT算法的设计原理是通过把一个任意形状的可视对象划分为两个8×8的图像块,然后对每一个图像块进行DCT变换,这种变换类似于形状自适应的Gilge DCT变换,但是SA-DCT变换的复杂度要比Gilge DCT变换复杂度低的多[6]。SA-DCT会对数字图像的各列像素进行一维DCT变换,之后,SA-DCT会对数据的下标进行统计,将下标相同的DCT系数集中到一起,集中起来之后会再作一个一维DCT,最后会得到一个DCT系数位于NxN大小的图像块,这样的图像块个数并不会发生变化,其中直流系数在图像块的左上角,在图像解码时,会根据随传过来的形状信息进行数字图像的恢复。但是,SA-DCT并不是没有缺点,SA-DCT,会把像素推到一个正方形边框的一个侧边相平齐。因此,数字图像的一些空域相关性可能因此而导致丢失,倘若再进行数字图像的行列DCT变换,就可能使数字图像的失真较大。
三、结束语
综上所述,数字图像技术在如今的互联网大发展的背景下,被广泛应用在网络互联、媒体传播、医疗图像等各个方面。数字图像压缩算法对于数字图像技术在多媒体领域的应用和发展有着决定性的作用。优秀的数字图像压缩算法能够极大的减少编码的复杂程度,同时还能够大大增加图像的压缩比率,这对于数字图像在网络间的传输,在多媒体领域的应用发展都将产生巨大的推动作用。近年来,不断有创新性的理论技术出现并发展完善,随着这些理论技术研究的不断深入,未来数字图像处理技术的发展前景将会越发光明。