zlib — zlib-compressie en -decompressie¶
Deze module maakt compressie en decompressie van binaire gegevens mogelijk met het DEFLATE-algoritme (veelgebruikt in de zlib-bibliotheek en de gzip-archiver).
Notitie
Geef de voorkeur aan het gebruik van deflate.DeflateIO in plaats van de functies in deze module, aangezien deze een streaming-interface biedt voor compressie en decompressie, wat handig en geheugenefficiënter is bij het lezen of schrijven van gecomprimeerde gegevens naar een bestand, socket of stream.
Beschikbaarheid:
Deze module is standaard niet opgenomen op de OpenMV Cam, omdat ze functionaliteit dupliceert die al wordt geboden door de module
deflate.Een kopie kan worden geïnstalleerd (of in aangepaste firmware worden ingevroren) vanuit micropython-lib (bron). Zie Pakketbeheer voor meer informatie. Deze documentatie beschrijft die module.
Ze is afhankelijk van de ingebouwde module
deflate, die op alle OpenMV Cams aanwezig is.Compressie is alleen beschikbaar als compressie beschikbaar is in de ingebouwde module
deflate– dat wil zeggen, niet op de op STM32 gebaseerde OpenMV Cams (zie de beschikbaarheidsopmerking hierboven).
Functies¶
- zlib.decompress(data: bytes, wbits: int = 15, /) bytes¶
Decomprimeert data tot een bytes-object.
De parameter wbits werkt op dezelfde manier als bij
zlib.compress()met de volgende aanvullende geldige waarden:0: Bepaalt automatisch de venstergrootte uit de zlib-header (data moet in zlib-formaat zijn).35tot47: Detecteert automatisch het zlib- of het gzip-formaat.
Net als bij
zlib.compress()raadpleeg je deCPython-documentatie voor zlibvoor meer informatie over de parameter wbits. Net als bijzlib.compress()ondersteunt MicroPython ook kleinere venstergroottes dan CPython. Zie meer MicroPython-specifieke details in de documentatie van de moduledeflate.Als de te decomprimeren gegevens een grotere venstergrootte vereisen, mislukt dit tijdens de decompressie.
- zlib.compress(data: bytes, wbits: int = 15, /) bytes¶
Comprimeert data tot een bytes-object.
Met wbits kun je de venstergrootte van het DEFLATE-woordenboek en het uitvoerformaat configureren. Met de venstergrootte kun je geheugengebruik afwegen tegen compressieniveau. Een grotere venstergrootte stelt de compressor in staat om naar fragmenten verder terug in de invoer te verwijzen. De uitvoerformaten zijn “raw” DEFLATE (geen header/footer), zlib en gzip, waarbij de laatste twee een header en checksum bevatten.
De lage vier bits van de absolute waarde van wbits stellen de logaritme met grondtal 2 van de venstergrootte van het DEFLATE-woordenboek in. Dus bijvoorbeeld
wbits=10,wbits=-10enwbits=26stellen de venstergrootte allemaal in op 1024 bytes. Geldige venstergroottes zijn5tot en met15(overeenkomend met 32 tot 32k bytes).Negatieve waarden van wbits tussen
-5en-15komen overeen met de “raw” uitvoermodus, positieve waarden tussen5en15komen overeen met de zlib-uitvoermodus, en positieve waarden tussen21en31komen overeen met de gzip-uitvoermodus.Zie de
CPython-documentatie voor zlibvoor meer informatie over de parameter wbits. Merk op dat MicroPython kleinere venstergroottes toestaat, wat nuttig is wanneer het geheugen beperkt is en er toch een redelijk compressieniveau wordt bereikt. Het versnelt ook de compressor. Zie meer MicroPython-specifieke details in de documentatie van de moduledeflate.