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” 출력 모드에 해당하고, 515 사이의 양수 값은 zlib 출력 모드에 해당하며, 2131 사이의 양수 값은 gzip 출력 모드에 해당합니다.

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