ebooksgratis.com

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Lempel-Ziv-Markov chain algorithm - Wikipedia, the free encyclopedia

Lempel-Ziv-Markov chain algorithm

From Wikipedia, the free encyclopedia

The Lempel-Ziv-Markov chain-Algorithm (LZMA) is an algorithm for data compression in development since 1998[1] and used in the 7z format of the 7-Zip archiver. It uses a dictionary compression scheme somewhat similar to LZ77 and features a high compression ratio (generally higher than bzip2) and a variable compression-dictionary size (up to 4 GB).[2]

Contents

[edit] Overview

The LZMA uses an improved LZ77 compression algorithm, backed by a range encoder.

Streams for data, repeated-sequence size and repeated-sequence location seem to be compressed separately.

[edit] 7-Zip reference implementation

The reference implementation of LZMA is included as part of the 7z and 7-Zip suite of tools. Source code is distributed under the terms of the GNU LGPL license with a special exception for linked binaries. The special exception allows redistribution of binaries linked to unmodified LZMA to be free of any LGPL requirements (e.g., they do not need to allow reverse engineering or binary modifications.)

The reference open source LZMA compression library is written in C++ and has the following properties:

  • Compression speed: approximately 1 MB per second on a 2 GHz CPU
  • Decompression speed: between 10 and 20 MB per second on a 2 GHz CPU
  • Support for multi-threading.

The 7-Zip implementation uses several variants of hash chains, binary trees and Patricia tries as the basis for its dictionary search algorithm.

Decompression-only code for LZMA generally compiles to around 5kB and the amount of RAM required during decompression is principally determined by the size of the sliding window used during compression. Small code size and relatively low memory overhead, particularly with smaller dictionary lengths, make the LZMA decompression algorithm well-suited to embedded applications.

[edit] Algorithm

The documentation in the SDK is very limited, providing no design information.

For that, rely on third-party discussion, e.g., its user forum.[3] Digesting that (or some other source), Paul Sladen summarizes the algorithm:[4]

LZMA is effectively deflate (zlib, gzip, zip) with a larger dictionary size, 32MB instead of 32kB. LZMA stands for Lempel-Ziv-Markov chain-Algorithm, after string back-references have been located, values are reduced using a Markov chain range-encoder (aka arithmetic coding) instead of huffman.

[edit] Users

Software that uses or supports LZMA:

[edit] Notes

  1. ^ The SDK history file states that it was in development from 1996, and first used in 7-zip 2001-08-30. Aside from some unreferenced comments about 1998, the algorithm appears to have been unpublished before its use in 7-zip.
  2. ^ Overview of the LZMA format 7z Format
  3. ^ RE: LZMA Algorithm. SF.net » Projects » 7-Zip » Forum. Retrieved on 2007-10-06.
  4. ^ Paul Sladen. Comment on 7-zip, LZMA and blah. Retrieved on 2007-10-06.

[edit] External links


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -