// Elias Delta – code universel plus efficace que Gamma pour les grands entiers
Plus efficace qu'Elias Gamma pour les entiers > 3.
Fonctionne pour tout entier positif sans paramètre supplémentaire.
Utilise log₂(n) + 2log₂(log₂(n)) + 1 bits.
Elias Delta code un entier positif n en trois parties : 1) on calcule L = ⌊log₂(n)⌋ + 1 (longueur en bits), 2) on code L avec Elias Gamma, 3) on ajoute les L−1 bits restants de n. Cette croissance doublement logarithmique le rend plus efficace que Gamma pour les grands nombres tout en restant universel.
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' Comparer les longueurs : n | Gamma | Delta | Gain 1 | 1 | 1 | 0 16 | 9 | 9 | 0 100 | 13 | 12 | 1 1000 | 19 | 16 | 3
Elias Delta est une amélioration d'Elias Gamma : il code d'abord la longueur de la représentation binaire avec Gamma, puis ajoute les bits restants. Il utilise environ log₂(n) + 2log₂(log₂(n)) + 1 bits, ce qui le rend plus efficace pour les grands entiers.
Gamma utilise 2⌊log₂(n)⌋ + 1 bits, tandis que Delta utilise log₂(n) + 2log₂(log₂(n)) + 1 bits. Delta est préférable pour n > 3, avec des gains croissants pour les grands nombres. Pour les très petites valeurs (1–3), les deux sont comparables.
Utilisez Delta lorsque vos données contiennent principalement des entiers > 3. Pour des entiers très petits (1–2), Gamma peut être légèrement meilleur. Pour des entiers très grands, envisagez Elias Omega, qui améliore encore Delta.
Delta est un compromis. Gamma est le plus simple mais le moins efficace. Delta améliore la compression. Omega est le meilleur pour de très grands nombres, mais aussi le plus complexe. Choisissez en fonction de la distribution de vos données et des contraintes d'implémentation.