zlib — zlib tömörítés és kicsomagolás

Ez a modul lehetővé teszi a bináris adatok tömörítését és kicsomagolását a DEFLATE algoritmussal (amelyet gyakran használnak a zlib könyvtárban és a gzip archiváló eszközben).

Megjegyzés

A modul függvényei helyett inkább a deflate.DeflateIO osztály használata javasolt, mivel az adatfolyam-alapú (streaming) interfészt biztosít a tömörítéshez és kicsomagoláshoz, ami kényelmes és memóriahatékonyabb, amikor tömörített adatokat olvasunk fájlból, socketből vagy adatfolyamból, illetve írunk azokba.

Elérhetőség:

  • Ez a modul alapértelmezetten nincs benne az OpenMV Cam eszközön, mivel olyan funkciókat duplikál, amelyeket a deflate modul már biztosít.

  • Egy másolat telepíthető (vagy egyedi firmware-be fagyasztható) a micropython-lib készletből (forrás). További információért lásd a Csomagkezelés szakaszt. Ez a dokumentáció azt a modult írja le.

  • A beépített deflate modulra támaszkodik, amely minden OpenMV Cam eszközön jelen van.

  • A tömörítés csak akkor érhető el, ha a tömörítés elérhető a beépített deflate modulban – vagyis nem az STM32-alapú OpenMV Cam eszközökön (lásd a fenti elérhetőségi megjegyzést).

Függvények

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

Kicsomagolja a data adatot egy bytes objektummá.

A wbits paraméter ugyanúgy működik, mint a zlib.compress() esetében, a következő további érvényes értékekkel:

  • 0: Automatikusan meghatározza az ablakméretet a zlib fejlécből (a data adatnak zlib formátumúnak kell lennie).

  • 35 és 47 között: Automatikusan felismeri akár a zlib, akár a gzip formátumot.

Akárcsak a zlib.compress() esetében, a wbits paraméterről további információért lásd a CPython zlib dokumentációját. A zlib.compress() függvényhez hasonlóan a MicroPython a CPython-nál kisebb ablakméreteket is támogat. További MicroPython-specifikus részletekért lásd a deflate modul dokumentációját.

Ha a kicsomagolandó adathoz nagyobb ablakméretre van szükség, a kicsomagolás során hibát fog jelezni.

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

Tömöríti a data adatot egy bytes objektummá.

A wbits segítségével konfigurálható a DEFLATE szótár ablakmérete és a kimeneti formátum. Az ablakméret lehetővé teszi a memóriahasználat és a tömörítési szint közötti kompromisszumot. A nagyobb ablakméret lehetővé teszi a tömörítő számára, hogy a bemenetben távolabbra visszanyúló töredékekre hivatkozzon. A kimeneti formátumok a következők: „nyers” (raw) DEFLATE (fejléc/lábléc nélkül), zlib és gzip, ahol az utóbbi kettő fejlécet és ellenőrző összeget is tartalmaz.

A wbits abszolút értékének alsó négy bitje állítja be a DEFLATE szótár ablakméretének 2-es alapú logaritmusát. Így például a wbits=10, wbits=-10 és wbits=26 egyaránt 1024 bájtra állítja az ablakméretet. Az érvényes ablakméretek 5 és 15 között vannak (a határokat beleértve), ami 32 és 32k bájtnak felel meg.

A wbits -5 és -15 közötti negatív értékei a „nyers” (raw) kimeneti módnak felelnek meg, az 5 és 15 közötti pozitív értékei a zlib kimeneti módnak, a 21 és 31 közötti pozitív értékei pedig a gzip kimeneti módnak.

A wbits paraméterről további információért lásd a CPython zlib dokumentációját. Vegye figyelembe, hogy a MicroPython kisebb ablakméreteket is megenged, ami hasznos, amikor a memória korlátozott, miközben még mindig ésszerű szintű tömörítést ér el. Ez a tömörítőt is felgyorsítja. További MicroPython-specifikus részletekért lásd a deflate modul dokumentációját.