zlib — compressão e descompressão zlib¶
Este módulo permite a compressão e descompressão de dados binários com o algoritmo DEFLATE (utilizado comummente na biblioteca zlib e no arquivador gzip).
Nota
Prefira utilizar deflate.DeflateIO em vez das funções neste módulo, pois fornece uma interface de fluxo para compressão e descompressão, o que é conveniente e mais eficiente em termos de memória ao trabalhar com leitura ou escrita de dados comprimidos num ficheiro, socket ou fluxo.
Disponibilidade:
Este módulo não está incluído na OpenMV Cam por padrão, pois duplica funcionalidade já fornecida pelo módulo
deflate.Uma cópia pode ser instalada (ou incorporada em firmware personalizado) a partir de micropython-lib (fonte). Consulte Gestão de pacotes para mais informações. Esta documentação descreve esse módulo.
Depende do módulo integrado
deflate, que está presente em todas as OpenMV Cams.A compressão só está disponível se a compressão estiver disponível no módulo integrado
deflate– ou seja, não nas OpenMV Cams baseadas em STM32 (consulte a nota de disponibilidade acima).
Funções¶
- zlib.decompress(data: bytes, wbits: int = 15, /) bytes¶
Descomprime data num objeto bytes.
O parâmetro wbits funciona da mesma forma que para
zlib.compress(), com os seguintes valores adicionais válidos:0: Determina automaticamente o tamanho da janela a partir do cabeçalho zlib (data deve estar em formato zlib).35a47: Deteta automaticamente o formato zlib ou gzip.
Tal como para
zlib.compress(), consulte adocumentação CPython para zlibpara mais informações sobre o parâmetro wbits. Tal como parazlib.compress(), o MicroPython também suporta tamanhos de janela menores do que o CPython. Consulte mais detalhes específicos do MicroPython na documentação do módulodeflate.Se os dados a descomprimir exigirem um tamanho de janela maior, a operação falhará durante a descompressão.
- zlib.compress(data: bytes, wbits: int = 15, /) bytes¶
Comprime data num objeto bytes.
wbits permite configurar o tamanho da janela do dicionário DEFLATE e o formato de saída. O tamanho da janela permite trocar utilização de memória por nível de compressão. Uma janela maior permitirá ao compressor referenciar fragmentos mais distantes na entrada. Os formatos de saída são DEFLATE «raw» (sem cabeçalho/rodapé), zlib e gzip, onde os dois últimos incluem um cabeçalho e soma de verificação.
Os quatro bits inferiores do valor absoluto de wbits definem o logaritmo de base 2 do tamanho da janela do dicionário DEFLATE. Assim, por exemplo,
wbits=10,wbits=-10ewbits=26definem todos o tamanho da janela para 1024 bytes. Os tamanhos de janela válidos são de5a15inclusive (correspondendo a 32 a 32k bytes).Valores negativos de wbits entre
-5e-15correspondem ao modo de saída «raw», valores positivos entre5e15correspondem ao modo de saída zlib, e valores positivos entre21e31correspondem ao modo de saída gzip.Consulte a
documentação CPython para zlibpara mais informações sobre o parâmetro wbits. Note que o MicroPython permite tamanhos de janela menores, o que é útil quando a memória é limitada e ainda se pretende obter um nível razoável de compressão. Também acelera o compressor. Consulte mais detalhes específicos do MicroPython na documentação do módulodeflate.