zlib — стиснення та розпакування zlib¶
Цей модуль дозволяє стискати та розпаковувати бінарні дані за допомогою алгоритму DEFLATE (широко використовується в бібліотеці zlib та архіваторі gzip).
Примітка
Рекомендується використовувати deflate.DeflateIO замість функцій цього модуля, оскільки він надає потоковий інтерфейс для стиснення та розпакування, який є зручним та ефективнішим за пам’яттю при читанні або записі стиснутих даних у файл, сокет чи потік.
Наявність:
Цей модуль не включено до OpenMV Cam за замовчуванням, оскільки він дублює функціональність, яку вже надає модуль
deflate.Копію можна встановити (або вбудувати у власну мікропрограму) з micropython-lib (джерело). Дивіться Керування пакетами для отримання додаткової інформації. Ця документація описує саме той модуль.
Він покладається на вбудований модуль
deflate, який присутній на всіх OpenMV Cam.Стиснення доступне лише тоді, коли стиснення підтримується вбудованим модулем
deflate— тобто не на OpenMV Cam на базі STM32 (див. примітку про наявність вище).
Функції¶
- zlib.decompress(data: bytes, wbits: int = 15, /) bytes¶
Розпаковує data у об’єкт bytes.
Параметр wbits працює так само, як і для
zlib.compress(), з такими додатковими допустимими значеннями:0: Автоматично визначати розмір вікна з заголовка zlib (data повинні бути у форматі zlib).35до47: Автоматичне визначення формату zlib або gzip.
Як і для
zlib.compress(), дивітьсядокументацію CPython для zlibдля отримання додаткової інформації про параметр wbits. Як і дляzlib.compress(), MicroPython також підтримує менші розміри вікна, ніж CPython. Дивіться більше деталей, специфічних для MicroPython, у документації модуляdeflate.Якщо дані для розпакування вимагають більшого розміру вікна, під час розпакування виникне помилка.
- zlib.compress(data: bytes, wbits: int = 15, /) bytes¶
Стискає data у об’єкт bytes.
wbits дозволяє налаштувати розмір словника вікна DEFLATE та формат виводу. Розмір вікна дозволяє балансувати між використанням пам’яті та рівнем стиснення. Більший розмір вікна дозволить компресору посилатися на фрагменти, розташовані далі у вхідних даних. Формати виводу: «raw» DEFLATE (без заголовка/кінцівки), zlib та gzip, де останні два включають заголовок та контрольну суму.
Молодші чотири біти абсолютного значення wbits задають двійковий логарифм розміру словника вікна DEFLATE. Тобто, наприклад,
wbits=10,wbits=-10таwbits=26— усі задають розмір вікна 1024 байти. Допустимі розміри вікна: від5до15включно (що відповідає від 32 до 32 тисяч байтів).Від’ємні значення wbits від
-5до-15відповідають режиму виводу «raw», додатні значення від5до15відповідають режиму виводу zlib, а додатні значення від21до31відповідають режиму виводу gzip.Дивіться
документацію CPython для zlibдля отримання додаткової інформації про параметр wbits. Зауважте, що MicroPython дозволяє менші розміри вікна, що корисно при обмеженій пам’яті і водночас забезпечує розумний рівень стиснення. Це також прискорює роботу компресора. Дивіться більше деталей, специфічних для MicroPython, у документації модуляdeflate.