zlib — zlib-komprimering och -dekomprimering

Denna modul möjliggör komprimering och dekomprimering av binärdata med DEFLATE-algoritmen (vanligen använd i zlib-biblioteket och gzip-arkiveraren).

Anteckning

Föredra att använda deflate.DeflateIO istället för funktionerna i denna modul, eftersom den tillhandahåller ett strömningsgränssnitt för komprimering och dekomprimering som är bekvämt och mer minneseffektivt vid läsning eller skrivning av komprimerade data till en fil, socket eller ström.

Tillgänglighet:

  • Denna modul ingår inte på OpenMV Cam som standard, eftersom den duplicerar funktionalitet som redan tillhandahålls av modulen deflate.

  • En kopia kan installeras (eller frysas in i anpassad fast programvara) från micropython-lib (källkod). Se Pakethantering för mer information. Denna dokumentation beskriver den modulen.

  • Den förlitar sig på den inbyggda modulen deflate, som finns på alla OpenMV Cam.

  • Komprimering är endast tillgänglig om komprimering är tillgänglig i den inbyggda modulen deflate – det vill säga inte på de STM32-baserade OpenMV Cam (se dess tillgänglighetsnotis ovan).

Funktioner

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

Dekomprimerar data till ett bytes-objekt.

Parametern wbits fungerar på samma sätt som för zlib.compress() med följande ytterligare giltiga värden:

  • 0: Bestäm fönsterstorleken automatiskt från zlib-rubriken (data måste vara i zlib-format).

  • 35 till 47: Detektera automatiskt antingen zlib- eller gzip-formatet.

Liksom för zlib.compress(), se CPython-dokumentationen för zlib för mer information om parametern wbits. Liksom för zlib.compress() stöder MicroPython även mindre fönsterstorlekar än CPython. Se fler MicroPython-specifika detaljer i dokumentationen för modulen deflate.

Om de data som ska dekomprimeras kräver en större fönsterstorlek kommer det att misslyckas under dekomprimeringen.

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

Komprimerar data till ett bytes-objekt.

wbits låter dig konfigurera DEFLATE-ordbokens fönsterstorlek och utdataformatet. Fönsterstorleken låter dig göra en avvägning mellan minnesanvändning och komprimeringsnivå. En större fönsterstorlek låter komprimeraren referera till fragment längre tillbaka i indata. Utdataformaten är ”raw” DEFLATE (ingen rubrik/sidfot), zlib och gzip, där de två sistnämnda inkluderar en rubrik och en kontrollsumma.

De fyra lägsta bitarna i absolutvärdet av wbits anger 2-logaritmen för DEFLATE-ordbokens fönsterstorlek. Så till exempel ställer wbits=10, wbits=-10 och wbits=26 alla in fönsterstorleken på 1024 byte. Giltiga fönsterstorlekar är 5 till och med 15 (motsvarande 32 till 32k byte).

Negativa värden på wbits mellan -5 och -15 motsvarar ”raw”-utdataläge, positiva värden mellan 5 och 15 motsvarar zlib-utdataläge, och positiva värden mellan 21 och 31 motsvarar gzip-utdataläge.

Se CPython-dokumentationen för zlib för mer information om parametern wbits. Observera att MicroPython tillåter mindre fönsterstorlekar, vilket är användbart när minnet är begränsat samtidigt som en rimlig komprimeringsnivå uppnås. Det snabbar också upp komprimeraren. Se fler MicroPython-specifika detaljer i dokumentationen för modulen deflate.