단어 기반 LZ77 압축 효율성 비교

이 논문은 텍스트를 문자 단위가 아니라 단어 단위로 처리하는 LZ77 기반 압축 방식을 제안하고, 슬라이딩 윈도우 구현(이진 트리, 해시 테이블, 패트리샤 트리)과 출력 인코딩(직접 비트, 피보나치, B‑Block, 허프만) 등을 실험적으로 평가한다. 최적의 조합은 패트리샤 트리 기반 윈도우와 B‑Block + 허프만 인코딩이며, 기존 워드‑압축기와 일반 압축 프로그램 대비 경쟁력 있는 압축률을 보인다.

저자: Jan Platos, Jiri Dvorsky

이 논문은 텍스트 압축에 있어 “단어 기반” 접근법을 LZ77 알고리즘에 적용한 새로운 변형을 제안하고, 그 구현 세부 사항과 성능을 다각도로 평가한다. 서론에서는 일반적인 범용 압축 알고리즘이 이미지·동영상 등 특수 데이터에 최적화된 반면, 텍스트는 문자 단위가 아닌 단어 단위로 처리하면 사전 재사용 빈도가 크게 증가해 압축 효율이 개선될 수 있음을 제시한다. 기존 연구에서는 Huffman, LZW, BWT 등을 이용한 워드‑압축이 소개되었지만, LZ77 기반 구현에 대한 체계적인 연구는 부족했다는 점을 지적한다. **2. 워드‑기반 압축 개념**에서는 텍스트를 “단어”와 “비단어”(공백·구두점 등) 토큰으로 분리하는 방법을 설명한다. 여기서 단어는 알파벳 연속열이며, 필요에 따라 숫자·하이픈·슬래시가 포함된 문자열도 단어로 간주한다. HTML·XML 같은 마크업 문서에서는 태그 자체를 별도 토큰으로 인식한다. 워드‑기반 접근의 단점은 파일마다 알파벳 외 문자 집합이 달라 사전 크기를 사전에 알 수 없다는 점이다. **3. LZ77 알고리즘 및 변형**에서는 기본 LZ77의 슬라이딩 윈도우 구조와 코드 트리플릿(오프셋, 길이, 다음 문자)을 설명하고, LZSS, LZR 등 다양한 변형을 소개한다. 특히 매치 정보를 어떻게 저장하느냐에 따라 압축률과 속도가 크게 달라진다. **3.2 슬라이딩 윈도우 구현**에서는 세 가지 기본 자료구조—이진 트리, 해시 테이블, 패트리샤 트리—를 워드‑기반 환경에 맞게 변형하고 실험한다. - *이진 트리*는 삽입·삭제가 빠르고 최장 매치를 보장하지만, 동일 매치가 여러 개 있을 때 가장 오래된 매치를 선택한다는 한계가 있다. - *해시 테이블*은 해시 길이에 따라 최소 매치 길이가 결정된다. 4심볼 해시(HT4)는 최소 매치 길이가 4가 되지만, 속도가 가장 빠르다. - *패트리샤 트리*는 디지털 트리의 메모리 효율성을 유지하면서, 매치를 윈도우 끝에 가깝게 찾는다. 루트를 해시 테이블에 저장한 PTA 변형이 가장 좋은 타협점을 제공한다. 실험 결과(표 1)에서는 이진 트리가 가장 빠르지만, 패트리샤 트리 + 해시 루트가 전반적인 성능(속도·압축률)에서 가장 우수했다. **3.3 출력 코더**에서는 매치 정보를 어떻게 인코딩할 것인가를 다룬다. 기본 LZ77는 트리플릿을 그대로 저장하고, LZSS는 매치가 있으면 오프셋·길이 쌍을, 없으면 문자 하나만 저장한다. **3.3.1 Lazy Evaluating**은 현재 매치를 바로 코딩하지 않고 다음 심볼에서 더 긴 매치를 탐색해, 평균 매치 길이를 늘리는 기법이다. **3.3.2 Shortest‑Path Encoding**은 전체 파일에 대해 매치 그래프를 만든 뒤, 최소 비트 경로를 선택하는 동적 계획법이다. 이 방법은 이론적으로 최적에 가깝지만 구현 복잡도와 메모리 사용량이 크게 증가한다. **3.4 출력 인코딩**에서는 오프셋·길이·문자를 각각 어떻게 압축할지 실험한다. 직접 비트 저장은 가장 단순하지만 비효율적이다. 피보나치·엘리어스·B‑Block 등 대수적 코딩이 제안되며, 최종적으로 오프셋은 B‑Block(베이스‑16) 코딩, 길이와 문자는 허프만 코딩이 가장 좋은 조합으로 선정되었다. **4. 실험**에서는 다양한 파일(세계 텍스트, 성경, 체코 법률, 로그, RFC, LA 타임스)과 여러 파라미터를 사용해 광범위한 테스트를 수행했다. - *4.1 슬라이딩 윈도우 구현*에서는 BT, HT, PT 등 9가지 변형을 비교했으며, 속도는 BT > HT4 > PTA 순이었지만 압축률은 PT계열이 우수했다. - *4.2 출력 인코딩*에서는 오프셋에 B‑Block, 길이·문자에 허프만 코딩이 최적임을 확인했다. - *4.3 윈도우 크기·최대 매치 길이* 실험에서는 직접 비트 저장 시 512 KB 윈도우·16 심볼 매치가 최적이며, 최적 인코딩을 적용하면 윈도우를 파일 크기보다 크게 잡아도 압축률이 계속 개선된다. - *4.4 출력 코더 비교*에서는 LZ77, LZSS, LZSS Lazy, LZSS Short 네 가지 코더를 테스트했다. 직접 비트 저장에서는 LZSS Short가 가장 좋은 압축률(≈23.6% CR)을 보였고, 최적 인코딩 적용 시 LZSS Lazy가 가장 높은 압축률(≈21.35% CR)을 기록했다. - *4.5 워드‑기반 압축기 비교*에서는 제안된 WLZ77가 HuffWord와 WLZW보다 압축률이 10%~15% 높았다. - *4.6 표준 압축기와 비교*에서는 7‑ZIP·RAR·BZIP2·GZIP 등과 비교했을 때, WLZ77는 압축률 면에서 7‑ZIP·RAR에 약간 못 미치지만, 텍스트 전용 워드 모델을 사용함으로써 구현 복잡도와 메모리 요구가 낮아 실시간·임베디드 환경에 유리함을 강조한다. **결론**에서는 워드‑기반 LZ77 압축이 기존 문자‑기반 LZ77 대비 압축률과 실행 효율성 모두에서 경쟁력을 가질 수 있음을 실험적으로 입증한다. 최적 구현은 패트리샤 트리 + 해시 루트 기반 슬라이딩 윈도우와 B‑Block + 허프만 인코딩 조합이며, 윈도우 크기는 1 MB, 최대 매치 길이는 16~32 심볼이 실용적이라고 제안한다. 향후 연구에서는 동적 사전 관리와 멀티스레드 탐색을 통해 더욱 높은 압축률과 처리 속도를 목표로 할 수 있다.

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기