我们不断向海外传输千兆字节的压缩 Tiff,每批图像传输都需要很长时间。批量传输需要 6 个小时以上的情况并不少见。我想减少传输一批图像的时间。
我知道视频压缩得非常好,因为大多数时候每一帧通常与之前的帧非常相似,并且压缩算法利用了这一点。在我们的场景中,图像通常看起来彼此相似。是否有任何图像压缩库可以用来利用图像之间存在大量冗余的事实?理想情况下我想要无损压缩。
如果我在传输图像之前将其转换为视频,然后将其转回另一侧的图像,可以吗?如果这可行,您会推荐哪些库?我需要能够从 Java 调用它,并且最好在 Linux 上运行它,但该库不需要用 Java 编写。 Windows 也有可能。
最佳答案
我首先会尝试什么:
从未压缩
tiff 开始(否则,将很难找到相似之处)。
将它们tar
在一起(因此它们包含在一个单个文件中,当然可以是特定范围的图像)。
然后使用您选择的压缩算法来查看哪种算法可以产生最佳结果(在单个文件上)。
很容易尝试,无需太多努力。它的工作效果取决于源图像本身(以及使用的压缩算法)。
如果上述方法没有产生足够的结果,则采用替代方法:
确保您拥有所有未压缩的图像。
发送第一张图片。
对下一个图像进行
二进制差异
(或者可能是十六进制转储差异)。发送 diff 文件并将其应用到接收端以重建图像。
对每个图像重复 3-4。
我个人认为使用视频压缩算法不会轻易获得良好(无损)的结果(毕竟,它们是专门针对不同目的量身定制的)。
关于java - 如何压缩一批图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23766311/