zlib — zlib-Komprimierung & -Dekomprimierung

Dieses Modul ermöglicht die Komprimierung und Dekomprimierung von Binärdaten mit dem DEFLATE-Algorithmus (häufig in der zlib-Bibliothek und im gzip-Archivierungsprogramm verwendet).

Bemerkung

Verwenden Sie bevorzugt deflate.DeflateIO anstelle der Funktionen in diesem Modul, da es eine Streaming-Schnittstelle für Komprimierung und Dekomprimierung bietet, die praktisch und speichereffizienter ist, wenn komprimierte Daten aus einer Datei, einem Socket oder einem Stream gelesen oder dorthin geschrieben werden.

Verfügbarkeit:

  • Dieses Modul ist standardmäßig nicht in der OpenMV Cam enthalten, da es Funktionalität dupliziert, die bereits vom Modul deflate bereitgestellt wird.

  • Eine Kopie kann aus micropython-lib installiert (oder in eine benutzerdefinierte Firmware eingefroren) werden (Quelle). Weitere Informationen finden Sie unter Paketverwaltung. Diese Dokumentation beschreibt dieses Modul.

  • Es stützt sich auf das eingebaute Modul deflate, das auf allen OpenMV Cams vorhanden ist.

  • Die Komprimierung ist nur verfügbar, wenn die Komprimierung im eingebauten Modul deflate verfügbar ist – also nicht auf den STM32-basierten OpenMV Cams (siehe den Verfügbarkeitshinweis oben).

Funktionen

zlib.decompress(data: bytes, wbits: int = 15, /) bytes

Dekomprimiert data in ein bytes-Objekt.

Der Parameter wbits funktioniert auf dieselbe Weise wie bei zlib.compress(), mit den folgenden zusätzlichen gültigen Werten:

  • 0: Bestimmt die Fenstergröße automatisch aus dem zlib-Header (data muss im zlib-Format vorliegen).

  • 35 bis 47: Automatische Erkennung des zlib- oder des gzip-Formats.

Wie bei zlib.compress() finden Sie weitere Informationen zum Parameter wbits in der CPython-Dokumentation zu zlib. Wie bei zlib.compress() unterstützt MicroPython auch kleinere Fenstergrößen als CPython. Weitere MicroPython-spezifische Details finden Sie in der Dokumentation des Moduls deflate.

Erfordern die zu dekomprimierenden Daten eine größere Fenstergröße, schlägt der Vorgang während der Dekomprimierung fehl.

zlib.compress(data: bytes, wbits: int = 15, /) bytes

Komprimiert data in ein bytes-Objekt.

wbits ermöglicht es Ihnen, die Fenstergröße des DEFLATE-Wörterbuchs und das Ausgabeformat zu konfigurieren. Die Fenstergröße erlaubt einen Kompromiss zwischen Speicherverbrauch und Komprimierungsgrad. Eine größere Fenstergröße ermöglicht es dem Kompressor, weiter zurückliegende Fragmente in der Eingabe zu referenzieren. Die Ausgabeformate sind „rohes“ DEFLATE (ohne Header/Footer), zlib und gzip, wobei die letzten beiden einen Header und eine Prüfsumme enthalten.

Die niederwertigen vier Bits des Absolutwerts von wbits legen den Logarithmus zur Basis 2 der Fenstergröße des DEFLATE-Wörterbuchs fest. So setzen beispielsweise wbits=10, wbits=-10 und wbits=26 alle die Fenstergröße auf 1024 Bytes. Gültige Fenstergrößen sind 5 bis einschließlich 15 (entsprechend 32 bis 32k Bytes).

Negative Werte von wbits zwischen -5 und -15 entsprechen dem „rohen“ Ausgabemodus, positive Werte zwischen 5 und 15 entsprechen dem zlib-Ausgabemodus und positive Werte zwischen 21 und 31 entsprechen dem gzip-Ausgabemodus.

Weitere Informationen zum Parameter wbits finden Sie in der CPython-Dokumentation zu zlib. Beachten Sie, dass MicroPython kleinere Fenstergrößen erlaubt, was nützlich ist, wenn der Speicher begrenzt ist, und dennoch ein angemessenes Komprimierungsniveau erreicht. Dies beschleunigt zudem den Kompressor. Weitere MicroPython-spezifische Details finden Sie in der Dokumentation des Moduls deflate.