- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[2018年最新整理]Huffman霍夫曼编码
4.2霍夫曼编码霍夫曼编码介绍霍夫曼编码(Huffman Coding)是一种编码方法,霍夫曼编码是可变字长编码(VLC)的一种。 1952年,David A. Huffman在麻省理工攻读博士时所提出一种编码方法,并发表于《一种构建极小多余编码的方法》(A Method for the Construction of Minimum-Redundancy Codes)一文。David A. Huffman该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫作Huffman编码。 在计算机数据处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。1951年,霍夫曼和他在MIT信息论的同学需要选择是完成学期报告还是期末考试。 导师Robert?M.?Fano给他们的学期报告的题目是,查找最有效的二进制编码。由于无法证明哪个已有编码是最有效的,霍夫曼放弃对已有编码的研究,转向新的探索,最终发现了基于有序频率二叉树编码的想法,并很快证明了这个方法是最有效的。由于这个算法,学生终于青出于蓝,超过了他那曾经和信息论创立者克劳德·香农共同研究过类似编码的导师。霍夫曼使用自底向上的方法构建二叉树,避免了次优算法Shannon-Fano编码的最大弊端──自顶向下构建树。霍夫曼(Huffman)编码是一种统计编码。属于无损(lossless)压缩编码。?以霍夫曼树─即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。根据给定数据集中各元素所出现的频率来压缩数据的一种统计压缩编码方法。这些元素(如字母)出现的次数越多,其编码的位数就越少。广泛用在JPEG, MPEG, H.2X等各种信息编码标准中。霍夫曼编码的步骤霍夫曼编码的具体步骤如下:1)将信源符号的概率按减小的顺序排队。2)把两个最小的概率相加,并继续这一步骤,始终将较高的概率分支放在上部,直到最后变成概率1。3)将每对组合的上边一个指定为1,下边一个指定为0(或相反)。4)画出由概率1处到每个信源符号的路径,顺序记下沿路径的0和1,所得就是该符号的霍夫曼码字。信源熵的定义: 概率空间中每个事件所含有的自信息量的数学期望称信源熵或简称熵(entropy),记为: 单位:以2为底的对数时是比特/符号(bit/symbol); 以e为底的对数时是奈特/符号(nat/symbol); 以10为底的对数时是哈特/符号( hart/symbol)其中 表示某个事件xi的信息量。I(xi)=-logp(xi)平均码长编码效率例:现有一个由5个不同符号组成的30个符号的字符串:BABACACADADABBCBABEBEDDABEEEBB计算(1) 该字符串的霍夫曼码(2) 该字符串的熵(3) 该字符串的平均码长H(S) =(8/30)×log2(30/8) + (10/30)×log2(30/10) + (3/30)×log2(30/3) + (4/30)×log2(30/4) + (5/30)×log2(30/5) = ( 44.3136-24.5592)/ 9.0308 = 2.1874 (Sh)平均码长: =(2×8+2×10+3×3+3×4+2×5)/30 =2.233 位/符号例:类似书中例4-601001011霍夫曼编码的主要特点:?1.霍夫曼编码构造的码字不唯一;?2.霍夫曼编码是变长编码,硬件实现比较困难;3.采用霍夫曼编码,要传送编码表,占用传送时间;?4.霍夫曼编码是变长编码,出错时难以识别;霍夫曼编码方法不唯一,因为编码时的0和1是任意给的,另外在两个符号有相同概率时的编码过程不唯一,造成编码结果不同,但平均码长相同。其次对信源进行缩减时两个概率最小的符号合并后的概率与其他信源符号的概率相同时,这两者 在缩减信源中进行概率排序,其位置放置次序是可以任意的,故会得到不同的霍夫曼码此时将影响码字的长度,一般将合并的概率放在上面,这样可以获得较小的码方差。霍夫曼树?1、有关霍夫曼树的相关概念 霍夫曼树:指所有叶子结点的二叉树中带权路径长度最小的二叉树。 节点的带权路径长度:从树的根节点到该节点的路径长度与该节点权的乘积。 树的带权路径长度:树中所有叶子结点的带权路径长度之和。??2、霍夫曼算法(1)根据给定的n个权值{w1,w2,...,wn}构造n棵二叉树的集合F={T1,T2,...,Tn},其中每棵二叉树Ti中只有一个带权为wi的根结点,其左右子树均空。(2)在F中选取
您可能关注的文档
- [2018年最新整理]FLOEFD培训资料.ppt
- [2018年最新整理]FLOW3D基础.ppt
- [2018年最新整理]fluent_边界条件.ppt
- [2018年最新整理]FlowX3_产品介绍_02-05.ppt
- [2018年最新整理]FLUENT中被动型动网格问题求解方案:6DOF.docx
- [2018年最新整理]FLUENT明渠流动案例(OpenChannelFlow).docx
- [2018年最新整理]fluent命令介绍、网格划分、参数使用.doc
- [2018年最新整理]FLUENT网格质量.doc
- [2018年最新整理]fluent软件学习—新手上路的学习方法.docx
- [2018年最新整理]fluent边界条件的含义.doc
- [2018年最新整理]hydrus水流和溶质运移模拟软件介绍.docx
- [2018年最新整理]HVT-2601工程宝_视频监控测试仪第六代技术参数.doc
- [2018年最新整理]hydrus软件介绍.docx
- [2018年最新整理]Hypermesh几何清理的资料.doc
- [2018年最新整理]Hydrus软件简介.ppt
- [2018年最新整理]hyperworks几何清理与中面提取.ppt
- [2018年最新整理]HYPERMESH实例分析.ppt
- [2018年最新整理]Hysys培训制冷气厂.ppt
- [2018年最新整理]HYSYS63.ppt
- [2018年最新整理]Hypermesh网络的超边连通度.doc
文档评论(0)