Random access decompression using binary arithmetic coding

We present an algorithm based on arithmetic coding that allows decompression to start at any point in the compressed file. This random access requirement poses some restrictions on the implementation of arithmetic coding and on the model used. Our main application area is executable code compression for computer systems where machine instructions are decompressed on-the-fly before execution. We focus on the decompression side of arithmetic coding and we propose a fast decoding scheme based on finite state machines. Furthermore, we present a method to decode multiple bits per cycle, while keeping the size of the decoder small.

[1]  R. Nigel Horspool,et al.  Data Compression Using Dynamic Markov Modelling , 1987, Comput. J..

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

[3]  James Gosling,et al.  Java Intermediate Bytecode , 1995, Intermediate Representations Workshop.

[4]  Abraham Lempel,et al.  A universal algorithm for sequential data compression , 1977, IEEE Trans. Inf. Theory.

[5]  Wayne H. Wolf,et al.  Code compression for embedded systems , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[6]  Ehud D. Karnin,et al.  High efficiency, multiplication free approximation of arithmetic coding , 1991, [1991] Proceedings. Data Compression Conference.

[7]  A. Wolfe,et al.  Executing Compressed Programs On An Embedded RISC Architecture , 1992, [1992] Proceedings the 25th Annual International Symposium on Microarchitecture MICRO 25.

[8]  J. Vitter,et al.  Practical Implementations of Arithmetic Coding , 1991 .

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

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

[11]  J. S. Vitter,et al.  Arithmetic coding for data compression : Data compression , 1994 .

[12]  James Gosling,et al.  Java Intermediate Bytecode , 1995, Intermediate Representations Workshop.

[13]  Ian H. Witten,et al.  Data Compression Using Adaptive Coding and Partial String Matching , 1984, IEEE Trans. Commun..

[14]  Ian H. Witten,et al.  Text Compression , 1990, 125 Problems in Text Algorithms.

[15]  Kurt Keutzer,et al.  Code density optimization for embedded DSP processors using data compression techniques , 1995, Proceedings Sixteenth Conference on Advanced Research in VLSI.

[16]  Trevor Mudge,et al.  An Instruction Stream Compression Technique 1 , 1996 .