// Elias Delta – universell kod som är mer effektiv än Gamma för större heltal
Mer effektiv än Elias Gamma för n > 3.
Fungerar för alla positiva heltal utan extra parametrar.
Använder log₂(n) + 2log₂(log₂(n)) + 1 bitar.
Elias Delta kodar ett positivt heltal n i tre delar: 1) beräkna L = ⌊log₂(n)⌋ + 1 (bitlängd), 2) koda L med Elias Gamma, 3) lägg till de sista L−1 bitarna av n. Denna dubbelt logaritmiska tillväxt gör Delta mer effektiv än Gamma för större tal samtidigt som koden är universell.
n=1: L=1, Gamma(1)='1', bitar='', Delta='1' n=2: L=2, Gamma(2)='010', bitar='0', Delta='0100' n=3: L=2, Gamma(2)='010', bitar='1', Delta='0101' n=4: L=3, Gamma(3)='011', bitar='00', Delta='01100' n=16: L=5, Gamma(5)='00101', bitar='0000', Delta='001010000' Jämför längder: n | Gamma | Delta | Besparing 1 | 1 | 1 | 0 16 | 9 | 9 | 0 100 | 13 | 12 | 1 1000 | 19 | 16 | 3
Elias Delta är en förbättring av Elias Gamma där längden på talets binära representation kodas med Gamma och de återstående bitarna läggs till. Den använder ungefär log₂(n) + 2log₂(log₂(n)) + 1 bitar och är därför mer effektiv för stora heltal.
Gamma använder 2⌊log₂(n)⌋ + 1 bitar, medan Delta använder log₂(n) + 2log₂(log₂(n)) + 1 bitar. Delta är bättre för n > 3 och besparingen ökar för större tal. För mycket små värden (1–3) är de likvärdiga.
Använd Delta när dina data mestadels består av heltal > 3. För mycket små heltal (1–2) kan Gamma vara något bättre. För mycket stora tal kan Elias Omega vara ett bättre val, eftersom det förbättrar Delta ytterligare.
Delta är ett mellanting. Gamma är enklast men minst effektiv. Delta förbättrar komprimeringen. Omega är bäst för mycket stora tal men också mest komplext. Välj beroende på datadistribution och implementeringskrav.