【发布时间】:2021-02-06 07:48:20
【问题描述】:
我希望获得一系列相似灰度图像的最佳压缩比。我注意到我需要一个绝对无损的解决方案(这意味着我应该能够使用哈希算法对其进行检查)。
我尝试了什么
我有将图像转换为视频的想法,因为图像之间存在年表。编码算法将使用并非所有场景在 2 张图片之间发生变化的事实进行压缩。所以我尝试使用 ffmpeg,但由于 sRGB -> YUV 颜色空间压缩,我遇到了几个问题。我不明白所有的事情,但这似乎是一场噩梦。
使用的代码示例:
ffmpeg -i %04d.png -c:v libx265 -crf 0 video.mp4 #To convert into video
ffmpeg -i video.mp4 %04d.png #To recover images
我的第二个想法是使用 imagemagik 手动完成。所以我以第一张图片为参考,并创建了一个新的图像,它是 image1 和 image2 之间的差异。然后我尝试使用图像 1 添加差异图像(尝试恢复图像 2)但它没有工作。注意到重新创建的图片的大小,很明显图像不一样。我认为在此过程中存在不必要的压缩。
使用的代码示例:
composite -compose difference 0001.png 0002.png diff.png #To create the diff image
composite -compose difference 0001.png diff.png recover.png #To recover image 2
你对我的问题有任何想法吗? 为什么我无法使用 iamgemagik 进行完美恢复?
谢谢 ;)
这里有 20 张样本图片:https://cloud.damien.gdn/d/f1a7954a557441989432/
【问题讨论】:
-
将如何使用输出 - 编辑、播放(在哪里)?
-
输出将被摄影测量算法使用。我们的想法是减少 1000 多张图像的大小以进行存储。
-
也许您可以提供 3-4 张有代表性的图片进行实验。您确定要 100% 无损压缩,因为视频似乎不太可能吗?或许您可以澄清一下您想要实现的目标?
-
例如你要输入3? 12? 7000?灰度PNG图像,所有相同的尺寸?并得到一个 64 位数字? 12张PNG图片? 12 个尽可能小的二进制文件,您仍然可以查看?最小的单个文件,可以让您完美地按位重新创建所有图像?
-
您可以使用 RGB 视频吗?然后使用
libx264rgb编码器。
标签: encoding ffmpeg compression imagemagick lossless-compression