04/12/2008

Algorithme RLE

  • Qu'est-ce que le RLE
  • Implémentation du RLE

Le RLE (Run Length Encoding) est un algorithme de Compression de données sans pertes, tout comme les algorithmes de Huffman ou encore LZW. 

Autrement dit, à la différence des algorithmes de type MP3, MPEG ou encore JPEG, l'algorithme RLE est un procédé technique qui permet de conserver à l'authentique les informations, sans aucune pertes lors d'une Compression. 

En effet, les algorithmes MP3 ou autres, ne sont basé que sur la conservation des informations humainement perceptible, autrement dit il existe donc une perte d'informations, qui au départ étaient présente, mais qui vont disparaitre pour ne laisser place qu'aux informations essentielles.

Le principe même du RLE réside dans une approche littéral d'une chaine de caractères. Sommairement, l'algorithme va dénombrer le nombre de caractères identiques, pour finalement retranscrire cette dernière information sous une forme factorisé.

De manière formelle, si A est un Texte contenant n caractères C, alors la compression deviendra nC. Par exemple, nous aurons quelque chose comme ceci :

Texte : aaabbbccc
Compression RLE : 3a3b3c
Réduction : 33.33%

Le principe est véritablement simple à comprendre, et de ce fait, j'ai pû très rapidement mettre sous forme de code source cet algorithme. Ainsi, voici ci-dessous une implémentation en Python de l'algorithme RLE.