고전적 압축은 허프만 코딩을 중심으로 했지만, 허프만은 코딩하기 전에 심볼 확률 모델을 구축해야 한다. 1977년까지 대부분의 연구는 그 모델이 어딘가에서 나와야 한다고 가정했다.

테크니온의 Jacob Ziv와 Abraham Lempel은 'A Universal Algorithm for Sequential Data Compression'에서 그 모델을 없앨 수 있음을 보였다. 인코더는 최근에 본 텍스트의 윈도를 유지하고 들어오는 미리보기 버퍼를 그것과 대조한다. 일치하는 부분은 오프셋과 길이로 기록되므로 반복은 거의 비용이 들지 않는다.

그 결과는 보편적 기법이다. 사전이 데이터 자체이기 때문에 사전 통계 없이 어떤 소스든 압축한다. 1977년 논문은 사전 압축을 gzip, PNG, ZIP 계열의 기반으로 만든 고전이다.

미리 계산하는 대신 이미 본 텍스트를 가리키기

이미 전송된 텍스트를 사전으로 사용하면 미리 계산된 확률표가 필요 없다.

하나의 오프셋-길이 토큰이 길든 짧든 모든 반복 구문을 처리한다.

이 기법은 알려지지 않은 소스에서도 작동하므로 파일 유형에 맞춰 조정된 것이 아니라 보편적이다.

데이터의 모델을 미리 구축하지 말고, 진행하면서 데이터가 스스로 구조를 공급하게 하라. 자기 참조적 표현은 입력이 무엇이든 그에 적응한다.

LZ 접근법은 현대 무손실 압축의 기반이 되었다. LZ77과 그 후손인 LZ78/LZW는 gzip, zip, PNG, 그리고 웹 전반에서 사용되는 DEFLATE 스트림을 구동한다. Ziv와 Lempel의 논문은 IEEE 정보이론학회의 1997년 골든 주빌리 기술 혁신상을 받았다.

근거 확인하기

출처

  1. A universal algorithm for sequential data compression IEEE Information Theory Society · itsoc.org
  2. The Data Compression Book — Chapter 8: Sliding Window Compression Mark Nelson · cmd.inp.nsk.su