flâneur — a map of the web's best reading

Understanding the ANS Compressor

kedartatwawadi.github.io · 4,399 words · saved by 1 readers

Recently while attending a talk at the Stanford Compression Forum, I heard about a new class of entropy coders called the Asymmetric Numeral Systems coders (ANS). Considering Arithmetic coding and Huffman coding [1] have essentially resolved the problem of entropy coding, it is surprising that there is a new development in the field of entropy coding. Today, just a few years after the original paper [2] came out, ANS has already been incorporated into numerous compressors, including Zstandard (facebook), LZFSE (Apple), CRAM (Genomic SAM file compression) etc. The ANS Coder is not a single compressor but a class of entropy coders for a given distribution. The most important thing they achieve is obtaining very accurate compression at very high compression and decompression speeds (like Pied Piper, ANS significantly improves upon the Weissman score :) ). In this series of posts, we will try to improve our understanding of the ANS family of coders. But before we do that, lets revise the t

\star + - = \alpha \lambda \beta R \alpha= \beta= \beta = 0 \beta=1 \alpha = 1/\lambda_i \text{model} 0 p_1 0 \bar{p}_1 2\sqrt{\beta} \lambda_i \lambda_i = 0 \alpha > 1/\lambda_i \max\{|\sigma_1|,|\sigma_2|\} > 1 x_i^k - x_i^* \xi_i \beta = (1 - \sqrt{\alpha \lambda_i})^2 What is Asymmetric Numeral Systems? Understanding the new entropy coder family Recently while attending a talk at the Stanford Compression Forum, I heard about a new class of entropy coders called the Asymmetric Numeral Systems coders (ANS). Considering Arithmetic coding and Huffman coding have essentially resolved the proble

Explore this link on the map →

related reading