自适应Huffman编码算法分析及的研究.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
自适应Huffman编码算法分析及的研究

自适应Huffman编码算法分析及的研究   摘要: Huffman编码作为一种高效而简单的可变长编码常用于信源编码。但现有的Huffman编码算法存在效率不高,同时应用受到一些限制,因此,提出一种自适应Huffman编码算法,该算法与其他的Huffman编码相比效率更高,应用范围更广。   Abstract: Huffman coding, as an efficient and simple variable length coding, is used in source coding. But the existing Huffman coding algorithm efficiency is not high, but application is also limited, therefore, this paper proposes an adaptive Huffman coding algorithm, this algorithm with other Huffman encoding compared with high efficiency, wide application range.   关键词: 数据压缩;Huffman编码;自适应Huffman编码   Key words: data compression;Huffman coding;adaptive Huffman coding   中图分类号:TP39 文献标识码:A 文章编号:1006-4311(2012)35-0196-03   0 引言   如何采用有效的数据压缩技术在信息科学领域发挥着重要的作用,Huffman编码在数据压缩技术中得到了广泛的应用,笔者对Huffman编码的原理和存在的不足进行探讨,并在此基础上提出了自适应Huffman编码方法,从而解决Huffman编码的不足。   1 Huffman编码的原理和构造过程   Huffman编码是1952年由Huffman提出的一种比较常用的变长编码方法,其主导思想是根据数据符号发生的概率进行编码。在数据中出现概率越高的符号,相应的码长越短;出现概率越低的符号,其码长越长,从而达到用尽可能少的码符号表示源数据。Huffman编码需对原始数据进行两遍扫描,第一遍统计原始数据中各字符出现的频率,由此创建Huffman树并将其有关信息保存起来,以便解压时使用;第二遍则根据所得到的Huffman树对原始数据进行编码,并将编码信息保存起来。创建Huffman树的过程如下:   ①根据源数据符号出现的概率,求出各个符号出现的权值{W1,W2,…Wn}构成n棵二叉树的集合F={T1,T2…Tn},其中每棵二叉树Ti中只有一个带权为Wi的根结点,其左右子数为空。   ②在F中选取两棵根结点的权值最小的树作为左右子树构造一新的二叉树,设置新二叉树的根结点的权值为左、右子树上根结点权值之和。   ③在F中删除所选取的两棵子树,同时将构成得到新二叉树加入到F中。   ④重复②、③直到F中只包含一个二叉树为止,这棵树便是Huffman树。   以abcddbb为例作为待编码的原始数据符号。首先,统计出a、b、c、d四个字符在原始数据中出现的概率(权重),结果如表1所示。   根据上述Huffman树构造过程,对“abcddbb”原始数据构造的Huffman树的过程如图1~4所示。   从Huffman编码的根结点出发,经右子树、左子树、左子树三步,到达包含字符a的叶结点,获得a字符的二进制编码:100。从根结点出发,经过左子树前进一步,就到达包含字符b的叶结点,获得b字符的二进制编码为:0,类似可得到c字符的二进制编码为:101,d字符的二进制编码为11,abcddbb的编码结果为:1000101111100。   这种Huffman编码算法进行编码时,必须进行两次扫描,第一次扫描统计字符出现的概率(权重),并据此进行构造Huffman树;第二次扫描是按Huffman树的字符进行编码。在存储和传输Huffman编码时,必须先存储和传输Huffman树,在实际应用系统中它有很大的局限性,特别在诸如通信等实时传输、处理的系统中,更不允许这种两次处理过程。因此,为改进该编码算法,提出了自适应Huffman编码方案。   2 自适应Huffman编码原理和构造过程   在叙述自适应Huffman编码之前,必须给每个结点引入两个新属性:结点编号和所属块。结点编号是一个全局唯一值,不同的结点拥有不同的点编号,而所属块是指具有相同权重的一组结点。其中结点编号需要具有以下特征:   ①权重越大的结点,结点编号越大。②父结点的编号总是大于子结点的编号。以上两点成为兄弟属性。

您可能关注的文档

文档评论(0)

bokegood + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档