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).35hingga47: Deteksi otomatis format zlib atau gzip.
Seperti untuk
zlib.compress(), lihatdokumentasi CPython untuk zlibuntuk informasi lebih lanjut tentang parameter wbits. Seperti untukzlib.compress(), MicroPython juga mendukung ukuran jendela yang lebih kecil dari CPython. Lihat lebih banyak detail khusus MicroPython dalam dokumentasi moduldeflate.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, danwbits=26semuanya menetapkan ukuran jendela menjadi 1024 byte. Ukuran jendela yang valid adalah5hingga15inklusif (sesuai dengan 32 hingga 32k byte).Nilai negatif wbits antara
-5dan-15sesuai dengan mode keluaran "mentah", nilai positif antara5dan15sesuai dengan mode keluaran zlib, dan nilai positif antara21dan31sesuai dengan mode keluaran gzip.Lihat
dokumentasi CPython untuk zlibuntuk 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 moduldeflate.