香农-范诺编码是一种基于一组符号集及其出现的或然率(估量或测量所得),从而构建前缀码的技术。

其一般过程为:

  1. 对于一个给定的符号列表,制定了概率相应的列表或频率计数,使每个符号的相对发生频率是已知。
  2. 排序根据频率的符号列表,最常出现的符号在左边,最少出现的符号在右边。
  3. 清单分为两部分,使左边部分的总频率和尽可能接近右边部分的总频率和。
  4. 该列表的左半边分配二进制数字 0,右半边是分配的数字 1。这意味着,在第一半符号代都是将所有从 0 开始,第二半的代码都从 1 开始。
  5. 对左、右半部分递归应用步骤 3 和 4,细分群体,并添加位的代码,直到每个符号已成为一个相应的代码树的叶。

Info