Lempel-Ziv-Oberhumer

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

Lempel-Ziv-Oberhumer (LZO) est un algorithme de compression de données se focalisant sur la vitesse de décompression.

LZO est l'abréviation de Lempel-Ziv-Oberhumer. Il s'agit comme toute la série des LZ (LZ77, LZW, LZMA...) d'un algorithme de compression sans pertes à dictionnaire. Il ne nécessite pas une analyse préalable pour constituer le dictionnaire, et il est donc possible d'utiliser cet algorithme pour compresser un flux de données.

Un des logiciels libres l'implémentant est lzop. La bibliothèque originale, écrite en C, est distribuée sous les termes de la Licence publique générale GNU. D'autres versions sont disponibles pour les langages Perl, Python et Java. La licence du code est détenue par Markus F.X.J. Oberhumer.


Les bibliothèques LZO implémentent de nombreux algorithmes ayant les caractéristiques suivantes :

  • décompression simple et très rapide, ne nécessitant pas plus de mémoire que les tampons d'entrée et sortie
  • compression rapide, de vitesse comparable à l'algorithme Deflate
  • plusieurs niveaux de compression, permettant différents compromis entre la vitesse de compression et la taille des données compressées
  • consommation de mémoire faible pour la compression, de 8 à 64 ko selon les options de compression


LZO est un algorithme de compression par bloc - il compresse et décompresse un bloc de données. La taille des blocs doit être la même lors de la compression et de la décompression.


Comme tous les algorithmes à dictionnaire, LZO compresse les données en les comparant à un dictionnaire. Il produit ainsi de bons résultats sur des données fortement redondantes et des résultats acceptables sur des données difficilement compressibles. Lors du traitement de données incompressibles, LZO ne rajoute qu'un maximum de 16 octets par kibioctet traité.


LZO fonctionne sur des plateformes aussi diverses que : Linux, AIX, ConvexOS, Dreamcast, IRIX, Mac OS, Palm OS, PlayStation, Solaris, SunOS...

Liens externes[modifier | modifier le code]