本文主要介绍了有损压缩与无损压缩的一些区别,与一些在图像压缩过程中常见的压缩伪影以及它们形成的原因,希望能够帮助到一些刚踏入计算机视觉领域或者图像压缩领域的同学。
1.有损压缩与无损压缩
在信息技术中,有损压缩或者不可逆压缩是一类数据编码方法,主要使用不精确的近似值和部分数据的舍弃来压缩数据信息的大小,这些技术主要用于减少数据的大小,从而减少存储、处理与传输这些数据产生的花费。
下面猫的图片(左边是高质量的图像,右边是粗糙的图像)展示了高度相似的图像是如何随着它更多的细节移除逐渐生成一个粗糙的图像的过程。
有损压缩刚好与无损压缩(Lossless compression)(可逆图像压缩)正好相反,无损压缩图像不会降级数据。并且使用无损压缩减少的数据量要比有损压缩技术多的多。也就是说无损压缩可以让数据变得更小,同时相应的也会降低数据质量,而无损压缩是在不降低数据质量的基础上尽可能的压缩数据信息。即使在用户可以察觉到的情况下,也可能会进一步的减少数据量(比如,在实时通信中,为了减少传输的时间,或者减少存储需求。)
使用最广泛的有损压缩算法是 discrete cosine transform(DCT),是 Nasir Ahmeh, T.Natarajan 和 K.R.Rao等人在1974年提出的。最近,一个新的正弦双曲变换函数族在有损压缩领域被提出,具有与 DCT 相当的特性与性能。
有损压缩最常用于压缩多媒体数据(音频、视频与图像),特别是在流媒体与网络通话的应用中。相比之下,无损压缩通常是文本和数据文件必须的,比如说银行记录和文章。
2. Compression Artifacts(压缩伪影)的产生
Compression artifacts(压缩伪影)主要是在有损图像压缩过程中而形成的,常见的有损压缩算法有JPEG、web、JPEG2000 等等,近期有损压缩算法的研究逐渐转向了深度学习领域,比如使用自编码器或者基于语义分割的卷积网络架构对图像进行有损压缩,而且基于深度学习取得了比传统压缩方法更好的效果。
常见的图像压缩算法是通过摒弃部分图像信息,来到达减少图像文件存储和传输的大小的。在这一过程中,如果压缩器在压缩图像中不能存储足够多的图像信息,那压缩后的图像的质量就会降低,又或者引入压缩伪影(compression artifact)。而产生这些压缩伪影的原因还有一点,就是压缩算法不够智能,无法区分主观重要性较低的失真与用户比较敏感的失真。
3. 常见的压缩伪影
(1) Ringing(振铃效应)
振铃效应的产生主要是由于高频分量的损失和高频分量精度的损失引起。就JPEG为例,JPEG在8x8的块上执行离散余弦变换(DCT),而 DCT 是与傅里叶相关的变换,同时因为高频分量与其精度的损失而出现振铃效应。
其主观效果如下所示:
(2) Posterized(色调分离)
当图像颜色的位深度减少太多以至于产生视觉冲击时就会出现色调分离。之所以用色调分离这个词,是因为它对图像产生的影响类似于批量生产的海报中的颜色外观,而海报颜色主要是在打印过程中被数量有限的彩色墨水所限制。
造成色调分离的主要原因是因为将图像从一个色彩空间转移到另一个范围的色彩空间。
其主观效果如下所示(天空部分出现明显的色调分离):
(3)Blurring(模糊)
模糊效应又叫高斯模糊(Gaussian blur),是最常见的压缩伪影,通常时用来减少图像噪声以及降低细节层次的技术。从数学的角度来看,高斯模糊过程就是图像与正太分布做卷积。图像模糊的出现通常是因为高频空间频率的降低而产生,通常会伴随着物体边缘宽度的变化,主要出现在低通滤波过程和图像压缩过程中。
其主观效果如下所示:
(4)Block-artifacts(块伪影)
块伪影是分块转换的编码的原理造成的。在分块编码转换过程中,这些转换应用于像素块区域中,而且为了实现有损压缩,对每个块的变换系数进行量化,从而造成块之间的差异,进而形成了块效应。常见的基于块量化的算法就是DCT(离散余弦变换)。
其主观效果如下所示:
(5)Mosquito noise(蚊子噪音)
蚊子噪音通常是以随机混叠的形式,在靠近物体清晰的边缘出现,并且需要精细的检测电路才能将它消除。其主要出现在应用DCT(离散余弦变化)进行压缩的视频或者图像压缩架构中,当解码器通过对转换模型求逆运算来近似转换中所丢失的图像的数据时就会出现蚊子噪音。
其主观效果如下所示:
(6)checkerboard-like artifact(棋盘效应)
棋盘伪影跟块效应相似,但又有差异。棋盘伪影主要出现在通过卷积网络生成的图像中,往往在色彩强烈的地方最突出。
而造成这种现象的原因,是因为当我们使用反卷积层(Deconvolution layer)将一个低分辨率图像转换为高分辨率图像时(也可以大致理解为从像素中放大图像)。大体上,反卷积层是让卷积模型使用低分辨率图像中的一个点,去“描绘”高分辨率图像中的一个块。在这一过程中,当去卷积层在原始图像中做反卷积运算时,部分卷积区域会比其它地方放置更多“隐喻的绘画”发生“,进而在整个图像中出现“不均匀的重叠”,导致棋盘伪影(如本节图2所示)。这种现象,在卷积步长(stride)不能整除卷积核大小(kernel size)时更容易发生。
虽然在网络的原则上可以通过认真的学习权重来避免这种情况,但是实际上很难完全避免这种情况的发生。
其主观效果以及原理图,如下所示:
总结
感觉做一些基础性的研究要一步一个脚印,慢慢前行,不能有急功近利的想法。而且每天最好做好个人计划,然后日复一日的坚持下来,虽然这个过程会很辛苦,而且很乏味,但是我相信梦想就在这重复的努力与坚持中,总有一天我在这繁忙的生活中找到它。
希望所有追梦人,在追寻梦想的道路上不再孤独,梦想就在那里,只要不停的努力,终有一天你会与它并肩!
网友评论