如果给我们一个长度为n的二进制文件,其中每个位独立地是一个概率为1/3的比特,否则为零。我们要构建一种方法,使压缩序列的预期长度比Shannon的下限大10%(对于所有足够大的n)。 我的下限是0.918。我尝试使用大小为2的元组,但是通过霍夫曼编码,它的预期长度为1.88。我朝正确的方向前进吗?
答案 0 :(得分:2)
香农熵的界限是每个输入位0.918个输出位。
如果只写给定的位,则每个输入位将花费1个输出位。
已经 小于界限10%,因此不需要压缩。
答案 1 :(得分:1)
您可以使用Arithmetic compressor或Rangecoder。
其中有Arithmetic compressor的代码说明和Rangecoder的开源实现。
我个人建议使用Rangecoder,因为它工作最快,并且从未获得专利(算术压缩器的专利已过期)。