Allocating small code space to frequent symbols can achieve data compression. The well-known Huffman coding technique is the optimal method that allocates code space in an integral number of bits. By allocating code s...
详细信息
Allocating small code space to frequent symbols can achieve data compression. The well-known Huffman coding technique is the optimal method that allocates code space in an integral number of bits. By allocating code space precisely to a fraction of a bit, arithmetic coding achieves a better efficiency than Huffman coding. In arithmetic coding, the range of the code points is usually kept in [1/2, 1) by applying a normalization technique. This paper proposes a method that adjusts the range in [1/2(d), 1), The range is allowed to decrease below 1/2 without applying normalization each time. This method reduces the number of shifts in normalization to lid. When d = 8, normalization can be implemented byte-by-byte. This is particularly advantageous to applications where inputs and outputs are handled in bytes. We apply this method both to adaptive coding and semi-static coding. Timing results on four platforms are presented. Copyright (C) 1999 John Whey & Sons, Ltd.
暂无评论