Лемпел(Abraham Lempel)-Зиф(Jacob Ziv)-Марков-алгоритъм или съкратено (LZMA) е алгоритъм за компресиране на данни разработван от 1998 и използван в 7z формата на архиватора 7-Zip. Той използва компресия, базирана на речник, подобна на LZ77, и има висока степен на компресиране (обикновено по-висока от тази на bzip2) и плаваща големина на речника за компресиране (до 1 ГБ).
LZMA използва подобрен LZ77 алгоритъм, заедно с диапазонно кодиране.
Поток от данни, брой повторения и място изглежда се компресират отделно.
Модел на LZMA е включен като част от 7z и 7-Zip. Изходния код се разпространява под GNU LGPL лиценз.
Библиотеката с отворен код използваща LZMA компресия е написана на C++ и има:
7-Zip използва няколко варианта на хеш вериги (hash chains), двоични дървета (binary trees) и Дърво на Радикс (Patricia tries) за основа на речниковия алгоритъм на търсене.
Декомпресиращия код на LZMA е около 5КБ а необходимата памет за декомпресиране е свързана с големината на плаващия прозорец (sliding window) използван при компресирането. Малката големина и ниските изисквания за памет, при малка големина на речника, правят декомпресиращия LZMA алгоритъм подходящ за вградени системи.
Широкото използване на специфични за Microsoft Windows елементи в основата на изходния код, правят по-трудно пренасянето към Юникс въпреки че е свободен софтуер.
Има два варианта работещи под Юникс-съвместими платформи:
lzma
се използва заедно с .tar. На изхода има чист LZMA без заглавна ингормация (header information).За отбелязване е че данните създадени от 7-Zip и LZMA Utils не са съвместими. т.е данните от едната програма не се разпознават от другата.
Програми използващи LZMA алгоритъма: