Elias delta -koodi on Peter Eliasin kehittämä yleinen koodi positiivisten kokonaislukujen koodaamiseen.
Numeron N koodausalgoritmi:
Muuten tämä algoritmi voidaan kuvata seuraavasti:
Eli sekä delta- että Elias-gammakoodissa luku on koodattu eksponenttiksi (luvun kapasiteetti - merkitsevien bittien määrä) ja mantissaksi (todella merkitseväksi bitiksi), mutta gammakoodissa eksponentti kirjoitetaan unaarimuoto , ja deltakoodissa siihen sovelletaan gammakoodausta uudelleen.
Esimerkki numeron 10 koodauksesta:
Ensimmäisen 17 numeron koodauksen tulokset (vertailun vuoksi näytetään myös gammakoodi):
N | L | M | delta koodi | Pituus, bitti |
Arvioitu todennäköisyys |
gamma koodi | Pituus, bitti | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
γ(L) | |||||||||||
yksi | yksi | yksi | yksi | yksi | 1/2 | yksi | yksi | ||||
2 | 2 | 2 | 01 0 | 0 | neljä | 1/16 | 01 | 0 | 3 | ||
3 | 2 | 2 | 01 0 | yksi | neljä | 1/16 | 01 | yksi | 3 | ||
neljä | 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 | kymmenen | 5 | 1/32 | 001 | kymmenen | 5 | ||
7 | 3 | 2 | 01 1 | yksitoista | 5 | 1/32 | 001 | yksitoista | 5 | ||
kahdeksan | neljä | 3 | 001 00 | 000 | kahdeksan | 1/256 | 0001 | 000 | 7 | ||
9 | neljä | 3 | 001 00 | 001 | kahdeksan | 1/256 | 0001 | 001 | 7 | ||
kymmenen | neljä | 3 | 001 00 | 010 | kahdeksan | 1/256 | 0001 | 010 | 7 | ||
yksitoista | neljä | 3 | 001 00 | 011 | kahdeksan | 1/256 | 0001 | 011 | 7 | ||
12 | neljä | 3 | 001 00 | 100 | kahdeksan | 1/256 | 0001 | 100 | 7 | ||
13 | neljä | 3 | 001 00 | 101 | kahdeksan | 1/256 | 0001 | 101 | 7 | ||
neljätoista | neljä | 3 | 001 00 | 110 | kahdeksan | 1/256 | 0001 | 110 | 7 | ||
viisitoista | neljä | 3 | 001 00 | 111 | kahdeksan | 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 |
Alkuperäisten arvojen lisäkäsittelyllä delta-koodia voidaan käyttää myös nolla- ja negatiivisten kokonaislukujen koodaamiseen (katso: Elias Gamma Code#Generalization ).
Algoritmi numeron dekoodaamiseksi Elias-deltakoodista:
Esimerkki bittisekvenssin 001010001 dekoodaamisesta :
Numeroilla 2, 3, 8…15 deltakoodi on pidempi kuin gammakoodi, numeroilla 1, 4…7, 16…31 deltakoodin pituus on sama kuin gammakoodin pituus, kaikilla muilla. numerot delta - koodi on lyhyempi kuin gamma - koodi . Näin ollen deltakoodi on sitä vähemmän kannattava kuin gammakoodi, mitä epätasaisempi koodattujen lukujen todennäköisyysjakauma ja sitä todennäköisemmin niiden arvot lähestyvät nollaa.