Adaptive encodings for small and fast compressed suffix arrays

Compressed suffix arrays index large repetitive collections and are widely used in bioinformatics, version control, and natural language processing. The \(r\) -index and its variants combine the run-length Burrows–Wheeler transform (BWT) with a sample of the suffix array to achieve space proportional to the number of equal-symbol runs. While effective for near-identical strings, their size grows quickly when edited copies are added to the collection as the number of BWT runs is sensitive to variation. Existing approaches either apply extra compression at the cost of slower queries or prioritize speed at the expense of space, limiting practical tradeoffs at large scale. We introduce variable-length blocking (VLB), an adaptive encoding for BWT-based compressed suffix arrays. Our technique adapts the amount of indexing information to the local run structure: compressible regions retain less auxiliary data, while incompressible areas store more. Specifically, we recursively partition the BWT until each block contains at most \(w\) runs (a parameter), and organize the blocks into a tree. Accessing a position requires descending a root-to-leaf path followed by a short run scan. Compressible regions are placed near the root, while incompressible regions lie deeper and are augmented with additional indexing data to speed up access. This strategy balances space and query speed by reallocating bits saved in compressible areas to accelerate access to incompressible ones. The VLB-tree also improves memory locality by co-locating related BWT and suffix array information. Backward search relies on rank and successor queries over the BWT. We introduce a sampling technique that relaxes global correctness by guaranteeing that these queries are correct only along valid backward-search states. This restriction reduces space usage without affecting the speed or correctness of pattern matching. We further extend the concepts of the VLB-tree to encode suffix array samples and then to the subsampled \(r\) -index ( \(sr\) -index), thus producing a small fully functional compressed suffix array. Experiments show that VLB-tree variants outperform the \(r\) -index and \(sr\) -index in query time, while retaining space close to that of the \(sr\) -index. The move data structure, a recent encoding, is faster than the VLB-tree but uses considerably more space, yielding a clear space-time tradeoff.

Authors

Institutions

Publication Details

Journal
ACM Transactions on Algorithms
Published
2026-08-20
DOI
https://doi.org/10.1145/3838289
Primary Topic
Algorithms and Data Compression
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Adaptive encodings for small and fast compressed suffix arrays

Diego Díaz-Domínguez, Veli Mäkinen
ACM Transactions on Algorithms
Algorithms and Data Compression
article

Adaptive encodings for small and fast compressed suffix arrays

Diego Díaz-Domínguez, Veli Mäkinen
article en

Abstract

Compressed suffix arrays index large repetitive collections and are widely used in bioinformatics, version control, and natural language processing. The \(r\) -index and its variants combine the run-length Burrows–Wheeler transform (BWT) with a sample of the suffix array to achieve space proportional to the number of equal-symbol runs. While effective for near-identical strings, their size grows quickly when edited copies are added to the collection as the number of BWT runs is sensitive to variation. Existing approaches either apply extra compression at the cost of slower queries or prioritize speed at the expense of space, limiting practical tradeoffs at large scale. We introduce variable-length blocking (VLB), an adaptive encoding for BWT-based compressed suffix arrays. Our technique adapts the amount of indexing information to the local run structure: compressible regions retain less auxiliary data, while incompressible areas store more. Specifically, we recursively partition the BWT until each block contains at most \(w\) runs (a parameter), and organize the blocks into a tree. Accessing a position requires descending a root-to-leaf path followed by a short run scan. Compressible regions are placed near the root, while incompressible regions lie deeper and are augmented with additional indexing data to speed up access. This strategy balances space and query speed by reallocating bits saved in compressible areas to accelerate access to incompressible ones. The VLB-tree also improves memory locality by co-locating related BWT and suffix array information. Backward search relies on rank and successor queries over the BWT. We introduce a sampling technique that relaxes global correctness by guaranteeing that these queries are correct only along valid backward-search states. This restriction reduces space usage without affecting the speed or correctness of pattern matching. We further extend the concepts of the VLB-tree to encode suffix array samples and then to the subsampled \(r\) -index ( \(sr\) -index), thus producing a small fully functional compressed suffix array. Experiments show that VLB-tree variants outperform the \(r\) -index and \(sr\) -index in query time, while retaining space close to that of the \(sr\) -index. The move data structure, a recent encoding, is faster than the VLB-tree but uses considerably more space, yielding a clear space-time tradeoff.

ACM Transactions on Algorithms
University of Helsinki (FI)
Openalex Percentile: Top 85%
Algorithms and Data Compression
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.