Compression 如何有效地压缩数千个略有不同的JPEG文件?

Compression 如何有效地压缩数千个略有不同的JPEG文件?,compression,image-compression,Compression,Image Compression,我从相机中捕获了一个时间点序列,并将其保存为一组独立的.jpg文件 现在,这些文件的数量已经达到了数万个,而且大多数文件的差异都很小——有没有一种压缩方法可以利用这一事实 由于视频编解码器或多或少是针对压缩“略有不同的图像序列”而定制的,所以它们似乎是一个不错的选择。但是,由于文件已经被压缩,我不希望通过进一步将其编码为有损格式而丢失更多信息。因此,我尝试了提供无损压缩的视频格式,如h264或FFV1,但产生的文件大小比jpg文件的简单gzip大几倍-我假设这是因为在编码步骤中,jpg被转换为位

我从相机中捕获了一个时间点序列,并将其保存为一组独立的
.jpg
文件

现在,这些文件的数量已经达到了数万个,而且大多数文件的差异都很小——有没有一种压缩方法可以利用这一事实

由于视频编解码器或多或少是针对压缩“略有不同的图像序列”而定制的,所以它们似乎是一个不错的选择。但是,由于文件已经被压缩,我不希望通过进一步将其编码为有损格式而丢失更多信息。因此,我尝试了提供无损压缩的视频格式,如h264或FFV1,但产生的文件大小比
jpg
文件的简单
gzip
大几倍-我假设这是因为在编码步骤中,
jpg
被转换为位图,然后进行无损压缩,与我有一个满是未压缩位图的文件夹相比,这会产生更好的文件大小,但无法压缩原始的
jpg
s

现在,我只是简单地将它们存储在gzip中,但我想知道——有没有更好的方法,可以利用这些文件在感知上非常相似的事实?或者,因为文件已经被压缩了<代码> JPGS,最好的方法是考虑它们与二进制文件没有什么不同,并且使用通用的压缩方法,例如GZIP、BZIP等等。 (另外,很抱歉询问StackOverflow-可能有更好的StackExchange站点,但我找不到。)

您需要定义“略有不同”。您似乎要求对JPEG进行无损压缩,即使每个JPEG都是经过丢失压缩的。无论如何,根据差异有多小,发送第一个JPEG,然后逐像素发送连续图像之间差异的PNG(无损)可能是有效的。如果在某个点上下一个PNG大于被差分的JPEG,那么只发送JPEG。这样你的流量至少不会变大


如果图像序列作为差异的一部分进行了有效的平移或缩放,那么这将无法很好地工作,因为图像中相同位置的像素是不同的。对于平移和缩放,您需要视频格式。接受一点损失会有很长的路要走。

(没有专家)如果没有非常复杂的编码,我看不到很多选择。我支持你关于观察的假设(ffv1和co.)。压缩jpg听起来是个非常糟糕的主意,甚至可能会使文件变大(至少lzma2会检测到这些情况并自动切换到无comp)。如果这对你有效,你的jpeg编码器熵压缩是奇怪的。我看到的唯一相对可行的压缩是重新压缩JPEG。这将节省字节,但不会利用相似性(独立压缩)。e、 g.Dropbox“如果你还有几个月的时间,你当然可以尝试应用lepton/packjpg/google项目(我忘了名字)的想法编辑:brunsli针对你的案例,这也意味着:反转jpg的部分(例如熵编码步骤),然后建立一个联合统计模型。但是。。。那将很难。