Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Exponential-Golomb coding

From Wikipedia, the free encyclopedia
Type of universal code in data compression
Not to be confused withGolomb coding.

Anexponential-Golomb code (or justExp-Golomb code) is a type ofuniversal code. To encode anynonnegative integerx using the exp-Golomb code:

  1. Write downx+1 in binary
  2. Count the bits written, subtract one, and write that number of starting zero bits preceding the previous bit string.

The first few values of the code are:

 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...[1]

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 theElias gamma code ofx+1, allowing it to encode 0.[2]

Extension to negative numbers

[edit]

Exp-Golomb coding is used in theH.264/MPEG-4 AVC and H.265High 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):

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

In other words, a non-positive integerx≤0 is mapped to an even integer −2x, while a positive integerx>0 is mapped to an odd integer 2x−1.

Exp-Golomb coding is also used in theDirac video codec.[3]

Generalization to orderk

[edit]

To encode larger numbers in fewer bits (at the expense of using more bits to encode smaller numbers), this can be generalized using anonnegative integer parameter  k. To encode a nonnegative integerx in an order-k exp-Golomb code:

  1. Encode ⌊x/2k⌋ using order-0 exp-Golomb code described above, then
  2. Encodex mod 2k in binary with k bits

An equivalent way of expressing this is:

  1. Encodex+2k−1 using the order-0 exp-Golomb code (i.e. encodex+2k using the Elias gamma code), then
  2. Deletek leading zero bits from the encoding result
Exp-Golomb-k coding examples
 x k=0k=1k=2k=3 x k=0k=1k=2k=3 x k=0k=1k=2k=3
011010010001000010110011000111001001020000010101000101100011000011100
10101110110011100011000011010111101001121000010110000101110011001011101
201101001101010120001101001110001000001010022000010111000110000011010011110
30010001011111011130001110001111001000101010123000011000000110010011011011111
40010101100100011001400011110001000000100100101102400001100100011010001110000100000
5001100111010011101150000100000001000100100110101112500001101000011011001110100100001
600111001000010101110160000100010001001000101000110002600001101100011100001111000100010
70001000001001010111111170000100100001001100101010110012700001110000011101001111100100011
800010010010100110001000018000010011000101000010110011010280000111010001111000010000000100100
900010100010110110101000119000010100000101010010111011011290000111100001111100010000100100101

See also

[edit]

References

[edit]
  1. ^abRichardson, Iain (2010).The H.264 Advanced Video Compression Standard. Wiley. pp. 208, 221.ISBN 978-0-470-51692-8.
  2. ^Rupp, Markus (2009).Video and Multimedia Transmissions over Cellular Networks: Analysis, Modelling and Optimization in Live 3G Mobile Networks. Wiley. p. 149.ISBN 9780470747766.
  3. ^"Dirac Specification"(PDF). BBC. Archived from the original on 2015-05-03. Retrieved9 March 2011.
Lossless
type
Entropy
Dictionary
Other
Hybrid
Lossy
type
Transform
Predictive
Audio
Concepts
Codec
parts
Image
Concepts
Methods
Video
Concepts
Codec
parts
Theory
Community
People
Retrieved from "https://en.wikipedia.org/w/index.php?title=Exponential-Golomb_coding&oldid=1327378178"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp