Eliasův delta kód je univerzální kód pro kódování kladných celých čísel, který vyvinul Peter Elias.
Algoritmus pro kódování čísla N:
Jinak lze tento algoritmus popsat následovně:
To znamená, že v delta i Elias gama kódu je číslo zakódováno jako exponent (kapacita čísla - počet platných bitů) a mantisa (ve skutečnosti významné bity), ale v gama kódu je exponent zapsán v unární forma a v delta kódu je na něj opět aplikováno gama kódování.
Příklad kódování čísla 10:
Výsledky kódování prvních 17 čísel (pro srovnání je zobrazen také gama kód):
N | L | M | delta kód | Délka, kousek |
Odhadovaná pravděpodobnost |
gama kód | Délka, kousek | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
γ(L) | |||||||||||
jeden | jeden | jeden | jeden | jeden | 1/2 | jeden | jeden | ||||
2 | 2 | 2 | 01 0 | 0 | čtyři | 1/16 | 01 | 0 | 3 | ||
3 | 2 | 2 | 01 0 | jeden | čtyři | 1/16 | 01 | jeden | 3 | ||
čtyři | 3 | 2 | 01 1 | 00 | 5 | 1/32 | 001 | 00 | 5 | ||
5 | 3 | 2 | 01 1 | 01 | 5 | 1/32 | 001 | 01 | 5 | ||
6 | 3 | 2 | 01 1 | deset | 5 | 1/32 | 001 | deset | 5 | ||
7 | 3 | 2 | 01 1 | jedenáct | 5 | 1/32 | 001 | jedenáct | 5 | ||
osm | čtyři | 3 | 001 00 | 000 | osm | 1/256 | 0001 | 000 | 7 | ||
9 | čtyři | 3 | 001 00 | 001 | osm | 1/256 | 0001 | 001 | 7 | ||
deset | čtyři | 3 | 001 00 | 010 | osm | 1/256 | 0001 | 010 | 7 | ||
jedenáct | čtyři | 3 | 001 00 | 011 | osm | 1/256 | 0001 | 011 | 7 | ||
12 | čtyři | 3 | 001 00 | 100 | osm | 1/256 | 0001 | 100 | 7 | ||
13 | čtyři | 3 | 001 00 | 101 | osm | 1/256 | 0001 | 101 | 7 | ||
čtrnáct | čtyři | 3 | 001 00 | 110 | osm | 1/256 | 0001 | 110 | 7 | ||
patnáct | čtyři | 3 | 001 00 | 111 | osm | 1/256 | 0001 | 111 | 7 | ||
16 | 5 | 3 | 001 01 | 0000 | 9 | 1/512 | 00001 | 0000 | 9 | ||
17 | 5 | 3 | 001 01 | 0001 | 9 | 1/512 | 00001 | 0001 | 9 |
S dodatečným zpracováním původních hodnot lze delta kód použít také ke kódování nulových a záporných celých čísel (viz: Elias Gamma Code#Generalization ).
Algoritmus pro dekódování čísla z Eliasova delta kódu:
Příklad dekódování bitové sekvence 001010001 :
Pro čísla 2, 3, 8…15 je delta kód delší než gama kód, pro čísla 1, 4…7, 16…31 je délka delta kódu stejná jako délka gama kódu, pro všechny ostatní čísla, delta kód je kratší než gama kód. V souladu s tím je delta kód tím méně ziskový než gama kód, čím nerovnoměrnější je rozložení pravděpodobnosti kódovaných čísel a tím pravděpodobnější jsou jejich hodnoty, když se blíží nule.