// Elias Delta – universell kode som er mer effektiv enn Gamma for større heltall
Mer effektiv enn Elias Gamma for n > 3.
Fungerer for alle positive heltall uten ekstra parametere.
Bruker log₂(n) + 2log₂(log₂(n)) + 1 biter.
Elias Delta koder et positivt heltall n i tre deler: 1) finn L = ⌊log₂(n)⌋ + 1 (bitlengde), 2) kod L med Elias Gamma, 3) legg til de siste L−1 bitene av n. Denne dobbeltlogaritmiske veksten gjør Delta mer effektiv enn Gamma for større tall, samtidig som koden forblir universell.
n=1: L=1, Gamma(1)='1', bits='', Delta='1' n=2: L=2, Gamma(2)='010', bits='0', Delta='0100' n=3: L=2, Gamma(2)='010', bits='1', Delta='0101' n=4: L=3, Gamma(3)='011', bits='00', Delta='01100' n=16: L=5, Gamma(5)='00101', bits='0000', Delta='001010000' Sammenlign lengder: n | Gamma | Delta | Innsparing 1 | 1 | 1 | 0 16 | 9 | 9 | 0 100 | 13 | 12 | 1 1000 | 19 | 16 | 3
Elias Delta er en forbedring av Elias Gamma der lengden på det binære tallet kodes med Gamma, og de resterende bitene legges til. Den bruker omtrent log₂(n) + 2log₂(log₂(n)) + 1 biter og er derfor mer effektiv for store heltall.
Gamma bruker 2⌊log₂(n)⌋ + 1 biter, mens Delta bruker log₂(n) + 2log₂(log₂(n)) + 1 biter. Delta er bedre for n > 3, og innsparingene øker for større tall. For svært små verdier (1–3) er de omtrent like gode.
Bruk Delta når datasettet ditt hovedsakelig består av heltall > 3. For svært små heltall (1–2) kan Gamma være litt bedre. For svært store tall kan Elias Omega være et bedre alternativ, siden den forbedrer Delta ytterligere.
Delta er et kompromiss. Gamma er enklest, men minst effektiv. Delta forbedrer komprimeringen. Omega er best for svært store tall, men også mest kompleks. Velg basert på datadistribusjon og krav til implementasjon.