On the implementation of minimum redundancy prefix codes

@article{Moffat1997OnTI,
  title={On the implementation of minimum redundancy prefix codes},
  author={Alistair Moffat and Andrew Turpin},
  journal={IEEE Trans. Commun.},
  year={1997},
  volume={45},
  pages={1200-1207}
}
Minimum redundancy coding (also known as Huffman coding) is one of the enduring techniques of data compression. Many efforts have been made to improve the efficiency of minimum redundancy coding, the majority based on the use of improved representations for explicit Huffman trees. In this paper, we examine how minimum redundancy coding can be implemented efficiently by divorcing coding from a code tree, with emphasis on the situation when n is large, perhaps on the order of 10/sup 6/. We review… 

Figures and Tables from this paper

A fast algorithm for calculating minimum redundancy prefix codes with unsorted alphabet

  • Yupeng TaiHaibin Wang
  • Computer Science
    9th International Conference on Communications and Networking in China
  • 2014
An algorithm of calculating the minimum-redundancy codes directly with unsorted alphabet consumes only O(nlog(n/k) time in the worst cases, where n is the alphabet size and k is the longest codeword length.

Incremental calculation of minimum-redundancy length-restricted codes

The package-merge strategy of Larmore and Hirschberg (1990) is a two-stage mechanism for creating minimum-redundancy length-restricted codes and the underlying strategy, here called ORIGINAL-PM, requires O(nL) time and space.

D-ary Bounded-Length Huffman Coding

  • M. Baer
  • Computer Science
    2007 IEEE International Symposium on Information Theory
  • 2007
The Package-Merge approach is generalized without increasing complexity in order to introduce a minimum codeword length, lmin, to allow for objective functions other than the minimization of expected codewORD length, and to be applicable to both binary and nonbinary codes; non binary codes were previously addressed using a slower dynamic programming approach.

Decoding prefix codes

It is found that table‐based decoding techniques offer fast operation, provided that the size of the table is kept relatively small, and that approximate coding techniques can offer higher decoding rates than Huffman codes with varying degrees of loss of compression effectiveness.

On-line adaptive canonical prefix coding with bounded compression loss

A controlled method for trading compression loss for coding speed by approximating symbol frequencies with a geometric distribution is presented and the result is an adaptive MRP coder that is asymptotically efficient and also fast in practice.

Huffman Coding

A tutorial on Huffman coding is presented and some of the developments that have flowed as a consequence of Huffman’s original discovery are surveyed, including details of code calculation and of encoding and decoding operations.

Performance comparison of Huffman Coding and Double Huffman Coding

The technique of Huffman Coding and Double Huffman coding are discussed and their performance analysis is compared to achieve a better result.

Piecewise integer mapping for arithmetic coding

By asking afresh exactly what it is the arithmetic coder must do, it is shown how much of the complexity of current coders can be dispensed with and an analysis shows the average loss caused by the revised coder to be bounded in an expected sense.

Generalizations of Length Limited Huffman Coding for Hierarchical Memory Settings

This paper studies the problem of designing prefix-free encoding schemes having minimum average code length that can be decoded efficiently under a decode cost model that captures memory hierarchy induced cost functions and presents an algorithm to solve this problem in time O(nD).

A fast algorithm for constructing nearly optimal prefix codes

A new algorithm and implementation are proposed that achieve nearly optimal coding without sorting the probabilities or building a tree of codes, suitable for real‐time compression of large volumes of data.
...

References

SHOWING 1-10 OF 31 REFERENCES

High speed search and memory efficient Huffman coding HDTV

  • R. Hashemian
  • Computer Science
    1993 IEEE International Symposium on Circuits and Systems
  • 1993
To speed up the process of search for a symbol in a Huffman tree and to reduce the memory size, a tree clustering algorithm is proposed to avoid high sparsity of the tree.

Efficient Decoding of Compressed Data

The multibit scheme which uses the concept of k‐bit trees to decode up to k bits at a time and the optimal scheme is storage efficient, does not require changes to the encoding process, and is suitable for hardware implementations.

Data structure of Huffman codes and its application to efficient encoding and decoding

The tree structure is presented by a two-dimensional array which can be applied for the decoding of Huffman codes as a state transition table of the finite-state decoding automaton.

A Fast and Space - Economical Algorithm for Length - Limited Coding

The size of the work space can be reduced to O(L2), which represents a useful improvement, since for practical purposes L is Θ(log n).

Arithmetic coding revisited

Changes to the coding procedure that reduce the number of multiplications and divisions and permit them to be done to low precision; the increased range of probability approximations and alphabet sizes that can be supported using limited precision calculation; data structures for support of arithmetic coding on large alphabets; the interface between the modelling and coding subsystems; the use of enhanced models to allow high performance compression.

In-Place Calculation of Minimum-Redundancy Codes

It is shown that if p is sorted then it is possible to calculate the array l in-place, with l i overwriting p i , in O(n) time and using O(1) additional space.

A Modified Huffman Procedure with Reduced Memory Requirement

This correspondence proposes a modification of the Huffman procedure to reduce the size of the required memory under those conditions when some of the source messages are highly improbable.

Efficient decoding of prefix codes

A special case of the data compression problem is presented, in which a powerful encoder transmits a coded file to a decoder that has severely constrained memory. A data structure that achieves

A method for the construction of minimum-redundancy codes

  • D. Huffman
  • Computer Science, Business
    Proceedings of the IRE
  • 1952
A minimum-redundancy code is one constructed in such a way that the average number of coding digits per message is minimized.

A Huffman-Shannon-Fano code

A variable-word-length minimum-redundant code is described. It has the advantages of both the Huffman and Shannon-Fano codes in that it reduces transmission time, storage space, translation table