Release 1.8
Changes:
- Corner cases fixed and code improvements
- Level 1 compresses a lot better
- New codec for some multimedia files added to levels 2 & 3
- Multi-threading rewritten to parallelize entropy (de)coding
- Level 5 faster & level 6 faster (but a bit weaker)
- Partial decoding
Improved L1 compression:
Code:
Silesia 100 mb
1.7 L1
74599655 bytes in 1.6 sec / 0.9 sec
1.8 L1
69840720 bytes in 1.8 sec / 0.9 sec
linux-5.1-rc5.tar 128mb
1.7 L1
177047456 bytes in 7679 ms / 5052 ms
1.8 L1
164412581 bytes in 7647 ms / 3925 ms
enwik8 100mb
1.7 L1
33869944 bytes in 1.27 sec / 0.73 sec
1.8 L1
32654135 bytes in 1.24 sec / 0.65 sec
Multimedia codec (L2 & L3):
Code:
kanzi-1.7 -b 100m -o none -c -i Wonderwall.wav -l 2
Encoding Wonderwall.wav: 45646892 => 43652400 bytes in 1834 ms
kanzi-1.8 -b 100m -o none -c -i Wonderwall.wav -l 2
Encoding Wonderwall.wav: 45646892 => 38934705 bytes in 1578 ms
kanzi-1.7 -b 100m -o none -c -i data/park1024.ppm -l 3
Encoding data/park1024.ppm: 3145745 => 2436294 bytes in 239 ms
kanzi-1.8 -b 100m -o none -c -i data/park1024.ppm -l 3
Encoding data/park1024.ppm: 3145745 => 1957681 bytes in 232 ms
kanzi-1.7 -b 20m -l 2 -f -c -i baby.bmp
Encoding baby.bmp: 18048054 => 6669470 bytes in 322 ms
Decoding baby.bmp.knz: 6669470 => 18048054 bytes in 174 ms
kanzi-1.8 -b 20m -l 2 -f -c -i baby.bmp
Encoding baby.bmp: 18048054 => 4996114 bytes in 355 ms
Decoding baby.bmp.knz: 4996114 => 18048054 bytes in 173 ms
Parallel entropy:
Code:
1.7 L8 j8
Encoding linux-5.1-rc5.tar: 871557120 => 78016499 bytes in 257.7 s
Decoding linux-5.1-rc5.tar.knz: 78016499 => 871557120 bytes in 266.0 s
1.8 L8 j8
Encoding linux-5.1-rc5.tar: 871557120 => 77826658 bytes in 67142 ms
Decoding linux-5.1-rc5.tar.knz: 77826658 => 871557120 bytes in 65592 ms
1.7 L8 j8
Encoding /disk1/ws/enwik9: 1000000000 => 164705959 bytes in 320.5 s
Decoding /disk1/ws/enwik9.knz: 164705959 => 1000000000 bytes in 305.0 s
1.8 L8 j8
Encoding /disk1/ws/enwik9: 1000000000 => 164429623 bytes in 79207 ms
Decoding /disk1/ws/enwik9.knz: 164429623 => 1000000000 bytes in 78179 ms
Partial decoding (more tests needed). It is possible to decompress only a range of blocks:
Code:
kanzi -c -b 10m -f -i /tmp/enwik8 -l 4
Encoding /tmp/enwik8: 100000000 => 25275127 bytes in 3863 ms
kanzi -d -f -i /tmp/enwik8.knz -v 4
Block 1: 2634565 => 3936096 [23 ms] => 10485760 [242 ms]
Block 2: 2650775 => 3935321 [22 ms] => 10485760 [234 ms]
Block 3: 2665709 => 3940268 [22 ms] => 10485760 [224 ms]
Block 4: 2629675 => 3897925 [22 ms] => 10485760 [221 ms]
Block 5: 2650382 => 3913712 [22 ms] => 10485760 [225 ms]
Block 6: 2660628 => 3950171 [22 ms] => 10485760 [227 ms]
Block 7: 2641180 => 3920834 [22 ms] => 10485760 [225 ms]
Block 8: 2658707 => 3938822 [22 ms] => 10485760 [228 ms]
Block 9: 2657754 => 3927861 [22 ms] => 10485760 [223 ms]
Block 10: 1425693 => 2098230 [12 ms] => 5628160 [126 ms]
Decoding: 2439 ms
Input size: 25275127
Output size: 100000000
Throughput (KB/s): 40039
kanzi -d -f -i /tmp/enwik8.knz --from=6 --to=8 -v 4
Block 6: 2660628 => 3950171 [23 ms] => 10485760 [242 ms]
Block 7: 2641180 => 3920834 [22 ms] => 10485760 [233 ms]
Decoding: 537 ms
Input size: 25275127
Output size: 20971520
Throughput (KB/s): 38137