The Walrus Binary Entropy Coder

version 0.8
 

Arithmetic coders do their job so well that they're nearly synonymous with it. The Walrus is an example of a coder that does the same job very nearly as well, using a different kind of mapping between symbols and bits.

This essay is literate Python (block comments interspersed with code) that clarifies the job requirements and pinpoints where coders can differ and still meet the requirements. The code includes both coders, and correctness tests, and there's a separate notebook that compares the two coders' efficiency.

The full piece (45K .txt)

The file is renamed .txt here because of an issue with my web server's configuration.

The section about efficiency is below in images-inlined HTML as well as the original ipynb form.

Makefile (1K)
Walrus_thumb2.png (10K)
eggmanstatue.jpg (22K)
i_has_a_bucket.jpg (116K)
i_has_a_bucket_crop.jpg (58K)
index.html (2K)
makeindex.php.txt (4K)
pieversuscake.png (28K)
test1_12.out (9K) Data used by the Jupyter notebook
walrus_effish_graphs.html (852K) [N] Notebook as HTML with efficiency graphs
walrus_effish_graphs.ipynb (260K) [N] (Jupyter notebook source)
walrus_piece_py.txt (45K) The paper as literate code

Walrus with bucket Eggman with chicken and eggs Arithmetic coders slice pies;
the Walrus subdivides brownies.
   
This static page was made with a php script. Last change January 22, 2021.
--Steve Witham Up to my temporary home page.