29
Cours Algorithmique, 2` eme partie AS IUT Compression LZW Anne Vilnat http://www.limsi.fr/Individu/anne/coursAlgo

Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Cours Algorithmique, 2eme partie AS IUTCompression LZW

Anne Vilnathttp://www.limsi.fr/Individu/anne/coursAlgo

Page 2: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Generalites sur ce code

Un peu d’histoire...

Premiere version en 1977 par Abraham Lempel et Jakob Ziv

Repris en 1984 par Terry Welch... d’ou : LZW

Principe

Pas d’analyse de donnees prealable

Construction d’une table de chaınes de caracteres

Pour comprimer : un code pour remplacer une chaıne

A la base des programmes de compression zip et des formats gif ettiff

Page 3: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Algo de compression

Algo

Dictionnaire D, Tampon T de caracteresInitialiser le dictionnaire DT ← lire caractereTant qu’il reste des carateres a lire faire

car ← lire caracteresi T + car est dans Dalors T ← T + carsinon

ecrire le code du tamponajouter T + car dans DT ← car

finSifinTantQueEcrire le code de T

Page 4: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

Dictionnaire initial :

E T W

0 1 2 3

Entree : la chaıne TWEET TWEET

Variables : T tampon, car caractere

Sortie : initialisee a la chaıne vide

Page 5: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

T : T

car : W

D :

E T W TW

0 1 2 3 4

Sortie : 1

Page 6: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

T : W

car : E

D :

E T W TW WE

0 1 2 3 4 5

Sortie : 12

Page 7: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

T : E

car : E

D :

E T W TW WE EE

0 1 2 3 4 5 6

Sortie : 120

Page 8: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

T : E

car : T

D :

E T W TW WE EE ET

0 1 2 3 4 5 6 7

Sortie : 1200

Page 9: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

T : T

car :

D :

E T W TW WE EE ET T

0 1 2 3 4 5 6 7 8

Sortie : 12001

Page 10: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

T :

car : T

D :

E T W TW WE EE ET T T

0 1 2 3 4 5 6 7 8 9

Sortie : 120013

Page 11: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

T : T

car : W

D :

E T W TW WE EE ET T T

0 1 2 3 4 5 6 7 8 9

Sortie : 120013

Page 12: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

T : TW

car : E

D :

E T W TW WE EE ET T T TWE

0 1 2 3 4 5 6 7 8 9 10

Sortie : 1200134

Page 13: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

T : E

car : E

D :

E T W TW WE EE ET T T TWE

0 1 2 3 4 5 6 7 8 9 10

Sortie : 1200134

Page 14: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

T : EE

car : T

D :

E T W TW WE EE ET T T TWE EET

0 1 2 3 4 5 6 7 8 9 10 11

Sortie : 120013461

Page 15: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple : resultat

Pour : TWEET TWEET : 1 2 0 0 1 3 4 6 1

... pas tres spectaculaire!

mais pour : TWEET TWEET TWEET :1 2 0 0 1 3 4 6 8 10 1

Page 16: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Algo de decompression

Algorithme

Dictionnaire D, Tampon T de caracteresInitialiser le dictionnaire Dancien← lire codeecrire trad(ancien)Tant qu’il reste des carateres a lire faire

nouveau ← lire codesi nouveau n’est pas dans D

alors T ←trad(ancien) + premier car de trad(ancien)sinon T ←trad(nouveau)

finSiajouter trad(ancien) + premier car de T a Dancien← nouveauecrire T

finTantQue

Page 17: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

Dictionnaire initial :

E T W

0 1 2 3

Entree : la chaıne codee 1 2 0 0 1 3 4 6 1

Variables : T tampon, ancien et nouveau contenant un code

Sortie : initialisee a la chaıne vide

Page 18: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

ancien : 1

nouveau

T

D :

E T W

0 1 2 3

Sortie : T

Page 19: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

ancien : 1 → 2

nouveau : 2

T : W

D :

E T W TW

0 1 2 3 4

Sortie : TW

Page 20: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

ancien : 2 → 0

nouveau : 0

T : E

D :

E T W TW WE

0 1 2 3 4 5

Sortie : TWE

Page 21: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

ancien : 0 → 1

nouveau : 0

T : E

D :

E T W TW WE EE

0 1 2 3 4 5 6

Sortie : TWEE

Page 22: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

ancien : 0 → 1

nouveau : 1

T : T

D :

E T W TW WE EE ET

0 1 2 3 4 5 6 7

Sortie : TWEET

Page 23: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

ancien : 1 → 3

nouveau : 3

T :

D :

E T W TW WE EE ET T

0 1 2 3 4 5 6 7 8

Sortie : TWEET

Page 24: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

ancien : 3 → 4

nouveau : 4

T : TW

D :

E T W TW WE EE ET T T

0 1 2 3 4 5 6 7 8 9

Sortie : TWEET TW

Page 25: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

ancien : 4 → 6

nouveau : 6

T : EE

D :

E T W TW WE EE ET T T TWE

0 1 2 3 4 5 6 7 8 9 10

Sortie : TWEET TWEE

Page 26: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Exemple

ancien : 6 → 1

nouveau : 1

T : T

D :

E T W TW WE EE ET T T TWE EET

0 1 2 3 4 5 6 7 8 9 10 11

Sortie : TWEET TWEET

Page 27: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Remarques

Force et faiblesse...

Force de l’algorithme : construction du dictionnaire au fur eta mesure de la decompression

l’algo de compression peut engendrer un code avant que celuide decompression ne puisse le definir

Problemes

Gestion du dictionnaire : peut devenir tres grand

Longueur des chaınes a coder variable

Recherche dans D : liste triee des chaınes

A la base des programmes de compression zip et des formats gif ettiff

Page 28: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Solutions

Quelles structures de donnees?

Dictionnaire : couple < code/car >, comme 4/E > pourTWE

Comparaison des chaınes : hachage

Decompression

Recherche d’un code, plus facile qu’une chaınenecessite d’un tampon : pilecode de fin de message

Page 29: Cours Algorithmique, 2 eme partie AS IUT · 2014-06-06 · Codage LZW M ethode excellente lorsque les donn ees comportent des r ep etitions vari ees comme texte en fran˘cais ouen

Conclusion

Codage LZW

Methode excellente lorsque les donnees comportent desrepetitions variees comme texte en francais ouen anglais

Taux de compression d’au moins 50%

Compression de fichiers binaires : resultats plus variables