Направо към съдържанието

LZMA

от Уикипедия, свободната енциклопедия
(пренасочване от Lzma)

Лемпел(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 елементи в основата на изходния код, правят по-трудно пренасянето към Юникс въпреки че е свободен софтуер.

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

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

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

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