zlib --- nén & giải nén zlib¶
Module này cho phép nén và giải nén dữ liệu nhị phân với thuật toán DEFLATE (thường được sử dụng trong thư viện zlib và chương trình lưu trữ gzip).
Ghi chú
Ưu tiên sử dụng deflate.DeflateIO thay vì các hàm trong module này vì nó cung cấp giao diện streaming để nén và giải nén, tiện lợi và tiết kiệm bộ nhớ hơn khi đọc hoặc ghi dữ liệu nén vào tập tin, socket hoặc luồng.
Khả dụng:
Module này không được bao gồm trên OpenMV Cam theo mặc định, vì nó trùng lặp chức năng đã được cung cấp bởi module
deflate.Một bản sao có thể được cài đặt (hoặc đóng băng vào firmware tùy chỉnh) từ micropython-lib (mã nguồn). Xem Quản lý gói để biết thêm thông tin. Tài liệu này mô tả module đó.
Nó dựa vào module nội tích
deflate, có mặt trên tất cả các OpenMV Cam.Tính năng nén chỉ khả dụng nếu tính năng nén có sẵn trong module nội tích
deflate-- tức là không có trên các OpenMV Cam dựa trên STM32 (xem ghi chú khả dụng ở trên).
Hàm¶
- zlib.decompress(data: bytes, wbits: int = 15, /) bytes¶
Giải nén data thành đối tượng bytes.
Tham số wbits hoạt động tương tự như đối với
zlib.compress()với các giá trị hợp lệ bổ sung sau:0: Tự động xác định kích thước cửa sổ từ tiêu đề zlib (data phải ở định dạng zlib).35đến47: Tự động phát hiện định dạng zlib hoặc gzip.
Như đối với
zlib.compress(), xemtài liệu CPython cho zlibđể biết thêm thông tin về tham số wbits. Như đối vớizlib.compress(), MicroPython cũng hỗ trợ kích thước cửa sổ nhỏ hơn CPython. Xem thêm chi tiết dành riêng cho MicroPython trong tài liệu moduledeflate.Nếu dữ liệu cần giải nén yêu cầu kích thước cửa sổ lớn hơn, quá trình giải nén sẽ thất bại.
- zlib.compress(data: bytes, wbits: int = 15, /) bytes¶
Nén data thành đối tượng bytes.
wbits cho phép bạn cấu hình kích thước cửa sổ từ điển DEFLATE và định dạng đầu ra. Kích thước cửa sổ cho phép bạn đánh đổi giữa mức sử dụng bộ nhớ và mức độ nén. Cửa sổ lớn hơn cho phép bộ nén tham chiếu các đoạn xa hơn trong đầu vào. Các định dạng đầu ra là DEFLATE "thô" (không có tiêu đề/footer), zlib và gzip, trong đó hai định dạng sau bao gồm tiêu đề và checksum.
Bốn bit thấp của giá trị tuyệt đối của wbits đặt logarit cơ số 2 của kích thước cửa sổ từ điển DEFLATE. Ví dụ,
wbits=10,wbits=-10vàwbits=26đều đặt kích thước cửa sổ là 1024 byte. Kích thước cửa sổ hợp lệ là từ5đến15(tương ứng từ 32 đến 32k byte).Các giá trị âm của wbits từ
-5đến-15tương ứng với chế độ đầu ra "thô", các giá trị dương từ5đến15tương ứng với chế độ đầu ra zlib, và các giá trị dương từ21đến31tương ứng với chế độ đầu ra gzip.Xem
tài liệu CPython cho zlibđể biết thêm thông tin về tham số wbits. Lưu ý rằng MicroPython cho phép kích thước cửa sổ nhỏ hơn, hữu ích khi bộ nhớ bị hạn chế trong khi vẫn đạt được mức độ nén hợp lý. Nó cũng tăng tốc độ bộ nén. Xem thêm chi tiết dành riêng cho MicroPython trong tài liệu moduledeflate.