IBM Journal of Research and Development · 1984 · 525 citations · 16 references
ComputingComputer EngineeringComputer ScienceAlgorithmsComputer ArchitectureData StructuresCoding TheoryData CodingData CompressionError Control CodingError-correcting CodesArithmetic CodingCompressionEncoding AlgorithmsError ControlHuffman CodingNumber Line Comparison
Arithmetic coding compresses data by mapping a data string to a fractional value between 0 and 1, differing from Huffman codes and unrelated to error‑control coding. The paper introduces arithmetic coding concepts through simple examples. The algorithm recursively partitions the [0,1] interval for each symbol, retaining a subinterval to encode the data, and decodes by comparing the code magnitude to reconstruct the successive partitions.
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 1, 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.
16
A Mathematical Theory of Communication
Claude E. Shannon · Bell System Technical Journal · 1948 · 80.7K citations
J. Rissanen, Glen G. Langdon · IBM Journal of Research and Development · 1979 · 739 citations
Thomas M. Cover · IEEE Transactions on Information Theory · 1973 · 508 citations