Summary form only given. The problem of computing the minimum redundancy codes as we observe symbols one by one has received a lot of attention. However, existing algorithms implicitly assumes that either we have a small alphabet or that we have an arbitrary amount of memory at our disposal for the creation of a coding tree. In real life applications one may need to encode symbols coming from a much larger alphabet, for e.g. coding integers. We introduce a new algorithm for adaptive Huffman coding, called algorithm M, that uses space proportional to the number of frequency classes. The algorithm uses a tree with leaves that represent sets of symbols with the same frequency, rather than individual symbols. The code for each symbol is therefore composed of a prefix (specifying the set, or the leaf of the tree) and a suffix (specifying the symbol within the set of same-frequency symbols). The algorithm uses only two operations to remain as close as possible to the optimal: set migration and rebalancing. We analyze the computational complexity of algorithm M, and point to its advantages in terms of low memory complexity and fast decoding. Comparative experiments were performed with algorithm M on the Calgary corpus, with static Huffman coding as well as with another adaptive Huffman coding algorithms, algorithm /spl Lambda/ of Vitter. Experiments show that M performs comparably or better than the other algorithms but requires much less memory. Finally, we present an improved algorithm, M/sup +/, for non-stationary data, which models the distribution of the data in a fixed-size window in the data sequence.
[1]
Alistair Moffat,et al.
On the implementation of minimum-redundancy prefix codes
,
1996,
Proceedings of Data Compression Conference - DCC '96.
[2]
VitterJeffrey Scott.
Design and analysis of dynamic Huffman codes
,
1987
.
[3]
D. Huffman.
A Method for the Construction of Minimum-Redundancy Codes
,
1952
.
[4]
Robert G. Gallager,et al.
Variations on a theme by Huffman
,
1978,
IEEE Trans. Inf. Theory.
[5]
Douglas W. Jones,et al.
Application of splay trees to data compression
,
1988,
CACM.
[6]
Peter Deutsch,et al.
DEFLATE Compressed Data Format Specification version 1.3
,
1996,
RFC.
[7]
Gadiel Seroussi,et al.
On adaptive strategies for an extended family of Golomb-type codes
,
1997,
Proceedings DCC '97. Data Compression Conference.
[8]
Donald E. Knuth,et al.
Dynamic Huffman Coding
,
1985,
J. Algorithms.
[9]
Alistair Moffat,et al.
On the implementation of minimum redundancy prefix codes
,
1997,
IEEE Trans. Commun..
[10]
Jeffrey Scott Vitter,et al.
Design and analysis of dynamic Huffman codes
,
1987,
JACM.
[11]
Alistair Moffat,et al.
In-Place Calculation of Minimum-Redundancy Codes
,
1995,
WADS.