(Extremely) tiny decompressors
What are the smallest decompressors that you know about? I am talking about smallest in size (e.g. the smallest number of bytes their machine code occupies). To the best of my knowledge, the best compression ratios for extremely small decompressor sizes tend to be achieved for very primitive LZ77/LZSS style compressors. Byte-aligned most likely. The shortest non-byte-aligned decompressors that I know are 30-40 bytes long. The shortest byte-aligned decompressors that I know are 20-30 bytes long (insane, right?). Two examples of such extremely compact decompressors are given by Charles Bloom here: http://cbloomrants.blogspot.com/2011...z-decoder.html
In his post, Charles Bloom also gives an example of a Predictor-style decompressor, which is also under 20 bytes long. I cannot claim my experiments with Predictor-style compression have ever been impressive, but I am open to any ideas outside of LZ77/LZSS-style dictionary compression and am open to consider other compression algorithms (as long as decompression is simple enough). So,
1) Please share if you know any extremely compact decompressors - under 40 bytes basically, - the platform does not really matter, but I would be surprised to see examples outsize of x86, m68k or older 8-bit CPUs.
2) Do you know any algorithms whose decompressor would fit into 40 bytes of assembly code and would still be able to compete with LZ77/LZSS style compression?