zlib — zlib-pakkaus ja -purku

Tämä moduuli mahdollistaa binääridatan pakkaamisen ja purkamisen DEFLATE-algoritmilla (jota käytetään yleisesti zlib-kirjastossa ja gzip-arkistointityökalussa).

Muista

Suosi deflate.DeflateIO:n käyttöä tämän moduulin funktioiden sijaan, sillä se tarjoaa virtauspohjaisen rajapinnan pakkaukseen ja purkuun, mikä on kätevä ja muistitehokkaampi tapa lukea tai kirjoittaa pakattua dataa tiedostoon, sokettiin tai virtaan.

Saatavuus:

  • Tämä moduuli ei ole oletusarvoisesti mukana OpenMV Camissa, koska se monistaa toiminnallisuuden, jonka deflate -moduuli jo tarjoaa.

  • Kopio voidaan asentaa (tai jäädyttää mukautettuun laiteohjelmistoon) lähteestä micropython-lib (lähde). Katso Pakettien hallinta saadaksesi lisätietoja. Tämä dokumentaatio kuvaa kyseistä moduulia.

  • Se nojaa sisäänrakennettuun deflate -moduuliin, joka on saatavilla kaikissa OpenMV Cameissa.

  • Pakkaus on käytettävissä vain, jos pakkaus on käytettävissä sisäänrakennetussa deflate -moduulissa – eli ei STM32-pohjaisissa OpenMV Cameissa (katso sen saatavuushuomautus yllä).

Funktiot

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

Purkaa data:n bytes-objektiksi.

Parametri wbits toimii samalla tavalla kuin zlib.compress():lle, seuraavin lisäkelvollisin arvoin:

  • 0: Määrittää ikkunan koon automaattisesti zlib-otsikosta (data:n täytyy olla zlib-muodossa).

  • 3547: Tunnistaa automaattisesti joko zlib- tai gzip-muodon.

Kuten zlib.compress():n kohdalla, katso CPythonin zlib-dokumentaatio saadaksesi lisätietoja wbits-parametrista. Kuten zlib.compress(), myös MicroPython tukee CPythonia pienempiä ikkunakokoja. Katso lisää MicroPython-kohtaisia yksityiskohtia deflate -moduulin dokumentaatiosta.

Jos purettava data vaatii suuremman ikkunakoon, purku epäonnistuu.

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

Pakkaa data:n bytes-objektiksi.

wbits antaa sinun määrittää DEFLATE-sanakirjan ikkunakoon ja tulostusmuodon. Ikkunakoolla voit tehdä kompromissin muistinkäytön ja pakkaustason välillä. Suurempi ikkunakoko mahdollistaa pakkaajan viittaamisen kauemmas syötteessä taaksepäin oleviin fragmentteihin. Tulostusmuodot ovat ”raaka” DEFLATE (ei otsikkoa/alatunnistetta), zlib ja gzip, joista kaksi jälkimmäistä sisältävät otsikon ja tarkistussumman.

wbits:n itseisarvon neljä alinta bittiä asettavat DEFLATE-sanakirjan ikkunakoon kaksikantaisen logaritmin. Esimerkiksi wbits=10, wbits=-10 ja wbits=26 asettavat kaikki ikkunakooksi 1024 tavua. Kelvolliset ikkunakoot ovat 515 mukaan lukien (vastaten 32 tavusta 32 kilotavuun).

wbits:n negatiiviset arvot väliltä -5-15 vastaavat ”raakaa” tulostustilaa, positiiviset arvot väliltä 515 vastaavat zlib-tulostustilaa ja positiiviset arvot väliltä 2131 vastaavat gzip-tulostustilaa.

Katso CPythonin zlib-dokumentaatio saadaksesi lisätietoja wbits-parametrista. Huomaa, että MicroPython sallii pienemmät ikkunakoot, mikä on hyödyllistä muistin ollessa rajoitettu mutta saavuttaen silti kohtuullisen pakkaustason. Se myös nopeuttaa pakkaajaa. Katso lisää MicroPython-kohtaisia yksityiskohtia deflate -moduulin dokumentaatiosta.