Get Started
On this page
The goal of this guide is to be comprehensive guide to lossless compression algorithms. I’ve decided to create this guide after using many different resources to learn about these algorithms, often wishing that there was a central location with all the information. No prior knowledge on compression algorithms is required, but some programming knowledge is helpful to understand the code snippets. The coding language that will be used is C++, but any language that allows byte manipulation could be used to build the same algorithms.
The algorithms mentioned in this guide can be implemented in many ways. Since this site is for educational purposes, I’ve implemented them here in a simple way. Potential improvements for each algorithm will be mentioned at the end of its article.
Lab
Before you start this resource, I recommend that you head over to Lab page and experiment with a few different algorithms. Go on, try entering some simple inputs like your name repeated 3 times. See how each algorithm deals with the redundancy, notice some will work better than others.
At this point it’s normal for you to not understand the outputs of the algorithms, but as you read through the almanac it will all start making sense. Make sure to keep going back to the playground to try out what you’ve learned.
Contributing
This guide, along with all the algorithm implementations are open source. If you notice a mistake in any of the algorithms or in the guide, please create a pull request or let me know.
If you want me to implement an algorithm, create an issue on the repository on email me.