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 (comumente usado na biblioteca zlib e no arquivador gzip).
Nota
Prefira usar deflate.DeflateIO em vez das funções deste módulo, pois ela fornece uma interface de streaming para compressão e descompressão, que é conveniente e mais eficiente em memória ao trabalhar com leitura ou escrita de dados comprimidos em um arquivo, socket ou stream.
Disponibilidade:
Este módulo não está incluído na OpenMV Cam por padrão, pois duplica funcionalidades já fornecidas pelo módulo
deflate.Uma cópia pode ser instalada (ou congelada em um firmware personalizado) a partir do micropython-lib (fonte). Consulte Gerenciamento de pacotes para mais informações. Esta documentação descreve esse módulo.
Ele depende do módulo interno
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 interno
deflate– ou seja, não nas OpenMV Cams baseadas em STM32 (veja a nota de disponibilidade acima).
Funções¶
- zlib.decompress(data: bytes, wbits: int = 15, /) bytes¶
Descomprime data em um objeto bytes.
O parâmetro wbits funciona da mesma forma que em
zlib.compress(), com os seguintes valores válidos adicionais:0: Determina automaticamente o tamanho da janela a partir do cabeçalho zlib (data deve estar no formato zlib).35a47: Detecta automaticamente o formato zlib ou gzip.
Assim como em
zlib.compress(), consulte adocumentação do CPython para zlibpara mais informações sobre o parâmetro wbits. Assim como emzlib.compress(), o MicroPython também suporta tamanhos de janela menores que o CPython. Veja mais detalhes específicos do MicroPython na documentação do módulodeflate.Se os dados a serem descomprimidos exigirem um tamanho de janela maior, a descompressão falhará.
- zlib.compress(data: bytes, wbits: int = 15, /) bytes¶
Comprime data em um objeto bytes.
wbits permite configurar o tamanho da janela do dicionário DEFLATE e o formato de saída. O tamanho da janela permite um compromisso entre uso de memória e nível de compressão. Um tamanho de janela maior permite que o compressor referencie fragmentos mais distantes na entrada. Os formatos de saída são DEFLATE “raw” (sem cabeçalho/rodapé), zlib e gzip, sendo que os dois últimos incluem um cabeçalho e uma soma de verificação.
Os quatro bits inferiores do valor absoluto de wbits definem o logaritmo base 2 do tamanho da janela do dicionário DEFLATE. Assim, por exemplo,
wbits=10,wbits=-10ewbits=26definem todos o tamanho da janela como 1024 bytes. Tamanhos de janela válidos vã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 do CPython para zlibpara mais informações sobre o parâmetro wbits. Observe que o MicroPython permite tamanhos de janela menores, o que é útil quando a memória é limitada e ainda assim atinge um nível razoável de compressão. Isso também acelera o compressor. Veja mais detalhes específicos do MicroPython na documentação do módulodeflate.