Rechercher un outil
Transformée de Burrows-Wheeler

Outil appliquant l'algorithme de Burrows-Wheeler. La transformée de Burrows-Wheeler (BWT) est un algorithme qui maximise les répétitions de lettres dans un texte, ce qui est très utile en compression de données.

Résultats

Transformée de Burrows-Wheeler -

Catégorie(s) : Compression

Partager
Partager
dCode et plus

dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !


Rendez-vous sur notre communauté Discord dCode pour participer au forum d'entraide !
PS : Pour les messages codés, testez notre détecteur de chiffrement !


Remarques et suggestions sont les bienvenues afin que dCode propose le meilleur outil 'Transformée de Burrows-Wheeler' gratuit ! Merci !

Transformée de Burrows-Wheeler

Décompression par BWT

 
 


Compression avec BWT

 


Toute chaine sera convertie et traitée comme ASCII (y compris le caractère $). Eviter les espaces et caractères invisibles.

Réponses aux Questions (FAQ)

Qu'est ce que la Transformée de Burrows-Wheeler ? (Définition)

La transformée de Burrows-Wheeler (BWT) est une technique de réorganisation/réarrangement des caractères d'un message texte. Principalement utilisée en compression de données, BWT a tendance à rapprocher les caractères identiques, cette propriété est utilisée comme un pré-traitement qui permet ensuite une compression accrue (par exemple par codage RLE).

Comment encoder avec BWT ?

Etape 1 : lister toutes les rotations du message (décalage cyclique de la chaine de caractères)

Exemple :

DECODE
EDECOD
DEDECO
ODEDEC
CODEDE
ECODED

Etape 2 : trier la liste par ordre alphabétique/lexicographique

Exemple :

1CODEDE
2DECODE
3DEDECO
4ECODED
5EDECOD
6ODEDEC

Etape 3 : extraire les derniers caractères de chaque ligne/rotation. Le message chiffré est constitué de ces lettres/caractères.

Exemple : Le message encodé est EEODDC

Dans la version originale de l'article décrivant BWT, une clé numérique est associée à ce message. Cette valeur clé est le rang du message original une fois la liste triée.

Exemple : La clé est 2 (DECODE, le texte original, est sur la ligne 2 du tableau).

En pratique, il est courant que la chaine se termine par un caractère spécial comme null (00) ou ETX (End of Text) ou EOF (End of File). Ce caractère/octet additionnel permet de se passer de clé car il indique la fin du message. Il est souvent représenté par le caractère $.

dCode n'accepte que les caractères ASCII, et le caractère $ n'est pas un marqueur EOF par défaut, il sera trié comme le symbole dollar (code ASCII 36.

Comment décoder par BWT ?

Le décodage BWT nécessite de connaitre le message chiffré (ayant N caractères) et éventuellement un nombre clé.

Exemple : Soit le message EODC (4 caractères) et la clé 1

Etape A : initialiser un tableau vide avec N lignes et N colonnes.

Etape B : écrire le message chiffré dans la dernière colonne vide du tableau

Etape C : trier les lignes du tableau par ordre alphabétique

Répéter les étapes B et C autant de fois qu'il y a de lettres dans le message.

Exemple : Etat du tableau après chaque étape :

AB₁C₁B₂C₂B₃C₃B₄C₄
----
----
----
----
---E
---O
---D
---C
---C
---D
---E
---O
--EC
--OD
--DE
--CO
--CO
--DE
--EC
--OD
-ECO
-ODE
-DEC
-COD
-COD
-DEC
-ECO
-ODE
ECOD
ODEC
DECO
CODE
CODE
DECO
ECOD
ODEC

Une fois l'algorithme terminé, le message clair est situé à la ligne du tableau correspondant à la clé.

Exemple : A la ligne 1, après le dernier passage de l'algorithme, il y a le message clair CODE

Si le texte a été codé avec un caractère spécial à la fin (comme null ou EOF), alors la clé n'est pas nécessaire, car le message original (parmi toutes les rotations) est celui possédant ce caractère spécial à la fin.

Comment déchiffrer BWT sans clé ?

La clé est en fait peu importante pour du texte intelligible car lors du déchiffrement toutes les lignes du tableau final sont en fait des rotations du texte original.

Si un caractère spécial, comme null ou EOF, a été ajouté à la fin du texte avant le codage, il n'est pas nécessaire d'utiliser une clé pour décoder. Le message original peut être identifié directement : c'est celui, parmi toutes les rotations possibles, qui se termine par ce caractère spécial.

dCode propose de calculer la clé la plus probable automatiquement quand le texte est en Français.

Comment choisir la clé de compression ?

La clé BWT est calculée automatiquement et ne peut pas être choisie.

Pourquoi BWT est utilisé en compression de données?

Le message codé a tendance a avoir des suites de lettres identiques qui sont répétées, ce qui facilite leur compression (via des algorithmes comme Run Length Encoding - RLE).

Comment reconnaitre le chiffre BWT ?

Le message a un nombre important de caractères répétés et un indice de coincidence normal.

Le message est parfois surcodé avec un codage de type RLE.

Quelles sont les variantes du chiffre BWT ?

BWT peut être utilisé sans clé, mais dans ce cas, la connaissance d'un caractère unique du texte original et sa position est nécessaire, comme le caractère EOF ou null placé en dernière position.

Quelle est la complexité de l'algorithme BWT ?

Plusieurs implémentations sont possibles mais les meilleures sont en O(n) pour la durée et O(n log(σ) (voire mieux) pour la mémoire. Avec n la taille en entrée et σ la taille de l'alphabet.

Quand BWT a-t-il été inventé ?

Burrows-Wheeler Transform a été inventé en 1994 par Michael Burrows et David Wheeler

Code source

dCode se réserve la propriété du code source pour "Transformée de Burrows-Wheeler". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "Transformée de Burrows-Wheeler", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liées à "Transformée de Burrows-Wheeler" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou les données, en téléchargement, script, ou les accès API à "Transformée de Burrows-Wheeler" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.

Citation

Le copier-coller de la page "Transformée de Burrows-Wheeler" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
Transformée de Burrows-Wheeler sur dCode.fr [site web en ligne], consulté le 21/01/2025, https://www.dcode.fr/transformee-burrows-wheeler

Besoin d'Aide ?

Rendez-vous sur notre communauté Discord dCode pour participer au forum d'entraide !
PS : Pour les messages codés, testez notre détecteur de chiffrement !

Questions / Commentaires

Remarques et suggestions sont les bienvenues afin que dCode propose le meilleur outil 'Transformée de Burrows-Wheeler' gratuit ! Merci !


https://www.dcode.fr/transformee-burrows-wheeler
© 2025 dCode — La 'boite à outils' indispensable qui sait résoudre tous les jeux / énigmes / géocaches / CTF.
 
Un problème ?