Golombovy kódy

Golombovy kódy  jsou rodinou entropických kódů . Golombův kód může znamenat i jednoho ze zástupců této čeledi.

Uvažujme zdroj, který nezávisle generuje nezáporná celá čísla s pravděpodobnostmi , kde  libovolné kladné číslo nepřesahuje 1, tedy zdroj popsaný geometrickým rozdělením . Pokud je kladné celé číslo takové, že

,

pak optimálním kódem znak po znaku (to znamená kód, který spojuje každý zakódovaný znak s určitým kódovým slovem) pro takový zdroj bude kód vytvořený v souladu s postupem navrženým Solomonem Golombem , podle kterého např. jakékoli zakódované číslo se známým kódovým slovem, unárním zápisem čísla a zakódovaným v souladu s postupem popsaným níže, zbytek dělení :

  1. Jestliže je mocnina 2, pak zbývající kód je binární reprezentace čísla , umístěná v bitech.
  2. Pokud není mocnina 2, vypočítá se číslo . Dále:
Jestliže , je zbývající kód binární reprezentace čísla , umístěná v bitech, jinak je zbytek zakódován binárním zápisem čísla , umístěným v bitech.

Později R. Gallagher a D. Van Voorhees ukázali, že kód navržený Golombem je optimální nejen pro diskrétní sadu hodnot splňujících výše uvedené kritérium, ale také pro všechny, pro které platí dvojitá nerovnost.

,

kde  je kladné celé číslo. Protože pro libovolnou vždy existuje maximálně jedna hodnota , která splňuje výše uvedenou nerovnost, ukazuje se postup pro kódování geometrického zdroje navržený S. Golombem jako optimální pro jakoukoli hodnotu .

Extrémně snadno implementovatelná, ale ne vždy optimální verze Golombova kódu v případě, kdy je mocnina 2, se nazývá Riceův kód.

Příklad

Nechte , je nutné zakódovat číslo .

Hodnota, která vyhovuje dvojité Gallagher-Van Voorheesově nerovnosti .

V souladu s výše popsaným kódovacím postupem je kódové slovo odpovídající kódovanému číslu 13 konstruováno jako unární reprezentace kvocientu n/m:

,

(unární kód , tj. q nul následovaných jedničkou),

a kódovaný zbytek

,

(kód , tedy samotný zbytek, zapsaný v bitech).

Výsledné kódové slovo

Viz také

Odkazy