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).35až47: Automatická detekce formátu zlib nebo gzip.
Stejně jako u
zlib.compress()najdete více informací o parametru wbits vdokumentaci CPython pro zlib. Stejně jako uzlib.compress()podporuje MicroPython i menší velikosti okna než CPython. Více podrobností specifických pro MicroPython najdete v dokumentaci moduludeflate.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=-10awbits=26nastavují velikost okna na 1024 bajtů. Platné velikosti okna jsou5až15včetně (odpovídá 32 až 32k bajtů).Záporné hodnoty wbits mezi
-5a-15odpovídají „raw“ výstupnímu režimu, kladné hodnoty mezi5a15odpovídají výstupnímu režimu zlib a kladné hodnoty mezi21a31odpoví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 moduludeflate.