If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

有损压缩

有损 压缩算法是通过丢弃不太重要的信息来减小文件大小的技术。
没有人喜欢丢失信息,但是某些类型的文件太大,以至于没有足够的空间来保存所有原始数据,而且我们首先不需要所有这些数据。这中技术通常用于照片、视频和录音的情况;那些试图捕捉我们生活的世界的美丽复杂性的文件。
计算机可以在一张照片中捕获难以置信的详细信息——但是,这些细节有多少实际上能够被人类接收?正如它证明的那样,我们可以删除许多细节。有损压缩算法都是在不影响人类观感的情况下删除(非常多)细节信息的有效方法。
例如,这是一只呆在帽子里的小猫:
绿眼的灰猫,在灰色椅上坐在蓝帽子上
图像源:admiller, Flickr
这是相同的照片,但压缩到 一半大小
你能看出区别吗?随便看一眼的情况下,我不能——甚至我作出更多的努力也不能,这个质量可以省下一半的磁盘空间。
让我们探索一些可变压缩算法删除详细信息以减少文件大小的聪明方法。

图像:保持亮度,均衡颜色

人眼分辨亮度差异比颜色差异更灵敏。压缩算法可以通过保持亮度同时减少颜色信息的数量,从而利用这一事实,这是一个称为色度抽样的进程。
让我们在帽子猫的照片上试一次。第一步是将亮度信息与色度(颜色)分离。
这是照片的仅亮度版本:
这是仅色度版本:
这张照片很有趣,因为猫和椅子都相当无色-帽子的蓝色在色度版本中非常突出。(也许我们都应该养黑白猫,以保存磁盘空间?唔...)
让我们聚焦于左眼中一个8x2的块的色度:
每个像素的色素值略有不同,因此总共有16个值。我们可以平均每个 2x2 块并设置其颜色为平均色度值,这样总共只有 4 个值:
结果看来与原始相似,但只有原来颜色信息的四分之一。如果我们将它应用到整个图像,我们就可以节省大量空间,而不影响人们的感受。
色度抽样是许多处理图像的压缩算法中使用的过程,包括流行的文件格式 JPEG 和 MPEG。
这些算法还使用一个称为离散余弦变换(discrete cosine transform,DCT)的过程来简化亮度层的细节。如果您想学习更多,这里是很好的途径

音频:丢掉不可闻的声音

人耳对其可以听到的内容有局限性。音频压缩算法可以分析音频文件,并放弃听力能力之外的声音,这是一个称为“洞察音频编码(perceptual audio coding,PAC)”的过程。
我们耳朵的一个有趣的限制被称为时序屏蔽,是指突然的声音可能会在发生之后的一段时间内掩饰(隐藏)其他声音,甚至在之前一点也是!
例如,想象一首有响亮鼓点的歌。鼓声会屏蔽它发生之前大约20毫秒,以及鼓声之后多达200毫秒的声音。此图形显示屏蔽效果:
一个以毫秒为x轴时间单位,以分贝为y轴音强单位的图形。一个鼓拍发生在140-200毫秒处。前屏蔽效果是一个从100-140毫升到击打开始的陡峭曲线。后屏蔽效果是一种较平缓的曲线,在200-350毫秒。
灰色带状区域显示前屏蔽和后屏蔽的时间段。
计算机在录制的音频文件中能看到这些会被屏蔽的声音,但我们的耳朵不能听到这些声音,因此音频压缩算法可以安全地丢弃这些信息,或者用较少比特(bits)来代表它。
压缩算法也可以使用我们自然听力过程的其他限制,如高频率限制和同声屏蔽。如果你想要学习更多,您可以研究心理声学等有趣的领域。

压缩质量

当我们使用无损压缩算法,我们总是可以重建100%的原始数据。使用有损压缩算法,我们会失去原始数据的一部分; 也许 5%,也许 10%,也许 70%。 我们会丢失多少?我们可以根据我们的数据使用案例决定。
考虑一下前面的猫照片。如果计划在一个关于猫时尚的演讲中使用该照片,然后投影在大屏幕上,我们可能就会希望保持尽可能多的细节。在这种情况下,我们可以使用一种无损压缩算法(例如 PNG),或者我们可以使用有损压缩算法(例如JPJP)并指定高质量(例如 100%)。照片编辑应用程序往往给您提供这些选项。
Adobe Photoshop的“导出”菜单中的“文件设置”屏幕截图。 对于“格式”选项,选择“JPG”。 对于“质量”选项,滑块设置为“100%”。
在保持100%质量的情况下,400x300的照片大小为169 KB:
一只绿眼灰猫坐在灰色椅子的上的蓝帽子里的照片。
如果我们想要在网站上使用该照片,而且我们网站的目标用户在另一个国家使用低带宽网络呢?文件越小,下载速度越快。我们希望他们看到照片,但是,对于这个使用情况,高质量并没有下载速度重要。我们肯定希望使用一个有损压缩算法,并且我们可以在导出时指定一个较低的质量。算法可以调整其内部路径以简化细节。
Adobe Photoshop的“导出”菜单中的“文件设置”屏幕截图。 对于“格式”选项,选择“JPG”。 对于“质量”选项,滑块设置为“60%”。
质量为60%时,照片大小为48KB:
一只绿眼灰猫坐在灰色椅子的上的蓝帽子里的照片。
这似乎仍然很好 - 肯定可以用于低带宽网站。我们可以压到多低?这里的照片质量为1%:
一只绿眼灰猫坐在灰色椅子的上的蓝帽子里的照片。
这肯定并不完美——眼睛的绿色几乎混到毛发之中,而且在帽子和毛发相接处也有痕迹,但它只有 12 KB,小于原来的大小的十分之一。我们可以丢失这么多信息,但仍然传递这么多细节。
我们还可以为转换音频和视频文件的有损压缩算法指定质量。 您可能已经在网上看到了低质量,高压缩率的视频。 由于视频太大了,因此最有可能被压缩。
每当我们使用有损压缩时,我们总是在质量和规模之间进行权衡,我们应该根据我们的具体使用情况找到最佳设置。

🙋🏽🙋🏻‍♀️🙋🏿‍♂️你对这个章节还有问题吗? 我们会尽力回答— 请在下面提问框里留言!

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.