본문으로 이동

Zopfli

위키백과, 우리 모두의 백과사전.
Zopfli Archive
원저자로데 반데벤네 및 이르키 알라쿠이얄라
개발자구글
발표일2013년 2월 (2013-02)
안정화 버전
1.0.3[1] 위키데이터에서 편집하기 / 2019년 11월 27일(6년 전)(2019년 11월 27일)
저장소
프로그래밍 언어C
종류데이터 압축
라이선스Apache License 2.0
웹사이트github.com/google/zopfli 위키데이터에서 편집하기

Zopfli(조플리)는 DEFLATE, GzipZlib 데이터 인코딩을 수행하는 데이터 압축 라이브러리이다.[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]

같이 보기

[편집]

각주

[편집]
  1. Release 1.0.3. 2019년 11월 27일. 2019년 11월 28일에 확인함.
  2. 1 2 google/zopfli · GitHub. Github.com. 2015년 9월 29일에 확인함.
  3. 1 2 A Look At Zopfli, Google's Open Source Compression Algorithm | Lifehacker Australia. Lifehacker.com.au. 2013년 3월 3일. 2015년 9월 29일에 확인함.
  4. 1 2 Compress data more densely with Zopfli - Google Developers Blog. Googledevelopers.blogspot.com. 2013년 2월 28일. 2013년 5월 1일에 확인함.
  5. Alexander Neumann (March 2013). Zopfli: Neue Kompressionsbibliothek von Google | heise Developer (독일어). Heise.de. 2015년 9월 29일에 확인함.
  6. Zopfli: Google's new data compression algorithm. Digit. 2013년 3월 1일. 2015년 9월 29일에 확인함.
  7. Dean Hume (2015년 6월 1일). Improved Compression Ratios Using Zopfli. 2015년 9월 6일에 확인함.
  8. Sharwood, Simon (2013). Google open sources very slow compression algorithm. The Register.
  9. Ilya Grigorik (2014년 1월 9일). Google Fonts recently switched to using new Zopfli compression algorithm. Google+. 2015년 6월 6일에 확인함.
  10. Sanders, James. Google's Zopfli Compression Algorithm: Extract higher performance from your compressed files (영어). TechRepublic. 2021년 3월 31일에 확인함.
  11. zopfli/README at master · google/zopfli (영어). GitHub.
  12. Release Zopfli-1.0.0. Github.com. 2013년 4월 25일. 2015년 9월 6일에 확인함.
  13. ZopfliPNG : Google/zopfli@337d27f. Github.com. 2015년 9월 29일에 확인함.
  14. Andrea Mazzoleni. Advance Projects. Advancemame.sourceforge.net. 2015년 9월 29일에 확인함.
  15. Josh Holmer. shssoichiro/oxipng - Github. GitHub. 2019년 8월 5일에 확인함.

외부 링크

[편집]