Move-to-front

L'algorithme MTF (pour move-to-front : « déplacer vers l'avant ») est un système de transformation de flot utilisé notamment dans le domaine de la compression de données en informatique. Il consiste à remplacer chaque caractère par un indice, donné par un tableau évoluant de manière dynamique. Cette technique est notamment utilisable en conjonction avec la transformée de Burrows-Wheeler.

Fonctionnement

Le tableau est tout d'abord initialisé en rangeant les caractères utilisés pour le codage comme ceci :

Indice 012345625
Caractère ABCDEFGZ

Lorsqu'un caractère est lu, son indice est émis, puis ce caractère est placé en première position et tous les autres caractères décalés (d'où le nom de Move to Front). Par exemple si le premier caractère à coder est un E, le tableau deviendrait :

Indice 012345625
Caractère EABCDFGZ

Ainsi, lorsque des caractères semblables se suivent (cas de la transformée de Burrows-Wheeler), le flux émis contiendra beaucoup de 0, ce qui dans une compression statistique (type codage de Huffman) augmentera considérablement le Taux de compression de données. Dans ce cas, l'émission d'un 0 laisse le tableau identique, alors que dans les autres cas, le réarrangement ne concerne que les premiers éléments du tableau.

Par exemple, la séquence EEEEEA serait transformée en la suite 400001 ; le tableau évoluerait comme suit :

Indice 012345625
État initial ABCDEFGZ
Tableau modifié par le premier E EABCDFGZ
Tableau conservé 4 fois par les 4 E suivants
Tableau modifié par le A AEBCDFGZ

Le décodage est tout aussi simple : à partir du même tableau initial, il suffit d'émettre le caractère correspondant à l'indice et de ranger le tableau en passant ce caractère en premier. Le tableau évolue exactement comme pendant la phase de codage.

  • Portail de l’informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.