2012-03-18 10 views
0

BWTをJavaでハフマン圧縮プログラムで書き込もうとしています。 BWT私は距離コード(DC)を実装したいと思います。私はいくつかの例を探していますが、それほど多くの例はありません。距離コーディング(DC)BWT

私はこの例を見つけました:

http://www.cs.ucr.edu/~stelo/cpm/cpm07/move_to_front_gagie.pdf

DCは、29ページから始まるています。しかし、コメントがないので、理解することは本当に難しいです。

誰かがDCを実装していたか、理論を実際のコードで実装する方法を知っていたのでしょうか? :)

私は最初にすべての文字を書く必要があることを理解しました。しかし、距離を置いてもそれは得られませんでした。

各文字に対して、DCはシーケンス内で次の出現を見つけてそれをSに書き込み、それに距離を出力します。発生していない場合は0を書き込みます。

ありがとうございます。

答えて

1

私はJavaで実装を書かれている: http://code.google.com/p/kanzi/source/browse/java/src/kanzi/function/DistanceCodec.java

あなたはコード(完全な例)の冒頭で、アルゴリズムの説明を見ることができます。 はまた、ブロックコーダを見てみましょう(それはBWT + MoveToFront +ゼロの長さは+エントロピー符号化変換含み): http://code.google.com/p/kanzi/source/browse/java/src/kanzi/function/BlockCodec.java

私は距離ではなく、最前面に移動のコーディング使用しようとしました。出力は、MTFTと比較してDCのほうが小さい(より良い圧縮)。しかし、エントロピー符号化の後、その結果は逆になります.MTFTはエントロピー圧縮にもっと適しています。

+0

ありがとう、これは本当に便利です。 – Streetboy

+0

これは理論的に質問に答えるかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供することが推奨されます(http://meta.stackexchange.com/q/8259)。 –