Skip to main content
QUICK REVIEW

[论文解读] A Bijective String Sorting Transform

Hendrian, Diptarama, Köppl, Dominik|arXiv (Cornell University)|Jan 15, 2012
Algorithms and Data Compression参考文献 10被引用 36
一句话总结

本文提出了一种双射字符串排序变换(S变换),与标准Burrows-Wheeler变换(BWT)不同,该变换无需使用终结符字符或旋转索引即可对所有输入字符串实现可逆性。S变换通过基于循环后缀和排列的新型排序机制,将相同字符聚集在一起,在Calgary语料库上的压缩率优于BWT,PIC文件的压缩增益最高达11.37%,所有文件的平均提升为3.05%,同时保持变换与逆变换的线性时间与空间复杂度。

ABSTRACT

Given a string of characters, the Burrows-Wheeler Transform rearranges the characters in it so as to produce another string of the same length which is more amenable to compression techniques such as move to front, run-length encoding, and entropy encoders. We present a variant of the transform which gives rise to similar or better compression value, but, unlike the original, the transform we present is bijective, in that the inverse transformation exists for all strings. Our experiments indicate that using our variant of the transform gives rise to better compression ratio than the original Burrows-Wheeler transform. We also show that both the transform and its inverse can be computed in linear time and consuming linear storage.

研究动机与目标

  • 开发一种双射字符串变换,对所有字符串均可逆,与标准BWT不同,后者需要额外的元数据(如终结符或旋转索引)。
  • 通过比BWT更有效地聚集相同字符,提升压缩效率,同时保留BWT的结构优势。
  • 设计一种计算高效且适用于需要数据保密性的应用(如压缩数据加密)的变换。
  • 形式化并证明一种基于子串循环旋转排序的新型变换的正确性。
  • 证明逆变换可通过广义环遍历算法在时间复杂度线性条件下完成。

提出的方法

  • S变换通过迭代选择并移除字典序最小的后缀,将输入字符串分解为子串。
  • 生成这些子串的所有旋转,并将它们作为一个整体列表按字典序排序。
  • 变换输出通过取每个排序后旋转的最后一个字符构成,生成一个将相同字符聚集在一起的字符串。
  • 逆变换使用从变换结构中推导出的排列ϑ,其中ϑ将变换后字符串中的位置映射到原字符串中循环顺序的前一个字符。
  • 使用广义环遍历算法MultiThread,从最后一个字符到第一个字符处理ϑ中的环,以从变换后字符串和排列ϑ重建原始字符串。
  • 通过使用临时数组跟踪已访问位置并标记为已处理,确保时间与空间复杂度为线性。

实验结果

研究问题

  • RQ1能否构建一种双射字符串排序变换,其效果类似于BWT,能将相同字符聚集,但无需使用终结符字符或旋转索引?
  • RQ2该变换在标准语料库上的压缩性能是否优于或至少可与BWT相媲美?
  • RQ3该变换的逆变换能否在不依赖额外元数据的前提下,以线性时间与空间复杂度高效计算?
  • RQ4该变换是否可通过基于排列环的确定性、算法高效的流程实现可逆?
  • RQ5能否将BWT逆变换中使用的相同核心算法,通过广义环遍历机制适配到此新变换中?

主要发现

  • S变换在Calgary语料库中除GEO外的所有文件上均优于BWT,所有文件的平均压缩率提升3.05%。
  • 在PIC文件上,S变换实现了11.37%的压缩增益,为语料库中最高。
  • 即使在增益最小的情况下(如PROGL),S变换仍表现更优,尽管相对增益仅为1.02%,但已节省200字节。
  • 逆变换通过MultiThread算法正确计算,该算法按顺序处理ϑ中的环,从最后一个字符到第一个字符重建原始字符串。
  • S变换及其逆变换均可在O(n)时间与O(n)空间内完成,效率与标准BWT相当。
  • S变换是双射的:每个输出字符串唯一映射回一个输入字符串,因此无需使用终结符字符或旋转索引。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。