« Transformée Burrows Wheeler » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 13 : Ligne 13 :


Prenons le mot ''ABRACADABRA''.
Prenons le mot ''ABRACADABRA''.
Voici les étapes à suivre :
La matrice de rotation associé est la suivante :


1. On créer la matrice des rotations
<pre><code>
ABRACADABRA
ABRACADABRA
BRACADABRAA
BRACADABRAA
Ligne 26 : Ligne 28 :
RAABRACADAB
RAABRACADAB
AABRACADABR
AABRACADABR
</code></pre>
2. On trie les lignes suivant un certain ordre. Ici, par ordre alphabétique


== Algorithme ==
== Algorithme ==

Version du 15 mai 2020 à 13:33

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