Transformée Burrows Wheeler

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche

La transformée de Burrows-Wheeler (aussi appelé BWT) est la seconde étape, mais pas des moindres, de l'algorithme de compression bzip2. C'est d'ailleurs l'un des deux principaux rouages de l'algorithme d'après son auteur :

bzip2 compresses files using the Burrows-Wheeler block sorting text compression algorithm, and Huffman coding.

- Julian Seward

Utilisation

Cette transformée est utilisée pour faire apparaître des motifs redondants, ce qui aide à la compression avec l'encoding d'Huffman.

Principe de fonctionnement

La transformé de Burrows-Wheeler se construit à partir d'une matrice de permutations des lettres du mot (ou d'une séquence d'octet de façon général).

Prenons le mot ABRACADABRA. Voici les étapes à suivre :

1. On créer la matrice des rotations

<code>
 ABRACADABRA
 BRACADABRAA
 RACADABRAAB
 ACADABRAABR
 CADABRAABRA
 ADABRAABRAC
 DABRAABRACA
 ABRAABRACAD
 BRAABRACADA
 RAABRACADAB
 AABRACADABR
</code>

2. On trie les lignes suivant un certain ordre. Ici, par ordre alphabétique

Algorithme

Implémentation naïve

Implémentation avancé

Sources