3

我们样本试卷中的完整问题:

通过突出显示算法的相关部分来解释为什么 GIF 格式不是用于表示具有自然内容的图像的最紧凑格式。

我知道使用 GIF 对于自然图像来说不是很好,因为它仅限于 256 种颜色,但为什么它不能提供足够紧凑的文件呢?如果有的话,你会认为更少的颜色意味着更小的文件大小。

在我们的笔记中,我们被告知使用的 LZW 压缩比 Huffman 更好,原因有几个(包括它只通过一次的事实)。霍夫曼编码/压缩会导致文件更小吗?

根据 Wikipedia,PNG 格式提供比 GIF 更好的压缩。LZW 很可能是罪魁祸首,但为什么呢?哪些“算法部分”支持它“不是表示图像的最紧凑格式”的论点,尤其是对于自然图像?

4

1 回答 1

8

我不确定 LZW 编码的细节,但我相信它通过构建公共位序列字典(每次出现时都必须相同)来压缩数据。这意味着线条图等压缩得非常好,因为它们包含许多“纯”颜色区域(即相同的像素颜色重复相同,连续多次。)如果您有一个 100 个白色像素的区域,您可以通过说它是“连续100 个相同的白色像素”来压缩它。

“自然图像”,例如数码相机产生的图像,不包含纯色区域。一张蓝色墙壁的照片实际上会包含许多不同深浅的蓝色——相机噪点至少会使每个像素与其相邻像素略有不同。LZW 将无法找到许多重复序列,因此无法对数据进行太多压缩。


JPEG 比 GIF 实现了更小的文件大小,因为它不害怕从图片中丢失一点信息——它是有损的。诀窍在于,JPG 的设计目的是只丢失人类无论如何都不擅长看到的信息。(见注 1。)我们擅长在图片的“平滑”区域看到伪影,但不擅长在图像中的锐利过渡附近看到伪影。

它也是一种完全不同的压缩算法,基于将图像编码为二维频域表示(数字信号处理类型的东西),而不是试图找到重复的比特子序列。


注 1:JPEG 是一种“感知”压缩方法。它发挥了人类视觉的优势和劣势——“平滑”颜色区域的小错误很容易看到,但图像“繁忙”区域的小错误很容易在细节中被遗漏。

MP3 音频的工作原理相同。它丢弃了我们听不到的信息;例如,如果有一个响亮的声音,然后是一个安静的声音,我们通常听不到安静的声音 - 我们的耳朵已经被大声的声音淹没了,并且不会听到它之后的安静声音。MP3 编码抛弃了安静的声音,专注于正确处理响亮的声音。


笔记2:

我刚刚意识到我实际上并没有解决PNG。

PNG 比 GIF 实现了更好的压缩,因为它在无损压缩之前应用了预过滤步骤(即DEFLATE,大致相当于 LZW。)请参阅Wikipedia 对 PNG 过滤的解释

这个想法是相邻像素可能彼此略有不同(由于噪声),但它们的值大致相同。

假设我们有数据:

132 133 134 135 136 137 138

LZW 看着这个并说“这些值都是不同的;我无法压缩它。”

PNG根据值之间的差异来看待这一点:

132 +1 +1 +1 +1 +1 +1 +1

即第一个数据元素为132,后面的元素相加得到1这种表示用 LZW 压缩得很好。

于 2012-05-19T16:24:10.467 回答