0

我正在尝试使用 Java 编写带有 Huffman 压缩程序的BWT 。BWT中,我想实现距离编码 (DC)。我正在寻找一些例子,但没有那么多。

我找到了这个例子:

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

DC 从 29 页开始。但这真的很难理解,因为没有评论。

也许有人已经实现了 DC 或知道如何在实际代码中实现它的理论?:)

我理解首先需要写出 char 是什么的那部分。但后来随着距离我没有得到它。

我红色的是,对于每个字符,DC 在序列中找到它的下一个出现并将其写入 S 并输出到它的距离。如果没有出现,则写 0。

谢谢。

4

1 回答 1

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/块编解码器.java

我尝试使用距离编码而不是移到前面。与 MTFT 相比,DC 的输出更小(更好的压缩)。然而,在熵编码之后,结果却相反:MTFT 看起来更适合熵压缩。

于 2012-03-25T20:39:49.080 回答