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


14

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

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

有哪些技术/软件可以让您轻松压缩文件?

(P.S.我使用的是Windows XP)


好主意......但是你从哪里获得这样的文件?
Robinicks

3
我见过7zip压缩服务器日志文件(主要是文本),大约是原始大小的1%。
Umber Ferrule

2
打开记事本。输入10亿次“A”。保存,然后压缩。哇!创建一个将10亿(真)随机数写入文件的应用程序。压缩那个。咦?
igrimpe

igrimpe:许多压缩算法索引模式。十亿澳元是十亿欧元。您可以将其压缩为[A] {1,1000000000}。如果您有十亿个随机数,则难以进行模式匹配,因为给定子集中的每个连续数字都会以指数方式降低匹配子集的概率。
AaronF

Answers:


11

如果压缩数据所需的时间不是问题,那么您可以通过一起使用多个不同的工具来优化压缩大小。

使用7zip,winrar(用于zip)和bjwflate等不同工具压缩数据几次。

(请注意,这并不意味着反复压缩zip文件,而是使用不同的工具创建许多替代zip文件)

接下来,运行 deflopt 在每个存档上,以减少每个存档。

最后,跑 zipmix 关于档案馆藏。由于不同的zip工具在不同的文件上更好,因此zipmix从每个档案中选择每个文件的最佳压缩版本,并产生小于任何zip工具可以单独生成的输出。

但是,您应该注意,这并不能保证您的文件可以使用任何魔法。某些类型的数据根本不能很好地压缩,如JPEG和MP3。这些文件已在内部压缩。


4
JPEG和MP3没有压缩。它们是压缩的但不是拉链的。
KovBal

这是一个非常糟糕的建议,试图顺序使用多个压缩算法是一个非常糟糕的主意。每个算法都会创建一个压缩文件+开销,所以通过使用多个实际上 加入 数据到你试图压缩的数据 - 这就像试图在沙子上挖洞一样,越深入你的沙子就越多。在最大压缩设置下使用单个好的算法会好得多。
Tacroy

我想你误解了......相同的数据没有被重复压缩。相反,您只是在每个文件而不是每个存档上选择最佳单一算法。
izb

6
多次压缩数据 很误导。
ta.speot.is

12

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

文本压缩得很好,二进制格式不太好,压缩数据(mp3,jpg,mpeg)根本没有。

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


我知道压缩取决于数据的类型,但有没有任何特定的技术可以帮助您进一步压缩文件?
rzlines

3
一旦你压缩了东西,通常不可能让它变小。您只需为数据选择适当的压缩方法即可。
Nifle

文本可以轻松压缩高达90%。
Georg Schölly

@GeorgSchölly:那太棒了。因为我可以将任何数据转换为文本,例如将每个二进制字节转换为显示为文本的两个十六进制数字。这将使我的尺寸增加一倍,但随后节省90%的双倍尺寸可以节省80%的总体成本。 (或者,我可以使用base64在二进制文本转换中提高效率。)这是一个非常好的消息! :)
TOOGAM

7

以前的答案是错误的一个数量级!

我个人经验的最好的压缩算法是 paq8o10t (看到 zpaq 页面和 PDF )。

提示:压缩files_or_folders的命令如下:

paq8o10t -5 archive files_or_folders

Archive size vs. time to compress and extract 10 GB (79,431 files) to an external USB hard drive at default and maximum settings on a Dell Latitude E6510 laptop (Core i7 M620, 2+2 hyperthreads, 2.66 GHz, 4 GB, Ubuntu Linux, Wine 1.6). Data from 10 GB Benchmark (system 4).

资源: 增量日记备份实用程序和存档程序

您可以在上找到源代码的镜像 GitHub上


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


对于 大文件 lrzip 可以实现简单的压缩比 滑稽

README.benchmarks中的一个示例:


让我们把六个内核树作为tarball分开一个版本,   linux-2.6.31到linux-2.6.36。这些将显示出许多冗余   信息,但相隔数百兆,lrzip将是非常   擅长压缩。为简单起见,仅比较7z   到目前为止,这是目前最好的通用压缩机:

这些是在2.53Ghz双核Intel Core2上执行的基准测试   4GB ram使用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

它经过优化可提供最大的压缩比,但速度远远低于近竞争者。
Eric J.

1
@Eric J.是的,但问题没有指定压缩/解压缩的速度;)
Alexander Riccio

3

Squeezechart.com 包含各种压缩率的比较。虽然,正如Nifle的答案所述 - 你不太可能获得二进制格式的高压缩率。


2

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

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


2

您可以使用以下超级设置尝试7zip:

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on big_file.mysql.7z big_file.mysql

2

检查一下 多文件压缩基准测试的摘要 哪个有 最好的压缩列表 其中包括完整的压缩基准。

前30名

enter image description here

此测试中表现最佳的(基于压缩)是PAQ8和WinRK(PWCM)。他们能够将300+ Mb测试装置压缩至62 Mb以下(尺寸减小80%),但至少需要8.5小时才能完成测试。头号项目(PAQ8P)需要近12个小时,第四个项目(PAQAR)甚至需要17个小时才能完成测试。 WinRK,压缩率第二好的程序(79.7%)需要大约8.5小时。毫不奇怪,所有提到的程序都使用PAQ(类似)引擎进行压缩。如果您有包含嵌入图像的文件(例如Word DOC文件)使用PAQ8,它将识别它们并单独压缩它们,从而显着提高压缩效果。所有提到的程序(WinRK除外)都是免费的。


1

你最好的选择似乎是反复试验。在每个文件上尝试所有可用的压缩技术,并选择最适合您的网站。幸运的是,计算机可以非常快速地执行此类操作,并且不会感到无聊。您可以编写一个简单的脚本来自动化该过程,因此它“相对无痛”。

只是不要指望奇迹 - 700 mb到30 mb只是经常不会发生。如上所述的日志文件 - 是的。 “你的平均档案” - 没办法。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.