// Elias Delta – universeller Code, effizienter als Gamma für größere Ganzzahlen
Effizienter als Elias Gamma für Ganzzahlen > 3.
Funktioniert für jede positive Ganzzahl ohne Zusatzparameter.
Verwendet log₂(n) + 2log₂(log₂(n)) + 1 Bits.
Elias Delta codiert eine positive Ganzzahl n in drei Teilen: 1) Finde L = ⌊log₂(n)⌋ + 1 (Bitlänge), 2) code L mit Elias Gamma, 3) hänge die letzten L−1 Bits von n an. Dieses doppelt‑logarithmische Wachstum macht Delta für größere Zahlen effizienter als Gamma, bleibt dabei aber 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' Längen vergleichen: n | Gamma | Delta | Ersparnis 1 | 1 | 1 | 0 16 | 9 | 9 | 0 100 | 13 | 12 | 1 1000 | 19 | 16 | 3
Elias Delta ist eine Erweiterung von Elias Gamma: Zuerst wird die Bitlänge einer Zahl mit Gamma codiert, anschließend werden die restlichen Bits angehängt. Es benötigt ungefähr log₂(n) + 2log₂(log₂(n)) + 1 Bits und ist damit für größere Ganzzahlen effizienter.
Gamma verwendet 2⌊log₂(n)⌋ + 1 Bits, während Delta log₂(n) + 2log₂(log₂(n)) + 1 Bits nutzt. Delta ist für n > 3 besser und bringt mit zunehmender Zahl mehr Ersparnis. Für sehr kleine Werte (1–3) sind beide ähnlich.
Nutze Delta, wenn deine Daten überwiegend Ganzzahlen > 3 enthalten. Für sehr kleine Werte (1–2) kann Gamma leicht im Vorteil sein. Für sehr große Zahlen eignet sich Elias Omega, das Delta weiter verbessert.
Delta ist der Mittelweg. Gamma ist am einfachsten, aber am wenigsten effizient. Delta verbessert die Kompression. Omega ist für sehr große Zahlen am besten, aber auch am komplexesten. Wähle je nach Verteilung der Daten und Implementierungsaufwand.