gpt4 book ai didi

encoding - 一系列相似灰度图像的无损压缩

转载 作者:行者123 更新时间:2023-12-04 23:05:42 26 4
gpt4 key购买 nike

我希望获得一系列相似灰度图像的最佳压缩比。我注意到我需要一个绝对无损的解决方案(这意味着我应该能够使用哈希算法对其进行检查)。
我试过的
我有将图像转换为视频的想法,因为图像之间存在年表。编码算法将使用并非所有场景在 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/

最佳答案

我对您的数据集尝试了一些想法,并总结了我在下面发现的内容。我的计算和百分比假设 578kB 是具有代表性的图像大小。

方法 1 - 粉碎 - 69%
我刚刚跑了pngcrush在您的一张图片上,如下所示:

pngcrush -bruteforce input.png crushed.png
输出大小为 400kB,因此您的图像现在只占用磁盘上原始空间的 69%。

方法 2 - 旋转和粉碎 - 34%
我将您的图像旋转了 90 度并粉碎了结果:
magick input.png -rotate 90 result.png
pngcrush -bruteforce result.png crushed.png
旋转后的压缩图像占用磁盘上原始空间的 34%。

方法 3 - 旋转和差异 - 24%
我使用 ImageMagick 旋转了您的图像,然后区分了该系列中的两个相邻图像并保存了结果。然后我“png粉碎”了导致 142kB 或原始空间的 24% 的内容。

方法 4 - 结合到 RGB - 28%
我将您的三个单 channel 图像组合成一个 3 channel RGB 图像并 pngcrushed 结果:
magick 000[123].png -combine result.png
pngcrush -bruteforce result.png crushed.png
这导致一个 490kB 的文件包含 3 张图像,即每张图像 163kB 或原始大小的 28%。

如果您能够无损地进行,我怀疑具有“运动”估计/检测的视频会产生最佳结果。

关于encoding - 一系列相似灰度图像的无损压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64496724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com