Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 为什么GIF格式不是自然图像最紧凑的格式?_Image_Algorithm_Compression_Gif - Fatal编程技术网

Image 为什么GIF格式不是自然图像最紧凑的格式?

Image 为什么GIF格式不是自然图像最紧凑的格式?,image,algorithm,compression,gif,Image,Algorithm,Compression,Gif,我们试卷样本中的完整问题: 通过突出显示算法的相关部分,解释为什么GIF格式不是表示具有自然内容的图像的最紧凑格式 我知道使用GIF对自然图像来说不是很好,因为它被限制为256色,但是为什么它不能提供一个足够紧凑的文件呢?如果有什么区别的话,你会认为颜色越少意味着文件越小 在我们的笔记中,我们被告知所使用的LZW压缩比Huffman更好,原因有几个(包括它只进行一次压缩)。哈夫曼编码/压缩会导致更小的文件吗 ,PNG格式提供了比GIF更好的压缩。LZW很可能是罪魁祸首,但为什么?算法的哪些“部分

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

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

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

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


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

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

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


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

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


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

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


注2:

我刚刚意识到我还没有真正解决PNG问题

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

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

假设我们有数据:

132 133 134 135 136 137 138
LZW看着这个,说“这些值都不同,我不能压缩它。”

PNG从值之间的差异来看:

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

也就是说,第一个数据元素是
132
,并且通过添加
1
获得以下元素。这种表示法在LZW中的压缩效果相当好。

如果要比较8位GIF和24位PNG,那么这很不公平,是吗?谢谢。你在注2中所说的“此表示法与LZW压缩得相当好”是什么意思?你是说一起吗?有趣的是,论文的下一个问题是关于JPG如何利用人类视觉系统的。@AdamLynch:这种技术被称为增量编码。(请参阅:增量脉冲编码调制。)其想法是,可能值的范围可能是
0-255
(8位),但信号可能只是缓慢变化。如果相邻值之间的最大差值仅为
0-15
,则可以将差值编码为每个值4位。当我说“这压缩得更好”时,我的意思是增量编码更有效,因此LZW(或DEFLATE)必须压缩的位更少。