.lzo – Lempel–Ziv–Oberhumer

Lempel–Ziv–Oberhumer (LZO) adalah algoritme kompresi data lossless yang berfokus pada kecepatan dekompresi.

Desain
Implementasi “lzop” asli, dirilis pada tahun 1996, dikembangkan oleh Markus Franz Xaver Johannes Oberhumer, berdasarkan algoritme sebelumnya oleh Abraham Lempel dan Jacob Ziv. Perpustakaan LZO mengimplementasikan sejumlah algoritma dengan karakteristik sebagai berikut:

  • Kecepatan kompresi lebih tinggi dibandingkan dengan kompresi DEFLATE
  • Dekompresi yang sangat cepat
  • Memerlukan buffer tambahan selama kompresi (berukuran 8 kB atau 64 kB, bergantung pada tingkat kompresi)
  • Tidak memerlukan memori tambahan untuk dekompresi selain buffer sumber dan tujuan
  • Memungkinkan pengguna untuk mengatur keseimbangan antara rasio kompresi dan kecepatan kompresi, tanpa mempengaruhi kecepatan dekompresi

LZO mendukung kompresi yang tumpang tindih dan dekompresi di tempat. Sebagai algoritma kompresi blok, ini memampatkan dan mendekompresi blok data. Ukuran blok harus sama untuk kompresi dan dekompresi. LZO mengompres blok data menjadi pencocokan (kamus geser) dan menjalankan literal yang tidak cocok untuk menghasilkan hasil yang baik pada data yang sangat redundan dan dapat diterima dengan data yang tidak dapat dimampatkan, hanya memperluas data yang tidak dapat dimampatkan maksimal 1/64 dari ukuran aslinya jika diukur dengan ukuran blok minimal 1 kB.[2]

Implementasi
Implementasi referensi ditulis dalam ANSI C, dan telah tersedia sebagai perangkat lunak bebas di bawah Lisensi Publik Umum GNU. Hak cipta kode dimiliki oleh Markus F.X.J. Oberhumer. Ini awalnya diterbitkan pada tahun 1996. Oberhumer juga telah menulis frontend baris perintah yang disebut lzop.

Versi LZO tersedia untuk bahasa Perl, Python dan Java. Berbagai implementasi LZO dilaporkan bekerja di bawah Win32, AIX, ConvexOS, IRIX, Mac OS, Palm OS, PlayStation, Nintendo 64, Wii, Solaris, SunOS, TOS (Atari ST), Linux dan VxWorks.

Pustaka libavutil FFmpeg menyertakan implementasi LZO[3]nya sendiri sebagai metode yang memungkinkan untuk kompresi video lossless. Implementasi dekompresor FFmpeg juga digunakan di OpenConnect untuk mendukung paket ESP terkompresi LZO yang dikirim oleh Juniper Networks dan server Pulse Secure VPN.[4]

Kernel Linux menggunakan implementasi LZO di beberapa fiturnya:

  • btrfs menggunakan LZO sebagai metode kompresi yang memungkinkan untuk kompresi sistem file.
  • initrd dan initramfs menggunakan LZO sebagai metode kompresi yang memungkinkan untuk kompresi drive RAM awal.
  • SquashFS menggunakan LZO sebagai metode kompresi yang memungkinkan untuk kompresi sistem file.
  • zram menggunakan LZO dengan run-length encoding yang disebut LZO-RLE sebagai metode kompresi default untuk kompresi drive RAM.
  • zswap menggunakan LZO sebagai metode kompresi default untuk kompresi memori virtual
This entry was posted in . Bookmark the permalink.

SIGN UP FOR NEWSLETTER

Signup for our newsletter to get notified about news and new products.