writing efficient entropy coder in an art of its own
tornado's results:
Code:
D:\testing>C:\!\FreeArchiver\Compression\Tornado\tor-full.exe -o compressed.o -1
Compressing 70.505 mb with greedy parser, 16kb:1 hash4, buffer 1mb, bytecoder w/o tables
-1: compressed 70.505 -> 88.131 mb (125.0%), time 0.597 secs, speed 118.122 mb/sec
D:\testing>C:\!\FreeArchiver\Compression\Tornado\tor-full.exe -o compressed.o -1 -c3
Compressing 70.505 mb with greedy parser, 16kb:1 hash4, buffer 1mb, hufcoder w/o tables
-1: compressed 70.505 -> 70.867 mb (100.5%), time 1.095 secs, speed 64.393 mb/sec
D:\testing>C:\!\FreeArchiver\Compression\Tornado\tor-full.exe -o compressed.o -1 -c4
Compressing 70.505 mb with greedy parser, 16kb:1 hash4, buffer 1mb, aricoder w/o tables
-1: compressed 70.505 -> 71.040 mb (100.8%), time 1.315 secs, speed 53.618 mb/sec
so 100 mb/sec for range coder (it's optimized to frequencies represented as x/2^n) and 140 mb/s for huffman (core2@3.24GHz)
EDIT: my calculations is a bit too optimizstic since bytewise coding also needs some time. so 100-120 mb/sec for huffman and 80-90 mb/sec for rc