我有一组 100 多张图像,它们只有几个像素不同。它们也没有很多不同的颜色。有没有办法利用这一点将它们压缩在一起?
3 回答
有一种算法:计算每个图像与某个参考图像的差异。有现成的应用程序吗?可能不是。一种方法是将图像组合成一个非常大的图像(通过交错或将它们彼此相邻放置)并使用 png。
如果这是出于存档目的并且您不需要随机访问它们,则可以将它们连接到 zip / tar(零压缩)并压缩整个内容。.bz2 算法(Burrows-Wheeler 变换)能够在比 png 的放气更大的窗口中搜索相似性。这是 10 MB 与 10 KB 的数量级。如果图像足够大,则窗口大小将限制两种算法中的压缩——这必须通过在每个图像之间进行交错或增量压缩来解决。
在一些视频压缩应用程序中经常使用增量压缩,例如需要无损压缩的屏幕捕获和虚拟桌面应用程序。
String them together as a movie and use video compression. That is exactly what video compression does.
没有什么现成的。如果您想要无损压缩,您可以只存储参考图像和增量图像(像素级别的图像差异),每个图像都使用 PNG 编码。但是您必须自己编写增量转换。
您还可以利用MNG格式的增量压缩模式,这是 PNG 动画的扩展(您的每个图像都是一个动画帧)。但该格式并未得到广泛支持。
您也可以采用相同的方法(一个图像 = 一个视频帧)并使用任何标准视频格式 (MPEG),但这将是有损的。