LZMA
LZMA (zkratka pro Lempel-Ziv-Markov-Chain Algorithm) je bezeztrátový kompresní algoritmus vyvinutý programátorem Igorem Pavlovem pro jeho archivační program 7-Zip. Jedná se o vylepšení známého algoritmu „Deflate“ a skládá se z LZ77 („Lempel-Ziv 77“, publikovaný v roce 1977), Markovových řetězců (algoritmus vyvinutý již dávno, původně nesouvisející s kompresí dat) a „Range“ algoritmu.
Detailní popis není k dispozici, jediným zdrojem informací je zdrojový kód v „C++“ projektu 7-Zip (MS Visual C++ compiler) a „p7zip“ (GCC compiler), a zjednodušená ANSI-C verze dekompresního kódu. LZMA poskytuje v mnoha případech (ale ne všech) výrazně lepší kompresi než Deflate, cenou za to je pomalejší práce a značná spotřeba paměti. Zvláštností LZMA oproti mnoha algoritmům je, že při kompresi vyžaduje mnohonásobek velikosti slovníku, v závislosti na nastavení parametrů komprese, pro „default“ více než 10krát. Velikost slovníku je teoreticky neomezená, pro 32bitové procesory x86 vychází maximum 256MB slovník pro počítač se 4 GB RAM. Dekomprese je výrazně „levnější“, stačí o něco více paměti než velikost slovníku, a také je mnohonásobně rychlejší než komprese.
Externí odkazy
- LZMA SDK: http://www.7-zip.org/sdk.html