The LZW compressor encodes strings by reference to a dynamically generated dictionary. It exploits the redundancy of data for efficient compression by compressing uses up to 13 bit codewords. Each entry in the dictionary is a string and it is initialized with every possible byte by storing the byte in a 16384 entry two way skewed cache structure and as each entry is a 25 bit value it creates the hash table with 51200 bytes.
Features
Compression enable/disable
LZW compression/decompression
Variable length code words (up to 13 bits)
Automatic compression abort when output compressed size is greater than the input data size