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
deflatebereitgestellt 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
deflateverfü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).35bis47: Automatische Erkennung des zlib- oder des gzip-Formats.
Wie bei
zlib.compress()finden Sie weitere Informationen zum Parameter wbits in derCPython-Dokumentation zu zlib. Wie beizlib.compress()unterstützt MicroPython auch kleinere Fenstergrößen als CPython. Weitere MicroPython-spezifische Details finden Sie in der Dokumentation des Modulsdeflate.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=-10undwbits=26alle die Fenstergröße auf 1024 Bytes. Gültige Fenstergrößen sind5bis einschließlich15(entsprechend 32 bis 32k Bytes).Negative Werte von wbits zwischen
-5und-15entsprechen dem „rohen“ Ausgabemodus, positive Werte zwischen5und15entsprechen dem zlib-Ausgabemodus und positive Werte zwischen21und31entsprechen 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 Modulsdeflate.