문제

기념하여 허터 상, 텍스트 압축에 대한 최상위 알고리즘 (및 각각의 빠른 설명)은 무엇입니까?

참고 :이 질문의 의도는 압축 프로그램이 아닌 압축 알고리즘에 대한 설명을 얻는 것입니다.

도움이 되었습니까?

해결책

경계 고정 압축기는 미친 결과를 위해 알고리즘을 결합합니다. 일반적인 알고리즘에는 다음이 포함됩니다.

  • 그만큼 버로우 휠러 변환 그리고 여기 - 예측 가능한 알고리즘이있는 셔플 캐릭터 (또는 기타 비트 블록)는 소스를 쉽게 압축 할 수 있도록 반복되는 블록을 늘리기 위해 예측 가능한 알고리즘을 사용합니다. 감압은 정상적으로 발생하며 결과는 역 변환으로 셔플되지 않습니다. 참고 : BWT만으로는 실제로 아무것도 압축하지 않습니다. 소스를 더 쉽게 압축 할 수 있습니다.
  • 부분 매칭에 의한 예측 (PPM) - 진화 산술 코딩 여기서 예측 모델 (컨텍스트)은 소스에 대한 통계와 정적 확률을 사용하여 생성됩니다. 뿌리가 산술 코딩에 있더라도 결과는 Huffman 인코딩 또는 사전 및 산술 코딩으로 표시 될 수 있습니다.
  • 컨텍스트 혼합 - 산술 코딩은 예측을 위해 정적 컨텍스트를 사용하고, PPM은 단일 컨텍스트를 동적으로 선택하고 컨텍스트 믹싱은 많은 컨텍스트를 사용하고 결과를 평가합니다. PAQ는 컨텍스트 믹싱을 사용합니다. 여기에 있습니다 높은 수준의 개요.
  • 동적 Markov 압축 -PPM과 관련이 있지만 비트 레벨 컨텍스트와 바이트 이상을 사용합니다.
  • 또한 Hutter Prize 참가자는 공통 텍스트를 외부 사전의 소형 항목으로 대체하고 상단 및 소문자 텍스트를 특수 기호와 두 개의 별개의 항목을 사용하여 차별화 할 수 있습니다. 그렇기 때문에 텍스트 (특히 ASCII 텍스트)를 압축하는 데 능숙하고 일반적인 압축에는 가치가 없습니다.

최대 압축 꽤 멋진 텍스트와 일반적인 압축 벤치 마크 사이트입니다. Matt Mahoney는 다른 것을 출판합니다 기준. Mahoney는 항목 당 사용되는 기본 알고리즘을 나열하기 때문에 특히 관심이있을 수 있습니다.

다른 팁

항상 있습니다 lzip.

모든 농담을 제쳐두고 :

  • 호환성이 우려되는 경우 pkzip (DEFLATE 알고리즘)는 여전히 승리합니다.
  • BZIP2는 비교적 광범위한 설치베이스를 즐기는 것과 압축 비율이 우수하지만 별도의 아카이버가 필요합니다.
  • 7-zip (LZMA 알고리즘)는 매우 잘 압축되며 LGPL에서 사용할 수 있습니다. 그러나 내장 지원을 제공하는 운영 체제는 거의 없습니다.
  • rzip 내 의견으로는 더 많은 관심을받을 가치가있는 bzip2의 변형입니다. 장기 보관이 필요한 거대한 로그 파일에 특히 흥미로울 수 있습니다. 또한 별도의 아카이버가 필요합니다.

PAQ를 프로그램으로 사용하려면 설치할 수 있습니다. zpaq 데비안 기반 시스템의 패키지. 사용법은 (또한 참조 man zpaq)

zpaq c archivename.zpaq file1 file2 file3

압축이있었습니다 zip 파일 크기의 1/10. (1.9m vs 15m)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top