This was a nice article.
In the comments Jarek Duda discusses some of the more technical details of the implementation and of his ANS paper that enabled this writeup. One cool thing I noticed is this:
Another advantage of ANS is that we can slightly perturb
the initialization procedure using a pseudo-random number
generator initialized with cryptographic key (e.g. and
also the number of block): for example choosing between
the lowest weight symbol and the second best one.
This way we get simultaneously a decent encryption for free.
Does anyone know what modern compression tools use for entropy coding? Do they all use huffman and would this help them increase speed? What about gzip for HTTP transactions?