Data compression is the science of taking big computer files, shrinking them down for easy transport or storage and then expanding them back into their original size and shape later on when you need to use them again. It gets used everywhere from computer backups to streaming video to software downloads and more.
But how does it work? How do you take 100 MB of data and somehow fit it into an only 10 MB file?
Let’s find out by writing our own simple compression algorithm!
wrcslow.lisp – Our super slow but functional prototype from parts 1-5
wrcfast.lisp – The much faster optimized code from parts 7 and 8