Reduced Offset Lempel Ziv, (ROLZ) ist ein Datenkompressionsalgorithmus, der von Ross Williams entwickelt wurde. Es handelt sich um ein Wörterbuchverfahren, das auf LZ77 aufbaut, jedoch im Unterschied zu diesem kontextbezogene Methoden nutzt. Softwaretechnisch wurde das Konzept erstmals von Malcolm Taylor in dessen Datenkompressionsprogramm RK (beziehungsweise WinRK) umgesetzt. Mit dem QUAD-Kompressor[1] von Ilia Muraviev existiert eine freie Implementierung (unter LGPL).
Versionen des Algorithmus
BearbeitenDer Versuch, die möglichen Werte der Offsets zu reduzieren, wurde von vielen Autoren unternommen. Bemerkenswert sind hier:
LZFG-C2 (Edward R. Fiala, Daniel H. Greene, 1989)
BearbeitenÜbereinstimmungen werden nicht als Paare aus Länge und Offset gespeichert, sondern durch eine spezielle Marke, die zu einer bestimmten Zeile im Wörterbuch gehören.
LZRW4 (Ross Williams, 1991)
BearbeitenDer LZRW4-Algorithmus von Ross Williams entspricht dem ROLZ. Obwohl der Autor keine brauchbare Implementation vornahm, verwirklicht sein Beispielkompressor in groben Zügen den ROLZ-Algorithmus.
LZP1–LZP4 (Charles Bloom, 1995)
BearbeitenLZP ist ein Wörterbuchkompressor, dessen Codierung der Übereinstimmungen vollständig ohne Offsets arbeitet. Dazu wird die Länge der Übereinstimmung mit der auf das letzte Auftreten des vorausgehenden Kontexts folgenden Zeichenkette in einer Liste gespeichert.
LZ77-PM (Dzung T. Hoang, Philip M. Long, Jeffrey Scott Vitter, 1995)
BearbeitenDieser Algorithmus unterscheidet sich von ROLZ nur dadurch, dass der einer Übereinstimmung vorausgehende Kontext von variabler Länge sein darf, anstatt eines Kontextes festgelegten Grades.
ROLZ2–ROLZ3 (Malcolm Taylor, 2005)
BearbeitenDiese Algorithmen sind Weiterentwicklungen des ursprünglichen ROLZ:
- ROLZ2 soll maximale Entpackgeschwindigkeiten sicherstellen
- ROLZ3 zielt auf maximale Packraten mit vernachlässigbaren Geschwindigkeitsverlusten beim Entpacken
Weblinks
Bearbeiten- msoftware.co.nz – Website von RK und WinRK
- quad.sourceforge.net – Datenkompressionsprogramm mit quelloffener Implementierung (unter LGPL)
- ross.net/compression – Beschreibungen und Implementierungen von LZRW1–LZRW4. Der Artikel zu LZRW4 enthält eine theoretische Abhandlung über die Vorteile von ROLZ.
- cbloom.com/src/index_lz.html – Beschreibungen und Implementationen diverser Varianten von LZP und LZCB
- arturocampos.com/ac_lzp.html – sehr nützliche Beschreibung des LZP-Algorithmus von Arturo Campos