압축 컨텍스트 모델링을 활용한 PPM 메모리 절감과 압축 효율 트레이드오프

압축 컨텍스트 모델링을 활용한 PPM 메모리 절감과 압축 효율 트레이드오프

초록

본 논문은 기존 PPM(Partial Matching) 방식의 높은 메모리 요구량을 완화하기 위해 압축된 컨텍스트 모델링(CCM)을 도입한다. 컨텍스트를 문자 문자열이 아닌 이전 심볼들을 압축한 비트 스트림으로 정의함으로써, 트리 구조를 보다 컴팩트하게 구현한다. 실험 결과, 저차수( low order)에서는 메모리를 20~25% 절감하면서 압축 비율은 최대 7% 정도 감소하는 트레이드오프가 확인되었다.

상세 분석

PPM은 문자열의 앞부분을 컨텍스트로 삼아 다음 심볼의 확률을 추정하는 통계적 모델링 기법으로, 높은 압축 효율을 제공하지만 컨텍스트 트리의 폭과 깊이가 급격히 증가하면서 메모리 사용량이 크게 늘어나는 것이 큰 단점이다. 기존 연구들은 주로 트리 구조의 정밀도를 낮추거나 해시 기반의 근사 모델을 도입해 속도와 압축률을 개선하려 했지만, 메모리 절감에 대한 근본적인 접근은 부족했다. 이 논문은 ‘압축된 컨텍스트 모델링(Compressed Context Modeling, CCM)’이라는 새로운 관점을 제시한다. CCM은 전통적인 문자 기반 컨텍스트를 ‘압축된 비트 스트림’으로 대체한다는 점에서 혁신적이다. 구체적으로, 현재 위치 이전의 심볼들을 기존의 PPM 압축기(예: arithmetic coder)로 압축하고, 그 결과 비트열을 컨텍스트의 식별자로 사용한다. 이렇게 하면 동일한 정보량을 표현하는데 필요한 비트 수가 문자 수보다 적어지므로, 트리 노드의 분기 수가 감소하고 메모리 요구량이 크게 낮아진다.

핵심적인 설계 선택은 두 가지이다. 첫째, 압축기 자체가 경량이어야 하며, 압축·복원 과정이 빠르게 수행돼야 한다는 점이다. 논문에서는 LZ78 기반의 간단한 압축기를 사용해 실시간으로 비트 스트림을 생성한다. 둘째, 컨텍스트 길이의 정의가 기존의 ‘문자 수’가 아니라 ‘압축된 비트 수’가 된다. 따라서 같은 비트 길이를 유지하면서도 실제 문자 수는 가변적이며, 이는 저차수에서는 충분한 정보량을 제공하면서도 메모리 사용을 최소화한다는 장점을 만든다.

실험에서는 다양한 텍스트 코퍼스(영문 소설, 뉴스 기사, 프로그래밍 코드 등)에 대해 0차부터 5차까지의 PPM 변형을 적용하였다. 결과는 저차수(특히 02차)에서 메모리 절감 효과가 두드러졌으며, 평균 22% 정도의 메모리 감소를 보였다. 반면 압축 비율은 35차에서는 기존 PPM에 비해 4~7% 정도 악화되었지만, 고차수에서는 CCM이 제공하는 압축된 컨텍스트가 충분히 풍부하지 않아 성능 차이가 줄어드는 경향을 보였다. 이는 CCM이 저차수에서 메모리와 압축 효율 사이의 균형을 맞추는 데 최적화되어 있음을 시사한다.

또한, 메모리 절감이 트리 구조의 캐시 친화성을 높여 실제 압축·복원 속도에도 긍정적인 영향을 미친다. 저차수에서는 트리 탐색 깊이가 얕아져 CPU 캐시 미스가 감소하고, 전체 처리 시간이 기존 PPM 대비 5~10% 단축되었다. 고차수에서는 트리 깊이가 늘어나면서 캐시 효율이 떨어지지만, 메모리 절감 효과는 여전히 유지된다.

이 논문은 PPM의 메모리 문제를 압축된 컨텍스트라는 새로운 차원에서 접근함으로써, 메모리 제한이 있는 임베디드 시스템이나 모바일 환경에서의 실용성을 크게 향상시킬 수 있음을 보여준다. 향후 연구에서는 보다 정교한 압축기(예: BWT 기반)와 동적 컨텍스트 길이 조절 기법을 결합해 고차수에서도 압축 효율을 유지하면서 메모리 절감을 지속하는 방안을 모색할 수 있다.