今天知道了算术编码,比哈夫曼好的一个无损压缩算法。
Equivalently to the Huffman coding, the arithmetical coding tries to evaluate the probability with which certain symbols appear and to optimize the length of the required code. The AC achieves an optimum which exactly corresponds to the theoretical specifications of the information theory. A slight degradation results from inaccuracies, which are caused by correction mechanisms for the interval division.
In contrast to this the Huffman coding always produces rounding errors, because its code length is restricted to multiples of a bit. This deviation from the theoretical optimum is much higher in comparison to the arithmetic coding's inaccuracies.
The efficiency of an arithmetic code is always better or at least identical to a Huffman code.
Several publications available in the internet quantify the advantage of arithmetic coding somehow between 5 and 10%. Mostly they refer to the usage according to the JPEG specification. Concrete comparisons or theoretical models are not mentioned.
The high requirements for calculation was the most important disadvantage, especially if taking older computer systems into consideration. Additionally the patent situation had a crucial influence to decisions about the implementation of an arithmetic coding.
cabac,用的就是算术编码