A tutorial on the range variant of asymmetric numeral systems

James Townsend
DOI: https://doi.org/10.48550/arXiv.2001.09186
2020-10-07
Abstract:This paper is intended to be a brief and accessible introduction to the range variant of asymmetric numeral systems (ANS), a system for lossless compression of sequences which can be used as a drop in replacement for arithmetic coding (AC). Because of the relative simplicity of ANS, we are able to provide enough mathematical detail to rigorously prove that ANS attains a compression rate close to the Shannon limit. Pseudo-code, intuitive interpretation and diagrams are given alongside the mathematical derivations. A working Python demo which accompanies this tutorial is available at <a class="link-external link-https" href="https://raw.githubusercontent.com/j-towns/ans-notes/master/rans.py" rel="external noopener nofollow">this https URL</a>.
Information Theory,Computation
What problem does this paper attempt to address?