// Elias Delta – uniwersalny kod bardziej wydajny niż Gamma dla większych liczb całkowitych
Bardziej wydajny niż Elias Gamma dla n > 3.
Działa dla każdej dodatniej liczby całkowitej bez dodatkowych parametrów.
Używa log₂(n) + 2log₂(log₂(n)) + 1 bitów.
Elias Delta koduje dodatnią liczbę całkowitą n w trzech krokach: 1) oblicza L = ⌊log₂(n)⌋ + 1 (długość w bitach), 2) koduje L za pomocą kodu Elias Gamma, 3) dołącza ostatnie L−1 bitów liczby n. Taki podwójnie logarytmiczny wzrost sprawia, że Delta jest bardziej wydajna niż Gamma dla większych liczb, pozostając kodem uniwersalnym.
n=1: L=1, Gamma(1)='1', bity='', Delta='1' n=2: L=2, Gamma(2)='010', bity='0', Delta='0100' n=3: L=2, Gamma(2)='010', bity='1', Delta='0101' n=4: L=3, Gamma(3)='011', bity='00', Delta='01100' n=16: L=5, Gamma(5)='00101', bity='0000', Delta='001010000' Porównanie długości: n | Gamma | Delta | Oszczędność 1 | 1 | 1 | 0 16 | 9 | 9 | 0 100 | 13 | 12 | 1 1000 | 19 | 16 | 3
Elias Delta to ulepszona wersja kodu Elias Gamma, w której najpierw kodowana jest długość binarnej reprezentacji liczby za pomocą Gamma, a następnie dołączane są pozostałe bity. Używa około log₂(n) + 2log₂(log₂(n)) + 1 bitów, dzięki czemu jest bardziej wydajny dla dużych liczb całkowitych.
Gamma używa 2⌊log₂(n)⌋ + 1 bitów, natomiast Delta używa log₂(n) + 2log₂(log₂(n)) + 1 bitów. Delta jest lepsza dla n > 3, a oszczędności rosną wraz ze wzrostem n. Dla bardzo małych wartości (1–3) oba kody są porównywalne.
Używaj Delta, gdy Twoje dane składają się głównie z liczb całkowitych > 3. Dla bardzo małych liczb całkowitych (1–2) nieznacznie lepsza może być Gamma. Dla bardzo dużych liczb rozważ kod Elias Omega, który dalej udoskonala Delta.
Delta jest kompromisem. Gamma jest najprostsza, ale najmniej wydajna. Delta poprawia stopień kompresji. Omega jest najlepsza dla bardzo dużych liczb, ale też najbardziej złożona. Wybór zależy od rozkładu danych i ograniczeń implementacyjnych.