有损和无损图像压缩

我们在压缩一个图像时,我们要么想暂时把它的体积变小 (通过电子邮件发送工作文件时),要么想永久性地把它的体积变小 (在互联网上展示图像时)。

无损 压缩技术是为了 暂时且可逆地 减少信息量而开发的。正如名字所述,它们在压缩时不会损失信息。我们对文字的缩写就是一种无损压缩技术的例子。人们都知道“开源”展开成“开放源代码”,所以你可以在文章里用两个字的“开源”取代五个字的“开放源代码”。

在图像格式中,类似上面例子的压缩方式是通过“索引颜色”进行的。我们先列出图像的所有颜色,然后为每种颜色指定一个编号。我们在描述像素的颜色时只需给出颜色编号,而无需反复描述颜色的具体数值。

有损 压缩是用来 永久且不可逆地 减少图像体积的。这对于网站上展示的成品图像而言非常有用,因为这些输出到网站的图像不是用来再次编辑的,所以我们大可以使用心理学和统计学手段去有选择性地抛弃一部分对观感影响不大的图像数据。

JPEG 的基本处理之一就是基于色品数据的二次取样,它会把图像数据拆分成一条明度通道和两条色品通道 (红绿对比和蓝黄对比),然后只对两条色品通道的数据进行压缩。这是因为人类对明度变化的敏感程度要远高于对色相、饱和度变化的敏感程度。

JPEG 和其他有损格式还会使用余弦波来描述图像的明暗反差,它们也因此 擅长描述颜色渐变,却不擅长描述锐利的颜色反差

而无损图像压缩则与此相反,它们 擅长描述颜色数目较少的高反差图像,但却不擅长压缩颜色渐变较多的图像

有损和无损格式的另一个重要区别是,有损格式的每次编码都会劣化图像品质,而无损格式能保证每次编码前后的图像品质一致。如果你在 Krita 里面打开一张 JPEG 图像,进行少许编辑然后进行保存,如此反复操作几次,你会发现图像的品质会越来越差。这是有损图像压缩的一个基本特性,因此我们应当使用无损的工作文件格式来编辑图像。

参见

如果你想学习各种压缩技术的特性,可以访问 维基百科的图像压缩页面 。这个页面比较技术化,但非常有用。