Exponential-Golomb coding

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

An Exponential-Golomb code (or just Exp-Golomb code) of order k is a type of universal code, parameterized by a whole number k. To encode a nonnegative integer in an order-k exp-Golomb code, one can use the following method:

  1. Take the number in binary except for the last k digits and add 1 to it (arithmetically). Write this down.
  2. Count the bits written, subtract one, and write that number of starting zero bits preceding the previous bit string.
  3. Write the last k bits in binary.

For k = 0 the code begins:

 0 => 1 => 1
 1 => 10 => 010
 2 => 11 => 011
 3 => 100 => 00100
 4 => 101 => 00101
 5 => 110 => 00110
 6 => 111 => 00111
 7 => 1000 => 0001000
 8 => 1001 => 0001001
...

Exp-Golomb coding for k = 0 is used in the H.264/MPEG-4 AVC video compression standard, in which there is also a variation for the coding of signed numbers by assigning the value 0 to the binary codeword '0' and assigning subsequent codewords to input values of increasing magnitude and alternating sign.

Exp-Golomb coding is also used in the Dirac video codec.

The k = 0 exp-Golomb code is identical to the Elias gamma code of the same number plus one. Thus it can encode zero, whereas Elias gamma can only encode numbers greater than zero.

Despite the similar name, exp-Golomb is only somewhat similar to Golomb coding, which is a type of entropy coding but not a universal code.

See also:

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net