Eksponentiaalinen Golomb-koodi

K -kertainen eksponentiaalinen Golomb-koodi on universaali koodi ,  joka parametroidaan kokonaisluvulla k . Suunnittelija Solomon Golomb . Jos haluat koodata ei-negatiivisen luvun eksponentiaaliseksi Golomb-koodiksi, jonka kertaluokka on k , voit käyttää seuraavaa menetelmää:

  1. Otetaan luku N binäärikoodissa ilman viimeistä k numeroa. Lisää siihen 1 (aritmeettisesti): N \ u003d N + 1. Kirjoita tuloksena oleva N muistiin.
  2. Laske C - bittien määrä N :ssä .
  3. Vähennä yksi arvosta C : C \u003d C - 1. Kirjoita C nollabittiä valitun luvun N eteen .

Tilauksessa k = 0 koodi näyttää tältä:

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 ...

Eksponentiaalista Golomb-koodia arvolle k = 0 käytetään H.264- ja MPEG-4 AVC -videopakkausstandardeissa , joissa on myös mahdollisuus koodata etumerkityt numerot antamalla avainsanalle '0' arvo 0 binäärimuodossa ja sitten koodisanojen määrittäminen kasvavien amplitudien ja muuttuvien etumerkkien syöttöarvoille.

Eksponentiaalista Golomb-koodia käytetään myös Diracin pakkaamattomassa videokoodausalgoritmissa .

Kun k = 0, eksponentiaalinen Golomb-koodaus on sama kuin Elias-gammakoodi , jolla on sama luku plus yksi. Siten se voi koodata nollan, kun taas Elias-gammakoodi voi koodata vain nollaa suurempia lukuja.

Samanlaisista nimistä huolimatta eksponentiaalinen Golomb-koodaus on vain hieman analoginen Golomb-koodauksen kanssa, joka on eräänlainen entropiakoodaus , mutta se ei ole universaali koodi.

Katso myös

Linkit