文件的最高压缩率(用于网络传输)?

文件的最高压缩率(用于网络传输)?

我见过一些高度压缩的文件,例如 700MB 的数据被压缩到大约 30-50MB。

但是如何得到这样的压缩文件呢?我尝试过使用 WinRAR 和 7Zip 等软件,但从未实现过如此高的压缩率。

有什么技术/软件可以让你如此有效地压缩文件?

(注:我使用的是 Windows XP)

答案1

如果压缩数据所需的时间不是问题,那么您可以结合使用几种不同的工具来优化压缩大小。

使用 7-zip、winrar(用于 zip)和 bjwflate 等工具将数据压缩成多个不同的档案。

接下来运行失败在每个档案上,稍微减少一些。

最后,运行压缩文件关于档案集合。由于不同的 zip 工具对不同的文件有更好的处理效果,因此 zipmix 会从每个档案中挑选出每个文件的最佳压缩版本,并生成一个比任何 zip 工具单独生成的输出都小的输出。

但请注意,这并不能保证对您的文件产生任何神奇的效果。某些类型的数据压缩效果并不好,例如 JPEG 和 MP3。这些文件已在内部压缩。

答案2

这完全取决于被压缩的数据。

文本压缩得很好,二进制格式压缩得不太好,而压缩数据(mp3、jpg、mpeg)则完全不行。

这是一个很好的压缩比较表来自维基百科。

答案3

先前的答案都错误了一个数量级!

我个人体验过的最佳压缩算法是paq8o10t(看赞巴克页面和PDF)。

提示:压缩文件或文件夹的命令如下:

paq8o10t -5 archive files_or_folders

在 Dell Latitude E6510 笔记本电脑(Core i7 M620、2+2 超线程、2.66 GHz、4 GB、Ubuntu Linux、Wine 1.6)上,以默认和最大设置将 10 GB(79,431 个文件)压缩并解压到外部 USB 硬盘驱动器的存档大小与时间。数据来自 10 GB 基准测试(系统 4)。

来源:增量日志备份实用程序和归档器

您可以在以下位置找到源代码的镜像GitHub


一个略微好一点的压缩算法,并且获胜了赫特奖,是 decomp8(见奖品页面上的链接)。但是,没有可以实际使用的压缩程序。


为了真的大文件压缩可以达到简单的压缩比滑稽

来自 README.benchmarks 的一个例子:


我们将 6 个版本相差一个的内核树作为一个 tarball,从 linux-2.6.31 到 linux-2.6.36。它们会显示大量冗余信息,但相差数百兆字节,lrzip 非常擅长压缩。为简单起见,我们只比较 7z,因为它是目前最好的通用压缩器:

这些基准测试是在 2.53Ghz 双核 Intel Core2 上执行的,配有 4GB 内存,使用 lrzip v0.5.1。请注意,它运行在 32 位用户空间中,因此只能进行 2GB 寻址。但是,基准测试使用 -U 选项运行,允许将整个文件视为一个大型压缩窗口。

6 个连续内核树的 Tarball。

Compression    Size                 Percentage      Compress    Decompress
None           2373713920           100             [n/a]       [n/a]
7z             344088002            14.5            17m26s      1m22s
lrzip          104874109            4.4             11m37s      56s
lrzip -l       223130711            9.4             05m21s      1m01s
lrzip -U       73356070             3.1             08m53s      43s
lrzip -Ul      158851141            6.7             04m31s      35s
lrzip -Uz      62614573             2.6             24m42s      25m30s

答案4

大多数压缩工具都有设置,允许您以较慢的压缩/解压缩时间和更多的 RAM 使用率来实现更高的压缩率。

对于 7-Zip,在内置帮助中搜索“添加到存档对话框”以获取更多详细信息。

相关内容