LZMA
Z Wikipedie, otevřené encyklopedie
LZMA (zkratka pro Lempel-Ziv-Markov-Chain Algorithm), je kompresní algoritmus, vyvinutý programátorem Igorem Pavlovem, pro jeho archivní program 7-Zip. Jedná se o vylepšení známého algorithmu „Deflate“, a skládá se z LZ77 („Lempel-Ziv 77“, publikovaný v roce 1977), Markov-Chain (podivný algorithmus, vyvinutý již dávno, původně nesouvisející s kompresí dat) a „Range“ algorithmu. Detailní popis bohužel není k dispozici, jediný zdroj informací je zdrojový kód ve „C++“ projektů 7-ZIP (MS Visual C++ compiler) a „p7zip“ (GCC compiler), a zjednodušená ANSI-C verze dekompresního kodu. 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 algorithmů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ž 10 krát. Velikost slovníku je teoreticky neomezená, pro 32 bitové procesory 80x86 vychází maximum 256 MB 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.