Code exponentiel-GolombLe code exponentiel-Golomb ou Exp-Golomb code (en) d'ordre k est un type de code universel, paramétrable par un nombre entier k. Ce code est souvent utilisé dans la compression de données en tant que codeur entropique, par exemple dans la norme vidéo H.264. PrincipePour coder un entier positif dans un code exponentiel-Golomb d'ordre k, celui-ci peut utiliser la méthode suivante:
Pour k = 0 le code commence par: 0 → 1 → 1 1 → 10 → 010 2 → 11 → 011 3 → 100 → 00100 4 → 101 → 00101 5 → 110 → 00110 6 → 111 → 00111 7 → 1000 → 0001000 8 → 1001 → 0001001 ... Application dans la norme H.264Le code exponentiel-Golomb pour k=0 est utilisé dans la norme de compression vidéo H.264 ou MPEG-4 AVC, dans laquelle les symboles sont signés et sont alternativement assignés au mot de code. En d'autres termes, le 0 correspond au 0, le +1 au 1, le -1 au 2 le +2 au 3 etc. Cet outil est utilisé afin de coder tous les paramètres qui ne correspondent pas explicitement à des données des images telles que le type de l'image, les vecteurs de mouvement, les modes de prédiction inter ou intra. Les codes utilisés sont de longueur variable mais leur construction s'établit suivant une logique définie par une table. Ces symboles ne sont pas en nombre fini, cependant plus la valeur est grande et plus la longueur de la chaîne binaire correspondante sera importante. C'est pour cela que l'on attribue un code proche du zéro pour les éléments ou symboles fréquents et un code plus grand pour ceux qui sont plus rares. Chaque type d'élément est associé à une table spécifique qui permet de retourner le code numérique lui correspondant. Autres applicationsCe code est aussi utilisé dans le codec vidéo Dirac. Le code exponentiel-Golomb pour k=0 est identique au codage gamma du même nombre incrémenté de 1. Ainsi il peut encoder le zéro, tandis que le codage gamma peut seulement encoder les nombres strictement supérieur à zéro. Le codage exp-Golomb diffère légèrement du codage de Golomb qui est également un codeur entropique mais non un code universel. Notes et références
Voir aussi |