Lempel-Ziv-Oberhumer

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

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 sans pertes à dictionnaire, ce qui permet la compression de données sans une analyse préalable qui permet de constituer le dictionnaire. Il est ainsi 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 rapide
  • compression relativement rapide
  • ne requiert que 64 ko de mémoire pour la compression
  • plusieurs niveaux de compression (dont un ne nécessitant que 8 ko de mémoire)


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 : AIX, ConvexOS, Dreamcast, IRIX, Mac OS, Palm OS, PlayStation, Solaris, SunOS...

Liens externes[modifier | modifier le code]