Main Page | See live article | Alphabetical index

# Golomb coding

Golomb coding is a form of entropy coding invented by Solomon W. Golomb that is optimal for alphabets following geometric distributions, that is, when small values are vastly more common than large values.

It uses a tunable parameter b to divide a input value into two parts: the result of a division by b, and the remainder. The quotient is sent in unary coding, followed by the remainder in truncated binary encoding.

The parameter b is a function of the corresponding geometric distribution, which is parameterized by p = P(X = 0). b and p are related by these inequalities:

$\left(1-p\right)^b + \left(1-p\right)^\left\{b+1\right\} \\leq 1 < \left(1-p\right)^\left\{b-1\right\} + \left(1-p\right)^b$

Rice coding is a special case of Golomb coding first described by Robert Rice. It is equivalent to Golomb coding where the tunable parameter is a power of two. This makes it extremely efficient for use on computers, since the division operation becomes a bitshift operation and the remainder operation becomes a bitmask operation.

References:

• Golomb, S.W. (1966). Run-length encodings. IEEE Transactions on Information Theory, IT--12(3):399--401
• R. F. Rice, "Some Practical Universal Noiseless Coding Techniques, " Jet Propulsion Laboratory, Pasadena, California, JPL Publication 79--22, Mar. 1979.