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
- 990