Lempel-Ziv-Welch

Alex GARRIDO - Florian CHARBONNEAU

ENSIBS Cyberdéfense - 2018

Historique

  • Amélioration de l'algorithme LZ78 (A. Lampel et J. Ziv)
  • Créé en 1984 par T. Welch
  • Utilisé dans les formats GIF et TIFF

2

Principe de fonctionnement

  • Parcours progressif du texte
  • Construction d'un dictionnaire
  • Remplacement de mots par des caractères uniques

Compression

3

Principe de fonctionnement

  • Récupération du charset d'origine
  • Parcours progressif du texte
  • Reconstruction du dictionnaire
  • Remplacement des caractères uniques par des mots

Décompression

4

Essai n°1

  • Passage du dictionnaire pour la décompression
  • Facile à implémenter
  • Taux de compression très bas

Passage du dictionnaire

5

Essai n°2

  • Pas de dictionnaire à transporter
  • Implémentation plus complexe
  • Compression plus élevée

Reconstruction du dictionnaire

6

Résultats

Compression Lorem Ipsum (5§) Le Horla
Nb de lettres 58.07 % 38.12 %
Poids du fichier 24.5 % -17.38 %

7

Méthodes implémentées

  • Lecture de fichiers compressés
  • Écriture de fichiers compressés
  • Compression de variable textuelles
  • Décompression de variable textuelles
  • Décompression avec dictionnaire
  • Récupération de taille de fichiers

8

Limite

  • L'implémentation permet seulement de compresser des fichiers textes encodés sur de l'utf-8

9

Avantage

  • "L’algorithme est conçu pour être rapide à coder, mais n’est la plupart du temps pas optimal car il effectue une analyse limitée des données à compresser."

10

Enseignements

  • Compréhensions des limites d'un algorithme de compression
  • Utilisation de classe, méthodes d'objets et méthodes statiques
  • Compréhension des systèmes d'encodage pour l'écriture de fichiers dans python

11

LZW

By Zeecka

LZW

  • 1,001