如何才能尽可能密集地将大量图像压缩在一起(出于备份目的)?

如何才能尽可能密集地将大量图像压缩在一起(出于备份目的)?

我有一个相当大的图片集(以个人使用标准衡量)。大约有 15 万个文件,总大小为 200GB。它主要是 PNG 和 JPG 文件,每个文件约占总文件大小的一半。我想为这个集合创建备份,并且作为备份,我希望它占用尽可能少的空间。

理想情况下,我希望将每个图像压缩成一个比未压缩的总文件大小小得多的单个档案。

我愿意在压缩(解)速度上做出让步,不管怎样都要在 12 小时左右。我不愿意在图像质量上做出让步(不过,保持格式并不重要)。

我尝试过调整 winrar 和 7zip 的设置,但压缩率通常都非常糟糕。尝试使用谷歌寻求帮助,很难找到与网络压缩无关的相关问题。比 winrar/7zip 更专业的东西会非常受欢迎。我使用的是 Windows,任何可以通过 WSL 运行的东西也都受欢迎。我只是不想花钱购买更多存储空间(现在)。

我不知道在最佳情况下我能期待什么,如果无法获得合适的压缩,那就这样吧,但我希望通过在速度和文件类型上做出让步,我可以获得比我尝试过的更好的结果。

答案1

Winzip 支持与 zipx 格式结合使用,2008来源并引用:

JPEG 压缩算法的工作原理是首先解除这种预先存在的压缩,然后使用改进的方法重新压缩文件,通常可以节省 20-25% 的空间。 该算法无损且可逆

在我自己对 Winzip 试用版的测试中,我能够将屏幕截图文件夹的大小精确地缩小 20%,所以他们的说法是正确的。所以它确实不是必须是照片,但一般可以应用于 jpg 文件。我也用开源测试过这个赞巴克. 我的情况结果如下:

4193 张截图的文件夹:

原始大小:981 MB

zipx 压缩:775MB

zpaq (m5) 压缩后:836 MB

编辑:在创建的 zipx 档案上应用 zpaq 时:

zipx.zpaq (m5) 压缩后:740 MB

不幸的是,这意味着开源替代方案在这里并不更好,但这也有技术原因。因为据我所知,zpaq 不会解压缩 jpeg 来应用其自己的压缩。它只是立即使用自己的方法进行压缩。

然而,这种方法也可以与图像魔术师(也是开源的)-如果您愿意对有损失的图像进行重新编码。我知道您写道您不想这样做,我只是为了完成而提到这一点。

过去我用它来极端压缩旧的 8 百万像素手机图像,并为 convert.exe 使用了这些附加命令行参数:

-sampling-factor 4:2:0 -auto-orient -quality 63 -interlace JPEG -colorspace sRGB -selective-blur 8x8+2% -define jpeg:dct-method=float

这让我节省了大约 80% 的成本,但天空和光滑表面出现了明显的渐变伪影。请注意,上述设置不适用于屏幕截图,因为-selective-blur这样会适得其反。但对于手机图像,这种方法效果不错。

其他阅读资源:Peazip wiki压缩包赞巴克

编辑2:值得注意的是JPEG 格式项目存在。JPEG 可以无损转换为这种格式以使其更小,类似于 Winzip 在其 zipx 存档中所做的那样。如果您更精通技术,这可能是一个不错的选择。目前支持此格式的图像查看器是 XnView MP。

答案2

基本上,图像无法通过“常规”方式压缩。压缩图像不会有任何效果,甚至可能略微增加图像大小。

图像压缩是一种高度专业化的压缩形式,而 jpg/png 等已经是“最佳”的了 [有点过于概括]。你也许可以通过更改为更新/更好的压缩格式(例如 HEIC)来获得一些好处。JPG
是有损的 - 即,每次压缩和解压缩时,一些信息实际上都会被永远丢弃。PNG 是
无损的 - 即,你可以反复压缩和解压缩而不会丢失任何数据。HEIC
也是有损的,但不像 jpg 那样有损,并且对于给定的视觉效果,文件大小较小。但是,并非所有设备都原生支持它。

答案3

JPEG 使用有损压缩,并允许控制质量与文件大小。如果你愿意牺牲一些画质,例如精细的细节,使用伊凡视界(批处理模式)或类似工具打开每个文件(PNG 和 JPEG),然后将其保存为较低质量的 JPEG。

另一种可能性是将图像转换为高级信息接口使用以下工具进行格式化图像魔术师. 理论上,HEIF 压缩比 JPEG 占用的空间更少。

无论哪种情况,在进行大规模转换之前,都要测试几个文件上的结果,并运行一小批处理,以检查转换期间是否需要额外的空间。

话虽如此,我还是会购买额外的 HDD(是的,速度不如 SSD,但我相信更适合长期存储)。1 TB(已使用空间的 5 倍)的外部 HDD 售价不到 40 美元。

相关内容