Eksponentiaalinen koodi-Golomb

Eksponentiaalinen-Golomb-koodin tai Exp-Golomb-koodi (in) on järjestyksessä k on eräänlainen yleinen koodi , konfiguroitavissa kokonaisluku k . Tämä koodi on usein käytetty data compression kuin entropiakooderi , esimerkiksi H.264- video -standardin .

Periaate

Jos haluat koodata positiivisen kokonaisluvun k- asteen eksponentiaalisessa Golomb-koodissa , se voi käyttää seuraavaa menetelmää:

  1. Ota luku binäärisenä lukuun ottamatta viimeisiä k- numeroa ja lisää 1. Kirjoita se muistiin.
  2. Laske kirjoitettujen bittien määrä ja vähennä yksi.
  3. Kirjoita uusi binääriluku, joka alkaa edellisessä vaiheessa määritetyllä luvulla 0.
  4. Yhdistä viimeiset k bittiä binaarina, ts. Ensimmäisessä vaiheessa merkitty binääriluku.

Jos k = 0, koodi alkaa:

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

Sovellus H.264-standardissa

Eksponentiaalista Golomb-koodia arvolle k = 0 käytetään H.264- tai MPEG-4 AVC -videopakkausstandardissa , jossa symbolit allekirjoitetaan ja liitetään vuorotellen koodisanaan. Toisin sanoen 0 on 0, +1 on 1, -1 on 2, +2 on 3 jne.

Tätä työkalua käytetään koodaamaan kaikki parametrit, jotka eivät nimenomaisesti vastaa kuvadataa, kuten kuvan tyyppi, liikevektorit, keskinäinen tai sisäinen ennustusmoodi. Käytetyt koodit ovat vaihtelevia pituisia, mutta niiden rakenne määritetään taulukon määrittelemän logiikan mukaisesti. Nämä symbolit eivät ole lopullisia, mutta mitä suurempi arvo, sitä suurempi on vastaavan binäärimerkkijonon pituus. Siksi osoitamme lähelle nollaa koodin usein käytetyille elementeille tai symboleille ja suuremman koodin harvinaisemmille. Jokainen elementtityyppi liittyy tiettyyn taulukkoon, jonka avulla vastaava numeerinen koodi voidaan palauttaa.

Muut sovellukset

Tätä koodia käytetään myös Dirac-videokoodekissa .

Eksponentiaalinen-Golomb-koodi k = 0 on identtinen gamma koodaus on sama määrä kasvatetaan 1. Joten se voi koodata nolla, kun taas gamma koodaus voi vain koodaavat numerot ehdottomasti suurempi kuin nolla.

Exp-Golomb-koodaus eroaa hieman Golomb-koodauksesta, joka on myös entropiakooderi, mutta ei universaali koodi.

Huomautuksia ja viitteitä

Katso myös