Lempel – Ziv – Oberhumer - Lempel–Ziv–Oberhumer
![]() | tento článek se mohou příliš spoléhat na zdroje příliš úzce souvisí s tématem, což potenciálně brání tomu, aby článek byl ověřitelný a neutrální.Březen 2015) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
![]() | tento článek potřebuje další citace pro ověření.Červenec 2014) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Vývojáři | Markus F.X.J. Oberhumer |
---|---|
První vydání | 20. května 1996 |
Stabilní uvolnění | 2. 10. / 1. března 2017 |
Operační systém | Cross-platform |
Typ | komprese dat |
Licence | GPLv2 nebo komerční |
webová stránka | www |
Lempel – Ziv – Oberhumer (LZO) je bezztrátový komprese dat algoritmus která je zaměřena na rychlost dekomprese.[1]
Design
Původní implementace „lzop“, která byla vydána v roce 1996, vyvinul Markus Franz Xaver Johannes Oberhumer na základě dřívějších algoritmů Abraham Lempel a Jacob Ziv. Knihovna LZO implementuje řadu algoritmů s následujícími charakteristikami:[1]
- vyšší rychlost komprese ve srovnání s DEFLATE komprese
- velmi rychlá dekomprese
- vyžaduje další kompresi během komprese (o velikosti 8 kB nebo 64 kB, v závislosti na úrovni komprese)
- nevyžaduje žádnou další paměť pro dekompresi kromě zdrojových a cílových vyrovnávacích pamětí
- umožňuje uživateli upravit rovnováhu mezi kompresním poměrem a rychlostí komprese, aniž by to ovlivnilo rychlost dekomprese
LZO podporuje překrývající se kompresi a dekompresi na místě. Jako algoritmus komprese bloků komprimuje a dekomprimuje bloky dat. Velikost bloku musí být stejná pro kompresi i dekompresi. LZO komprimuje blok dat do zápasy (posuvný slovník) a běží neodpovídajících literálů k dosažení dobrých výsledků na vysoce redundantních datech a přijatelně se zabývá nekomprimovatelnými daty, pouze rozšiřuje nekomprimovatelná data maximálně o 1/64 původní velikosti, když se měří přes velikost bloku alespoň 1 kB.
Implementace
Referenční implementace je napsána v ANSI C. a byla zpřístupněna jako svobodný software pod GNU General Public License. The autorská práva kód vlastní Markus F. X. J. Oberhumer. Původně vyšlo v roce 1996. Oberhumer také napsal frontend příkazového řádku s názvem lzop.
Verze LZO jsou k dispozici pro Perl, Krajta a Jáva jazyky. Uvádí se, že fungují různé implementace LZO Win32, AIX, ConvexOS, IRIX, Operační Systém Mac, Palm OS, Play Station, Nintendo 64, Wii, Solaris, SunOS, TOS (Atari ST), Linux a VxWorks.
Linuxové jádro používá implementaci LZO v některých svých funkcích:
- btrfs používá LZO jako možnou kompresní metodu pro souborový systém komprese.
- initrd a initramfs použijte LZO jako možnou kompresní metodu pro počáteční Jednotka RAM komprese.
- SquashFS používá LZO jako možnou kompresní metodu pro souborový systém komprese.
- zram používá LZO s kódování délky běhu volala
LZO-RLE
jako výchozí metoda komprese pro Jednotka RAM komprese. - zswap používá LZO jako výchozí metodu komprese pro komprese virtuální paměti
Reference
externí odkazy
- oberhumer.com: LZO knihovna pro kompresi dat v reálném čase
- LZO / LZOP Fanpage na Wayback Machine (archivováno 25. června 2012)
- Arnaud Bouche (2008). „LZO fast compress / uncompress: implementation in 80386 machine code for Delphi“.
- lzo-java na GitHub - Čistá implementace Java kompresního algoritmu liblzo2 LZO
- Formát streamu LZO ve smyslu dekompresoru LZO v Linuxu