高效的编码方案

时间:2012-06-21 11:46:59

标签: encoding hardware

我想为数据存储选择一种编码方案。我的可用内存非常低。哪种编码应该最佳地利用可用空间。 ANSI,UTF或任何其他..

数据是Capital Alphabetics

1 个答案:

答案 0 :(得分:1)

如果你知道字母的频率分布,Huffman Coding是复杂性,速度和效率之间的良好平衡。

如果您不知道字母的分布或它们是随机的,请一次存储5位。例如,考虑字符串“ABCDE”。字母编号为0,1,2,3,4。转换为二进制,这是:

00000 00001 00010 00011 00100

现在您只需将每8位分组为字节:

00000000 01000100 00110010 0xxxxxxx

您还需要存储长度,以便知道最后一个字节的7位中没有有用的数据。

如果代码空间无关紧要,你只想尽可能打包字符串,你可以使用霍夫曼编码或算术编码,即使频率分布均匀,也可以将每个字符平均打包成log2(26)位,略小于5(即4.7位)。