香农-范诺编码

✍ dations ◷ 2025-11-28 09:09:14 #香农-范诺编码

在数据压缩的领域里,香农-范诺编码(英语: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比特。

结果是

相关

  • 约翰·汉考克约翰·汉考克(John Hancock,1737年1月12日-1793年10月8日),美国革命家、政治家,富商出身。他曾于1775年-1777年任大陆会议主席, 是独立宣言的第一个签署人,美国开国元老之一。由于他
  • 密支那密支那(缅甸语:မြစ်ကြီးနားမြို့,Myitkyina)是缅甸联邦之克钦邦的首府,距仰光1479公里,距曼德勒784公里。密支那坐落在伊洛瓦底江边,伊洛瓦底江两条支脉东支恩梅开
  • 2003年贵州木冲沟矿难2003年贵州木冲沟矿难,为2003年2月24日,发生于贵州省六盘水市水城县的一起重大煤矿瓦斯事故,共造成35人死亡。2003年2月24日下午14时55分,贵州省水城矿业公司木冲沟煤矿发生瓦斯
  • 穆罕默德·伊克巴勒穆罕默德·伊克巴勒(乌尔都语:محمد اقبال‎‎,1877年11月9日-1938年4月21日,或译穆罕默德·伊克巴尔),印度穆斯林诗人、哲学家政治家,其波斯语和乌尔都语诗作被认为是近现
  • 加贝尔斯贝格速记法加贝尔斯贝格速记法(德语:Gabelsberger-Kurzschrift,又译加比斯伯格速记法)是由 Franz Xaver Gabelsberger (1789年-1849年)为日耳曼语所创的速记法。它的子音符号以简化拉丁字母
  • 黄超 (羽毛球运动员)黄超(英语:HUANG Chao,1992年6月30日-),原籍中国湖北荆州,2010年入籍新加坡,现时为新加坡男子羽毛球运动员。黄超原籍中国湖北荆州,父亲黄凯是前中国羽毛球队的双打球员,而母亲杨玲则
  • 太和北站太和北站(原站名为旧县集站、太和县站),位于中华人民共和国安徽省阜阳市太和县旧县镇,是漯阜铁路上的火车站,建于1990年,于2017年11月26日开办客运业务,由武汉铁路局管辖。
  • 二百五十七边形二百五十七边形是多边形的一种。共有257条边,257个顶点,内角和45900°,对角线32639条。正二百五十七边形的圆心角和外角约1.40°,内角约178.60°。此外,一边长a的正257边形的面积是: 257 a 2
  • 马德拉自治区主席列表马德拉群岛自治区政府主席列表,马德拉群岛是葡萄牙的在大西洋的自治区。
  • 米兰·博里扬米兰·博里扬(塞尔维亚语:Милан Борјан;拉丁字母转写:Milan Borjan;1987年10月23日-)是一名塞尔维亚裔加拿大足球员,司职守门员。米兰·博里扬出生于克罗地亚克宁,但父母都是塞尔维亚族人。1995年克罗地亚政府进行风暴作战之后,博里扬举家搬迁到南联盟首都贝尔格莱德。此后博里扬加入贝尔格莱德工人足球俱乐部。2000年,博里扬举家移民加拿大,并在安大略省哈密尔顿定居。2010年,博里扬宣布自己选择效力加拿大男足。2011年2月,博里扬入选加拿大男足大名单,并于一周后在对战希腊的友谊