Лемпел(Abraham Lempel)-Зиф(Jacob Ziv)-Марков-алгоритъм или съкратено (LZMA) е алгоритъм за компресиране на данни разработван от 1998 и използван в 7z формата на архиватора 7-Zip. Той използва компресия, базирана на речник, подобна на LZ77, и има висока степен на компресиране (обикновено по-висока от тази на bzip2) и плаваща големина на речника за компресиране (до 1 ГБ).

Описание LZMA използва подобрен LZ77 алгоритъм, заедно с диапазонно кодиране.

Поток от данни, брой повторения и място изглежда се компресират отделно.

7-Zip модел Модел на LZMA е включен като част от 7z и 7-Zip. Изходния код се разпространява под GNU LGPL лиценз.

Библиотеката с отворен код използваща LZMA компресия е написана на C++ и има:

Скорост на компресиране: около 1 МБ за секунда на 2 ГХерцов процесор Скорост на декомпресиране: между 10 и 20 МБ за секунда на 2 Гхерцов процесор Поддържа многопоточност.

7-Zip използва няколко варианта на хеш вериги (hash chains), двоични дървета (binary trees) и Дърво на Радикс (Patricia tries) за основа на речниковия алгоритъм на търсене.

Декомпресиращия код на LZMA е около 5КБ а необходимата памет за декомпресиране е свързана с големината на плаващия прозорец (sliding window) използван при компресирането. Малката големина и ниските изисквания за памет, при малка големина на речника, правят декомпресиращия LZMA алгоритъм подходящ за вградени системи.

Преносимост Широкото използване на специфични за Microsoft Windows елементи в основата на изходния код, правят по-трудно пренасянето към Юникс въпреки че е свободен софтуер.

Има два варианта работещи под Юникс-съвместими платформи:

p7zip, е базиран на приложенията за командна линия на 7-Zip – 7z и 7za. p7zip създава стандатни 7z архиви където LZMA може да се комбинира с други филтри. LZMA Utils, използва само LZMA код и е създаден само за работа с чист LZMA поток подобно на gzip и bzip2. За архивиране на множество файлове lzma се използва заедно с .tar. На изхода има чист LZMA без заглавна ингормация (header information).

За отбелязване е че данните създадени от 7-Zip и LZMA Utils не са съвместими. т.е данните от едната програма не се разпознават от другата.

Употреба Програми използващи LZMA алгоритъма:

Nullsoft Scriptable Install System Inno Setup cramfs и SquashFS, чрез кръпки lrzip („long range zip“, или „LZMA rzip“) PyLZMA, Python интерфейс към LZMA SDK на Игор Павлов FreeArc , архиватор и Haskell интерфейс към LZMA SDK Pascal LZMA SDK – написан на Паскал CompreXX, с интеграция в Explorer подобно на ZIP папките в Windows XP InstallAware, за Windows Installer Peazip, GUI към 7z и POSIX 7z UPX, след версия 2.92 (beta) install4j

Външни препратки 7-Zip Официална страница. p7zip 7-Zip и Linux.

Категория:Алгоритми