Jump to content

Lempel–Ziv–Oberhumer

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by InternetArchiveBot (talk | contribs) at 20:18, 13 May 2017 (Rescuing 1 sources and tagging 0 as dead. #IABot (v1.3.1.1)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Lempel–Ziv–Oberhumer (LZO) is a lossless data compression algorithm that is focused on decompression speed.[1]

Design

The LZO library implements a number of algorithms with the following characteristics:[1]

  • compression comparable in speed to DEFLATE compression
  • very fast decompression
  • requires an additional buffer during compression (of size 8 kB or 64 kB, depending on compression level)
  • requires no additional memory for decompression other than the source and destination buffers
  • allows the user to adjust the balance between compression ratio and compression speed, without affecting the speed of decompression

LZO supports overlapping compression and in-place decompression. As a block compression algorithm, it compresses and decompresses blocks of data. Block size must be the same for compression and decompression. LZO compresses a block of data into matches (a sliding dictionary) and runs of non-matching literals to produce good results on highly redundant data and deals acceptably with non-compressible data, only expanding incompressible data by a maximum of 1/64 of the original size when measured over a block size of at least 1 kB.

Implementations

A free software tool which implements it is lzop. The original library was written in ANSI C, and it has been made available under the GNU General Public License. Versions of LZO are available for the Perl, Python and Java languages. The copyright for the code is owned by Markus F. X. J. Oberhumer. It was originally published in 1996. Various LZO implementations are reported to work under Win32, AIX, ConvexOS, IRIX, Mac OS, Palm OS, PlayStation, Nintendo 64, Wii, Solaris, SunOS, TOS (Atari ST), Linux and VxWorks. LZO is an option for transparent compression in the btrfs and SquashFS filesystems.

See also

  • LZ4, a newer variant optimized for speed at the cost of compression ratio

References

  1. ^ a b "LZO real-time data compression library". Archived from the original on 2012-06-25. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)