faecher:informatik:oberstufe:codierung:zip:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung
faecher:informatik:oberstufe:codierung:zip:start [04.10.2022 09:51] Frank Schiebelfaecher:informatik:oberstufe:codierung:zip:start [04.10.2022 10:10] – [Funktionsweise] Frank Schiebel
Zeile 3: Zeile 3:
 Um unsere Übersicht zu den verlustfreien Kompressionsverahren abzuschließen, hier noch einige Informationen zum weit verbreiteten Zip-Format, das in unterschiedlichen Detailimplementationen in zahlreichen Programmen zum Einsatz kommt. Um unsere Übersicht zu den verlustfreien Kompressionsverahren abzuschließen, hier noch einige Informationen zum weit verbreiteten Zip-Format, das in unterschiedlichen Detailimplementationen in zahlreichen Programmen zum Einsatz kommt.
  
-Die Kompression in den meisten Zip-Programmen finden mit DEFLATE statt, das von Phil Katz 1989 für sein DOS Tool {{wpde>PKZIP}} entwickelt wurde. +Die Kompression in den meisten Zip-Programmen finden mit [[wp>DEFLATE]] statt, das von [[wp>Phil Katz]] 1989 für sein DOS Tool [[wp>PKZIP]] entwickelt wurde. 
  
 +===== Funktionsweise =====
  
 +
 +{{ :faecher:informatik:oberstufe:codierung:zip:zip.drawio.png |}}
 +
 +Die Eingabedaten werden zunächst mit einem Vorläufer des LZW-Verfahrens bearbeitet ([[wp>LZ77]])). LZ77 Funktioniert in Teilen ähnlich wie LZW, führt jedoch kein Wörterbuch sondern verweist auf frühere Vorkommen identischer Bitmuster. Das Ergebnis dieser Kompression wird dann mit einer Huffman-Codierung weiter verkleinert, einige Implementationen schließen zuletzt noch eine Lauflängencodierung an.
 +
 +Eine sehr [[http://www.infinitepartitions.com/art001.html|ausführliche Erläuterung findet sich hier]] ({{ :faecher:informatik:oberstufe:codierung:zip:zip.pdf |}}).
 +
 +DEFLATE findet sich unter anderem in folgenden Programmen wieder: 
 +
 +  * PKZIP: Ursprüngliche Implementation, implementiert von [[wp>Phil Katz]] als Teil von [[wp>PKZip]]
 +  * zlib: Standars Referenzimplementation, aufgrund der FOSS Lizenz findetr sich die [[wp>zlib]] in zahlreichen Anwendungen wieder. 
 +  * zlib-ng: Schnellerer Fork der zlib, verwendet besondere Fähigkeiten moderner CPUs.
 +  * Crypto++: Enthält eine Public Domain Implementation in C++. 
 +  * 7-Zip: Geschrieben von [[wp>Igor Pavlov]] in C++ steht diese Implementation unter einer freien Lizenz und erreich eine bessere Kompression als zlib, allerdings auf Kosten der Geschwindigkeit.
 +  * PuTTY 'sshzlib.c': a standalone implementation under the MIT License by Simon Tatham, it has full decoding capability, but only supports static tree only creation
 +libflate:[9] part of the Plan 9 operating system from Bell Labs, implements deflate compression
 +Hyperbac: uses its own proprietary compression library (in C++ and Assembly) with an option to implement the DEFLATE64 storage format
 +Zopfli: C implementation under the Apache License by Google; achieves highest compression at the expense of CPU usage. ZopfliPNG is a variation of Zopfli for use with PNG files.
 +igzip: 
  • faecher/informatik/oberstufe/codierung/zip/start.txt
  • Zuletzt geändert: 04.10.2022 10:13
  • von Frank Schiebel