> The theoretical basis of zstd[2] seems more complicated than that of LZMA
Well, it's new, from 2013/14, but it's actually not complicated,
simpler and easier to understand and implement than arithmetic coding. In
simple terms it is 'bit back arithmetic coding'. Zstd, and I guess
LZFSE, are table version, called tANS, of regular ANS, and its implementation
called rANS; r - for range I guess, or to refer to range coding. >From what I
tried, arithmetic/range coding is more complex, and slower than (r)ANS.
Original papers date back to 2009/2013 Asymmetric numeral systems; by original
inventor - Jaroslaw Duda arxiv.org arxiv.org/abs/0902.0271 Asymmetric numeral
systems: entropy coding combining speed of Huffman coding with compression rate
of arithmetic coding arxiv.org arxiv.org/abs/1311.2540 but I found the best,
and most palatable explanation by Robert Bamler Understanding Entropy Coding
With Asymmetric Numeral Systems (ANS): a Statistician's Perspective
arxiv.org arxiv.org/abs/2201.01741 Data Compression With Deep Probabilistic
Models robamler.github.io https://robamler.github.io/teaching/compress21/
robamler.github.io https://robamler.github.io/teaching/compress22/
robamler.github.io https://robamler.github.io/teaching/compress23/ All the
best