Block arithmetic coding for source compression

We introduce "Block Arithmetic Coding" (BAC), a technique for entropy coding that combines many of the advantages of ordinary stream arithmetic coding with the simplicity of block codes. The code is variable length in to fixed out (V to F), unlike Huffman coding which is fixed in to variable out (F to V). We develop two versions of the coder: 1) an optimal encoder based on dynamic programming arguments, and 2) a suboptimal heuristic based on arithmetic coding. The optimal coder is optimal over all V to F complete and proper block codes. We show that the suboptimal coder achieves compression that is within a constant of a perfect entropy coder for independent and identically distributed inputs. BAC is easily implemented, even with large codebooks, because the algorithms for coding and decoding are regular. For instance, codebooks with 2/sup 32/ entries are feasible. BAC also does not suffer catastrophic failure in the presence of channel errors. Decoding errors are confined to the block in question. The encoding is in practice reasonably efficient. With i.i.d. binary inputs with P(1)=0.95 and 16 bit codes, entropy arguments indicate at most 55.8 bits can be encoded; the BAC heuristic achieves 53.0 and the optimal BAC achieves 53.5. Finally, BAC appears to be much faster than ordinary arithmetic coding. >

[1]  Peter Elias,et al.  Universal codeword sets and representations of the integers , 1975, IEEE Trans. Inf. Theory.

[2]  David L. Neuhoff,et al.  Variable-to-fixed length codes provide better large deviations performance than fixed-to-variable length codes , 1992, IEEE Trans. Inf. Theory.

[3]  Ian H. Witten,et al.  Arithmetic coding for data compression , 1987, CACM.

[4]  Glen G. Langdon,et al.  An Introduction to Arithmetic Coding , 1984, IBM J. Res. Dev..

[5]  Glen G. Langdon,et al.  An Overview of the Basic Principles of the Q-Coder Adaptive Binary Arithmetic Coder , 1988, IBM J. Res. Dev..

[6]  S. Golomb Run-length encodings. , 1966 .

[7]  Julia Abrahams,et al.  Synchronization of binary source codes , 1986, IEEE Trans. Inf. Theory.

[8]  D. Huffman A Method for the Construction of Minimum-Redundancy Codes , 1952 .

[9]  Glen G. Langdon,et al.  Arithmetic Coding , 1979 .

[10]  R. Hunter,et al.  International digital facsimile coding standards , 1980, Proceedings of the IEEE.

[11]  Inder Jeet Taneja,et al.  Bounds on the redundancy of Huffman codes , 1986, IEEE Trans. Inf. Theory.

[12]  Frederick Jelinek,et al.  On variable-length-to-block coding , 1972, IEEE Trans. Inf. Theory.

[13]  Jorma Rissanen,et al.  A multiplication-free multialphabet arithmetic code , 1989, IEEE Trans. Commun..

[14]  Solomon W. Golomb,et al.  Run-length encodings (Corresp.) , 1966, IEEE Trans. Inf. Theory.

[15]  Richard E. Blahut,et al.  Principles and practice of information theory , 1987 .

[16]  Brian Parker Tunstall,et al.  Synthesis of noiseless compression codes , 1967 .

[17]  Mauro Guazzo,et al.  A general minimum-redundancy source-coding algorithm , 1980, IEEE Trans. Inf. Theory.

[18]  Alfredo De Santis,et al.  New bounds on the redundancy of Huffman codes , 1991, IEEE Trans. Inf. Theory.

[19]  Jorma Rissanen,et al.  Generalized Kraft Inequality and Arithmetic Coding , 1976, IBM J. Res. Dev..

[20]  Julia Abrahams,et al.  On the redundancy of optimal binary prefix-condition codes for finite and infinite sources , 1987, IEEE Trans. Inf. Theory.

[21]  Jacob Ziv,et al.  Variable-to-fixed length codes are better than fixed-to-variable length codes for Markov sources , 1990, IEEE Trans. Inf. Theory.

[22]  Charles G. Boncelet,et al.  Block Arithmetic Coding for Markov Sources , 1993, Proceedings. IEEE International Symposium on Information Theory.

[23]  Abraham Lempel,et al.  Compression of individual sequences via variable-rate coding , 1978, IEEE Trans. Inf. Theory.

[24]  Jukka Teuhola,et al.  Piecewise arithmetic coding , 1991, [1991] Proceedings. Data Compression Conference.

[25]  Terry A. Welch,et al.  A Technique for High-Performance Data Compression , 1984, Computer.

[26]  Matti Jakobsson Huffman Coding in Bit-Vector Compression , 1978, Inf. Process. Lett..

[27]  Abraham Lempel,et al.  On the Complexity of Finite Sequences , 1976, IEEE Trans. Inf. Theory.