22=====
33
44
5- Lossless data compression in C++.
5+ State-of-the-art lossless data compression in C++.
66The goal is to provide clean APIs and really fast implementation.
77It includes compression codecs (Run Length coding, Exp Golomb coding, Huffman, Range, LZ4, Snappy, ANS, Context Mixers, PAQ derivatives), bit stream manipulation, and transforms such as Burrows-Wheeler (BWT) and Move-To-Front, etc ...
88
@@ -34,36 +34,40 @@ i7-7700K @4.20GHz, 32GB RAM, Ubuntu 18.04
3434
3535g++ version 7.3.0
3636
37- Kanzi version 1.4 C++ implementation. Block size is 100 MB.
37+ Kanzi version 1.5 C++ implementation. Block size is 100 MB.
3838
3939
4040| Compressor | Encoding (sec) | Decoding (sec) | Size |
4141| -----------------------------| -----------------| -----------------| ------------------|
4242| Original | | | 211,938,580 |
43- | ** Kanzi -l 1** | ** 2.1 ** | ** 1.1** | ** 80,790,093 ** |
44- | ** Kanzi -l 1 -j 12** | ** 0.8 ** | ** 0.5 ** | ** 80,790,093 ** |
43+ | ** Kanzi -l 1** | ** 1.6 ** | ** 1.1** | ** 80,003,837 ** |
44+ | ** Kanzi -l 1 -j 12** | ** 0.6 ** | ** 0.4 ** | ** 80,003,837 ** |
4545| Gzip 1.6 | 6.0 | 1.0 | 68,227,965 |
4646| Gzip 1.6 -9 | 14.3 | 1.0 | 67,631,990 |
47+ | ** Kanzi -l 2** | ** 4.0** | ** 2.7** | ** 63,878,466** |
48+ | ** Kanzi -l 2 -j 12** | ** 1.5** | ** 1.0** | ** 63,878,466** |
4749| Zstd 1.3.3 -13 | 11.9 | 0.3 | 58,789,182 |
4850| Brotli 1.0.5 -9 | 94.3 | 1.4 | 56,289,305 |
4951| Lzma 5.2.2 -3 | 24.3 | 2.4 | 55,743,540 |
50- | ** Kanzi -l 2 ** | ** 9.3 ** | ** 6.3 ** | ** 55,728,473 ** |
51- | ** Kanzi -l 2 -j 12** | ** 3.6 ** | ** 2.3 ** | ** 55,728,473 ** |
52+ | ** Kanzi -l 3 ** | ** 8.4 ** | ** 5.8 ** | ** 55,594,153 ** |
53+ | ** Kanzi -l 3 -j 12** | ** 3.3 ** | ** 2.0 ** | ** 55,594,153 ** |
5254| Bzip2 1.0.6 -9 | 14.1 | 4.8 | 54,506,769 |
5355| Zstd 1.3.3 -19 | 45.2 | 0.4 | 53,977,895 |
54- | ** Kanzi -l 3 ** | ** 14.0 ** | ** 12.4 ** | ** 51,781,285 ** |
55- | ** Kanzi -l 3 -j 12** | ** 4.7 ** | ** 3.9 ** | ** 51,781,285 ** |
56- | ** Kanzi -l 4 ** | ** 16 .6** | ** 16.0 ** | ** 49,460,294 ** |
57- | ** Kanzi -l 4 -j 12** | ** 5.7 ** | ** 5.3 ** | ** 49,460,294 ** |
56+ | ** Kanzi -l 4 ** | ** 12.2 ** | ** 10.8 ** | ** 51,795,306 ** |
57+ | ** Kanzi -l 4 -j 12** | ** 4.4 ** | ** 3.5 ** | ** 51,795,306 ** |
58+ | ** Kanzi -l 5 ** | ** 15 .6** | ** 15.5 ** | ** 49,455,342 ** |
59+ | ** Kanzi -l 5 -j 12** | ** 5.5 ** | ** 5.0 ** | ** 49,455,342 ** |
5860| Lzma 5.2.2 -9 | 65.0 | 2.4 | 48,780,457 |
59- | ** Kanzi -l 5 ** | ** 27.0 ** | ** 25.8 ** | ** 46,485,064 ** |
60- | ** Kanzi -l 5 -j 12** | ** 8.3 ** | ** 8.2 ** | ** 46,485,064 ** |
61+ | ** Kanzi -l 6 ** | ** 24.9 ** | ** 24.7 ** | ** 46,485,165 ** |
62+ | ** Kanzi -l 6 -j 12** | ** 7.7 ** | ** 7.6 ** | ** 46,485,165 ** |
6163| Tangelo 2.4 | 83.2 | 85.9 | 44,862,127 |
6264| zpaq v7.14 m4 t1 | 107.3 | 112.2 | 42,628,166 |
6365| zpaq v7.14 m4 t12 | 108.1 | 111.5 | 42,628,166 |
66+ | ** Kanzi -l 7** | ** 56.5** | ** 57.5** | ** 41,838,503** |
67+ | ** Kanzi -l 7 -j 12** | ** 22.0** | ** 21.8** | ** 41,838,503** |
6468| Tangelo 2.0 | 302.0 | 310.9 | 41,267,068 |
65- | ** Kanzi -l 6 ** | ** 74.5 ** | ** 75.4 ** | ** 41,144,431 ** |
66- | ** Kanzi -l 6 -j 12** | ** 28.5 ** | ** 28.9 ** | ** 41,144,431 ** |
69+ | ** Kanzi -l 8 ** | ** 79.0 ** | ** 79.0 ** | ** 40,844,691 ** |
70+ | ** Kanzi -l 8 -j 12** | ** 31.0 ** | ** 30.8 ** | ** 40,844,691 ** |
6771| zpaq v7.14 m5 t1 | 343.1 | 352.0 | 39,112,924 |
6872| zpaq v7.14 m5 t12 | 344.3 | 350.4 | 39,112,924 |
6973
@@ -81,12 +85,14 @@ Kanzi version 1.4 C++ implementation. Block size is 100 MB. 1 thread
8185| Compressor | Encoding (sec) | Decoding (sec) | Size |
8286| -----------------------------| -----------------| -----------------| ------------------|
8387| Original | | | 100,000,000 |
84- | ** Kanzi -l 1** | ** 1.6** | ** 0.9** | ** 37,389,414** |
85- | ** Kanzi -l 2** | ** 4.9** | ** 3.4** | ** 25,439,827** |
86- | ** Kanzi -l 3** | ** 9.4** | ** 7.3** | ** 22,744,813** |
87- | ** Kanzi -l 4** | ** 10.8** | ** 9.1** | ** 22,096,910** |
88- | ** Kanzi -l 5** | ** 15.6** | ** 13.4** | ** 20,791,382** |
89- | ** Kanzi -l 6** | ** 31.0** | ** 31.8** | ** 19,464,686** |
88+ | ** Kanzi -l 1** | ** 1.21** | ** 0.66** | ** 35,611,290** |
89+ | ** Kanzi -l 2** | ** 2.23** | ** 1.63** | ** 28,468,601** |
90+ | ** Kanzi -l 3** | ** 4.21** | ** 2.96** | ** 25,517,555** |
91+ | ** Kanzi -l 4** | ** 5.44** | ** 4.15** | ** 22,512,813** |
92+ | ** Kanzi -l 5** | ** 7.62** | ** 6.12** | ** 21,934,022** |
93+ | ** Kanzi -l 6** | ** 14.69** | ** 12.72** | ** 20,791,492** |
94+ | ** Kanzi -l 7** | ** 22.48** | ** 22.44** | ** 19,613,190** |
95+ | ** Kanzi -l 8** | ** 29.53** | ** 29.72** | ** 19,284,434** |
9096
9197
9298Build Kanzi
@@ -104,11 +110,10 @@ This version of VS uses C++11 (AFAIK). Unzip the file "Kanzi_VS2015.zip" in plac
104110The project generates a Windows 64 binary. Multithreading is supported with this version.
105111
106112### mingw-w64
107- Go to the Kanzi directory and run 'mingw32-make.exe'. The Makefile contains all the necessary
108- targets. Tested successfully on Win64 with mingw-w64 using Gnu Make 4.2.1.
109- Multithreading is supported.
113+ Go to the source directory and run 'mingw32-make.exe'. The Makefile contains all the necessary
114+ targets. Tested successfully on Win64 with mingw-w64 g++ 8.1.0. Multithreading is supported.
110115
111116### Linux
112- Go to the Kanzi directory and run 'make'. The Makefile contains all the necessary
113- targets. g++ is required. Tested successfully on Ubuntu 18.04 with g++ 7.3.0
114- and clang++ 6 .0.0. Multithreading is supported with g++ version 5.0.0 or newer.
117+ Go to the source directory and run 'make'. The Makefile contains all the necessary
118+ targets. Tested successfully on Ubuntu 18.04 with g++ 7.3.0, clang++ 6.0 .0
119+ and icc 19 .0.0.117 . Multithreading is supported with g++ version 5.0.0 or newer.
0 commit comments