【问题标题】:Why is GIF image size more than the sum of individual frame size?为什么 GIF 图像大小大于单个帧大小的总和?
【发布时间】:2016-01-19 21:24:33
【问题描述】:

我只是尝试使用一些在线服务将几个 JPEG 转换为 GIF 图像。对于 1.8 MB 随机选择的 JPEG 集合,生成的 GIF 大小约为 3.8 MB(未启用任何额外压缩)。

我了解 GIF 是无损压缩。这就是为什么我预计结果输出约为 1.8 MB(输入大小)。有人可以帮我理解这个额外的空间发生了什么吗?

另外,有没有更好的方法来捆绑一组彼此相似的图像(用于传输)?

【问题讨论】:

  • 请贴出代码和图片。
  • @ray 我使用了一些在线服务。我随机尝试了网络上的多张图片,所有图片和所有在线服务都出现了同样的问题。
  • 你说的是“生成的 PNG”,但我猜你的意思是“生成的 GIF”?
  • @jjmontes 谢谢,我修好了

标签: jpeg gif animated-gif


【解决方案1】:

JPEG 是有损压缩文件,但它仍然是压缩的。当它解压缩成原始像素数据然后重新压缩成 GIF 时,得到更大的尺寸是合乎逻辑的

GIF 作为照片的压缩方法较差,它主要适用于平面彩色绘图。如果我没记错的话,它使用 RLE [运行长度编码],也就是说,您在压缩文件中获得表示“重复此值 N 次”的条目,因此您需要在水平序列中有许多相同颜色的像素才能获得良好的压缩.

如果您有彼此相似的图像,也许您应该考虑将它们打包为视频流的连续帧(越相似应该越接近)并使用一些无损压缩器(或者甚至冒险使用有损压缩器)对于视频,但也许这有点过头了。

【讨论】:

  • 谢谢。我一直在想 GIF 正在添加某种元数据。你的解释更有意义。由于我们在 GIF 中打包未压缩的数据,我还计划在尝试有损视频方法之前尝试对输出 GIF 进行有损压缩(我希望它应该与 JPEG 一样工作)
  • 如果您尝试将视频作为类似图像收集容器的方法在帧之间进行压缩,请不要使用 MJPEG 压缩器,而是尝试 H.264 或 WebM 等。MJPEG 会单独压缩每一帧,所以除非您只是想用它来将它们打包在一起(也可以使用 ZIP/RAR/etc. 设置为无压缩或其他多 blob 容器)它无助于根据图像相似性获得额外的压缩。 “...数字视频序列的每个视频帧或隔行扫描场都被单独压缩为 JPEG 图像。” en.wikipedia.org/wiki/Motion_JPEG
  • 也看看你是否能找到任何图像的 DIFF 算法,尤其是。如果它们的大小相同,我可以想象一种算法可以使用八叉树细分 (en.wikipedia.org/wiki/Octree) 并比较它们,从一个图像到另一个图像生成适当的 DIFFgram。在这种情况下,诀窍是通过相似度(降低产生的 DIFFgram 大小)对它们进行排序,这在蛮力方法中意味着首先对所有对进行 DIFF。请注意,使用 DIFFgrams 进行这种压缩意味着如果第一部分在传输中被破坏,则整个序列将无法恢复。只是头脑风暴......
【解决方案2】:

如果您有彩色图像,则乘以宽 x 高 x 3。这是未压缩图像数据的正常大小。

GIF 和 JPEG 是压缩该数据的两种不同方法。 GIF 使用 LZW 压缩方法。在该方法中,编码器创建先前遇到的数据序列的字典。编码器编写表示序列而不是实际数据的代码。如果编码找不到这样的序列,这实际上会导致文件大于实际图像数据。

这些 GIF 序列更有可能出现在使用相同颜色的绘图中,而不是出现在颜色微妙变化的照片图像中。

JPEG 使用一系列压缩步骤。它们的缺点是您可能无法准确地输出您输入的内容。其中第一个是从 RGB 到 YCbCr 的转换。这些色彩空间之间没有一对一的映射,因此可以在那里进行修改。

接下来是二次采样。选择 YCbCr 的原因是您可以以比 Y 分量更低的速率对 Cb 和 Cr 分量进行采样,并且仍然可以获得原始图像的良好表示。如果您对 4 Cb 和 4 Cr 执行 1 Y,则可以将要压缩的数据量减少一半。

接下来是离散余弦变换。这是对整数执行的实数计算。这会产生舍入误差。

接下来是量化。在此步骤中,来自 DCT 的不太重要的值被丢弃(要压缩的数据更少)。它还引入了整数除法的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 2019-09-04
    • 2018-06-21
    • 2013-02-09
    相关资源
    最近更新 更多