시간과 메모리를 절약하는 LZ77 압축을 위한 접미사 배열 활용
본 논문은 기존 트리 기반 LZ77 인코더가 요구하는 대량의 메모리를 줄이면서도 인코딩 속도를 향상시킬 수 있는 새로운 접미사 배열(SA) 기반 알고리즘을 제안한다. 단일 SA와 256 크기의 LeftIndex(LI) 보조 배열을 이용해 사전 내 문자열 매칭을 효율적으로 수행하고, 사전이 가득 찼을 때는 두 개의 SA를 교대로 업데이트하는 기법으로 슬라이딩 윈도우를 빠르게 유지한다. 실험 결과, 제안 방법은 메모리 사용량을 크게 감소시키면서도 …
저자: Artur Ferreira, Arlindo Oliveira, Mario Figueiredo
본 논문은 LZ77/LZSS 계열의 손실 없는 압축에서 인코딩 단계가 디코딩보다 훨씬 높은 시간·메모리 비용을 요구한다는 문제점을 출발점으로 삼는다. 기존에는 해시 테이블, 이진 탐색 트리, 접미사 트리 등을 이용해 사전 내 최장 매치를 빠르게 찾았지만, 이들 구조는 메모리 사용량이 텍스트 길이에 비례하거나 그보다 더 크게 증가한다. 최근에는 메모리 효율이 뛰어난 접미사 배열(Suffix Array, SA)이 선형 시간 구축 알고리즘(SA‑IS)과 함께 주목받고 있었으며, 일부 연구에서는 SA 하나 혹은 SA와 LCP(Longest Common Prefix) 배열을 이용해 LZ77 분해를 수행했다. 그러나 그때의 구현은 여전히 트리 기반 대비 속도가 뒤처지는 경우가 많았다.
이에 저자들은 두 가지 핵심 아이디어로 기존 한계를 극복한다. 첫 번째는 사전 전체에 대한 SA와 256 크기의 LeftIndex(LI) 보조 배열을 결합하는 것이다. LI는 각 ASCII 문자에 대해 SA에서 해당 문자가 처음 등장하는 인덱스를 저장한다. 따라서 LAB의 첫 문자와 일치하는 SA 구간(
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기