0

我正在尝试将任意符号编码为位串,但我真的不明白如何生成它们甚至解码包含这些符号的位串。

我想处理任意符号进行压缩,我真的不知道我正在寻找一个唯一可解码的代码,也许是算术代码或规范的霍夫曼代码?

对于任何大小的符号表,我只需要一个位串列表,描述最频繁到最不频繁。

4

1 回答 1

0
  1. 编码

    1. 为每个符号生成频率表
    2. 根据这个频率表生成概率树
    3. 生成代码表 - 使最常见的符号获得最小的位串
    4. 输出:[频率表+位串序列(首尾相连)]

      需要注意的重要一点是,这些位串的序列稍后可以由它们自己直接分离。即说 [10010001] => {100, 1000, 1} (仅作为示例)

  2. 解码

    1. 获取频率表和位串序列。
    2. 生成概率树(同 1.2)
    3. 生成代码表(同1.3)
    4. 重新创建数据:

      1. 解析位串
      2. 与代码表匹配
      3. 输出匹配符号
于 2012-10-12T09:22:18.117 回答