香农-范诺编码计算器
这个在线计算器根据一组符号及其概率生成香农-范诺编码
本内容采用知识共享署名/相同方式共享许可协议3.0(未移植)进行许可。这意味着你可以在相同的许可条件下自由地重新发布或修改本内容,并且必须在你的网站上放置一个超链接到本作品https://zh.planetcalc.com/8168/,以注明原作者。此外,请不要修改本内容中对原作的任何引用(如果有的话)。
这个在线计算器为给定概率的一组符号生成香农-范诺编码。在计算器下面可以找到一些理论。
香农-范诺编码
在数据压缩领域,香农-范诺编码(Shannon - Fano coding)以克劳德香农和罗伯特范诺的名字命名,是一种基于一组符号及其概率(估计或测量)构建前缀码的技术。 它还不是最理想的,因为它没有达到霍夫曼编码这样的最低可能期望码字长度。
在香农-范诺编码中,符号按照从最可能到最不可能的顺序排列,再分成两个总概率尽可能接近相等的集合。 然后,所有符号都指定了其编码的第一个数字; 第一集合中的符号得到“0”,第二集合中的符号得到“1”。 只要有多于一个成员的集合存在,就对这些集合重复同样的过程,以确定其代码的连续位数。 当一个集合被简化为一个符号时,这意味着该符号的代码是完整的,不会构成任何其他符号的代码的前缀。
该算法产生相当有效的可变长度编码; 当分区产生的两个较小的集合实际上具有相等的概率时,用于区分它们的一位信息被最有效地使用。 不幸的是,香农-范诺编码并不总产生最佳前缀代码; 概率集合 {0.35, 0.17, 0.17, 0.16, 0.15} 就是香农-法诺编码分配非最佳代码的示例。
由于这个原因,香农-范诺编码几乎没有被使用过;霍夫曼编码在计算上几乎同样简单,在每个符号由一个整数位组成的代码表示的约束条件下,产生的前缀代码总是能达到最低的预期代码字长1 。
评论