大于源图像的动画 GIF
Animated GIF larger than source images
我正在使用 imagemagick 从约 60 张 JPG 640x427 像素的照片中创建动画 GIF。 JPG 的总大小约为 4MB。
但是,输出的 GIF 约为 12MB。 GIF 大得多是有原因的吗?我可以想象得到 ~4MB 的 GIF 大小吗?
我使用的命令是:
convert -channel RGB # no improvement in size
-delay 2x10 \
-size 640 \
-loop 0 \
-dispose Background # no improvement in size
-layers Optimize # about 2MB improvement
portrait/*.jpg portrait.gif
使用gifsicle
似乎也没有改善。
JPG 是有损压缩。
GIF 是无损压缩。
更好的比较方法是先将所有源图像转换为 GIF,然后将它们合并..
GIF 压缩的第一个 google 是 http://ezgif.com/optimize,它声称有损 GIF 压缩,可能对你有用,但我没有提供任何保证,因为我没有尝试过。
JPEG 通过(有损)变换实现压缩,其中 16x16 / 8x8 像素块被转换为频率表示,然后进行量化。而不是 selecting 例如每个分量 red/green/blue 的 256 级(即 8 位),JPEG 可以忽略一些频率分量,或者仅使用 1 或 2 位来表示它们。
另一方面,GIF 通过识别 调色板图像 (最多 256 个条目)中的重复模式来工作,这些模式恰好出现在以前 encoded/decoded 流。由于 JPEG 压缩,以及通常由 JPEG(自然全彩)编码的图像源,(长)完全匹配的概率非常低。
60张大小为640x427的RGB图片约1600万像素。要在 4 MB 中表示那么多,需要每个像素压缩 2 位。要用 GIF 实现这一点需要一个非常有损的算法,即 select(矢量)真彩色像素的量化不是目标 GIF 调色板中最接近的像素,但也基于这样一个事实:代码字字典有多好这个特殊的 selection 会做。字典构建缓慢,要达到 2 bits/pixel,解码码字的平均长度必须映射到邻近区域的 5.5 个匹配像素。
相比之下,imagemagick 已经能够将 1600 万像素(每个 select 来自 256 个元素的调色板)压缩到 75%!
我正在使用 imagemagick 从约 60 张 JPG 640x427 像素的照片中创建动画 GIF。 JPG 的总大小约为 4MB。
但是,输出的 GIF 约为 12MB。 GIF 大得多是有原因的吗?我可以想象得到 ~4MB 的 GIF 大小吗?
我使用的命令是:
convert -channel RGB # no improvement in size
-delay 2x10 \
-size 640 \
-loop 0 \
-dispose Background # no improvement in size
-layers Optimize # about 2MB improvement
portrait/*.jpg portrait.gif
使用gifsicle
似乎也没有改善。
JPG 是有损压缩。 GIF 是无损压缩。
更好的比较方法是先将所有源图像转换为 GIF,然后将它们合并..
GIF 压缩的第一个 google 是 http://ezgif.com/optimize,它声称有损 GIF 压缩,可能对你有用,但我没有提供任何保证,因为我没有尝试过。
JPEG 通过(有损)变换实现压缩,其中 16x16 / 8x8 像素块被转换为频率表示,然后进行量化。而不是 selecting 例如每个分量 red/green/blue 的 256 级(即 8 位),JPEG 可以忽略一些频率分量,或者仅使用 1 或 2 位来表示它们。
另一方面,GIF 通过识别 调色板图像 (最多 256 个条目)中的重复模式来工作,这些模式恰好出现在以前 encoded/decoded 流。由于 JPEG 压缩,以及通常由 JPEG(自然全彩)编码的图像源,(长)完全匹配的概率非常低。
60张大小为640x427的RGB图片约1600万像素。要在 4 MB 中表示那么多,需要每个像素压缩 2 位。要用 GIF 实现这一点需要一个非常有损的算法,即 select(矢量)真彩色像素的量化不是目标 GIF 调色板中最接近的像素,但也基于这样一个事实:代码字字典有多好这个特殊的 selection 会做。字典构建缓慢,要达到 2 bits/pixel,解码码字的平均长度必须映射到邻近区域的 5.5 个匹配像素。
相比之下,imagemagick 已经能够将 1600 万像素(每个 select 来自 256 个元素的调色板)压缩到 75%!