Skip to main content
QUICK REVIEW

[논문 리뷰] Practical and Effective Re-Pair Compression

Philip Bille, Inge Li Gørtz|arXiv (Cornell University)|2017. 04. 27.
Algorithms and Data Compression참고 문헌 2인용 수 6
한 줄 요약

이 논문은 working space를 (1.5+ε)n 단어로 줄이며 선형 시간 복잡도를 유지하면서도 실용적이고 공간 효율적인 Re-Pair 압축의 구현을 제시한다. 또한, 근사적으로 최적의 압축 성능을 달성하는 새로운 문법 인코딩 전략을 도입하여, 정보 이론적 최소값보다 평균적으로 2.8% 더 많은 비트만 사용한다. 이는 테스트 케이스의 절반에서 7-Zip를 능가한다.

ABSTRACT

Re-Pair is an efficient grammar compressor that operates by recursively replacing high-frequency character pairs with new grammar symbols. The most space-efficient linear-time algorithm computing Re-Pair uses $(1+ε)n+\sqrt n$ words on top of the re-writable text (of length $n$ and stored in $n$ words), for any constant $ε>0$; in practice however, this solution uses complex sub-procedures preventing it from being practical. In this paper, we present an implementation of the above-mentioned result making use of more practical solutions; our tool further improves the working space to $(1.5+ε)n$ words (text included), for some small constant $ε$. As a second contribution, we focus on compact representations of the output grammar. The lower bound for storing a grammar with $d$ rules is $\log(d!)+2d\approx d\log d+0.557 d$ bits, and the most efficient encoding algorithm in the literature uses at most $d\log d + 2d$ bits and runs in $\mathcal O(d^{1.5})$ time. We describe a linear-time heuristic maximizing the compressibility of the output Re-Pair grammar. On real datasets, our grammar encoding uses---on average---only $2.8\%$ more bits than the information-theoretic minimum. In half of the tested cases, our compressor improves the output size of 7-Zip with maximum compression rate turned on.

연구 동기 및 목표

  • 최신 기술 수준 이하로 working space를 줄이되 선형 시간 복잡도를 유지하는 실용적인 Re-Pair 압축 알고리즘 설계.
  • Re-Pair의 치환 과정에서의 구조적 특성을 활용하여 출력 문법의 압축 성능 향상.
  • d log d + 0.557d 비트의 정보 이론적 하한에 근접한 문법 표현 달성.
  • 실제 데이터셋에서 압축 비율, working space, 실행 시간 간의 상호 교환 관계 평가.
  • 반복적이고 고도로 구조화된 데이터에서 일반 목적 압축기인 7-Zip를 능가할 수 있음을 보여주기.

제안 방법

  • Re-Pair의 반복적 쌍 치환 과정에서 빈도 수를 효율적으로 관리하기 위해 새로운 실용적인 정수 클러스터링 절차 사용.
  • 고빈도 인접 쌍을 추적하기 위한 동적 구조 유지를 통해, 평균 비용 제어를 통한 선형 시간 처리 구현.
  • 새로운 문법 인코딩 기법을 도입하여, 치환 시의 고유한 쌍 빈도 수 M을 활용, 표현을 d(log d + log M + 1) + M log(d/M) + o(d log d) 비트로 감소.
  • Re-Pair 과정에서 규칙 생성 순서와 빈도 분포의 순서를 활용하여 O(d) 시간 내에 인코딩 계산.
  • 입력 텍스트를 포함한 working space를 (1.5+ε)n 단어로 줄이기 위해 공간 최적화된 데이터 구조 사용.
  • 공간 한계를 유지하면서 선형 시간 성능을 확보하기 위해, 평균 비용 기반의 구조 재건 절차 포함.

실험 결과

연구 질문

  • RQ1Re-Pair 압축을 실용적이고 공간 효율적으로 만들 수 있을까? working space를 (1.5+ε)n 단어로 줄이고 선형 시간 복잡도를 유지할 수 있을까?
  • RQ2치환 과정에서 쌍의 빈도 분포를 활용하여 Re-Pair 문법 출력의 압축 성능을 극대화할 수 있을까?
  • RQ3실제로 문법 표현은 정보 이론적 하한 d log d + 0.557d 비트에 얼마나 가까이 도달할 수 있을까?
  • RQ4제안된 문법 인코딩은 반복적 데이터셋에서 일반 목적 압축기인 7-Zip를 능가할 수 있을까?
  • RQ5고유한 쌍 빈도 수 M과 최종 문법 표현의 압축 성능 간의 관계는 어떠한가?

주요 결과

  • 제안된 Re-Pair 구현은 working space로 단지 (1.5+ε)n 단어만 사용하여 최신 기술 수준을 두 배로 감소시켰다.
  • 문법 인코딩은 평균적으로 정보 이론적 최소값보다 2.8% 더 많은 비트만 사용하며, 다양한 데이터셋 간 변동성이 매우 낮다.
  • 테스트된 데이터셋의 절반에서 최대 압축 성능에서 7-Zip를 능가했으며, 특히 'english', 'boost', 'fib41'와 같은 반복적 파일에서 두드러졌다.
  • 치환 시 고유한 쌍 빈도 수 M은 일반적으로 d보다 한 개에서 세 개의 주기수만큼 작아지며, 새로운 인코딩 설계의 타당성을 입증한다.
  • 해제압축 속도는 경쟁력 있음—bzip2보다 빠르며, NAV 및 7-Zip와 유사한 성능을 보였지만, 매우 반복적인 파일에서는 한 주기수 느린 편이었다.
  • 압축률은 비교적 압축이 어려운 파일에서 가장 효과적이었으며, 이 경우 문법 표현이 상대적으로 더 좋은 압축 성능을 달성했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.