> elias | delta | optymalny <

// Elias Delta – uniwersalny kod bardziej wydajny niż Gamma dla większych liczb całkowitych

0 znaki
0 znaki

>> funkcje

[WYDAJNY]

Lepszy niż Gamma

Bardziej wydajny niż Elias Gamma dla n > 3.

[UNIWERSALNY]

Kod uniwersalny

Działa dla każdej dodatniej liczby całkowitej bez dodatkowych parametrów.

[ASYMPTOTYCZNY]

Dobre własności asymptotyczne

Używa log₂(n) + 2log₂(log₂(n)) + 1 bitów.

>> informacje techniczne

Jak działa Elias Delta

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.

Przykłady kodowania Delta

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

Dlaczego warto używać Elias Delta

  • Lepszy niż Gamma dla n > 3
  • Brak parametrów do konfiguracji
  • Kod prefiksowy jednoznacznie dekodowalny
  • Dobry dla liczb całkowitych średniej wielkości
  • Most do kodu Elias Omega

>> często zadawane pytania

Czym jest kodowanie Elias Delta?

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.

Delta kontra Gamma?

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.

Kiedy używać Delta zamiast Gamma?

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.

Czy Delta to najlepszy kod Elias?

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.