Elias Omega Code je univerzální kód pro kódování kladných celých čísel, který vyvinul Peter Elias.
Stejně jako Eliasovy gama a delta kódy přiřazuje začátku celého čísla řád jeho velikosti v univerzálním kódu. Na rozdíl od ostatních dvou zmíněných kódů však kód omega rekurzivně kóduje prefix, a proto je také známý jako rekurzivní kód Elias .
Chcete-li zakódovat číslo:
Prvních několik kódů je uvedeno níže. Uvedeno je také tzv. odhadované rozdělení, které popisuje rozdělení hodnot, pro které toto kódování vede ke kódu minimální velikosti (viz: univerzální kód ).
Začněte kódovat:
Číslo | Kódování | Odhadovaná pravděpodobnost |
---|---|---|
jeden | 0 | 1/2 |
2 | 100 | 1/8 |
3 | 110 | 1/8 |
čtyři | 10 100 0 | 1/64 |
5 | 10 101 0 | 1/64 |
6 | 10 110 0 | 1/64 |
7 | 10 111 0 | 1/64 |
osm | 11 1000 0 | 1/128 |
9 | 11 1001 0 | 1/128 |
deset | 11 1010 0 | 1/128 |
jedenáct | 11 1011 0 | 1/128 |
12 | 11 1100 0 | 1/128 |
13 | 11 1101 0 | 1/128 |
čtrnáct | 11 1110 0 | 1/128 |
patnáct | 11 1111 0 | 1/128 |
16 | 10 100 10 000 0 | 1/2048 |
17 | 10 100 10001 0 | 1/2048 |
… |
Algoritmus pro dekódování čísla reprezentovaného v Elias omega kódu:
Kódování Omega se používá v aplikacích, kde není předem známa největší hodnota, která má být zakódována, nebo pro kompresi dat, kde jsou malé hodnoty mnohem běžnější než velké.