首页 > 代码库 > Brotli、Deflate、Zopfli、LZMA、LZHAM、Bzip2六种无损数据压缩性能比较
Brotli、Deflate、Zopfli、LZMA、LZHAM、Bzip2六种无损数据压缩性能比较
这里比较了六种数据压缩算法,结果表明Brotli算法会代替普遍使用的Deflate算法。分别用Canterbury compression corpus,web contentcorpus,和 enwik8三种不同的数据集来测试,并比较六种算法在压缩比和压缩速度上的性能。而且,也表明了Zopfli,LZMA,LZHAM,和 bzip2在压缩和解压缩时占用CPU时间较长,不会直接代替deflate。
Deflate不仅能支持很好的适配现在已有的系统,而且它比较简单快速的编解码。因此,很多无损数据压缩都采用Deflate方法实现的。2013年,谷歌发布Zopfli,改算法不仅兼容Deflate格式,而且支持稠密压缩。现在Zopfli逐渐广泛被接收,有人开始提出目前应该从Deflate算法向更加先进的算法转变。Brotli是谷歌开发的一个新一代的压缩算法。这里将该算法和其他已有的压缩算法进行一个比较。
CPU | intel@Xeon CPU E5-1650 v2, 3.5G, 6 core |
操作系统 | Linux 3.13.0 |
编译器 | GCC 4.8.4 |
单线程 | singel |
测试文件1 | Canterbury compression corpus |
测试文件2 | A web content, 1285 files and 70611753 bytes |
测试文件3 | Ebwik8 single file 100M |
LZMA和LAHMA算法,窗口越大,压缩速度越慢,压缩比越高。
| 窗口大小(bit) | 版本 |
Brotli | NA | Brotli version 0.2.0 |
Deflate | 15 | Deflate algorithm from zlib 1.2.8 |
Zopfli | 15 | Zopfli version from github 20150901 |
LZMA | 22 | LZMA implementation in 7zip 9.20.1 |
LZHAM | 22 | LZHAM 1.0 stable 1 |
Bzip2 | NA | Bzip2 1.0.0 20100906 |
测试结果
Canterbury compression corpus | |||
算法:级别 | 压缩比 | 压缩速度(MB/s) | 解压缩速度(MB/s) |
Brotli:1 | 3.381 | 98.3 | 334 |
Brotli:1 | 3.965 | 17 | 354.5 |
Brotli:1 | 4.347 | 0.5 | 289.5 |
Deflate:1 | 2.913 | 93.5 | 323 |
Deflate:9 | 3.371 | 15.5 | 347.3 |
Zopfli | 3.58 | 0.2 | 342.1 |
Lzma:1 | 3.847 | 10.2 | 70 |
Lzma:9 | 4.24 | 3.9 | 71.7 |
Lzham:1 | 3.836 | 3.9 | 116 |
Lzham:9 | 3.952 | 0.5 | 117.7 |
Bzip2:1 | 3.757 | 11.8 | 40.4 |
Bzip2:9 | 3.869 | 12 | 40.2 |
A web content, 1285 files and 70611753 bytes | |||
算法:级别 | 压缩比 | 压缩速度(MB/s) | 解压缩速度(MB/s) |
Brotli:1 | 5.217 | 145.2 | 508.4 |
Brotli:1 | 6.253 | 30.1 | 508.7 |
Brotli:1 | 6.938 | 0.6 | 441.8 |
Deflate:1 | 4.666 | 146.9 | 434.8 |
Deflate:9 | 5.528 | 32.9 | 484.1 |
Zopfli | 5.77 | 0.2 | 460.1 |
Lzma:1 | 5.825 | 7.9 | 100.5 |
Lzma:9 | 6.231 | 4.4 | 102.2 |
Lzham:1 | 5.58 | 4.7 | 168.7 |
Lzham:9 | 5.768 | 0.2 | 172.7 |
Bzip2:1 | 5.71 | 11 | 52.3 |
Bzip2:9 | 5.867 | 11.1 | 52.3 |
Ebwik8 single file 100M | |||
算法:级别 | 压缩比 | 压缩速度(MB/s) | 解压缩速度(MB/s) |
Brotli:1 | 2.711 | 78.3 | 228.6 |
Brotli:1 | 3.308 | 5.6 | 279.4 |
Brotli:1 | 3.607 | 0.4 | 257.4 |
Deflate:1 | 2.364 | 70.8 | 211.7 |
Deflate:9 | 2.742 | 18.1 | 217.4 |
Zopfli | 2.857 | 0.6 | 227.7 |
Lzma:1 | 3.106 | 9.8 | 60.6 |
Lzma:9 | 3.696 | 3.44 | 71.8 |
Lzham:1 | 3.335 | 2.4 | 177.9 |
Lzham:9 | 3.643 | 0.4 | 192.2 |
Bzip2:1 | 3.007 | 12.3 | 30.8 |
Bzip2:9 | 3.447 | 12.4 | 30.3 |
Brotli、Deflate、Zopfli、LZMA、LZHAM、Bzip2六种无损数据压缩性能比较