www.wikidata.de-de.nina.az
Der Lempel Ziv Markow Algorithmus LZMA ist ein freier Datenkompressionsalgorithmus der von Igor Wiktorowitsch Pawlow seit 1998 entwickelt wird und vergleichsweise gute Kompressionsraten und eine hohe Geschwindigkeit beim Entpacken erreicht Er ist benannt nach Abraham Lempel und Jacob Ziv die den LZ77 Algorithmus entwickelt haben und nach Andrei Andrejewitsch Markow nach dem die Markow Ketten benannt wurden Der Algorithmus arbeitet mit einem Worterbuchverfahren ahnlich LZ77 und kann damit im Prinzip als Weiterentwicklung von Deflate gesehen werden Inhaltsverzeichnis 1 Merkmale 2 Technik 3 Einsatz 3 1 Dateiformate 3 2 Software 4 Geschichte 4 1 Unix Plattformen 5 Weblinks 6 QuellenMerkmale BearbeitenSehr gute Kompression meist besser als bzip2 Schnelle Dekompression etwa doppelt so schnell wie bzip2 Es werden sehr grosse Worterbucher unterstutzt bis zu vier Gigabyte ausgepragte Asymmetrie Fur die Dekompression Entpacken wird nur ein Bruchteil des zur Kompression Packen verwendeten Arbeitsspeichers benotigt unter Windows etwa 2 MB Worterbuchgrosse wahrend der Bedarf an Arbeitsspeicher beim Packen ein Mehrfaches der Worterbuchgrosse betragt Die Dekompression ist in der Regel etwa 10 bis 20 mal so schnell wie das Komprimieren Technik BearbeitenDie Kompression anhand von Lempel Ziv Markow wurde als LZMA implementiert und als LZMA2 weiterentwickelt LZMA nutzt eine verbesserte Variante des LZ77 Algorithmus Markow Ketten und einen Bereichskodierer eine Umsetzung arithmetischen Kodierens zur Entropiekodierung LZMA komprimiert die Daten linear in einem einzigen Block bzw Schritt Hierdurch ist die Komprimierung durch LZMA immer auf einen Prozessorkern beschrankt d h LZMA ist nicht parallelisierbar Der wesentliche Vorteil von LZMA ist dass der ausfuhrbare Code zum Entpacken von LZMA komprimierten Daten typischerweise nur etwa 5 kByte belegt Die beim Entpacken benotigte Menge Arbeitsspeicher hangt von der Grosse des beim Packen erzeugten Worterbuchs ab Durch die geringe Entpackergrosse und den recht geringen Speicherbedarf beim Entpacken besonders mit kleineren Worterbuchern eignet sich das Verfahren besonders gut fur eingebettete Anwendungen In der 7 Zip Umsetzung werden verschiedene Varianten von Hash Knoten Binarbaumen und Patricia Tries fur die Worterbuch Suche genutzt LZMA2 sieht im Gegensatz zu LZMA per Entwurf die gleichzeitige Ausfuhrung auf mehreren Prozessorkernen vor Hierzu teilt LZMA2 die gesamte zu komprimierende Datenmenge in Abschnitte auf die jeweils von separaten Prozessen bzw Threads komprimiert werden Die spatere Dekompression erfolgt ebenfalls parallel Bei der Kompression bauen alle Prozesse ein gemeinsames Worterbuch auf Die Restdaten der Entropiekodierung werden zwangslaufig als separate Datenstrome verarbeitet Die Suboptimalitat der Bereichskodierung betragt unter ein Byte pro Eingangsdatenabschnitt Jeder erzeugte Block des Komprimats erhalt einen minimalen Datenkopf 1 Durch die mogliche Parallelisierung wird das Packen und Entpacken auf Multi Prozessor und Multicore Systemen z T erheblich beschleunigt Einsatz BearbeitenNeben dem Einsatz mit speziellen Dateiformaten fur komprimierte Daten wurde LZMA Unterstutzung auch in viele andere Systeme integriert So steht bei der transparenten Kompression und Dekompression ausfuhrbarer Dateien mit UPX ab Version 2 92 beta oder Upack und bei komprimierenden Dateisystemen wie SquashFS oder CramFS mit entsprechenden Patches auch der LZMA zur Wahl Bei einer grossen Anzahl von Linux Distributionen Arch Linux seit Marz 2010 2 seit 2020 allerdings Zstandard Quelltextpakete der Distribution Gentoo Linux Slackware Linux seit 8 Mai 2009 openSUSE seit dem 27 Marz 2008 Pardus Paketverwaltung und das Debian Paketverwaltungssystem bieten Unterstutzung konnen mittlerweile LZMA komprimierte Installationspakete verwendet werden Auch Software Installationssysteme fur Windows wie das Nullsoft Scriptable Install System und Inno Setup erstellen eine Art erweiterter selbstentpackender Archivdateien die mit LZMA komprimiert sein konnen Dateiformate Bearbeiten Ursprunglich konnte es nur mit dem neuen 7z Format von 7 Zip genutzt werden Mittlerweile stehen einige weitere Formate zur Verfugung Im Falle von xz wurde extra im Hinblick auf LZMA Unterstutzung ein neues Format geschaffen das speziell fur die ausschliessliche Verwendung mit LZMA vorgesehen ist ahnliches gilt auch fur das lzip Format Im Falle des neuen ALZip Formates egg Dateien ist im Zuge einer mit der Verfugbarkeit modernerer Verfahren angezeigten Modernisierung der Dateiformatfahigkeiten im Rahmen eines Kompatibilitatsbruches beim Format ein neues moderneres flexibleres Dateiformat geschaffen worden das nun hauptsachlich mit LZMA komprimierten Inhalten verwendet wird Im Falle von Zip2 zum Beispiel mit WinZip ab Version 12 0 oder 7 Zip ab Version 4 61 beta wurde einem bestehenden erweiterbaren Format LZMA Unterstutzung hinzugefugt Software Bearbeiten Die Referenzimplementierung von LZMA ist in freier Software erfolgt Sie kam zunachst in Form der 7 Zip Programme und wird mittlerweile auch isoliert in Form des LZMA SDK veroffentlicht Die freie Referenzbibliothek zur LZMA Kompression wurde in C geschrieben und unterstutzt Multithreading Zurzeit gibt es drei funktionierende Ubertragungen auf Unix ahnliche Plattformen p7zip ist eine aktuelle Portierung des Kommandozeilenwerkzeugs 7z bietet also vollstandige Unterstutzung des 7z Archivformates und dient oft als Unterbau fur die 7z Funktionen graphischer Werkzeuge mit 7z Unterstutzung wie beispielsweise Karchiver und WinRAR lzip war die erste LZMA Losung fur Unix ahnliche Betriebssysteme die das vertraute Konzept von gzip vollstandig kopierte XZ Utils sind eine Portierung des LZMA Codes von 7 Zip die unter Linux fur die LZMA Packmethode eine weitgehend gleiche Handhabung wie die etablierten gzip und bzip2 bieten welche keine 7z Archive unterstutzen Weiterhin verwendet GRUB2 seit Juli 2008 standardmassig LZMA anstatt des fruher verwendeten LZO vorerst aber nur fur i386 PC Geschichte BearbeitenDie Referenzimplementierung 7 Zip wurde im Jahr 2000 veroffentlicht Der Quellcode des LZMA SDK ist seit dem 23 November 2008 Version 4 61 beta gemeinfrei englisch public domain veroffentlicht Mit Version 9 04 beta von 7 Zip wurde am 30 Mai 2009 der Algorithmus LZMA2 eingefuhrt der eine geringfugig veranderte Variante des ursprunglichen Algorithmus darstellt die Multithreading besser unterstutzt und die Behandlung von nicht komprimierbaren Inhalten verbessert 1 3 Unix Plattformen Bearbeiten Da im Quelltext von 7 Zip ausgedehnter Gebrauch von Windows spezifischen Eigenschaften gemacht wird verging nach dessen Erstveroffentlichung einige Zeit bis zum Erscheinen einer Unix kompatiblen Version obwohl es sich um freie Software handelt LZMA wurde erstmals 2004 mit einem Port der Kommandozeilenversion von 7 Zip namens p7zip auf Unix Plattformen nutzbar Im selben Jahr wurde auch das wesentlich portablere LZMA SDK verfugbar bei dem das Kommandozeilenprogramm lzma alone enthalten ist lzma alone wurde ahnlich gzip oder bzip2 mit tar zusammen verwendet um Datei Metadaten und Rechteinformationen aus Unix Datei und Betriebssystemen aufnehmen zu konnen Weniger als ein Jahr nach der Erstveroffentlichung des LZMA SDK veroffentlichte Lasse Collin die LZMA Utils die zunachst nur aus einem Satz Wrapper Skripte bestehend eine fur Unix Nutzer vertraute gzip ahnliche Benutzerschnittstelle zu lzma alone schuf 2008 veroffentlichte Antonio Diaz lzip welches anstatt des rohen LZMA Datenstromes ein Containerformat mit Prufsummen und Magischen Zahlen bot Damit war eine vollstandige Losung zur Nutzung von LZMA in Unix Manier gegeben die sich allerdings nur teilweise durchsetzen konnte bevor die LZMA Utils entsprechend weiterentwickelt wurden und nun unter dem Namen XZ Utils ahnliches boten 4 Die XZ Utils scheinen sich nun als LZMA Implementierung fur Unix ahnliche Plattformen durchzusetzen Ihr xz Dateiformat wird nun auch von den Referenzimplementierungen unterstutzt Weblinks Bearbeitenoffizielle Website p7zip Website PyLZMA WebsiteQuellen Bearbeiten a b http sourceforge net projects sevenzip forums forum 45797 topic 2965956 Pierre Schmitz Switching to xz compression for new packages archlinux org 23 Marz 2010 http sevenzip sourceforge jp chm cmdline switches method htm LZMA2 Brian Lindholm New Options in the World of File Compression In Linux Gazette Nr 162 Mai 2009 englisch linuxgazette net abgerufen am 7 Januar 2011 Abgerufen von https de wikipedia org w index php title Lempel Ziv Markow Algorithmus amp oldid 212552783