Une introduction succincte aux codes à longueur variable

Les techniques courantes de transmission de données "compressées" font souvent appel aux codages "à longueur variable" (VLC pour Variable Length Coding). Ces codes utilisent les statistiques d'apparition des symboles du message pour attribuer aux symboles les plus fréquents des codes courts, et aux symboles plus rares des codes longs. Dans le cadre du TP, nous allons considérer un système de transmission dont les caratéristiques sont les suivantes :

  • Les symboles font partie de l'ensemble: {1, 2, 3, 4, 5} et leurs fréquences statistiques sont:
  • La probabilité d'apparition du symbole "1" est de 1/2,
  • La probabilité d'apparition du symbole "2" est de 1/4,
  • La probabilité d'apparition du symbole "3" est de 1/8,
  • La probabilité d'apparition du symbole "4" est de 1/16,
  • La probabilité d'apparition du symbole "5" est de 1/16.

Les codes VLC doivent être définis de manière à garantir un décodage sans ambigüité. Pour ce TP, nous utiliserons le codage suivant :

  • Le symbole "1" aura pour code: "0",
  • Le symbole "2" aura pour code: "10",
  • Le symbole "3" aura pour code: "110",
  • Le symbole "4" aura pour code: "1110",
  • Le symbole "5" aura pour code: "1111".

Avec un codage de longueur fixe, il faudrait 3 bits par symbole pour transmettre ces données. Avec notre code à longueur variable vous pouvez aisément vérifier qu'il suffit "statistiquement" de 1,875 bits par symbole, d'où le gain en compression du flux de données.

Vous pourrez également vérifier que toute succession de bits est décodable en une succession de symboles.