zlib — zlib 압축 및 압축 해제#

이 모듈은 DEFLATE 알고리즘 (zlib 라이브러리 및 gzip 아카이버에서 흔히 사용됨)을 사용하여 바이너리 데이터를 압축 및 압축 해제할 수 있게 합니다.

참고

이 모듈의 함수 대신 deflate.DeflateIO 를 사용하는 것이 좋습니다. 이는 압축 및 압축 해제에 대한 스트리밍 인터페이스를 제공하여, 압축된 데이터를 파일, 소켓 또는 스트림에 읽거나 쓸 때 편리하고 메모리 효율이 더 높습니다.

사용 가능 여부:

  • 이 모듈은 deflate 모듈이 이미 제공하는 기능과 중복되므로, 기본적으로 OpenMV Cam에는 포함되어 있지 않습니다.

  • micropython-lib (소스)에서 복사본을 설치(또는 커스텀 펌웨어에 고정)할 수 있습니다. 자세한 내용은 패키지 관리 를 참조하세요. 이 문서는 해당 모듈을 설명합니다.

  • 이는 모든 OpenMV Cam에 존재하는 내장 deflate 모듈에 의존합니다.

  • 압축은 내장 deflate 모듈에서 압축이 가능한 경우에만 사용할 수 있습니다. 즉, STM32 기반 OpenMV Cam에서는 사용할 수 없습니다(위의 사용 가능 여부 참고 사항 참조).

함수#

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

data 를 bytes 객체로 압축 해제합니다.

wbits 매개변수는 zlib.compress() 의 경우와 동일하게 동작하며, 다음과 같은 유효한 값이 추가됩니다:

  • 0: zlib 헤더에서 윈도우 크기를 자동으로 결정합니다(data 는 zlib 형식이어야 함).

  • 35 부터 47: zlib 또는 gzip 형식을 자동으로 감지합니다.

zlib.compress() 의 경우와 마찬가지로, wbits 매개변수에 대한 자세한 내용은 zlib에 대한 CPython 문서 를 참조하세요. zlib.compress() 의 경우와 마찬가지로 MicroPython은 CPython보다 작은 윈도우 크기도 지원합니다. 자세한 MicroPython 고유 세부 사항 은 deflate 모듈 문서를 참조하세요.

압축 해제할 데이터가 더 큰 윈도우 크기를 필요로 하는 경우, 압축 해제 중에 실패합니다.

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

data 를 bytes 객체로 압축합니다.

wbits 를 사용하면 DEFLATE 사전 윈도우 크기와 출력 형식을 구성할 수 있습니다. 윈도우 크기를 통해 메모리 사용량과 압축 수준을 절충할 수 있습니다. 윈도우 크기가 클수록 압축기가 입력에서 더 멀리 떨어진 조각을 참조할 수 있습니다. 출력 형식은 “raw” DEFLATE(헤더/푸터 없음), zlib, gzip이며, 후자의 두 가지는 헤더와 체크섬을 포함합니다.

wbits 절댓값의 하위 4비트는 DEFLATE 사전 윈도우 크기의 밑이 2인 로그를 설정합니다. 예를 들어 wbits=10, wbits=-10, wbits=26 은 모두 윈도우 크기를 1024바이트로 설정합니다. 유효한 윈도우 크기는 5 부터 15 까지입니다(32바이트에서 32k바이트에 해당).

-5 와 -15 사이의 음수 wbits 값은 “raw” 출력 모드에 해당하고, 5 와 15 사이의 양수 값은 zlib 출력 모드에 해당하며, 21 과 31 사이의 양수 값은 gzip 출력 모드에 해당합니다.

wbits 매개변수에 대한 자세한 내용은 zlib에 대한 CPython 문서 를 참조하세요. MicroPython은 더 작은 윈도우 크기를 허용하는데, 이는 메모리가 제한된 상황에서도 합리적인 수준의 압축을 달성할 수 있어 유용합니다. 또한 압축기 속도를 높여줍니다. 자세한 MicroPython 고유 세부 사항 은 deflate 모듈 문서를 참조하세요.