최상의 표준 ZIP 압축을 어떻게 얻을 수 있습니까?


20

압축하는 데 시간이 오래 걸리지 않습니다. 달성하고자하는 것은 두 가지입니다.

  • 가능한 최고의 압축 비율
  • Windows 및 WinZip과 같은 표준 리더와의 호환성

따라서 7-zip과 같은 제안은 표준 ZIP 압축에서 약간 더 나은 경우가 아니라면 (7z 형식을 사용하는 것이 아니라) 7-zip과 같은 제안은별로 유용하지 않습니다.

이상적으로 나는 찾고 있습니다 :

  • 소프트웨어의 추천
  • 절대 최고의 압축을 가능하게하는 해당 소프트웨어의 특정 설정
  • 무료 인 것

압축하는 데 걸리는 시간은 문제가되지 않습니다.

마지막으로-일부 파일은 "단어 크기"또는 "사전 크기"와 같은 다른 설정으로 더 잘 압축 될 수 있습니다. 파일을 분석하고 가장 적합한 압축 비율을 선택하거나 WinZip, 7-zip을 수행 할 수있는 도구가 있습니까? 이미 그렇게합니까?

답변:


20

Windows XP에 내장 된 Zip 폴더 기능과의 호환성을 원하면 수축 압축이 멈 춥니 다. 최신 버전의 winZip 및 PowerArchiver에서 사용할 수있는 고급 압축 방법 (LZMA, PPMD, WavPack, Bzip2 등)보다 훨씬 적은 Deflate64를 사용할 수 있다고 생각하지 않습니다. PowerArchiver는 기본적으로 해당 파일에 .zipx 확장자를 사용하도록 기본 설정되어 있습니다 .WinZip은 아직 그렇게 생각하지 않습니다.

7-Zip이 생성 할 수있는 가장 작은 zip 파일은 다음 명령 줄을 사용하여 수행 할 수 있습니다.

7za a -mm=Deflate -mfb=258 -mpass=15 -r C:\Path\To\Archive.zip C:\Path\To\Files\*

특히 주목할 점 : 7-Zip의 와일드 카드 구문 분석기는 시스템의 다른 대부분과 동일하지 않습니다. *.*확장자가있는 모든 파일을 의미합니다. 모든 파일을 *의미 합니다.

이런 식으로 .zip 파일을 만드는 것은 (그리고 아마도 더 작은 "표준".zip 파일을 만들려고하는 다른 도구를 사용하는 것) 정말 느립니다. 7-Zip 또는 WinRar를 사용하여 자체 추출 아카이브를 작성하면 상당한 시간과 공간을 절약 할 수 있습니다.


"-m0"에서 7z 오류가 발생했지만 "-mm"이 최신 버전과 동일하게 작동합니다. 또한 내 경우 (JPG 파일 압축)에서 "-mfb = 258 -mpass = 15"대신 "-mx9"를 ​​사용하면 결과가 평균 ± 15 바이트 씩 무작위로 다르게 나타납니다 (± 50s 예외 제외) )
Mark Jeronimus

1
@ ZOM을-B : 당신은 가졌어야 할, 맞아 -mm=대신 -m0=. 아카이브에서 -m0=사용됩니다 .7z. 또한 7-Zip 매뉴얼 -mx=9은 Zip 아카이브에 대해와 동일하도록 지정합니다 -mfb=128 -mpass=10. 내가 주목 한 -mfb=258 -mpass=15것은 항상 보다 훨씬 느리고 -mx=9종종 많은 공간을 절약하지 못한다는 것입니다 (또는 때로는 몇 바이트 더 사용합니다). 가끔씩 적당한 공간을 절약합니다.
afrazier

이전 주석에서 "많이"느리게 3 배 이상 느리게 변환됩니다. 공간과 관련하여 느린 옵션은 대략적인 아카이브를 제공합니다. 더 빠른 버전 (즉 -mpass = 15가없는 -mx = 9)에 비해 99.885 % 크기입니다. 따라서 3 배 더 많은 시간 동안 공간의 0.115 % 만 절약 할 수 있습니다. 따라서 0.115 %의 이득이 매우 중요하지 않으면 -mpass = 15 대신 -mx = 9로 이동하십시오.
TV

8

내가 아는 가장 좋은 수축 (표준 ZIP에 사용되는 압축 형식) 압축기는 다음과 같습니다.

Zopfli ( original 에서 보관함)를 사용하여 데이터 압축 에서 파일 압축 파일 크기 비교 를 정의하십시오 .

╔══════════════╦═══════════╦═════════╦═════════╦═════════╦═════════╗
║              ║Corpus size║gzip ­-9  ║7-­zip    ║kzip     ║Zopfli   ║
╠══════════════╬═══════════╬═════════╬═════════╬═════════╬═════════╣
║Alexa-top-10k ║  693108837║128498665║125599259║125163521║123755118║
║Calgary       ║    3141622║  1017624║   980674║   978993║   974579║
║Canterbury    ║    2818976║   730732║   675163║   674321║   669933║
║enwik8        ║  100000000║ 36445248║ 35102976║ 35025767║ 34995756║
╚══════════════╩═══════════╩═════════╩═════════╩═════════╩═════════╝

임의의 PNG에서도 Zopfli는 pngout보다 0.5 % 향상되었습니다 . Zopfli는 가장 작은 것을 만듭니다.


Zopfli를 사용하여 원본 zip 명령과 같은 파일 세트를 압축하려면 어떻게해야합니까?
Panayotis

1
@Panayotis zopfli zip을 Google에서 검색하면 github.com/google/zopfli/issues/29로 연결되어 zopfli 프로젝트가 Zip 파일을 직접 수행하지 않는 방법에 대해 설명하지만 zopfli를 백엔드로 사용할 수있는 AdvanceCOMP의 advzip과 같은 도구에 대한 토론이 포함됩니다 .
아논

5

당신이 윈도우에있는 가정 : 당신은 여전히 ZIP 형식을 사용하려는 경우, 나는 켄 실버의 무료 KZIP 명령 줄 유틸리티를 사용하는 것이 좋습니다 것 발견 여기에 . 압축해야하는 모든 파일이 들어있는 폴더에 복사하고 CMD를 사용하여 해당 폴더로 이동 한 후 다음 명령을 실행하십시오.

kzip /r <filename of ZIP file> *.*

Roald가 제안한 바와 같이 kzip.exe, 아카이브 / Zip 파일에 포함되지 않도록 시스템의 PATH 변수에 상주 하는 디렉토리를 포함하는 것이 가장 좋습니다 .

지금까지 KZIP로 생성 된 ZIP 파일이 다른 ZIP 압축 프로그램으로 생성 된 ZIP 파일보다 약 10-20 % 작다는 것을 알았습니다. 또한 다른 아카이브 소프트웨어 (Winzip, WinRAR, 7-zip 등) 및 Windows에서 완전히 열 수 있습니다.


5
디렉토리에 넣지 말고 시스템의 PATH에 놓으십시오.
RD

1
나는 동일한 요구 사항을 가졌습니다-Windows 표준 ZIP 기능으로 지원해야합니다. KZIP는 챔피언처럼 작동하면서 결국 사용했습니다. / s / b / n 옵션을 사용하여 환경에서 가장 잘 작동하는 것을 제대로 파악하십시오.
Goyuix 2016 년

당연하지! PATH 변수 내 답변을 편집했습니다. 감사합니다 Roald!
Isxek

또는 실행 파일의 경로로 명령 접두어를 추가하십시오
micsthepick

1

.zip 파일 형식과 Deflate64 압축 방법을 사용하여 폴더의 모든 폴더를 개별 zip 파일로 압축하는 매우 간단한 스크립트입니다.

@echo off
for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X\" -tzip -mx9 -mm=Deflate64

-1

컴프레서가 작업하는 동안 컴프레서가 사용할 수있는 메모리 양의 한계입니다. 7-Zip을 사용하여 .Zip 형식, Ultra 압축, LZMA 압축 방법 및 기본 64MB 사전 크기로 아카이브를 압축합니다. 사용 가능한 메모리가 있으면 사전 크기를 늘리십시오. 그러나 64MB 사전으로 압축하려면 거의 3GB의 메모리가 필요합니다. 더 큰 사전을 사용하면 7-zip이 더 많은 일치 항목을 찾고 메모리를 확보 할 수있는 경우 더 나은 압축을 제공 할 수 있어야합니다. LZMA는 gzip (deflate / deflate64, 내 생각에)과 bzip2를 평균 5 %, 내용에 따라 최대 10-12 % 향상시킵니다.

압축 방법이 입력 데이터와 더 강한 상관 관계가 있으며 평균 / 기본값이 그렇지 않으면 좋은 단어 / 사전 크기를 찾는 도구를 모르겠습니다.


3
LZMA에 문제가 있습니다. 예를 들어, 7zip에서 어떤 설정을 시도 하더라도이 zip ( joshz.com/Bad.zip ) 의 텍스트 파일은 Windows의 기본 압축 풀기 프로그램을 사용하여 압축을 풀지 않습니다 (Windows를 사용하고 있습니다) 7).
Josh Comley

(연결된 zip 파일은 참조 용으로 잘못된 파일을 포함하지만 LZMA로 압축되지 않았습니다)
Josh Comley

@joshcomley 기본 제공 Windows 폴더 압축 도구에 지원되는 압축 구성표 목록을 찾을 수 없습니다. LZMA 용 Wikipedia에 따르면 WinZip과 다양한 플랫폼에서 사용되는 다른 많은 압축 도구 지원하므로 함께 사용하기로 결정했습니다. * .zip은 컨테이너 형식 일 뿐이므로 도구가 지원할 "공식"압축이 있는지 또는 일반적인 압축 (* .avi가 거의 모든 유형의 비디오를 저장할 수있는 방법과 유사)이 있는지 모르겠습니다. 항상 작동하는지 확인하려면 자동 압축 풀림으로 포장하십시오.
다스 안드로이드

-3

Windows 환경에 가장 적합한 압축기 찾고 있다면 7-zip LZMA 'Compression Method'로 * .zip 형식을 사용하거나 7-Zip * .7z SFX 아카이브를 사용하는 것이 좋습니다. SFX 아카이브는 .7z 압축 파일보다 약 130kb의 오버 헤드를 가지며 .7z와 .zip 사이의 크기 차이가 클 때 사용할 가치가 있습니다.

우수하지만 드문 경쟁자 중 하나는 LZMA 압축 모드를 사용하여 고도로 사용자 정의 가능한 exe를 만들 수있는 NSIS입니다. 나는 NSIS가 컴프레서가 아니라 스크립팅 언어라는 것을 알고 있지만 7-zip SFX보다 성능이 뛰어납니다.

2 개의 파일로 수행 한 테스트 -

  • AutoHotkey-H.exe (946kb)
  • AutoHotkey.dll (1003 KB)
  • 총 크기-1955 kb

  • 7-zip zip-794KB
  • 7-Zip .7z SFX-594KB
  • NSIS LZMA 솔리드 압축-552kb
  • 7 집 .7z-461kb

# 4가 원하는 것이 아니기 때문에 확실한 승자는 NSIS이지만 실제적인 이유로 .zip으로 압축하면 압축 크기가 500kbs 미만이며 더 큰 경우 7-Zip SFX 또는 NSIS (특히 설정하기 쉬운 7-zip).


2
문제의 요구 사항은 특히 7z 및 기타 형식을 제외합니다.
Bob

@Bob 그는 Windows 및 exe (my # 2 및 # 3)와 호환되는 압축기가 있다고 말했다. 7z는 내가 지적한 # 4입니다.
Avi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.