Codage de Golomb

Restez toujours informé : suivez-nous sur Google (☆)

Introduction

Le codage de Golomb est un codage entropique inventé par Solomon Wolf Golomb en 1966 et utilisé essentiellement en compression de données.

Le code produit est un code préfixe.

Principe

Le codage de Golomb d'un entier naturel N dépend d'un paramètre k et se fait en deux étapes :

  1. le codage du quotient de la division euclidienne de N par k avec un codage unaire ;
  2. le codage du reste de la même division avec un codage binaire tronqué.

Mathématiquement, pour coder un entier , on code d'abord en unaire, puis en binaire tronqué.

Optimalité

Le codage de Golomb est adapté pour des données dans lesquelles les valeurs les plus faibles sont plus probables que les autres (mais où les autres peuvent malgré tout apparaitre).

Exemples

DécimalBinaireCode de Golomb

k = 1 (unaire)
Code de Golomb

k = 2
Code de Golomb

k = 3
Code de Golomb

k = 4
Code de Golomb

k = 5
Code de Golomb

k = 10
Code de Golomb

k = 16
0000000 00 00 000 000 0000 0000
10001100 10 100 010 010 0010 0001
2001011010 00 110 100 100 0100 0010
30011111010 110 00 110 1100 0110 0011
4010011110110 010 1010 000 1110 1000 0100
50101111110110 110 1110 0110 000 1010 0101
6011011111101110 0110 010 1010 010 11000 0110
70111111111101110 1110 1010 1110 100 11010 0111
8100011111111011110 0110 11110 0010 1100 11100 1000
91001111111111011110 11110 0110 0110 1110 11110 1001
10101011111111110111110 01110 10110 10110 0010 0000 1010

Utilisations

Le codage de Golomb est principalement utilisé dans sa variante dite codage de Rice qui peut être implémentée de façon plus efficace. Un codage de Rice est d'ailleurs équivalent à un codage de Golomb dont le paramètre est 2 élevé à la puissance du paramètre de Rice.