English

A tutorial on the range variant of asymmetric numeral systems

Information Theory 2020-10-08 v3 math.IT Computation

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 https://raw.githubusercontent.com/j-towns/ans-notes/master/rans.py.

Keywords

Cite

@article{arxiv.2001.09186,
  title  = {A tutorial on the range variant of asymmetric numeral systems},
  author = {James Townsend},
  journal= {arXiv preprint arXiv:2001.09186},
  year   = {2020}
}
R2 v1 2026-06-23T13:20:17.158Z