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 10:03] – [Funktionsweise] Frank Schiebel | faecher:informatik:oberstufe:codierung:zip:start [04.10.2022 10:10] – [Funktionsweise] Frank Schiebel |
---|
| |
| |
{{ :faecher:informatik:oberstufe:codierung:zip:deflate.drawio.png |}} | {{ :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. | 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 |}}). | 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: |