【信息论与编码课设】LZ-77编码实现文本文件的压缩与解压缩(二)

本文分析了使用LZ77算法对《汤姆索亚历险记》进行编码和解码的过程。压缩结果显示,七万余字的文本从337Kb压缩至74kb,压缩效率为77.8%;解压缩则在38秒内完成,从74kb恢复至304kb,效率高达91.01%。LZ77算法虽然压缩速度较慢,但解压缩速度快,适合一次性压缩、多次解压缩的场景。
摘要由CSDN通过智能技术生成

第一篇文章已经发布,完整的Word版本和代码以及文本文件可在我上传的资源中下载

4、运行结果

4.2编码结果分析

输入一个文件,首先对文件中的字符总个数进行统计(忽略大小写),然后从文本头开始查找同一字符个数,并计算其概率最后由得出的字符概率求得信源熵。已知信源熵的计算公式如下:
在这里插入图片描述
由于文件太大,截取部分段落计算信源熵,并对段落中出现的字母次数和字母出现概率进行统计如下:
在这里插入图片描述
由运行结果可知,平均每个离散消息提供的自信息量是3.619738bit/sign

4.2编码结果分析

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
由结果可知,对七万余字的汤姆索亚历险记进行编码,共需要71秒,文本由337Kb压缩至74kb。

4.3解码结果分析

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
由结果可知,对压缩后的汤姆索亚历险记进行解压缩,共需要38秒,由74kb解压缩至307MB, LZ77压缩时需要做大量的匹配工作,而解压缩时需要做的工作很少,也就是说解压缩相对于压缩将快的多。这对于需要进行一次压缩,多次解压缩的情况,是一个巨大的优点。

4.4效率分析

 文本字节	操作后字节	效率

压缩 334kb 74kb 77.8%
解压缩 74kb 304kb 91.01%
通过文本压缩和解压缩后的文本字节可看出,压缩效率为77.8%,解压缩效率为91.01%,用LZ77算法压缩的程度取决于很多因素,例如,选择滑动窗口的大小,为前向缓冲区设置的大小,以及数据本身的熵。最终,压缩的程度取决于能匹配的短语的数量和短语的长度。大多数情况下,LZ77比霍夫曼编码有着更高的压缩比,但是其压缩过程相对较慢。
用LZ77算法压缩数据是非常耗时的,国为要花很多时间寻找窗口中的匹配短语。然而在通常情况下,LZ77的解压缩过程要比霍夫曼编码的解压缩过程耗时要少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在下方方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值