费诺编码(Fano Coding)
一、基本原理:
首先将信源符号以概率递减的次序排列进来将排列好的信源符号划分为两大组使第组
的概率和近于相同并各赋于一个二元码符号”和”然后将每一大组的信源符号再分成两
组使同一组的两个小组的概率和近于相同并又分别赋予一个二元码符号依次下去直至每一
个小组只剩下一个信源符号为止这样信源符号所对应的码符号序列则为编得的码字
译码原理按照编码的二叉树从树根开始按译码序列进行逐个的向其叶子结点走直到找
到相应的信源符号为止之后再把指示标记回调到树根按照同样的方式进行下一序列的译码
到序列结束如果整个译码序列能够完整的译出则返回成功否则则返回译码失败
二.基本步骤:
例如输入为 个信源符号其概率分布为
首先排序后为
其次按以上的原理对其进行编码得
即首先进行第一次按概率进行分组由计算得前两位概率之和与后六位这和相同所以前两位
为一组赋给二元码符号”后六位为一组赋给二元码符号”再在两组内部分进行一个划分
第一组两个概率相同所以前一个赋给二元码符号”后一个赋二元码符号”所以有
第二组中也是同以上的过程进行编码其总结果如下
码长 码字
此码的信息熵是由