해결책
고전적 압축은 허프만 코딩을 중심으로 했지만, 허프만은 코딩하기 전에 심볼 확률 모델을 구축해야 한다. 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년 골든 주빌리 기술 혁신상을 받았다.
근거 확인하기
출처
- A universal algorithm for sequential data compression IEEE Information Theory Society · itsoc.org
- The Data Compression Book — Chapter 8: Sliding Window Compression Mark Nelson · cmd.inp.nsk.su