2017-04-09 3 views
1

gzip은 빠름에서 강하게까지 9 가지 압축 수준을 지원한다는 것을 알고 있습니다. 압축 해제 알고리즘은 압축 수준에 전혀 신경 쓰지 않습니다. 일반적인 gzip 응용 프로그램보다 다른 도구를 사용하여 9보다 높은 레벨에 도달 할 수 있습니까? 내 말은, 누군가 gzip 레벨 9보다 더 효과적인 수정 된 gzip 압축 프로그램을 만들 수 있다는 뜻입니다.gzip - 일반적인 압축 수준을 깨기

배경은 압축 된 gz 파일을 호스팅하는 웹 서버입니다. 그 파일의 크기를 줄이는 것이 좋을 것이고 마지막에 1 바이트 씩 파일을 줄이기 위해 내 서버가 얼마나 오랫동안 작동하는지 상관하지 않습니다. 그것은 일회성 과제이므로 중요하지 않습니다.

더 높은 수준을 지원하거나 더 높은 압축을 제공하는 gzip의 해킹 된 버전이 있습니까?

+0

* 해킹 * 된 경우 GZip이 중지되고 사용자 지정이므로 양쪽 끝에서이를 지원해야합니다. 양 끝을 조정하면 맞는 알고리즘을 자유롭게 사용할 수 있습니다. – Lloyd

+2

아니요, 포맷을 "해킹"하지 않고 압축기를 "해킹"할 수 있습니다. 그래야 압축기가 다른 끝에있는 gzip으로 압축 할 수 있습니다. –

답변

2

예. zopfli이라고합니다. 고통스럽게 느리지 만 zlib 수준 9보다 약 5 % 더 압축됩니다. zopfli는 pigz에 내장되어 있으며 여러 프로세서 및 코어를 사용하는 gzip에 해당합니다. pigz의 압축 수준 11은 zopfli 압축기를 호출합니다. (pigz는 11까지 올라갑니다.) 큰 입력에 여러 개의 코어를 사용하면 zopfli의 속도가 느려집니다.

+0

bzip2에서 gzip 수준의 1-9 단계입니까? Bzip2는 레벨을 사용하여 블록 크기를 -1로 100000 바이트 블록, -9에서 900000 바이트로 변경합니다 : http://www.bzip.org/1.0.3/html/memory-management.html. – osgx

+1

압축하는 데 시간이 걸린다는 점에서 "비슷합니다". zlib에서 블록 크기는 변경하지 않지만 압축기가 일치하는 문자열을 검색하는 정도와는 다릅니다. –

+0

Zopfli (https://developers.googleblog.com/2013/02/compress-data-more-densely-with-zopfli.html) 및 그것에 관한 논문 (Data_compression_using_Zopfli.pdf)에 대한 블로그 게시물이있었습니다 (하지만 지금의 온라인 사본 찾기, code.google.com에서 이전 한 후 https://github.com/google/zopfli에 없습니다 ...) 업데이트 : http://web.archive.org/web/ 논문 사본 20130402101541/http : //zopfli.googlecode.com/files/Data_compression_using_Zopfli.pdf. zopfli의 작동 방식에 대한 설명 (소스 코드 제외)이 있으며 왜 압축이 더 좋은가? – osgx