A lossless data compression algorithm which uses a small number of bits to encode common characters. Huffman coding approximates the probability for each character as a Power of 1/2 to avoid complications associated with using a nonintegral number of bits to encode characters using their actual probabilities.
References
Press, W. H.; Flannery, B. P.; Teukolsky, S. A.; and Vetterling, W. T. ``Huffman Coding and Compression of Data.'' Ch. 20.4 in
Numerical Recipes in FORTRAN: The Art of Scientific Computing, 2nd ed. Cambridge, England: Cambridge
University Press, pp. 896-901, 1992.