Versions tested: | 0 |
Optimal parameters: | 1 |
Links: | lzrw.zip http://www.ross.net/... |
Authors: | Ross Williams |
Algorithms: | LZ, LZW |
Notable peformances: | - |
The original Ross Williams programs with a driver program by Matt Mahoney who describes the programs:
the program documentationlzrw1 is byte-aligned LZ77 with a 12 bit offset and 4 bit length field allowing lengths 3-16. Each group of 16 phrases (pointers or literals) is preceded by 2 flag bytes to distinguish pointers from literals. Matches are found using a 4K hash table without confirmation which is updated after each phrase.
lzrw1-a the length field represents values 3-18.
lzrw2 replaces the offset with a 12 bit index into a rotating table of offsets, allowing the last 4K phrases (rather than 4K bytes) to be reached. The decompressor must reconstruct the phrase table (but not the hash table).
lzrw3 replaces the 12 bit length field with a 12 bit index into the hash table. The decompressor must reconstruct the hash table.
lzrw3-a uses a deep hash table (8 offsets per hash) with LRU replacement.
lzrw5 uses LZW. The dictionary is implemented as a tree.
(Have info that should be added here? E-mail.)
The actual program(s) take no arguments (even though we have presented the programs in that way here), they are compiled into separate executables. The program lacks version number so we use '0'.
Ver | Rating | CPR | DPR | S.E. | R.E. | Ratio | C. kB/s | D. kB/s | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | ||||||||||||
0 | 0 | 0 | 0 | 102 | 0 | 1.771 | 117926 | 193682 | ||||
1-a | ||||||||||||
0 | 0 | 0 | 0 | 117 | 0 | 1.786 | 125543 | 215997 | ||||
2 | ||||||||||||
0 | 0 | 0 | 0 | 153 | 0 | 1.855 | 146920 | 189938 | ||||
3 | ||||||||||||
0 | 0 | 0 | 0 | 172 | 0 | 1.904 | 144866 | 177061 | ||||
3-a | ||||||||||||
0 | 0 | 0 | 0 | 134 | 0 | 2.028 | 59561 | 164616 | ||||
5 | ||||||||||||
0 | 0 | 0 | 0 | 8 | 0 | 1.653 | 10165 | 177207 |