论文部分内容阅读
随着数字技术和信息产业的发展,多媒体技术已经广泛应用在很多不同的领域。多媒体信息包括了文本、数据、声音、动画、图像以及视频等多种多媒体信息。经过数字化处理后其数据量非常大,如果不进行处理,现有的网络带宽和存储器的存储容量将限制多媒体产品的发展。因此,无论传输或存储都需要对数据进行有效的压缩。由于图像数据作为重要的信息传输载体,因此研究高效的图像数据压缩编码方法,在应用领域中的作用是至关重要的,图像压缩已经成为多媒体及通讯领域中关键的技术之一。图像压缩可以在保证一定图像质量的前提下,最大限度地减少存储设备中存储的数据量以及通过网络传输数据的时间。图像数据之所以能够被压缩有以下几方面原因。首先,原始图像数据是高度相关的,存在很大的冗余。数据冗余造成比特数浪费,消除这些冗余可以节约码字,也就是达到了数据压缩的目的。大多数图像内相邻像素之间有较大的相关性,这称为空间冗余。序列图像前后帧内相邻之间有较大的相关性,这称为时间冗余。通过消除这些冗余信息,减少数据传输比特数,即可达到图像压缩的目的。理论上,图像压缩方法需要去除冗余或不相关的信息,并有效地编码剩余的信息。但是,通常需要去除非冗余信息以获得必要的压缩。最后,寻找能够有效提取和表示重要信息的方法。图像压缩既要考虑压缩程度,即压缩比,也要考虑压缩后的图像质量。根据压缩过程中有无信息损失,图像压缩基本上被分为无损压缩和有损压缩两种。无损压缩要求解压缩以后的数据和原始数据完全一致,解压后得到的数据是原数据的复制,是可逆的压缩方式。有损压缩解压以后的数据和原始数据不完全一致,是不可逆压缩方式。但有损压缩还原后,并不影响信息的表达。为了实现高质量的图像压缩,很多不同的图像压缩方法已经被提出,其中之一就是JPEG图像压缩标准。JPEG是联合图像专家组(Joint Picture Expert Group)的英文缩写,是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。它也通过不同的方法和不同的算法进行压缩和解码。为了满足不同应用的需求,JPEG标准包括两种基本的压缩方法,一是基于DCT的有损压缩算法,另一种是基于预测方法的无损压缩算法。根据输出图像的重要性和质量可以使用不同的JPEG图像压缩的方法。如果预期图像压缩的结果质量较高而且没有任何可靠性损失,则可以使用无损压缩方法。该方法用于需要高度准确性的情况,并且逻辑上不会损坏信息。相反,有损压缩会造成一定的信息损失,从压缩后的数据无法完全恢复到原始图像,但是不影响使用。本文的研究目的在于提高有损JPEG图像压缩的质量。在JPEG有损图像压缩算法中,首先原始图像被分成8×8的小块,这些小块在整个压缩过程中都是单独被处理的。然后利用2D离散余弦变换(2D DCT)对每一图像块从空间幅度采样中提取空间频率信息。接下来对每个8×8子块的系数,根据量化系数表和不同的量化步长进行量化,这一过程正是造成了图像压缩后失真的主要原因。对量化的数据进行编码输出比特流,即完成了压缩,最后通过解码,反量化,反离散余弦变换(IDCT)恢复出原始的图像数据。然而传统JPEG压缩过程中并没有充分考虑到人眼视觉的冗余,导致压缩后的图像质量得不到有效的保障,本文将针对这一问题对基本的JPEG压缩算法进行改进,结合人眼视觉特性,提高图像压缩质量。人类视觉系统(HVS)是人类获得外部信息的关键手段。HVS能够采集外部的一些初级视觉信号,如纹理、颜色、亮度、空间频率等。大量的数字信息在压缩、传输、改进、重新设定、合成、存储、打印、评估和认证等各种处理之后,将呈现给HVS。图像压缩和编码的目标应该是在一定等级的感知质量下,实现信号表示的最低比特率,或者是在某一固定的比特率下实现最高的感知质量。由于人眼是视觉信息的最终受体,所以揭示人类视觉系统(HVS)的可见性的“恰可察失真”(Just Noticeable Difference,JND)对图像和视频编码非常重要。JND即最小可觉察失真,是指由于人类视觉系统存在各种视觉屏蔽效应,使得人眼只能觉察到超过某一阈值的信号变化,该阈值即为JND的值。JND方法对消除图像和视频压缩中的视觉感知冗余起着重要作用,该技术已经广泛应用于视觉信号压缩、水印等方面。JND模型是一种基于心理学和生理学的模型,它能有效的表征图像中的人类视觉冗余。大多数图像是由人类视觉系统处理的,因此,为了去除视觉冗余,我们提出将JPEG图像压缩与JND结合起来,在减小图像存储大小的同时保证没有损失很多有用的信息,这将更有效的利用存储容量和网络带宽。在过去的十年中,已经有很多计算JND的模型被提出,主要分为频域JND模型和像素域JND模型(空域JND模型)。频域JND模型是根据像素值在变换域的特性而建立的模型,通常的变换域包括小波域和DCT域,时空对比敏感度、背景亮度自适应和纹理掩盖等是其重要的决定因素。对于像素域JND模型,亮度自适应和空间视觉掩盖是重要的影响因素。考虑到直接从像素域计算JND避免了子带的变换,更适合于视觉质量估计和图像改进等应用,因此本文采用了像素域的JND模型来计算JND阈值。为了实现更好的感知质量和更有效的图像压缩,我们提出了结合JND的JPEG有损图像压缩算法,更有效地提高了压缩性能和视觉重建质量。通过这种压缩方法,可以占用较小的空间存储图像,并以较少的时间传输图像。本文中具体介绍了 JPEG压缩和解压缩的过程,像素JND值的计算,以及如何将两者有效的结合等。无论是在JPEG压缩算法中还是其它的图像压缩算法,当图像像素值更接近某一值时,图像数据中存在的空间冗余就越多,那么该图像将更容易被压缩,我们将得到更好的压缩效果。例如,所有的黑色或白色图像更容易压缩,因为所有像素接近一个(相同)值,即黑色图像为0,白色图像为255。在本文的方法中,我们的主要目的是利用JND信息对JPEG图像压缩做出有效的改进,调节图像的像素值更接近0,以便后续量化过程中达到更有效的数据压缩。实验具体的过程如下,首先,我们计算了每个8×8子块的平均JND值,然后将图像的像素值归一化到[-128,127],通过其相应的JND均值调整每个像素的值,即将像素值在[0,127]范围内的点与其对应的JND均值相减,对于像素值在[-128,0]的点,则加上其对应的JND均值,使其尽可能的接近0,这将为后续的量化过程提供更多的0值。最后对新的像素值取整,进行DCT变换和其他JPEG压缩编码步骤。本实验平台选用的是“MATLABR2015a”。MATLAB是一个常用的图像处理软件,它包含了功能强大的模块集和工具箱,具有用户友好的编程界面,非常有利于完成我们的实验。本研究所采用数据集的图像是从不同的网站收集的,并为实验测试选择了合适的图像。对于每张测试图像,我们采用JPEG图像压缩和基于JND的JPEG压缩方法分别进行了实验。通过调整量化步长,图像可以被压缩到不同的码率,实现不同的压缩质量。对于十张不同的测试图像,我们比较了相同量化步长下的压缩质量。虽然视觉上比较难看出JPEG压缩和所提出方法的结果之间的差异,但是实验数据表明,我们所提出的结合JND的JPEG压缩算法压缩后的文件更小,也就是说在较小数据量的情况下实现了高质量的压缩。对于客观质量评价,我们还比较了灰度图像的比特率和PSNR。实验结果表明所提出的方法,在客观编码质量测量(PSNR)方面平均提高了 0.11 dB,并且在测试的10幅图像上平均比特率降低了 0.05bpp,这充分证明了本文所提方法的有效性。另外,对于主观质量评价,我们将不同测试图像的原始图像,JPEG压缩图像,以及结合JND的JPEG压缩图像进行对比,选择不同的测试人员进行主观质量评分,根据最终的统计结果,在相同码率下所提出的方法可以获取更好的视觉重建质量。实验结果表明,由于考虑了人类视觉系统的特性,本文所提出的方法有效的提高了图像压缩视觉质量。