arXiv論文メモ
新着一覧
cs.DS · 査読状況未確認

省メモリーで実用的なLZ77分解と事前圧縮

Practical and Space-Efficient LZ77 and LZ Pre-Compression via String Synchronizing Sets

Jonas Ellert, Lukas Nalbach

この論文をやさしく読む

ひとことで言うと

文章の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
査読・掲載
査読状況未確認
arXivで読むPDF

更新履歴

取得できた版を表示。版の更新は査読済みを意味しません。過去版の本文差分は未解析です。

原文の要旨

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 / 要約の誤りについて