我有很多数据不需要“立即获取”,我想知道是否有任何压缩软件可以将其压缩到比我目前使用 7zip 更小的尺寸。压缩 1GB 的数据大约需要 10 分钟(优化文件大小),而解压则需要更少的时间。假设我可以花几个小时进行压缩和提取,是否有任何方法可以让压缩文件更小?
到目前为止,我还没有看到任何 GPU 辅助压缩程序,有谁见过任何这样的程序吗?
答案1
https://en.wikipedia.org/wiki/Data_compression
这实际上取决于您要压缩的内容,以及是否需要无损压缩。
查看:
该网站提供不同数据压缩程序的基准测试,在各种条件下对其进行测试,并对各种参数(压缩/解压缩速度/比率)进行评级。
答案2
这个问题的最佳答案几乎肯定是PAQ
Matt Mahoney 设计的算法系列。他用它赢得了几个数据压缩内容,当我上次检查时,它仍然保留了许多记录。压缩需要很长时间,并且可能需要大量 RAM,但我见过它甚至显著缩小了已经高度压缩的文件(如现有档案)。
您可以在此处获取命令行实用程序的最新版本以及所有主要的先前版本(某些版本侧重于不同的领域,例如易用性或并行操作):http://mattmahoney.net/dc/zpaq.html
您可能还喜欢其他实现。如果您想要图形界面,PeaZip 有一个“附加格式”插件,其中包括PAQ
:http://peazip.sourceforge.net/peazip-add-ons.html
lrzip
是一个针对大型(GB 级)文件进行优化的命令行实用程序。它使用远程冗余减少算法,然后使用用户选择的第二种算法,该算法可以包括该PAQ
算法的一个版本(或者,如果您需要,还可以包括各种更快的算法)。它还具有其他有趣的功能,包括能够使用虚拟 RAM 压缩大于系统物理 RAM 的文件,但代价是速度会大幅降低。
除了使用强大的压缩算法外,您还可以通过使用其他工具对文件进行预处理来减小最终存档的大小。您可以将某些文件从固有的臃肿格式转换为更精简的格式,或从中剥离元数据。使用类似 的实用程序dar
(尽管这里的大多数人可能更喜欢旧版tar
),您可以合并大量文件以提高压缩效率,并控制 7zip 等程序无条件添加到其存档中的文件系统元数据(如 Unix 权限)的数量。任何这些技术都假设您愿意投入更多的个人时间和机器资源。
编辑:我发现tar
和dar
不允许控制元数据,dar
supercedetar
的功能集也不允许,正如其使命所暗示的那样。但是,它们都支持稀疏文件,并且如果使用仅在索引中写入文件头的选项(通常除了索引之外还写入-style 头) dar
,可能会使压缩更有效率。dar
tar
至于 GPU 压缩,我也没有见过。如果压缩更依赖于 RAM 而不是核心数量(如 Litecoin),那么它可能不可行。
这里列出的所有程序都是免费的、开源的,并且(可能的例外lrzip
)适用于所有主流操作系统。
答案3
Jeff Atwood,我们无畏的领袖,有很多话要说关于文件压缩。
不管怎样,7-Zip 的 7z 压缩的超级设置可能是压缩几种不同文件类型时能获得的最佳设置。
答案4
您可以尝试使用以下超级设置来使用 7zip:
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on big_file.mysql.7z big_file.mysql