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:9

3.965

17

354.5

Brotli:11

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:9

6.253

30.1

508.7

Brotli:11

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:9

3.308

5.6

279.4

Brotli:11

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 参考文献:

1. https://zopfli.googlecode.com/files/Data_compression_using_Zopfli.pdf
2. https://github.com/google/brotli/releases/tag/v0.2.0
3. http://www.zlib.net/
4. https://github.com/google/zopfli/commit/89cf773beef75d7f4d6d378debdf299378c3314e
5. http://www.7­zip.org/history.txt
6. https://github.com/richgel999/lzham_codec/releases/tag/v1_0_stable1
7. http://www.bzip.org/
8. http://corpus.canterbury.ac.nz/
9. http://prize.hutter1.net/
10.https://cran.r-project.org/web/packages/brotli/vignettes/brotli-2015-09-22.pdf 

posted @ 2016-08-30 19:08  caimagic  阅读(...)  评论(...编辑  收藏