Exponential-Golomb coding
An exponential-Golomb code (or just Exp-Golomb code) is a type of universal code. To encode any nonnegative integer "x" using the exp-Golomb code: The first few values of the code are: In the above examples, consider the case 3. For 3, x+1 = 3 + 1 = 4. 4 in binary is '100'. '100' has 3 bits, and 3-1 = 2. Hence add 2 zeros before '100', which is '00100' Similarly, consider 8. '8 + 1' in binary is '1001'. '1001' has 4 bits, and 4-1 is 3. Hence add 3 zeros  before 1001, which is '0001001'. This is identical to the Elias gamma code of "x"+1, allowing it to encode 0. Extension to negative numbers. Exp-Golomb coding is used in the H.264/MPEG-4 AVC and H.265 High Efficiency Video Coding video compression standards, 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, if the field can contain a negative number): In other words, a non-positive integer "x"≤0 is mapped to an even  integer −2"x", while a positive integer "x">0 is mapped to an odd integer 2"x"−1. Exp-Golomb coding is also used in the Dirac video codec. Generalization to order "k". To encode larger numbers in fewer bits (at the expense of using more bits to encode smaller numbers), this can be generalized using a nonnegative integer parameter  "k". To encode a nonnegative integer "x" in an order-"k" exp-Golomb code: An equivalent way of expressing this is: