Context-Adaptive Binary Arithmetic Coding
bertolami.com
bertolami.com
Actually the Wikipedia page for CABAC seems a bit confused and fanboyish on some points. Maybe I am missing something, but "It encodes binary symbols, which keeps the complexity low and allows probability modelling for more frequently used bits of any symbol" sounds like garbage to me...
http://www.inference.phy.cam.ac.uk/dasher/
As a keyboard on your Android device:
https://play.google.com/store/apps/details?id=dasher.android
One problem with CABAC is that it is highly serial, and ends up being directly clock rate limited in a lot of hardware engines.
The general concept of arithmetic coding isn't patented. CABAC has some notable performance issues when done in software; IIRC they messed up benchmarking different algorithms, so instead of a multiply in one stage there's an array lookup. Unnecessary memory accesses will kill you.
For instance the arithmetic coding patents needed for jpeg are expired, yet almost no browser supports it: https://bugzilla.mozilla.org/show_bug.cgi?id=680385