您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第二章 信息熵与Huffman编码
多媒体技术信息熵与Huffman编码徐家臻本章内容Huffman编码算法信息论的一些基础知识编码(Code)定长编码ASCII–每个字母8位‘A’:01000001变长编码a:0b:1c:00d:11平均编码长度)()()(xLxpxLcx其中,x表示各种符号p(x)表示该符号出现的概率(频率)L(x)表示该符号对应码字的长度(位数)唯一可解码编码是唯一可解的吗?a:0b:1c:00d:11接收到00011唯一可译码接收到11000000010110-00-00-00-10前缀码定义如果没有一个码字是另一个码字的前缀,则该码称为前缀码特点唯一可译即时可译,译码不需要等待后续码字为什么唯一即时可译?xabcdC(x)010110111最优编码最优编码的定义最小的唯一可解码两个问题最优的前缀码设计方法是什么?最优的前缀码是不是最优编码?)()()(xLxpxLcxHuffman编码给定m个权值{w1,w2,…,wm}①构造由m棵二叉树组成的树林F={T1,T2,…,Tm},其中每棵树Ti只有一个根结点,且根结点的权值为wi;②在树林中选取两棵根结点权值最小的和次小的二叉树作为左右子树构造一棵新的二叉树,其根结点的权值为左右子树根结点权值之和。③将新的二叉树加入到树林F中,去除原两棵权值最小的树;④重复2、3步骤,直至F中只剩一棵树为止。Huffman编码举例a2字母abcde频率24211b4c2d1e1Huffman编码举例字母abcde频率24211d1e12Huffman编码举例字母abcd+e频率2422d1e12a2c24Huffman编码举例字母a+cbd+e频率442d1e12a2c24Huffman编码举例字母a+c+d+eb频率64d1e12a2c246Huffman编码举例字母all频率10d1e12a2c246b410Huffman编码举例d1e12a2c246b41001001011字母编码a100b0c101d110e111Huffman编码步骤给定m个权值{w1,w2,…,wm}①构造由m棵二叉树组成的树林F={T1,T2,…,Tm},其中每棵树Ti只有一个根结点,且根结点的权值为wi;②在树林中选取两棵根结点权值最小的和次小的二叉树作为左右子树构造一棵新的二叉树,其根结点的权值为左右子树根结点权值之和。③将新的二叉树加入到树林F中,去除原两棵权值最小的树;④重复2、3步骤,直至F中只剩一棵树为止。最优前缀码必要条件与Huffman树的构造方式最优前缀码应具有的性质出现频率高的符号的码字长度比出现频率低的符号的码字长度短出现频率最低的两个符号,码字长度相等最优编码对应的树的中间节点必有左右两个分支如果把中间节点的所有叶子节点对应的符号看成一个符号组合,把中间节点改成组合对应的叶子结点,那么若原来的树是最优的,修改后的树也是最优的。最优编码最优编码的定义最小的唯一可解码两个问题最优的前缀码设计方法是什么?最优的前缀码是不是最优编码?)()()(xLxpxLcx√?Kraft-McMillan不等式McMillan定理假定C是由N个长度为l1,l2,…,lN码字组成的编码表,如果C是唯一可解码的,那么必有12)(1NiliCKKraft定理假定N个整数l1,l2,…,lN满足不等式12)(1NiliCK那么必定可以找到一种N个码字组成的前缀码,其码字长度分别为l1,l2,…,lNMcMillan定理证明看K(C)的n次方NiNiNinlllNinlNilNilnNiliniiiniii11121)...(11211121212...2...222),...,,max(,2)(21NnlnkkknllllACK其中McMillan定理证明Ak表示n个C中的码字可以组合成长度k的串数目对于2进制串,只可能有2k种取值,由于C是唯一可解码的,所以每个取值对应唯一的C中码字的组合因此,Ak2k),...,,max(,2)(21NnlnkkknllllACK其中nlnkkknlnkkknnnlACK1222)(如果K(C)1,当n充分大时,左边右边。所以K(C)≤1从Kraft-McMillan定理得到的结论假定C是由N个长度为l1,l2,…,lN码字组成的编码表,如果C是唯一可解码的,那么必有12)(1NiliCK假定N个整数l1,l2,…,lN满足不等式12)(1NiliCK那么必定可以找到一种N个码字组成的前缀码,其码字长度分别为l1,l2,…,lN结论:对于任意唯一可解码,都可以找到对应的前缀码,其码字长度完全相同。最优的前缀码是最优编码。统计编码压缩的上限Huffman编码可以产生最优编码最优编码的平均长度是多少?或者说,统计编码压缩的上限是多少?信息量与信息熵用什么作为信息的量度?信息的不确定程度信息带来的“惊奇”程度信息量与信息描述的事件产生的概率密切相关Shannon认为x事件的信息量I(x)应该具有的性质(用p(x)代表x事件发生的概率)I(x)0p(x)越小,I(x)越大如果事件x,y独立同分布,即p(x,y)=p(x)p(y)时,I(x,y)=I(x)+I(y)I(x)=-logp(x)对于二进制编码:I(x)=-log2p(x),单位是bit信息熵信息熵是所有可能事件的信息量的期望(平均)H与p的关系假设有N个事件,当每个事件发生的概率相等,即p(x1)=p(x2)=…=p(xN)时,H最大,为log2N证明:利用Jensen不等式)(log)())(()(2xpxpxIExHx信息熵的性质)()1()())1((bfafbaf均相等时取等号,当且仅当其中iMiiiMiiiMiiixfxf1,0)()(111凸函数的定义Jensen不等式所以NxpxpxpxpxpxpxHNiiiNiiiNiiilog)(1)(log)(1log)()(log)()(111最优编码平均长度和信息熵的关系1HLcH21121211()log()()2()log()log20iiNNiiiiiilNiiiNliHLcpxpxlpxpxpx证明左半部分(Kraft-McMillan不等式)最优编码平均长度和信息熵的关系1HLcH1)(1log)(1log22iiixplxp证明右半部分定义一组整数)(1log2iixpl那么NiiNilxpi111)(2最优编码平均长度和信息熵的关系1)1)(1)(log()(121HxpxplxpLcNiiiNiii根据Kraft-McMillan定理,存在码字长度为{li}的唯一可解码,其平均长度1HLcH因此最优编码平均长度和信息熵举例概率码字1/201/4101/41101/8111熵=Huffman平均编码长度=1.75Huffman编码缺点没有纠错功能。如果码串有错误,会引起一连串的错误,造成错误传播(errorpropagation)很难随意查找中间的内容优点简单、高效模型无关广泛应用于各种压缩领域Huffman编码的其他变体自适应Huffman编码统计和编码同时进行扩展Huffman编码对符号组而不是单个符号编码下次课的内容Huffman编码的C语言实现二叉树优先级队列(堆排序)
本文标题:第二章 信息熵与Huffman编码
链接地址:https://www.777doc.com/doc-3799305 .html