zlib — compression et décompression zlib¶
Ce module permet la compression et la décompression de données binaires à l’aide de l”algorithme DEFLATE (couramment utilisé dans la bibliothèque zlib et l’archiveur gzip).
Note
Préférez utiliser deflate.DeflateIO plutôt que les fonctions de ce module, car il fournit une interface de flux pour la compression et la décompression, ce qui est pratique et plus économe en mémoire lors de la lecture ou de l’écriture de données compressées dans un fichier, un socket ou un flux.
Disponibilité :
Ce module n’est pas inclus sur l’OpenMV Cam par défaut, car il fait double emploi avec une fonctionnalité déjà fournie par le module
deflate.Une copie peut être installée (ou figée dans un micrologiciel personnalisé) depuis micropython-lib (source). Voir Gestion des paquets pour plus d’informations. Cette documentation décrit ce module.
Il s’appuie sur le module intégré
deflate, présent sur toutes les OpenMV Cam.La compression n’est disponible que si elle l’est dans le module intégré
deflate– c’est-à-dire pas sur les OpenMV Cam basées sur STM32 (voir sa note de disponibilité ci-dessus).
Fonctions¶
- zlib.decompress(data: bytes, wbits: int = 15, /) bytes¶
Décompresse data en un objet bytes.
Le paramètre wbits fonctionne de la même manière que pour
zlib.compress()avec les valeurs valides supplémentaires suivantes :0: détermine automatiquement la taille de la fenêtre à partir de l’en-tête zlib (data doit être au format zlib).35à47: détecte automatiquement le format zlib ou gzip.
Comme pour
zlib.compress(), consultez ladocumentation CPython de zlibpour plus d’informations sur le paramètre wbits. Comme pourzlib.compress(), MicroPython prend également en charge des tailles de fenêtre plus petites que CPython. Voir plus de détails propres à MicroPython dans la documentation du moduledeflate.Si les données à décompresser nécessitent une taille de fenêtre plus grande, la décompression échouera.
- zlib.compress(data: bytes, wbits: int = 15, /) bytes¶
Compresse data en un objet bytes.
wbits vous permet de configurer la taille de la fenêtre du dictionnaire DEFLATE et le format de sortie. La taille de la fenêtre permet d’arbitrer entre utilisation mémoire et niveau de compression. Une taille de fenêtre plus grande permet au compresseur de référencer des fragments plus éloignés en arrière dans l’entrée. Les formats de sortie sont le DEFLATE « brut » (sans en-tête ni pied de page), zlib et gzip, ces deux derniers incluant un en-tête et une somme de contrôle.
Les quatre bits de poids faible de la valeur absolue de wbits définissent le logarithme en base 2 de la taille de la fenêtre du dictionnaire DEFLATE. Ainsi, par exemple,
wbits=10,wbits=-10etwbits=26définissent tous la taille de la fenêtre à 1024 octets. Les tailles de fenêtre valides vont de5à15inclus (correspondant à 32 à 32k octets).Les valeurs négatives de wbits entre
-5et-15correspondent au mode de sortie « brut », les valeurs positives entre5et15correspondent au mode de sortie zlib, et les valeurs positives entre21et31correspondent au mode de sortie gzip.Consultez la
documentation CPython de zlibpour plus d’informations sur le paramètre wbits. Notez que MicroPython autorise des tailles de fenêtre plus petites, ce qui est utile lorsque la mémoire est limitée tout en obtenant un niveau de compression raisonnable. Cela accélère également le compresseur. Voir plus de détails propres à MicroPython dans la documentation du moduledeflate.