省メモリーで実用的なLZ77分解と事前圧縮
Practical and Space-Efficient LZ77 and LZ Pre-Compression via String Synchronizing Sets
この論文をやさしく読む
ひとことで言うと
文章のLZ77分解を、少ないメモリーで速く求められるようにした実装研究。
何に役立つ?
圧縮索引の構築や事前圧縮を高速化し、メモリー使用を減らすのに役立つ。
この研究の面白いところ
単一スレッドの3倍近似はLPFより12~19倍速くメモリーは14分の1。32スレッドの正確な方法も並列LPFより速かった。
どこまで分かった?
速度とメモリーの数値は報告された実験条件での比較。近似法は最悪で3倍までの句数を許すが、実験ではそれを大きく下回った。
v1のアブストラクトに基づくAI解説。日本語訳とは別に、用途の解釈を含みます。
アブストラクトの日本語訳
Lempel–Ziv(LZ77)分解は、文章を以前の出現箇所を参照する句へ分け、句の数zを最小にする。LZに基づく圧縮索引の大きさを決めるのは符号化後の容量ではなく、この句数である。しかし、句の少ない分解の計算は索引構築の時間とメモリーの障害になる。実際には、LZ77を速く計算するには接尾辞配列を構築する必要があった。Ellertは2023年に、正確なLZ77分解と、その3倍近似を、入力サイズより小さい作業領域で計算するアルゴリズムを示した。ただし、現実的な入力では長さ2以下のパターンへ退化する検索表と、実用的でない直交範囲報告データ構造という二つの部品が直接実装しにくく、実装されていなかった。本研究は両方を置き換え、残りの工程も調整して初の実用的な実装を得た。使用領域は接尾辞配列よりも文章そのものの大きさに近い。単一スレッドでは、3倍近似が古典的なLPFアルゴリズムより12~19倍速く、メモリー使用量は14分の1だった。32スレッドでは、正確な分解の方法でさえ、並列LPFより1.4~2.9倍速く、メモリー使用量は9分の1だった。実際の近似比は3を大きく下回った。副次的な結果として、完全に一致する句だけを後段の圧縮器へ渡すと、圧縮率は既存の最先端の事前圧縮器と同等で、メモリー使用量と並列処理の速度では優れた。
v1の要旨から自動生成。本文の精読・人による確認は未実施。
- 初稿
- 2026-09-24(UTC)
- 最新改訂
- 2026-09-24 · v1
- 査読・掲載
- 査読状況未確認
更新履歴
- v1 2026-09-24 この版を読む
取得できた版を表示。版の更新は査読済みを意味しません。過去版の本文差分は未解析です。
原文の要旨
The Lempel-Ziv (LZ77) factorization decomposes a text into the least possible number $z$ of phrases that each refer to an earlier occurrence. It is this phrase count, rather than the encoded size, that governs the size of LZ-based compressed indexes, and computing a factorization with few phrases is a time and space bottleneck in their construction. In practice, computing LZ77 quickly has so far required building a suffix array. Ellert [SPIRE 2023] gave algorithms that compute the exact LZ77 factorization, and a 3-approximation of it, in sublinear working space. They have remained unimplemented, because two of their components resist a direct implementation: a lookup table that degenerates to patterns of length at most two for realistic inputs, and an orthogonal range reporting data structure that is impractical. We replace both, fine-tune every remaining stage, and obtain the first practical implementation, which runs in space close to the text rather than to the suffix array. On one thread, our 3-approximation factorizes 12-19x faster than the classical LPF algorithm while using 14x less memory; on 32 threads, even our exact algorithm is 1.4--2.9x faster than parallel LPF, at 9x less memory. In practice the approximation ratio stays far below 3. As a side result, passing only its perfect phrases to a downstream compressor yields a precompressor that is on par with the state of the art [Dinklage, SEA 2026] in compression ratio, and better in memory consumption and parallel throughput.
著者のコメント
17 pages, 6 figures, 4 tables. Accepted at ALENEX 2027. Code: https://github.com/LukasNalbach/lz77-sss
arXiv ID: 2609.30193 / 要約の誤りについて