LZMA

Un article de Wikipédia, l'encyclopédie libre.

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.

Sommaire

[modifier] Implémentations

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). Comme 7-zip, il peut utiliser plusieurs threads pour compresser, ce qui est intéressant[1] pour des machines multiprocesseurs.

[modifier] 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.

[modifier] Notes et références

  1. voir l'article Calcul parallèle

[modifier] Liens externes