The Q-Coder is an important new development in arithmetic coding. It combines a simple but efficient arithmetic approximation for the multiply operation, a new formalism which yields optimally efficient hardware and software implementations, and a new form of probability estimation. This paper describes the concepts which allow different, yet compatible, optimal software and hardware implementations. In prior binary arithmetic coding algorithms, efficient hardware implementations favored ordering the more probable symbol (MPS) above the less probable symbol (LPS) in the current probability interval. Efficient software implementation required the inverse ordering convention. In this paper it is shown that optimal hardware and software encoders and decoders can be achieved with either symbol ordering. Although optimal implementation for a given symbol ordering requires the hardware and software code strings to point to opposite ends of the probability interval, either code string can be converted to match the other exactly. In addition, a code string generated using one symbol-ordering convention can be inverted so that it exactly matches the code string generated with the inverse convention. Even where bit stuffing is used to block carry propagation, the code strings can be kept identical.
[1]
Joan L. Mitchell,et al.
Software Implementations of the Q-Coder
,
1988,
IBM J. Res. Dev..
[2]
Joan L. Mitchell,et al.
Probability Estimation for the Q-Coder
,
1988,
IBM J. Res. Dev..
[3]
Glen G. Langdon,et al.
A simple general binary source code
,
1982,
IEEE Trans. Inf. Theory.
[4]
Glen G. Langdon,et al.
Universal modeling and coding
,
1981,
IEEE Trans. Inf. Theory.
[5]
Jorma Rissanen,et al.
Compression of Black-White Images with Arithmetic Coding
,
1981,
IEEE Trans. Commun..
[6]
Ronald Arps,et al.
A Multi-Purpose VLSI Chip for Adaptive Data Compression of Bilevel Images
,
1988,
IBM J. Res. Dev..
[7]
Norman Abramson,et al.
Information theory and coding
,
1963
.
[8]
Glen G. Langdon,et al.
An Overview of the Basic Principles of the Q-Coder Adaptive Binary Arithmetic Coder
,
1988,
IBM J. Res. Dev..
[9]
Glen G. Langdon,et al.
An Introduction to Arithmetic Coding
,
1984,
IBM J. Res. Dev..