信源编码算法(费诺编码&&哈夫曼编码)

信源编码算法

  • 费诺编码 Fano coding
  • 哈夫曼编码 Huffman coding

费诺编码

编码步骤
  1. 将信源符号按照其概率大小,从大到小排列;
  2. 将这一组信源符号分成概率之和尽可能接近或者相等的一组(即两组分别的概率和之间的差尽可能小!);
  3. 将上面一组符号编码成0,下面一组编码成1,反之亦可;
  4. 将已经分好的组重复步骤2,3,直到不能再进行分组为止;
  5. 从左到右一次写出码字。
费诺编码演示

已知:
信源分布
编码过程为:
信源编码算法(费诺编码&&哈夫曼编码)_第1张图片

哈夫曼编码 Huffman coding

编码步骤
  1. 将信源符号按照概率大小从大到小排列;
  2. 把概率最小的两个信源符号分成一组,其中,上面一个编码为0,下面一个编码为1,并将这两个符号的概率加起来,其结果再与尚未处理过的符号重新按照大小排序;
  3. 重复步骤2,直到所有的信源符号都处理完毕;
  4. 从右至左按照编码路径返回,即可得到各个码字。
哈夫曼编码演示

已知:
信源分布
编码过程为:
信源编码算法(费诺编码&&哈夫曼编码)_第2张图片

你可能感兴趣的:(杂谈)