Exponenciální Golombův kód

Exponenciální Golombův kód řádu k  je univerzální kód parametrizovaný celým číslem k . Navrhl Solomon Golomb . Chcete-li zakódovat nezáporné číslo do exponenciálního Golombova kódu řádu k , můžete použít následující metodu:

  1. Vezměte číslo N v binárním kódu bez posledních k číslic. Přidejte k tomu 1 (aritmeticky): N \ u003d N + 1. Zapište výsledné N.
  2. Spočítejte počet C bitů v N.
  3. Odečtěte jedničku od C : C \u003d C - 1. Před zvolené číslo N napište C nulových bitů .

Pro objednávku k = 0 vypadá kód takto:

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

Exponenciální Golombův kód pro k = 0 se používá ve standardech komprese videa H.264 a MPEG-4 AVC , ve kterých existuje také možnost kódování čísel se znaménkem přiřazením hodnoty 0 klíčovému slovu „0“ v binárním tvaru a pak přiřazování kódových slov ke vstupním hodnotám rostoucích amplitud a proměnných znamének.

Exponenciální Golomb kód se také používá v Diracově nekomprimovaném algoritmu kódování videa .

Pro k = 0 je exponenciální Golombovo kódování stejné jako Eliasův gama kód se stejným číslem plus jedna. Může tedy zakódovat nulu, zatímco Eliasův gama kód může zakódovat pouze čísla větší než nula.

Navzdory podobným jménům je exponenciální Golombovo kódování jen mírně analogické s Golombovým kódováním , což je typ entropického kódování , ale není univerzálním kódem.

Viz také

Odkazy