java - 如何压缩一批图像?

标签 java image performance compression

我们不断向海外传输千兆字节的压缩 Tiff,每批图像传输都需要很长时间。批量传输需要 6 个小时以上的情况并不少见。我想减少传输一批图像的时间。

我知道视频压缩得非常好,因为大多数时候每一帧通常与之前的帧非常相似,并且压缩算法利用了这一点。在我们的场景中,图像通常看起来彼此相似。是否有任何图像压缩库可以用来利用图像之间存在大量冗余的事实?理想情况下我想要无损压缩。

如果我在传输图像之前将其转换为视频,然后将其转回另一侧的图像,可以吗?如果这可行,您会推荐哪些库?我需要能够从 Java 调用它,并且最好在 Linux 上运行它,但该库不需要用 Java 编写。 Windows 也有可能。

最佳答案

我首先会尝试什么:

未压缩 tiff 开始(否则,将很难找到相似之处)。

将它们tar在一起(因此它们包含在一个单个文件中,当然可以是特定范围的图像)。

然后使用您选择的压缩算法来查看哪种算法可以产生最佳结果(在单个文件上)。

很容易尝试,无需太多努力。它的工作效果取决于源图像本身(以及使用的压缩算法)。

如果上述方法没有产生足够的结果,则采用替代方法:

  1. 确保您拥有所有未压缩的图像。

  2. 发送第一张图片。

  3. 对下一个图像进行二进制差异(或者可能是十六进制转储差异)。

  4. 发送 diff 文件并将其应用到接收端以重建图像。

  5. 对每个图像重复 3-4。

我个人认为使用视频压缩算法不会轻易获得良好(无损)的结果(毕竟,它们是专门针对不同目的量身定制的)。

关于java - 如何压缩一批图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23766311/

相关文章:

java - 这样处理空指针异常有意义吗?

java - 如何在 Activity 中连续放置 6 个图像按钮

java - 发送 freemarker 模板电子邮件

c++ - 如何优化这个将输入位转换为单词的简单函数?

Java setProperty() 在运行时不起作用

python-pptx:如何重新定位图片占位符?

java - 文本文件到图像转换

java - 在 JFrame 中显示图像

PHP:在循环中使用之前声明变量的正确方法

c++ - 超线程性能比较