香农-范诺编码

✍ dations ◷ 2025-11-24 05:40:45 #香农-范诺编码

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

结果是

相关

  • VIAbr /16固体、 液体、 气体氧族元素是指元素周期表上第16族(ⅥA族)的元素,位于氮族元素和卤素之间。氧族元素包含氧(O)、硫(S)、硒(Se)、碲(Te)、钋(Po)、钅立(Lv),其中氧、硫、硒为非金属,碲为类金
  • ʋ̥清唇齿近音是一种辅音,被使用于一些口语中,国际音标写作⟨ʋ̥⟩或⟨f̞⟩,X-SAMPA音标则记作P_0、v\_0或f_o。清唇齿近音是南非英语中/f/典型的同位异音。相似地,/v/也常常被当
  • 滨海绍森德滨海绍森德(英语:Southend-on-Sea  pronunciation 帮助·信息)是一个位于英国埃塞克斯郡的单一管理区,位于伦敦以东40 mi(64 km),处于泰晤士河口北部,是埃塞克斯郡滨海度假胜地。
  • 亅部亅部,为汉字索引里为部首之一,康熙字典214个部首中的第六个(一划的则为第六个)。就繁体中文中,亅部归于一划部首,而在简体字部首中,“亅部”并入“丨部”,视为“丨部”的附形部首。
  • 拉尤河拉尤河(Layou River)是加勒比海岛国多米尼克的一个河流,发源于该国的内陆,向西流入该国中西海岸的加勒比海,非常靠近圣约瑟夫。为多米尼克最长和最深的河流。坐标:15°23′N 61°2
  • 梅家坞村梅家坞村是中国浙江省杭州市西湖区西湖街道所辖的一个村,位于西湖风景区内。梅家坞村处梅灵隧道以南,沿着梅灵路两侧。梅家坞人口约1.2千人。该村有六百多年历史。是西湖龙井
  • 切尔纳乡 (图尔恰县)坐标:45°05′N 28°19′E / 45.083°N 28.317°E / 45.083; 28.317切尔纳乡(罗马尼亚语:Comuna Cerna, Tulcea),是罗马尼亚的乡份,位于该国东南部,由图尔恰县负责管辖,面积222平方
  • 安格斯·泰勒安格斯·泰勒(Angus Taylor,1966年9月30日-)是一位澳洲政治人物,他的党籍是澳洲自由党。自2013年开始,他是休谟选区选出的澳大利亚众议院的议员。2016年,他被任命为澳洲社会服务部
  • 贝拉·洛戈西贝拉·洛戈西(英语:Béla Ferenc Dezső Blaskó 1882年10月22日-1956年8月16日)匈牙利裔美国演员,以1931年在电影《德古拉伯爵(英语:Dracula (1931 English-language film))》中扮
  • 友鹤事件友鹤事件(日语:友鶴事件/ともづるじけん  */?),发生于1934年(昭和9年)3月12日,大日本帝国海军在佐世保港外进行演习时发生了千鸟型鱼雷艇3号舰友鹤号(日语:友鶴 (水雷艇))翻覆的事故。本次事件与次年发生的第四舰队事件对日本海军带来极大震撼,并从此改变军舰设计思维。日本在1930年签订了伦敦海军条约,条约不仅针对主力舰(战列舰、航空母舰、巡洋舰)、驱逐舰和补助舰艇的吨位和武装也都有严格限制,不过基准排水量在600吨以下的舰艇并不在限制范围。为追求战力和回避条约限制,日本海军以鱼雷艇的名目,建造