信源编码算法
- 费诺编码 Fano coding
- 哈夫曼编码 Huffman coding
费诺编码
编码步骤
- 将信源符号按照其概率大小,从大到小排列;
- 将这一组信源符号分成概率之和尽可能接近或者相等的一组(即两组分别的概率和之间的差尽可能小!);
- 将上面一组符号编码成0,下面一组编码成1,反之亦可;
- 将已经分好的组重复步骤2,3,直到不能再进行分组为止;
- 从左到右一次写出码字。
费诺编码演示
已知:
编码过程为:
哈夫曼编码 Huffman coding
编码步骤
- 将信源符号按照概率大小从大到小排列;
- 把概率最小的两个信源符号分成一组,其中,上面一个编码为0,下面一个编码为1,并将这两个符号的概率加起来,其结果再与尚未处理过的符号重新按照大小排序;
- 重复步骤2,直到所有的信源符号都处理完毕;
- 从右至左按照编码路径返回,即可得到各个码字。
哈夫曼编码演示
已知:
编码过程为:
时间: 2024-10-03 13:20:02