香农-范诺编码

✍ dations ◷ 2025-10-25 15:39:16 #香农-范诺编码

在数据压缩的领域里,香农-范诺编码(英语:Shannon–Fano coding)是一种基于一组符号集及其出现的或然率(估量或测量所得)构建前缀码的技术。其名称来自于克劳德·香农和罗伯特·范诺。在编码效率上,它并不能与霍夫曼编码一样实现编码(code word)长度的最低期望;然而,与霍夫曼编码不同的是,它确保了所有的编码长度在一个理想的理论范围 log P ( x ) {displaystyle {-log }P(x)} 之内。这项技术是香农于1948年,在他介绍信息理论的文章“通信数学理论”中提出的。范诺则在不久以后独立地以技术报告形式将其发布。 香农-范诺编码不应该与香农编码混淆,后者的编码方法用于证明Shannon's noiseless coding theorem,或与Shannon–Fano–Elias coding(又被称作Elias coding)一起,被看做算术编码的先驱。

香农-范诺编码将符号从最大可能性到最少可能性排序,并将排列好的信源符号分为两大组,使两组的概率和接近,并各赋予一个二进制符号“0”和“1”。只要有符号剩余,就以同样的过程重复这些步骤以此确定这些代码的连续编码数字。依次下去,直至每一组的只剩下一个信源符号为止。当一组已经仅剩余一个符号,显然,这意味着这一符号的编码是完整的,也不会成为任何其他符号的代码前缀。

香农-范诺编码能够产生相对高效的可变长度编码;对于每一个比特位而言,当两个较小的集合具有恰好相等的概率时,这一方法就能最有效地利用这一位编码的信息。然而,香农-范诺并不总是产生最优的前缀码:例如对概率{0.35,0.17,0.17,0.16,0.15},香农-范诺算法就无法给出理想的编码。出于这个原因,香农-范诺编码几乎从不被使用。

Shannon-Fano编码树是基于一个符号和对应频率的列表建立的。实际的算法很简单:

这个例子展示了一组字母的香农编码结构(如图a所示)这五个可被编码的字母有如下出现次数:

从左到右,所有的符号以它们出现的次数划分。在字母B与C之间划定分割线,得到了左右两组,总次数分别为22、17,这样就把两组的差别降到最小。通过这样的分割,A与B同时拥有了一个以0为开头的编码,C、D、E的前缀则为1,如图b所示。随后,在树的左半边,于A、B间建立新的分割线,这样A就成为了编码为00的叶子节点,B的编码为01。经过四次分割,得到了一个树形编码。如下表所示,在最终得到的树中,拥有最大频率的符号被两位编码,其他两个频率较低的符号被三位编码。

根据A,B,C两位编码长度,D,E的三位编码长度,最终的平均码字长度是

香农-范诺编码算法并非总能得到最优编码。1952年, David A. Huffman提出了一个不同的算法,这个算法可以为任何的可能性提供出一个理想的树。香农-范诺编码是从树的根节点到叶子节点所进行的的编码,霍夫曼编码算法却是从相反的方向,暨从叶子节点到根节点的方向编码的。

用以上Shannon - Fano例子所使用的分析,即:

首先将D、E合并,它们频率和为11(图a至图b)。接下来概率最低的一组是B(7)和C(6),所以将他们作为左右子树组成新的根结点BC。在剩下的三个节点中,BC(13)和DE(11)的频率和最低,因此组成新的二叉树BE。最后将仅剩的两个节点合并,并分别为它们分配前缀0和1。这样所有的节点都成为了唯一一个编码树的叶节点。

这个例子中,A的编码长度是1比特,其余字符是3比特。

结果是

相关

  • 雅库特语雅库特语,或称为萨哈语(Сахалыы)是雅库特人的语言,属于突厥语族,是俄罗斯联邦之萨哈共和国的官方语言之一。雅库特语使用西里尔字母:现在雅库特语字母,在苏联由1939年建立,从
  • 国立里昂应用科学学院里昂国立应用科学学院(Institut National des Sciences Appliquées de Lyon,INSA Lyon)位于法国里昂市,法国著名的高等教育和研究机构,是一所法国顶尖的精英工程师学院,法国著名
  • 顶棋顶棋,是北京延庆等地的两人传统棋类游戏,当地又称老顶,山东齐河称为四棋儿,也有地方称四步钉。与下子的五道棋有同样吃法。在其他地方有类似游戏,有的增加吃法、有的不同棋盘。
  • 倪朝宾倪朝宾(1563年-1629年),字初源,号翼元,浙江萧山县桃源梅里(今属临浦镇)人,明朝政治人物。万历二十六年(1598年)戊戌科进士。官刑部湖广清吏司主事。万历三十七年(1609年)接替薛藩任福建延
  • Nutanix路坦力(英语:Nutanix),是一家设计与销售超融合基础架构设备的信息技术公司。他们的产品提供了软件定义式(英语:Software-defined infrastructure)的信息技术基础架构,该架构运行虚拟
  • 库凯尔纳格库凯尔纳格(Kukernag),是印度查谟-克什米尔邦Anantnag县的一个城镇。总人口4858(2001年)。该地2001年总人口4858人,其中男性3281人,女性1577人;0—6岁人口441人,其中男234人,女207人;识
  • 2014年德国周末票房冠军下列列表为2014年 德国周末电影票房冠军,列表将星期四到星期日视为周末。在这个市场,按观众人数排列电影的名次。德国周末票房排行榜
  • 河孖河孖是小孩子玩多人游戏前(例如,踢足球、打篮球等),进行随机分组或分队的一种游戏方法。主要流行于粤语地区。所有孩子围成一圈,右手手掌五指并拢抚左胸为准备动作,一起喊口令“河
  • 高分子场论高分子场论(Polymer field theory)是描述高分子体系统计行为的统计场论。它是这样得到的:标准的配分函数是粒子自由度的多维积分,通过Hubbard-Stratonovich 变换(英语:Hubbard-Str
  • 2009年纽约州第二十国会选区特别选举陆天娜民主党斯科特·墨菲民主党2009年纽约州第二十国会选区特别选举于2009年3月31日举行,旨在为纽约州第二十国会选区选派联邦众议员,填补前任议员陆天娜于2009年1月出任联邦参议员后出现的席位空缺。该州联邦参议员希拉里·罗德姆·克林顿此前接受总统贝拉克·奥巴马提名出任国务卿一职,州长大卫·帕特森任命陆天娜填补空缺。参选的两大党派候选人分别是民主党人、私营商户斯科特·墨菲,以及共和党人、纽约州众议院少数党领袖吉姆·泰迪斯科。此外,自由党人埃里克·桑德沃尔起初以第三党候选人身份参选,但没能进入最后的较量