[论文解读] From LZ77 to the Run-Length Encoded Burrows-Wheeler Transform, and Back
本文提出了一种空间高效的算法,用于在 LZ77 与游程编码的 Burrows-Wheeler 变换(RLBWT)之间进行转换,这两种是关键的压缩文本表示方法。该方法在时间与空间上均与压缩后的大小 $ r $ 和 $ z $ 成比例,实现了对高度重复数据的高效处理,而无需完全解压缩。
The Lempel-Ziv factorization (LZ77) and the Run-Length encoded Burrows-Wheeler Transform (RLBWT) are two important tools in text compression and indexing, being their sizes $z$ and $r$ closely related to the amount of text self-repetitiveness. In this paper we consider the problem of converting the two representations into each other within a working space proportional to the input and the output. Let $n$ be the text length. We show that $RLBWT$ can be converted to $LZ77$ in $\mathcal{O}(n\log r)$ time and $\mathcal{O}(r)$ words of working space. Conversely, we provide an algorithm to convert $LZ77$ to $RLBWT$ in $\mathcal{O}\big(n(\log r + \log z)\big)$ time and $\mathcal{O}(r+z)$ words of working space. Note that $r$ and $z$ can be \emph{constant} if the text is highly repetitive, and our algorithms can operate with (up to) \emph{exponentially} less space than naive solutions based on full decompression.
研究动机与目标
- 解决在两种主要压缩文本表示形式——LZ77 与 RLBWT 之间实现高效且空间受限转换的需求。
- 实现在不完全解压缩的情况下对压缩数据结构进行计算,这对于处理基因组档案等大规模重复数据集至关重要。
- 克服基于朴素解压缩方法的局限性,后者需要与未压缩文本大小成比例的空间。
- 为直接从 LZ77 或 RLBWT 输入构建最优空间使用率的压缩后缀自动机提供基础。
- 通过工作空间与压缩后大小 $ r $(RLBWT 的游程序列)和 $ z $(LZ77 因子)成比例的方式实现转换,而非与完整文本长度 $ n $ 成比例。
提出的方法
- 使用动态数据结构 $ \mathcal{Z} $ 在增量构建过程中维护文本位置与 RLBWT 位置之间的映射关系。
- 利用 RLBWT 数据结构本身,通过模拟逆 BWT 过程并结合游程序列压缩,高效地从 LZ77 中提取字符。
- 在游程序列 BWT 结构上应用 LF(最后到首个)映射与扩展操作,逐步构建反转文本的 RLBWT。
- 使用按顺序排列的 LZ77短语列表 $ \mathcal{D} $ 来处理这些短语,确保在字符提取与插入过程中正确追踪位置。
- 采用支持 map、assign 与 expand 查询的动态结构 $ \mathcal{Z} $,以保持文本与 RLBWT 位置之间的一致性。
- 通过逆游程序列 BWT 构造方法,将反转文本的最终 RLBWT 转换为标准的 $ RLBWT^+(T) $ 表示形式。
实验结果
研究问题
- RQ1我们能否在时间与空间上均与压缩表示大小 $ r $ 和 $ n $ 成比例的情况下,将 RLBWT 转换为 LZ77?
- RQ2我们能否仅使用 $ \mathcal{O}(r + z) $ 的工作空间,将 LZ77 转换为 RLBWT,而避免完全解压缩?
- RQ3是否能够利用 RLBWT 结构作为动态文本提取器,高效地从 LZ77 中提取字符?
- RQ4转换算法是否可以设计为时间复杂度在 $ n $ 上亚线性,即与 $ r + z $ 成比例?
- RQ5在压缩计算流水线中使用动态数据结构时,理论与实际之间的权衡是什么?
主要发现
- 该算法在 $ \mathcal{O}(n\log r) $ 时间内将 RLBWT 转换为 LZ77,使用 $ \mathcal{O}(r) $ 个字的工作空间,输出流式写入磁盘。
- 该算法在 $ \mathcal{O}(n(\log r + \log z)) $ 时间内将 LZ77 转换为 RLBWT,使用 $ \mathcal{O}(r + z) $ 个字的工作空间。
- 当 $ r $ 与 $ z $ 较小时(例如在高度重复的文本中),工作空间相比朴素解压缩方法呈指数级减少。
- 该方法使用动态数据结构维护文本与 RLBWT 之间的位置映射,从而在构建过程中实现高效的字符提取。
- 从 LZ77 到 RLBWT 的转换依赖于利用 RLBWT 结构作为动态文本提取器,模拟逆 BWT 过程。
- 最终的 RLBWT 通过反转文本的 RLBWT 的逆变换构建而成,该过程利用相同的动态结构高效计算。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。