让我澄清一下,我不是在谈论能够压缩任何给定源材料的算法意义上的完美压缩,我意识到这是不可能的。我想要得到的是一种算法,它能够将任何源比特串编码为其绝对最大压缩状态,由它的香农熵确定。
我相信我听说过一些关于霍夫曼编码在某种意义上是最优的,所以我相信这个加密方案可能基于此,但这是我的问题:
考虑位串:a =“101010101010”,b =“110100011010”。
使用普通的香农熵,当我们将位串视为简单的 0 和 1 的符号时,这些位串应该具有完全相同的熵,但是这种方法是有缺陷的,因为我们可以直观地看到位串 a 的熵小于位串 b,因为它只是重复 10 的模式。考虑到这一点,我们可以通过计算复合符号 00、10、01 和 11 的香农熵来更好地了解源的实际熵。
这只是我的理解,我可能完全偏离基础,但据我了解,对于一个真正随机的遍历源,对于一个长度为 n 的遍历源。所有 n 长度符号组的统计概率必须是等可能的。
我想比标题中的问题更具体,我有三个主要问题:
使用单个位作为符号的霍夫曼编码是否会像优化的那样压缩位串,即使我们在 2 位符号级别分析字符串时会出现明显的模式?如果没有,是否可以通过循环遍历霍夫曼编码的不同“级别”(对不起,如果我在这里扼杀术语)来最佳地压缩源,直到找到最佳压缩率?在某些情况下,通过不同的“轮次”霍夫曼编码可以进一步提高压缩率吗?(首先对 5 位长的符号进行霍夫曼编码,然后对 4 位长的符号进行霍夫曼编码?huff_4bits(huff_5bits(bitstring))
)