# LZMA

### от Уикипедия, свободната енциклопедия

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

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

- 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 [1]
- UPX, след версия 2.92 (beta)
- install4j

## [редактиране] Външни връзки

- 7-Zip Официална страница.
- p7zip 7-Zip и Linux.

Взето от „http://bg.wikipedia.org../../../l/z/m/LZMA_f421.html“.

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

##### Views

- Статия
- Беседа
- Текуща версия

##### Търсене

##### На други езици

- Česky
- Deutsch
- English
- Français
- Magyar
- 日本語
- Polski
- Português
- Русский
- 中文