| 원저자 | 로데 반데벤네 및 이르키 알라쿠이얄라 |
|---|---|
| 개발자 | 구글 |
| 발표일 | 2013년 2월 |
| 안정화 버전 | |
| 저장소 | |
| 프로그래밍 언어 | C |
| 종류 | 데이터 압축 |
| 라이선스 | Apache License 2.0 |
| 웹사이트 | github |
Zopfli(조플리)는 DEFLATE, Gzip 및 Zlib 데이터 인코딩을 수행하는 데이터 압축 라이브러리이다. 속도가 느린 대신 주류 Deflate 및 zlib 구현보다 높은 압축률을 달성한다. 구글은 2013년 2월 Apache License 2.0 조건에 따라 Zopfli를 처음 출시했다. 구글은 2025년 10월에 이 프로젝트를 보관(archived) 처리했다.
Zopfli는 가공되지 않은 Deflate 데이터 스트림을 생성하거나 이를 gzip 또는 zlib 형식으로 캡슐화할 수 있다. Zopfli는 보다 철저한 압축 기술을 통해 더 높은 데이터 밀도를 달성한다. 이 방법은 비압축 데이터의 가능한 모든 Deflate 표현 그래프를 통해 낮은 비트 비용 경로를 찾기 위해 반복적인 엔트로피 모델링과 최단 경로 문제 알고리즘을 기반으로 한다. 기본적으로 Zopfli는 15회 반복을 수행하지만 더 많거나 적게 수행하도록 구성할 수 있다. 기본 설정에서 Zopfli의 출력은 일반적으로 zlib의 최대 압축보다 3~8% 더 작지만 약 80배 더 오래 걸린다.
압축 속도가 현저히 느리기 때문에 Zopfli는 실시간(on-the-fly) 압축에는 적합하지 않다. 일반적으로 정적 콘텐츠의 일회성 압축에 사용된다. 이는 일반적으로 Deflate 기반 HTTP 압축으로 제공되는 웹 콘텐츠나 PNG 또는 WOFF 폰트 파일과 같은 Deflate 기반 파일 형식의 웹 콘텐츠에 해당한다. 또 다른 사용 사례는 특히 모바일 연결에서 안드로이드 애플리케이션 패키지(APK)나 자바 아카이브(JAR)와 같이 ZIP 기반 형식을 가진 소프트웨어 패키지 파일의 소프트웨어 업데이트 또는 다운로드이다.
Zopfli는 이르키 알라쿠이얄라의 알고리즘을 기반으로 한다. 이르키 알라쿠이얄라와 로데 반데벤네가 만든 Zopfli의 첫 번째 레퍼런스 구현은 2013년 2월에 등장했다. 버전 1.0.0은 2013년 4월 25일에 출시되었다. 레퍼런스 구현은 C로 작성된 Apache License 2.0 조건의 소프트웨어 라이브러리이다.
그 이후로 오픈 소스 커뮤니티에서는 PNG가 Deflate 압축 레이어를 사용하기 때문에 Portable Network Graphics(PNG) 파일을 최적화하기 위해 Zopfli를 수정하려는 시도를 했다. 이러한 수정의 결실은 ZopfliPNG였으며, 2013년 5월 구글의 Zopfli 저장소에 승인되었다. Zopfli 알고리즘은 advpng(AdvanceCOMP 유틸리티 제품군) 및 OxiPNG와 같은 다른 PNG 압축 최적화 도구에도 통합되었다.