zlib — komprese a dekomprese zlib

Tento modul umožňuje kompresi a dekompresi binárních dat pomocí algoritmu DEFLATE (běžně používaného v knihovně zlib a v archivačním nástroji gzip).

Poznámka

Dejte přednost použití deflate.DeflateIO před funkcemi v tomto modulu, protože poskytuje proudové rozhraní ke kompresi a dekompresi, které je pohodlné a paměťově efektivnější při čtení nebo zápisu komprimovaných dat do souboru, socketu nebo streamu.

Dostupnost:

  • Tento modul není ve výchozím nastavení součástí OpenMV Cam, protože duplikuje funkcionalitu již poskytovanou modulem deflate.

  • Kopii lze nainstalovat (nebo zamrazit do vlastního firmwaru) z micropython-lib (zdroj). Více informací najdete v Správa balíčků. Tato dokumentace popisuje právě tento modul.

  • Spoléhá na vestavěný modul deflate, který je přítomen na všech OpenMV Cam.

  • Komprese je k dispozici pouze tehdy, je-li komprese dostupná ve vestavěném modulu deflate – tedy ne na OpenMV Cam založených na STM32 (viz poznámka o dostupnosti výše).

Funkce

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

Dekomprimuje data do objektu bytes.

Parametr wbits funguje stejně jako u zlib.compress() s následujícími dalšími platnými hodnotami:

  • 0: Automaticky určí velikost okna z hlavičky zlib (data musí být ve formátu zlib).

  • 3547: Automatická detekce formátu zlib nebo gzip.

Stejně jako u zlib.compress() najdete více informací o parametru wbits v dokumentaci CPython pro zlib. Stejně jako u zlib.compress() podporuje MicroPython i menší velikosti okna než CPython. Více podrobností specifických pro MicroPython najdete v dokumentaci modulu deflate.

Pokud dekomprimovaná data vyžadují větší velikost okna, dekomprese selže.

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

Komprimuje data do objektu bytes.

wbits umožňuje nakonfigurovat velikost okna slovníku DEFLATE a výstupní formát. Velikost okna umožňuje kompromis mezi využitím paměti a úrovní komprese. Větší velikost okna umožní kompresoru odkazovat na fragmenty dále zpět ve vstupu. Výstupní formáty jsou „raw“ DEFLATE (bez hlavičky/zápatí), zlib a gzip, přičemž poslední dva obsahují hlavičku a kontrolní součet.

Spodní čtyři bity absolutní hodnoty wbits nastavují dvojkový logaritmus velikosti okna slovníku DEFLATE. Takže například wbits=10, wbits=-10 a wbits=26 nastavují velikost okna na 1024 bajtů. Platné velikosti okna jsou 515 včetně (odpovídá 32 až 32k bajtů).

Záporné hodnoty wbits mezi -5 a -15 odpovídají „raw“ výstupnímu režimu, kladné hodnoty mezi 5 a 15 odpovídají výstupnímu režimu zlib a kladné hodnoty mezi 21 a 31 odpovídají výstupnímu režimu gzip.

Více informací o parametru wbits najdete v dokumentaci CPython pro zlib. Pamatujte, že MicroPython umožňuje menší velikosti okna, což je užitečné, když je paměť omezená a přitom je stále dosaženo rozumné úrovně komprese. Také to zrychluje kompresor. Více podrobností specifických pro MicroPython najdete v dokumentaci modulu deflate.