Zopfli
| 원저자 | 로데 반데벤네 및 이르키 알라쿠이얄라 |
|---|---|
| 개발자 | 구글 |
| 발표일 | 2013년 2월 |
| 안정화 버전 | |
| 저장소 | |
| 프로그래밍 언어 | C |
| 종류 | 데이터 압축 |
| 라이선스 | Apache License 2.0 |
| 웹사이트 | github |
Zopfli(조플리)는 DEFLATE, Gzip 및 Zlib 데이터 인코딩을 수행하는 데이터 압축 라이브러리이다.[2] 속도가 느린 대신 주류 Deflate 및 zlib 구현보다 높은 압축률을 달성한다.[3] 구글은 2013년 2월 Apache License 2.0 조건에 따라 Zopfli를 처음 출시했다.[4] 구글은 2025년 10월에 이 프로젝트를 보관(archived) 처리했다.
Zopfli라는 이름은 스위스 독일어에서 설탕을 넣지 않은 초프의 한 종류인 "Zopf"의 지소사이다.[5]
동작
[편집]Zopfli는 가공되지 않은 Deflate 데이터 스트림을 생성하거나 이를 gzip 또는 zlib 형식으로 캡슐화할 수 있다. Zopfli는 보다 철저한 압축 기술을 통해 더 높은 데이터 밀도를 달성한다. 이 방법은 비압축 데이터의 가능한 모든 Deflate 표현 그래프를 통해 낮은 비트 비용 경로를 찾기 위해 반복적인 엔트로피 모델링과 최단 경로 문제 알고리즘을 기반으로 한다.[6] 기본적으로 Zopfli는 15회 반복을 수행하지만 더 많거나 적게 수행하도록 구성할 수 있다. 기본 설정에서 Zopfli의 출력은 일반적으로 zlib의 최대 압축보다 3~8% 더 작지만 약 80배 더 오래 걸린다.[4][3]
압축 속도가 현저히 느리기 때문에 Zopfli는 실시간(on-the-fly) 압축에는 적합하지 않다. 일반적으로 정적 콘텐츠의 일회성 압축에 사용된다.[7][8] 이는 일반적으로 Deflate 기반 HTTP 압축으로 제공되는 웹 콘텐츠나 PNG 또는 WOFF 폰트 파일과 같은 Deflate 기반 파일 형식의 웹 콘텐츠에 해당한다.[9] 또 다른 사용 사례는 특히 모바일 연결에서 안드로이드 애플리케이션 패키지(APK)나 자바 아카이브(JAR)와 같이 ZIP 기반 형식을 가진 소프트웨어 패키지 파일의 소프트웨어 업데이트 또는 다운로드이다.[10]
역사
[편집]Zopfli는 이르키 알라쿠이얄라의 알고리즘을 기반으로 한다.[11] 이르키 알라쿠이얄라와 로데 반데벤네가 만든 Zopfli의 첫 번째 레퍼런스 구현은 2013년 2월에 등장했다. 버전 1.0.0은 2013년 4월 25일에 출시되었다.[12] 레퍼런스 구현은 C로 작성된 Apache License 2.0 조건의 소프트웨어 라이브러리이다.[2]
그 이후로 오픈 소스 커뮤니티에서는 PNG가 Deflate 압축 레이어를 사용하기 때문에 Portable Network Graphics(PNG) 파일을 최적화하기 위해 Zopfli를 수정하려는 시도를 했다. 이러한 수정의 결실은 ZopfliPNG였으며, 2013년 5월 구글의 Zopfli 저장소에 승인되었다.[13] Zopfli 알고리즘은 advpng(AdvanceCOMP 유틸리티 제품군) 및 OxiPNG와 같은 다른 PNG 압축 최적화 도구에도 통합되었다.[14][15]
같이 보기
[편집]각주
[편집]- ↑ “Release 1.0.3”. 2019년 11월 27일. 2019년 11월 28일에 확인함.
- 1 2 “google/zopfli · GitHub”. Github.com. 2015년 9월 29일에 확인함.
- 1 2 “A Look At Zopfli, Google's Open Source Compression Algorithm | Lifehacker Australia”. Lifehacker.com.au. 2013년 3월 3일. 2015년 9월 29일에 확인함.
- 1 2 “Compress data more densely with Zopfli - Google Developers Blog”. Googledevelopers.blogspot.com. 2013년 2월 28일. 2013년 5월 1일에 확인함.
- ↑ Alexander Neumann (March 2013). “Zopfli: Neue Kompressionsbibliothek von Google | heise Developer” (독일어). Heise.de. 2015년 9월 29일에 확인함.
- ↑ “Zopfli: Google's new data compression algorithm”. Digit. 2013년 3월 1일. 2015년 9월 29일에 확인함.
- ↑ Dean Hume (2015년 6월 1일). “Improved Compression Ratios Using Zopfli”. 2015년 9월 6일에 확인함.
- ↑ Sharwood, Simon (2013). “Google open sources very slow compression algorithm”. 《The Register》.
- ↑ Ilya Grigorik (2014년 1월 9일). “Google Fonts recently switched to using new Zopfli compression algorithm”. Google+. 2015년 6월 6일에 확인함.
- ↑ Sanders, James. “Google's Zopfli Compression Algorithm: Extract higher performance from your compressed files” (영어). 《TechRepublic》. 2021년 3월 31일에 확인함.
- ↑ “zopfli/README at master · google/zopfli” (영어). 《GitHub》.
- ↑ “Release Zopfli-1.0.0”. Github.com. 2013년 4월 25일. 2015년 9월 6일에 확인함.
- ↑ “ZopfliPNG : Google/zopfli@337d27f”. Github.com. 2015년 9월 29일에 확인함.
- ↑ Andrea Mazzoleni. “Advance Projects”. Advancemame.sourceforge.net. 2015년 9월 29일에 확인함.
- ↑ Josh Holmer. “shssoichiro/oxipng - Github”. 《GitHub》. 2019년 8월 5일에 확인함.