Context-adaptive Binary Arithmetic Coding with Fixed-length Codewords

Entropy coding is an indispensable component in many coding systems to reduce the statistical redundancy of data. Currently, the most popular entropy coding technique is arithmetic coding. This work presents a context-adaptive binary arithmetic coder suitable to be used in image and video coding schemes. The main insight behind the proposed coder is that it generates (many) codewords of fixed length instead of producing a single, long, codeword of variable size. This reduces its computational complexity without affecting coding efficiency.

ABSTRACT: Context-adaptive binary arithmetic coding is a widespread technique in the field of image and video coding. Most state-of-the-art arithmetic coders produce a (long) codeword of a priori unknown length. Its generation requires a renormalization procedure to permit progressive processing. This paper introduces two arithmetic coders that produce multiple codewords of fixed length. Contrarily to the traditional approach, the generation of fixed-length codewords does not require renormalization since the whole interval arithmetic is stored in the coder's internal registers. The proposed coders employ a new context-adaptive mechanism based on variable-size sliding window that estimates with high precision the probability of the symbols coded. Their integration in coding systems is straightforward as demonstrated within the framework of JPEG2000. Experimental tests indicate that the proposed coders are computationally simpler than the MQ coder of JPEG2000 and the M coder of HEVC while achieving superior coding efficiency.

The arithmetic coders introduced in this work are implemented in Java and incorporate procedures to allow their use in a large variety of applications (see the manuscript for a detailed explanation). The implementations employed to generate the experimental results of this work are left freely available:

   MQ CODER   
(source.java)
   M CODER (HEVC)   
(source.java)
 FLW CODER 
(source.java)
 FL2W CODER 
(source.java)
Also, these coders use the ByteStream class
(source.java)

PAPER: F. Auli-Llinas, Context-adaptive binary arithmetic coding with fixed-length codewords, IEEE Trans. Multimedia., vol. 17, no. 8, pp. 1385-1390, Aug. 2015. (DOI:10.1109/TMM.2015.2444797, doc.pdf168K)