Galactic Civilizations 3
Compression de données - Lempel-Ziv-Welch

Compression de données - Lempel-Ziv-Welch

Catégorie: Programmation.
Posté par le 20/03/2012.
Dernière mise à jour le 01/05/2014.

<<Tutoriel précédent 

Description

Ce tutoriel vous expliquera le fonctionnement de la compression de données en utilisant l’approche adaptative et plus précisément le codage Lempel-Ziv-Welch (LZW).

Introduction

L’approche adaptative consiste à la construction d’un alphabet E à partir du texte à compresser. Ensuite, on copie l’alphabet E dans un nouveau alphabet E’. Au fur et à mesure que l’on avance dans la compression, on ajoute un caractère dans l’alphabet E’ en concaténant 2 caractères déjà présents dans la table. En même temps que ce caractère est ajouté dans l’alphabet, le premier caractère est envoyé en sortie. A la fin de la compression, on envoie au récepteur du message le chiffre ainsi que l’alphabet E. Je vais vous expliquer tout ça à l’aide d’un exemple.

Technique d’encodage

Pour compresser avec la technique de codage LZW, on commence par créer un alphabet E’ contenant des caractères de l’alphabet E tel que |E’| > |E|.

  1. Attribuer une traduction de chaque symbole x Ñ” E dans E’.
    (ex : E = {a ;b ;c ;d ;e} E’={a ,0 ;b,1 ;c ,2 ;d ,3 ;e,4}
  2. Prendre le mot w et appliquer E’ pour chaque sous-chaine.

Exemple :

Texte : aabeeeccddddddeedd

  1. E = {0:a, 1:b, 2:c, 3:d, 4:e} et E’ = {0:a, 1:b, 2:c, 3:d, 4:e}

    LZW
     
  2. E’ = {0:a, 1:b, 2:c, 3:d, 4:e, 5:aa, 6:ab, 7:be, 8:ee, 9:eec, 10:cc, 11:cd, 12:dd, 13:ddd, 14:ddde, 15:eed}

Code = 0 0 1 4 8 2 2 3 12 13 8 12

Le code + E' représentent le texte compressé. Comme vous pouvez le voir la technique de codage LZW permet de réduire considérablement la taille du texte à compresser. Plus celui-ci sera long plus vous gagnerez de la place (car on utilisera des symboles représentant des mots voir des phrases entières).

Décodage

Pour le décodage, on reconstruit E’ et le texte original à l’aide du code.

Exemple :

LZW Construire E prime

E’ = {0:a, 1:b, 2:c, 3:d, 4:e, 5:aa, 6:ab, 7:be, 8:ee, 9:eec, 10:cc, 11:cd, 12:dd, 13:ddd, 14:ddde, 15:eed}

Texte original: aabeeeccddddddeedd

Tu as aimé ce tutoriel ?
Aide nous à améliorer le site ! Deviens partenaire officiel ou suis nous sur facebook !

<<Tutoriel précédent 

Commentaires[0]

Tu as aimé ce tutoriel ? Alors partage-le avec tes amis !
Partager sur Facebook Partager sur Twitter Partager sur Myspace Partager sur Stumbleupon Soumettre sur Reddit Partager sur Digg Ajouter à vos favoris Technorati Ajouter à vos favoris Live Ajouter à vos favoris Google Ajouter sur vos favoris Yahoo Voir le flux rss

Mots Clés: approche adaptative Compression de données Lempel-Ziv-Welch LZW Programmation

Veve :
(11/04/2013 - 17:19:44)
il faut juste mettre "sudo" à la place de "su" pour exécuter la commande en root

Veve :
(11/04/2013 - 17:18:56)
Salut tu peux aller lire ce tutoriel: http://www.tutorielsenfolie.com/tutoriels-63-installation-configuration-opennebula.html Il fonctionne aussi sous ubuntu

safa.souissi4 :
(10/04/2013 - 20:58:13)
s'il vous plait c urgent :(

safa.souissi4 :
(10/04/2013 - 20:56:25)
bonsoir,je cherche un tutos pour installer opennebula.org sous ubuntu 12.

Veve :
(18/03/2013 - 20:07:49)
oui, j'essaye de voir d'ou viens le problème.

sonde :
(18/03/2013 - 13:29:57)
re merci (j apprend un peu plus) je crois que j ai trouver pourquoi je peu pas poster si il y a ligne code impossible de poster lol

Veve :
(17/03/2013 - 21:34:49)
Salut, j'espère que ça t'a aidé.

sonde :
(17/03/2013 - 09:59:02)
pour ton aide

sonde :
(17/03/2013 - 09:57:36)
slt Veve impossible de laisser com

sonde :
(17/03/2013 - 09:56:55)
??

Demi-dieu :
(15/03/2013 - 18:41:13)
salut ^^

sonde :
(13/03/2013 - 14:49:35)
un petit coucou

Tanamoureuse :
(29/09/2011 - 06:11:08)
Je t'aime

Faire un don

Ma Publicité ici


Faire un don