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).35till47: Detektera automatiskt antingen zlib- eller gzip-formatet.
Liksom för
zlib.compress(), seCPython-dokumentationen för zlibför mer information om parametern wbits. Liksom förzlib.compress()stöder MicroPython även mindre fönsterstorlekar än CPython. Se fler MicroPython-specifika detaljer i dokumentationen för modulendeflate.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=-10ochwbits=26alla in fönsterstorleken på 1024 byte. Giltiga fönsterstorlekar är5till och med15(motsvarande 32 till 32k byte).Negativa värden på wbits mellan
-5och-15motsvarar ”raw”-utdataläge, positiva värden mellan5och15motsvarar zlib-utdataläge, och positiva värden mellan21och31motsvarar gzip-utdataläge.Se
CPython-dokumentationen för zlibfö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 modulendeflate.