The earlier introduced arithmetic coding idea has been generalized to a very broad and flexible coding technique which includes virtually all known variable rate noiseless coding techniques as special cases. An outstanding feature of this technique is that alphabet extensions are not required. A complete decodability analysis is given. The relationship of arithmetic coding to other known nonblock codes is illuminated. IntroductionIn the excellent textbook on coding [1], Abramson neatly splits all codes into two classes: block codes and nonblock codes. Of these he selects only the block codes as being of much use and for which the important decodability results hold. His term, block code, is characterized by the familiar process in which the code words of the symbols are concatenated to form coded messages. A further important subclass of block codes is the class of instantaneous codes for which a both necessary and sufficient condition is the prefix property: No code word is to be a prefix of another. Finally, as there is hardly any conceivable reason to use other than compact codes, which can be formed by Huffman's algorithm, it appears that all "useful" noiseless coding should be confined to Huffman codes. But that has not turned out to be the case at all, mainly because of the necessity to resort to the alphabet extension to achieve a desired compression, particularly for small alphabets. We must therefore conclude that block codes, despite their simplicity and well-known decodability theory, are unsatisfactory to cover all coding needs, especially when alphabet extension is required.In the neglected and more diffuse class of nonblock codes, two types of codes have appeared: Elias' code [1], and the so-called enumerative codes [2, 3], which, although clearly beset by the practical difficulty of requiring unlimited arithmetic precision, have the attractive feature that no alphabet extension is needed to achieve near-optimum compression. More recently, further classes of nonblock codes were introduced by Rissanen [4] and (not independently) by Pasco [5], which have the same attractive feature of near-optimum compression and whose practicability is comparable to the best block codes. Although these codes have a number of common features, to some extent clarified by Pasco [5], they still remain as so many distinct codes, and they are totally different from the traditional block codes. We should add that in recent textbooks the notion of block code has been used whenever "blocking" is used, be it for alphabet extension or for truncation of the numbers represented by a symbol string to a manageable size. Although virtually all codes then become block codes, such a unification is meaningless because the same decodability results do not hold for, say, the recently discovered arithmetic codes.In this paper we study coding in which the basic notions in block codes have been generalized as follows: concatenation to addition, code words to rational numbers with finitely many fractional bits, integer lengths to rational le...
An Introduction to Arithmetic Coding Arithmetic coding is a data compression technique that encodes data (the data string) by creating a code string which represents a fractional value on the number line between 0 and 1. The coding algorithm is symbolwise recursive; i.e., it operates upon and encodes (decodes) one data symbol per iteration or recursion. On each recursion, the algorithm successively partitions an interval of the number line between 0 and I , and retains one of the partitions as the new interval. Thus, the algorithm successively deals with smaller intervals, and the code string, viewed as a magnitude, lies in each of the nested intervals. The data string is recovered by using magnitude comparisons on the code string to recreate how the encoder must have successively partitioned and retained each nested subinterval. Arithmetic coding differs considerably from the more familiar compression coding techniques, such as prefix (Huffman) codes. Also, it should not be confused with error control coding, whose object is to detect and correct errors in computer operations. This paper presents the key notions of arithmetic compression coding by means of simple examples.
Blahut [14, p. 6621 suggests that E,(R, W) and D,(R) are actually equal. The very example of [ 14, p. 6651 shows, however, that this cannot hold in general, for E,(R, W")/n can be larger than E,(R, W)-even if the channel W has zero-error capacity equal to zero-while D,(R) does not increase when passing from X to !X.".
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.