zlib --- kompresi & dekompresi zlib

Modul ini memungkinkan kompresi dan dekompresi data biner dengan algoritma DEFLATE (umumnya digunakan dalam pustaka zlib dan pengarsip gzip).

Catatan

Disarankan untuk menggunakan deflate.DeflateIO sebagai pengganti fungsi-fungsi dalam modul ini karena menyediakan antarmuka streaming untuk kompresi dan dekompresi yang nyaman dan lebih efisien dalam penggunaan memori saat bekerja dengan membaca atau menulis data terkompresi ke berkas, soket, atau aliran.

Ketersediaan:

  • Modul ini tidak disertakan di OpenMV Cam secara default, karena menduplikasi fungsionalitas yang sudah disediakan oleh modul deflate.

  • Salinan dapat diinstal (atau dibekukan ke dalam firmware kustom) dari micropython-lib (sumber). Lihat Manajemen paket untuk informasi lebih lanjut. Dokumentasi ini mendeskripsikan modul tersebut.

  • Modul ini bergantung pada modul bawaan deflate, yang tersedia di semua OpenMV Cam.

  • Kompresi hanya tersedia jika kompresi tersedia dalam modul bawaan deflate -- yaitu, tidak pada OpenMV Cam berbasis STM32 (lihat catatan ketersediaannya di atas).

Fungsi

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

Dekompresi data menjadi objek bytes.

Parameter wbits bekerja dengan cara yang sama seperti untuk zlib.compress() dengan nilai-nilai valid tambahan berikut:

  • 0: Tentukan ukuran jendela secara otomatis dari header zlib (data harus dalam format zlib).

  • 35 hingga 47: Deteksi otomatis format zlib atau gzip.

Seperti untuk zlib.compress(), lihat dokumentasi CPython untuk zlib untuk informasi lebih lanjut tentang parameter wbits. Seperti untuk zlib.compress(), MicroPython juga mendukung ukuran jendela yang lebih kecil dari CPython. Lihat lebih banyak detail khusus MicroPython dalam dokumentasi modul deflate.

Jika data yang akan didekompresi memerlukan ukuran jendela yang lebih besar, dekompresi akan gagal.

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

Kompresi data menjadi objek bytes.

wbits memungkinkan Anda mengkonfigurasi ukuran jendela kamus DEFLATE dan format keluaran. Ukuran jendela memungkinkan Anda menukar penggunaan memori dengan tingkat kompresi. Ukuran jendela yang lebih besar akan memungkinkan kompresor untuk mereferensikan fragmen yang lebih jauh ke belakang dalam input. Format keluaran adalah DEFLATE "mentah" (tanpa header/footer), zlib, dan gzip, di mana dua yang terakhir menyertakan header dan checksum.

Empat bit rendah dari nilai absolut wbits menetapkan logaritma basis-2 dari ukuran jendela kamus DEFLATE. Jadi misalnya, wbits=10, wbits=-10, dan wbits=26 semuanya menetapkan ukuran jendela menjadi 1024 byte. Ukuran jendela yang valid adalah 5 hingga 15 inklusif (sesuai dengan 32 hingga 32k byte).

Nilai negatif wbits antara -5 dan -15 sesuai dengan mode keluaran "mentah", nilai positif antara 5 dan 15 sesuai dengan mode keluaran zlib, dan nilai positif antara 21 dan 31 sesuai dengan mode keluaran gzip.

Lihat dokumentasi CPython untuk zlib untuk informasi lebih lanjut tentang parameter wbits. Perhatikan bahwa MicroPython memungkinkan ukuran jendela yang lebih kecil, yang berguna ketika memori terbatas sambil tetap mencapai tingkat kompresi yang wajar. Ini juga mempercepat kompresor. Lihat lebih banyak detail khusus MicroPython dalam dokumentasi modul deflate.