zlib — compresie și decompresie zlib¶
Acest modul permite compresia și decompresia datelor binare cu algoritmul DEFLATE (utilizat frecvent în biblioteca zlib și în arhivatorul gzip).
Notă
Preferați să folosiți deflate.DeflateIO în locul funcțiilor din acest modul, deoarece oferă o interfață de tip flux pentru compresie și decompresie, care este convenabilă și mai eficientă din punct de vedere al memoriei atunci când citiți sau scrieți date comprimate într-un fișier, socket sau flux.
Disponibilitate:
Acest modul nu este inclus pe OpenMV Cam în mod implicit, deoarece duplică o funcționalitate deja oferită de modulul
deflate.O copie poate fi instalată (sau înghețată în firmware personalizat) din micropython-lib (sursă). Consultați Gestionarea pachetelor pentru mai multe informații. Această documentație descrie acel modul.
Se bazează pe modulul încorporat
deflate, care este prezent pe toate plăcile OpenMV Cam.Compresia este disponibilă doar dacă compresia este disponibilă în modulul încorporat
deflate– adică nu pe plăcile OpenMV Cam bazate pe STM32 (consultați nota privind disponibilitatea de mai sus).
Funcții¶
- zlib.decompress(data: bytes, wbits: int = 15, /) bytes¶
Decomprimă data într-un obiect bytes.
Parametrul wbits funcționează la fel ca pentru
zlib.compress(), cu următoarele valori valide suplimentare:0: Determină automat dimensiunea ferestrei din antetul zlib (data trebuie să fie în format zlib).35până la47: Detectează automat fie formatul zlib, fie formatul gzip.
La fel ca pentru
zlib.compress(), consultațidocumentația CPython pentru zlibpentru mai multe informații despre parametrul wbits. La fel ca pentruzlib.compress(), MicroPython acceptă, de asemenea, dimensiuni de fereastră mai mici decât CPython. Consultați mai multe detalii specifice MicroPython în documentația modululuideflate.Dacă datele care urmează să fie decomprimate necesită o dimensiune de fereastră mai mare, operația va eșua în timpul decompresiei.
- zlib.compress(data: bytes, wbits: int = 15, /) bytes¶
Comprimă data într-un obiect bytes.
wbits vă permite să configurați dimensiunea ferestrei dicționarului DEFLATE și formatul de ieșire. Dimensiunea ferestrei vă permite să faceți un compromis între utilizarea memoriei și nivelul de compresie. O dimensiune mai mare a ferestrei va permite compresorului să facă referire la fragmente aflate mai în urmă în datele de intrare. Formatele de ieșire sunt DEFLATE „brut” (fără antet/subsol), zlib și gzip, ultimele două incluzând un antet și o sumă de control.
Cei patru biți inferiori ai valorii absolute a lui wbits stabilesc logaritmul în baza 2 al dimensiunii ferestrei dicționarului DEFLATE. Astfel, de exemplu,
wbits=10,wbits=-10șiwbits=26setează toate dimensiunea ferestrei la 1024 de octeți. Dimensiunile valide ale ferestrei sunt de la5la15inclusiv (corespunzând a 32 până la 32k octeți).Valorile negative ale lui wbits între
-5și-15corespund modului de ieșire „brut”, valorile pozitive între5și15corespund modului de ieșire zlib, iar valorile pozitive între21și31corespund modului de ieșire gzip.Consultați
documentația CPython pentru zlibpentru mai multe informații despre parametrul wbits. Rețineți că MicroPython permite dimensiuni de fereastră mai mici, ceea ce este util atunci când memoria este limitată, obținându-se totuși un nivel rezonabil de compresie. De asemenea, accelerează compresorul. Consultați mai multe detalii specifice MicroPython în documentația modululuideflate.