This is a small collection of programs I created to demonstrate some of the fundamental algorithms used in data compression. These are not the most efficient, optimised implimentations - there are libraries that do it better. They are rather intended for two purposes:
- Demonstrating the algorithms for educational purposes.
- Testing how a given input will be handled as an aid in deciding how best to compress it.
These programs all accept an input on stdin and output on stdout. They can be chained by pipes, or the output fed into my file-summary utility to generate a graphical description of the output.
The collection impliments the Burrows-Wheeler transform (On arbitary, and possibly very large block sizes), the move-to-front transform and run-length encoding. I also included my 'decapital' transformation, ineffectual as it is in almost all cases.
It's a tangle of untidy C, but the programs are simple and do not deviate from the most basic ANSI C standard, so you should have no trouble compiling them.