- LZMA
-
LZMA, pour Lempel-Ziv-Markov chain-Algorithm, est un algorithme de compression de données en développement jusqu'à 2001 et utilisé dans le format 7z du programme 7-Zip et par StuffitX. Il utilise une compression avec dictionnaire assez similaire au LZ77 et offre un fort taux de compression (en général plus fort que le Bzip2) et une taille variable de dictionnaire de compression (jusqu'à 4 Go). (voir aussi LZW)
Outre son taux de compression, il a aussi l'avantage d'être beaucoup plus rapide que bzip2 lors de la décompression, mais présente en revanche l'inconvénient d'être très lent et gourmand en mémoire durant la compression (voir le banc de test dans les liens externes). Pour la décompression son utilisation mémoire est un peu supérieure à bzip2.
Une nouvelle version de LZMA, LZMA2, le remplace dans le format XZ, appelé à remplacer le format .lzma (apportant de nouvelles fonctionnalités, notamment la vérification d'intégrité).
Sommaire
Usages
7-Zip est un archiveur utilisant par défaut la compression LZMA. Son auteur Igor Pavlov l'a créé autour du kit de développement LZMA. Le SDK et 7-zip ont été portés dans des environnements POSIX dans P7zip.
Le kit de développement fournit entre autres l'exécutable lzma qui est un simple compresseur de flux (utilitaire comparable à bzip2). L'outil lzma compresse les fichiers en ajoutant une extension .lzma à la fin du nom de fichier. L'utilisation de ce format de fichier est fortement déconseillé par les concepteurs[1], car ce format n'a pas de vérification d'intégrité des données. En particulier, l'outil lzma ignore toutes données supplémentaires à la fin du fichier; de telles données sont usuellement interprétée comme une erreur par les autres programmes du même type. Les concepteurs recommandent l'utilisation des outils XZ, qui permettent entre autres d'utiliser l'algorithme LZMA, conjointement avec un algorithme de contrôle d'intégrité.
Les outils 7-Zip, lzma et xz permettent d'utiliser plusieurs threads pour compresser, ce qui est intéressant[2] pour des machines multiprocesseurs.
Utilisations
Le fait d'avoir un très bon taux de compression et une excellente vitesse de décompression a permis à ce format d'être utilisé dans des formats de systèmes de fichiers compressés accédés en lecture seule.
On peut utiliser lzma au-dessus de l'archiveur tar à la façon de bzip2 ou gzip. Ce n'est pas incongru, certaines versions de tar (celle de busybox par exemple) gèrent les archives (.tar.lzma) lzma. Puisque lzma gère nativement le multithreading cela peut être plus rapide qu'utiliser bzip2. (à noter qu'il existe aujourd'hui une version multithread de bzip2 sous le nom de pbzip2 qui apporte le même type de gain de vitesse)
Licence
Le SDK de LZMA est placé dans le domaine public depuis la version 4.62.
Notes et références
- man du programmes page de
- Calcul parallèle voir l'article
Liens externes
- (en) le SDK LZMA
- (en) LZMA utils (licence GPL)
- (en) banc de test gzip/bzip2/LZMA
- (en) banc de test de plusieurs algorithmes de compression
Catégorie :- Algorithme de compression sans perte
Wikimedia Foundation. 2010.