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 и формат вывода. Размер окна позволяет находить компромисс между использованием памяти и уровнем сжатия. Больший размер окна позволяет компрессору ссылаться на фрагменты, расположенные дальше во входных данных. Форматы вывода — это «сырой» DEFLATE (без заголовка/завершителя), zlib и gzip, причём два последних включают заголовок и контрольную сумму.
Младшие четыре бита абсолютного значения wbits задают двоичный логарифм размера окна словаря DEFLATE. Так, например,
wbits=10,wbits=-10иwbits=26— все устанавливают размер окна в 1024 байта. Допустимые размеры окна — от5до15включительно (соответствуют от 32 до 32k байт).Отрицательные значения wbits от
-5до-15соответствуют «сырому» режиму вывода, положительные значения от5до15соответствуют режиму вывода zlib, а положительные значения от21до31соответствуют режиму вывода gzip.См.
документацию CPython по zlibдля дополнительной информации о параметре wbits. Обратите внимание, что MicroPython допускает меньшие размеры окна, что полезно при ограниченной памяти и при этом позволяет достичь приемлемого уровня сжатия. Это также ускоряет компрессор. Подробнее см. особенности MicroPython в документации модуляdeflate.