外围海尊体育足球网

leadtools中文官方网站 > 所有产品 > 图像 > 哈夫曼编码

哈夫曼编码

aspnet
 哈夫曼编码(huffman coding)是一种编码方式,哈夫曼编码是可变字长编码(vlc)的一种。huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做huffman编码(有时也称为霍夫曼编码)。

发展历史

1951年,哈夫曼和他在mit信息论的同学需要选择是完成学期报告还是期末考试。导师robert m. fano给他们的学期报告的题目是,寻找最有效的二进制编码。由于无法证明哪个已有编码是最有效的,哈夫曼放弃对已有编码的研究,转向新的探索,最终发现了基于有序频率二叉树编码的想法,并很快证明了这个方法是最有效的。由于这个算法,学生终于青出于蓝,超过了他那曾经和信息论创立者香农共同研究过类似编码的导师。哈夫曼使用自底向上的方法构建二叉树,避免了次优算法shannon-fano编码的最大弊端──自顶向下构建树。

1952年,david a. huffman在麻省理工攻读博士时发表了《一种构建极小多余编码的方法》(a method for the construction of minimum-redundancy codes)一文,它一般就叫做huffman编码。

应用举例

哈夫曼树─即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。 在计算机信息处理中,“哈夫曼编码”是一种一致性编码法(又称“熵编码法”),用于数据的无损耗压缩。这一术语是指使用一张特殊的编码表将源字符(例如某文件中的一个符号)进行编码。这张编码表的特殊之处在于,它是根据每一个源字符出现的估算概率而建立起来的(出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而达到无损压缩数据的目的)。这种方法是由david.a.huffman发展起来的。 例如,在英文中,e的出现概率很高,而z的出现概率则最低。当利用哈夫曼编码对一篇英文进行压缩时,e极有可能用一个位(bit)来表示,而z则可能花去25个位(不是26)。用普通的表示方法时,每个英文字母均占用一个字节(byte),即8个位。二者相比,e使用了一般编码的1/8的长度,z则使用了3倍多。若能实现对于英文中各个字母出现概率的较准确的估算,就可以大幅度提高无损压缩的比例。

?
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP