A simpler analysis of Burrows–Wheeler-based compression

  • Authors:
  • Haim Kaplan;Shir Landau;Elad Verbin

  • Affiliations:
  • School of Computer Science, Tel Aviv University, Tel Aviv, Israel;School of Computer Science, Tel Aviv University, Tel Aviv, Israel;School of Computer Science, Tel Aviv University, Tel Aviv, Israel

  • Venue:
  • Theoretical Computer Science
  • Year:
  • 2007

Quantified Score

Hi-index 5.23

Visualization

Abstract

In this paper, we present a new technique for worst-case analysis of compression algorithms which are based on the Burrows-Wheeler Transform. We mainly deal with the algorithm proposed by Burrows and Wheeler in their first paper on the subject [M. Burrows, D.J. Wheeler, A block sorting lossless data compression algorithm, Technical Report 124, Digital Equipment Corporation, Palo Alto, California, 1994], called bw0. This algorithm consists of the following three essential steps: (1) Obtain the Burrows-Wheeler Transform of the text, (2) Convert the transform into a sequence of integers using the move-to-front algorithm, (3) Encode the integers using Arithmetic code or any order-0 encoding (possibly with run-length encoding). We achieve a strong upper bound on the worst-case compression ratio of this algorithm. This bound is significantly better than bounds known to date and is obtained via simple analytical techniques. Specifically, we show that for any input string s, and @m1, the length of the compressed string is bounded by @m@?|s|H"k(s)+log(@z(@m))@?|s|+@mg"k+O(logn) where H"k is the kth order empirical entropy, g"k is a constant depending only on k and on the size of the alphabet, and @z(@m)=11^@m+12^@m+... is the standard zeta function. As part of the analysis, we prove a result on the compressibility of integer sequences, which is of independent interest. Finally, we apply our techniques to prove a worst-case bound on the compression ratio of a compression algorithm based on the Burrows-Wheeler Transform followed by distance coding, for which worst-case guarantees have never been given. We prove that the length of the compressed string is bounded by 1.7286@?|s|H"k(s)+g"k+O(logn). This bound is better than the bound we give for bw0.