-
实验目的及要求
简·奥斯汀的作品《傲慢与偏见》可以在https://www.gutenberg.org/cache/epub/1342/pg1342.txt 获得,下载这个文本文档以后,要求编程实现以下功能:
-
统计每个字符出现的频率
-
根据每个字符出现频率进行哈夫曼编码
-
对文本文件进行编码并输出编码后的文件,并输出编码文件大小,计算编码后的压缩比
-
对该编码文件进行解码,并输出第四章的内容
2.实验步骤
统计每个字符出现的频率
根据每个字符出现频率进行哈夫曼编码
对文本文件进行编码并输出编码后的文件,并输出编码文件大小,计算编码后的压缩比
对该编码文件进行解码,并输出第四章的内容
3. 实验内容
4.实验结果
5.实验总结分析
- 2.
- 优点:保证概率大的符号对应于短码,概率小的符号对应于长码而且所有的短码得到充分利用;且每次缩减信源的最后两个码字总是最后一位不同,前面各位相同,这两个特点保证了哈夫曼编码一定是最佳的。虽然哈夫曼编码构造出来的码不唯一,但是其平均码长是相等的,所以不影响编码效率和数据压缩性能。
- 缺点:如果对单个字母进行编码,平均码字长可能还与理论上的最优编码率还有一定差距,哈夫曼编码算法是从上而下构造树。当信源符号集很大时,这种方法不方便;从硬件实现上来看,它有变长码固有的缺点:需要有缓冲存储器;从信道传输上来看,对应的长码一旦产生误码,某个码字的前缀部分可能成为另一个码字而发生误差,并导致错误后传