首页 > 编程语言 >6.6哈夫曼算法能够大幅提升压缩比率

6.6哈夫曼算法能够大幅提升压缩比率

时间:2023-02-06 10:47:47浏览次数:43  
标签:字节 哈夫曼 压缩 6.6 算法 17 数据

使用哈夫曼树后,出现频率越高的数据所占用的数据位数就越少而且数据的区分也可以很清晰地实现。

通过图 6-5 的步骤 2可以发现,在用枝条连接数据时,我们是从出现频率较低的数据开始的,这就意味着出现频率越低的数据到达根部的枝条数就越多。而枝条数越多,编码的位数也就随之增多了。

 

 从用哈夫曼算法压缩过的文件中读取数据后,就会以位为单位对该数据进行排查,并与哈夫曼树进行比较看是否到达了目标编码,这就是为什么哈夫曼算法可以对数据进行区分的原因。例如,10001 这个使用图 6-5 所示的哈夫曼编码作成的 5 位数据,到达 100 时,对照哈夫曼树的数据,该数据表示的是 B 这个字符。至此就找到了1个字符然后再顺着哈夫曼树寻找剩下的 01,会发现它表示的是 E 这个字符。

接下来,让我们来看一下哈夫曼算法的压缩比率。用图 6-5 得到的哈夫曼编码表示 AAAAAABBCDDEEEEEF,结果为 0000000000001001001101011010101010101111,40 位= 5 字节(这里为不包含哈夫曼编码信息的情况 )。压缩前的数据是 17 字符 =17 字节,也就是说,我们惊奇地得到了5字节17 字节 29%这样高的压缩率。表 6-4 是将表6-1中的文件应用哈夫曼算法的 LHA 进行压缩后的结果,大家可以参考一下。可以看出,不管是哪种类型的文件,都得到了很高的压缩比率。

 

标签:字节,哈夫曼,压缩,6.6,算法,17,数据
From: https://www.cnblogs.com/z1218/p/17094663.html

相关文章