改进的LZSS压缩算法
王娟1 刘教民2 檀柏红2
(1中国人民武装警察部队学院,河北廊坊065000;2河北省教育厅,河北石家庄 050000)
摘 要:本文提出了LZSS压缩算法在进行文本压缩时存在的问题,并给出了解决方法。改进后的算法具有较高的压缩率,实验结果令人满意。
关键词:LZSS;数据压缩
1 引言
随着计算机技术的高速发展,各种系统数据量越来越大,给信息存储特别是网络传输带来诸多的困难,并己成为有效获取和使用信息的瓶颈。为了节省信息的存储空间和提高信息的传输效率,必须对大量的实际数据进行压缩。实践中采用数据压缩技术,通常可以节省80%以上的费用,并且使得一些困难问题转而在技术上能够实现。
目前常用的压缩编码方法分为两大类:一类是无损压缩法,也叫熵编码;另一类是有损压缩法,也叫熵压缩法。熵压缩法压缩了熵,会减少信息量,因而不能完全恢复,对于图像、动画、和音频等多媒体信息是有效的,但对于程序文件、数据库文件等就行不通了。
2 LZSS压缩算法
LZSS是词典编码无损压缩技术的一种[1]。词典编码无损压缩技术主要有LZ77、LZSS、LZ78、LZW等几种基本算法,它们一起垄断了当今的通用数据压缩领域。LZ78和LZW两种算法的编译码方法较为复杂,实现起来较为困难,而LZ77的压缩率又相对较低,比较而言LZSS算法在单片机上实现起来较为理想,其压缩率较高,编译码算法也较为简单。LZSS压缩算法的字典模型使用了自适应的方式,也就是说,将已经编码过的信息作为字典,如果要编码的字符串曾经出现过,就输出该字符串的出现位置及长度,否则输出新的字符串。实际使用时,由于被压缩的文件往往较大,一般使用“滑动窗口压缩”方式,就是将一个虚拟的,可以跟随压缩进程滑动的窗口作为术语字典。
3改进的LZSS压缩算法