zlib — zlib kompresija i dekompresija

Ovaj modul omogućuje kompresiju i dekompresiju binarnih podataka pomoću DEFLATE algoritma (uobičajeno korištenog u zlib biblioteci i gzip arhivaru).

Napomena

Preferirajte korištenje deflate.DeflateIO umjesto funkcija iz ovog modula jer pruža tokovno sučelje za kompresiju i dekompresiju koje je pogodno i memorijski učinkovitije pri radu s čitanjem ili pisanjem komprimiranih podataka u datoteku, utičnicu ili tok.

Dostupnost:

  • Ovaj modul nije uključen na OpenMV Cam-u prema zadanim postavkama jer duplicira funkcionalnost koju već pruža modul deflate.

  • Kopija se može instalirati (ili zamrznuti u prilagođeni ugrađeni program (firmware)) iz micropython-lib (izvor). Pogledajte Upravljanje paketima za više informacija. Ova dokumentacija opisuje taj modul.

  • Oslanja se na ugrađeni modul deflate, koji je prisutan na svim OpenMV Cam-ovima.

  • Kompresija je dostupna samo ako je kompresija dostupna u ugrađenom modulu deflate – to jest, ne na OpenMV Cam-ovima temeljenima na STM32 (pogledajte napomenu o dostupnosti iznad).

Funkcije

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

Dekomprimira data u bytes objekt.

Parametar wbits radi na isti način kao za zlib.compress() uz sljedeće dodatne valjane vrijednosti:

  • 0: Automatski određuje veličinu prozora iz zlib zaglavlja (data mora biti u zlib formatu).

  • 35 do 47: Automatski prepoznaje zlib ili gzip format.

Kao i za zlib.compress(), pogledajte CPython dokumentaciju za zlib za više informacija o parametru wbits. Kao i za zlib.compress(), MicroPython također podržava manje veličine prozora od CPythona. Pogledajte više pojedinosti specifičnih za MicroPython u dokumentaciji modula deflate.

Ako podaci koji se dekomprimiraju zahtijevaju veću veličinu prozora, dekompresija će propasti.

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

Komprimira data u bytes objekt.

wbits vam omogućuje konfiguriranje veličine prozora DEFLATE rječnika i izlaznog formata. Veličina prozora omogućuje vam kompromis između upotrebe memorije i razine kompresije. Veća veličina prozora omogućit će kompresoru da referencira fragmente dalje unatrag u ulazu. Izlazni formati su „sirovi” DEFLATE (bez zaglavlja/podnožja), zlib i gzip, pri čemu posljednja dva uključuju zaglavlje i kontrolni zbroj.

Donja četiri bita apsolutne vrijednosti wbits postavljaju logaritam po bazi 2 veličine prozora DEFLATE rječnika. Tako, na primjer, wbits=10, wbits=-10 i wbits=26 svi postavljaju veličinu prozora na 1024 bajta. Valjane veličine prozora su 5 do 15 uključivo (što odgovara 32 do 32k bajtova).

Negativne vrijednosti wbits između -5 i -15 odgovaraju „sirovom” izlaznom načinu, pozitivne vrijednosti između 5 i 15 odgovaraju zlib izlaznom načinu, a pozitivne vrijednosti između 21 i 31 odgovaraju gzip izlaznom načinu.

Pogledajte CPython dokumentaciju za zlib za više informacija o parametru wbits. Imajte na umu da MicroPython dopušta manje veličine prozora, što je korisno kada je memorija ograničena, a istovremeno se postiže razumna razina kompresije. Također ubrzava kompresor. Pogledajte više pojedinosti specifičnih za MicroPython u dokumentaciji modula deflate.