算法:按预期频率将符号压缩成位串?

时间:2012-04-08 12:41:26

标签: algorithm encoding compression

我有一个包含100万个符号及其预期频率的表格。

我想通过为每个符号分配一个唯一的(和前缀唯一的)可变长度位串来压缩这些符号的序列,然后将它们连接在一起以表示序列。

我想分配这些位串,以便最小化编码序列的预期位长。

例如,如果符号和预期频率是:

foo 0.5
bar 0.25
baz 0.25

比最好的编码之一是:

foo 0
bar 10
baz 11

所以“foobarbazfoo”转换为010110。

通过什么算法,我可以将预期频率表转换为最佳编码方案?

1 个答案:

答案 0 :(得分:1)

您正在描述entropy coding。一个流行且易于实现的选项是Huffman coding,但还有其他选项。