Elias Omega Code er en universel kode til indkodning af positive heltal, udviklet af Peter Elias.
Ligesom Elias gamma- og deltakoderne tildeler den begyndelsen af et heltal størrelsesordenen i den universelle kode. Men i modsætning til de to andre nævnte koder koder omega-koden rekursivt præfikset, hvorfor den også er kendt som den rekursive Elias-kode .
Sådan kodes et nummer:
De første par koder er vist nedenfor. Der gives også en såkaldt estimeret fordeling, som beskriver fordelingen af værdier, for hvilke denne kodning resulterer i en kode af minimumsstørrelse (se: universel kode ).
Start kodning:
Nummer | Kodning | Estimeret Sandsynlighed |
---|---|---|
en | 0 | 1/2 |
2 | 100 | 1/8 |
3 | 11 0 | 1/8 |
fire | 10 100 0 | 1/64 |
5 | 10 101 0 | 1/64 |
6 | 10 110 0 | 1/64 |
7 | 10 111 0 | 1/64 |
otte | 11 1000 0 | 1/128 |
9 | 11 1001 0 | 1/128 |
ti | 11 1010 0 | 1/128 |
elleve | 11 1011 0 | 1/128 |
12 | 11 1100 0 | 1/128 |
13 | 11 1101 0 | 1/128 |
fjorten | 11 1110 0 | 1/128 |
femten | 11 1111 0 | 1/128 |
16 | 10 100 10000 0 | 1/2048 |
17 | 10 100 10001 0 | 1/2048 |
… |
Algoritme til afkodning af tallet repræsenteret i Elias omega-koden:
Omega-kodning bruges i applikationer, hvor den største værdi, der skal kodes, ikke er kendt på forhånd, eller til datakomprimering, hvor små værdier er meget mere almindelige end store.