===== The Z-Coder Adaptive Binary Coder ===== //Abstract//: We present the Z-Coder, a new adaptive data compression coder for coding binary data. The Z-Coder is derived from the Golomb run-length coder, and retains most of the speed and simplicity of the earlier coder. The Z-Coder can also be thought of as a multiplication-free approximate arithmetic coder, showing the close relationship between run-length coding and arithmetic cod- ing. The Z-Coder improves upon existing arithmetic coders by its speed and its principled design. In this paper we present a derivation of the Z-Coder as well as details of the construction of its adaptive probability estimation table. Léon Bottou, Paul G. Howard and Yoshua Bengio: **The Z-Coder Adaptive Binary Coder**, //Proceedings IEEE Data Compression Conference 1998//, IEEE, Snowbird, April 1998. [[http://leon.bottou.org/publications/djvu/dcc-zcoder-1998.djvu|dcc-zcoder-1998.djvu]] [[http://leon.bottou.org/publications/pdf/dcc-zcoder-1998.pdf|dcc-zcoder-1998.pdf]] [[http://leon.bottou.org/publications/psgz/dcc-zcoder-1998.ps.gz|dcc-zcoder-1998.ps.gz]] @inproceedings{bottou-howard-bengio-98, author = {Bottou, L'\{e}on and Howard, Paul G. and Bengio, Yoshua}, title = {The {Z}-Coder Adaptive Binary Coder}, booktitle = {Proceedings IEEE Data Compression Conference 1998}, publisher = {IEEE}, month = {April}, address = {Snowbird}, year = {1998}, url = {http://leon.bottou.org/papers/bottou-howard-bengio-98}, } ==== Erratum and Precisions ==== * Page 3, before the pseudo-code of the Golomb coder, the variable //Δ// should be //1/2m// instead of //1/m//. * All decoders described in the paper assume that the compressed bitstream is followed by an infinite sequence of ''1''. * The DjVu code base contains a complete implementation of the Z-Coder. See files [[http://djvu.cvs.sourceforge.net/djvu/djvulibre-3.5/libdjvu/ZPCodec.h?revision=1.9&view=markup|ZPCodec.h]] and [[http://djvu.cvs.sourceforge.net/djvu/djvulibre-3.5/libdjvu/ZPCodec.cpp?revision=1.10&view=markup|ZPCodec.cpp]]. You should define the compilation symbol ''ZCODER'' in order to compile the Z-Coder instead of the ZP-Coder which is used by DjVu. The ZP-Coder is not very interesting: it was designed to appease the AT&T lawyers.