可逆圧縮は、その手法がどれだけの冗長性を見つけられるかによって限界づけられる。LZ系とハフマン符号化は、いずれも通常のテキストでは頭打ちになる。

BurrowsとWheelerの1994年のDECレポートは、ブロックソート変換を記述した。ブロックのすべての回転を列挙し、それらをソートし、最後の列を出力する。回転は接尾辞を共有するため、同一文字が固まり、短いランレングスとmove-to-frontのパスによってそれがごく少数の記号になる。

この変換は可逆であるため、損失ではなく並べ替えである。その結果はbzip2に取り入れられ、bzip2は当時のツールよりもテキストを効果的に圧縮し、この手法を遅いが高圧縮な圧縮の標準とした。

ブロックの回転をソートし、似たものが隣り合うようにする

回転をソートすると、文脈が同じ箇所で同一の記号が集まる。

続いてランレングス符号化とmove-to-front符号化が、長く安価な連続を見つける。

この変換は順列であるため、伸張は正確である。

反復する構造であれば何にでも機能するため、特定のファイル形式に合わせて調整されてはいない。

圧縮する前に、同一の記号が隣り合うようにデータを並べ替える。予測可能な部分をクラスタ化する変換は、通常の圧縮器を劇的に強力にしうる。

Burrows-Wheeler変換はbzip2のエンジンとなり、後に部分文字列を見つけてゲノムをマッピングするFM-indexの基礎となった。同じアイデアは今日、高スループットのバイオインフォマティクスのアラインメントツールを支えている。

出典をたどる

出典

  1. A block-sorting lossless data compression algorithm DEC Systems Research Center Research Report 124 · web.stanford.edu
  2. Burrows-Wheeler transform Wikipedia · en.wikipedia.org