采用LRU淘汰原则的LZW压缩算法.pdfVIP

  • 4
  • 0
  • 约5.94千字
  • 约 4页
  • 2015-08-20 发布于未知
  • 举报
一般工业技术

维普资讯 第 l3毫第 1期 青 岛 大 学 学 报 VOL.13NO.4 1998年 12月 JOURNALOFQINGDAOUNIVERSITY Dtc l998 )1/ 采用LRU淘汰原则的LZW 压缩算法’下∞。 LZW COM PRESSION ALGORITHM W ITH LRU ELIM INAT10N PRINCIPLE 高基铎一 GaoChangduo (青岛大学讦膏 青岛266071) (Center。fCcmp~ingofQingda0Unlv~sky.Q;ngda0266071) 摘要 用LRU淘汰原则改进 了LZW 压缩算法- AbstractLnprovedLZWcompressionalgorilhmthrough LZW 压缩算法 是一种常用的数据压缩算法,由于它不依赖于任何数据格式,而且 具有很高的综合性能指标 (解码速度与压缩 比率),因而得到广泛应用。象微机上的 PKzIP,PKARC等压缩程序以及CompuServe的GIF图象格式等,都采用Lzw压缩算 法. LZW 压缩算法的核心是一个记录字符串代码的串表,串表是压缩/解压缩过程中动 态生成的 LZW 压缩算法规定,当串表达到4096项时便清除 对于全局相关性较强的数 据,串表清除后,先前建立的串表不能被充分利用,因而影响了压缩比率。为解决这一问 题 ,PKzIP,PKARc等压缩程序采用sHRINKING策略,即当串表满时,不清除串表中所 有项,只清除串表中的叶结点项,以提高压缩比率。 不同于LZW压缩算法和SHRINKING策略,借鉴操作系统页面管理的LUR淘汰原 则 ],本文提出了一种新的串表清除方法,即对每一表项的使用次数进行计数,只清除串 表中最近最少使用的项,这样可充分利用压缩数据全局相关性的特点,提高压缩比率 1 LZW压缩算法的思想 LZW 压缩算法通过用简单的代码来替换复杂的字串来实现压缩数据的,代码与字串 的对应关系是通过串表来记录的。串表不是事先定好的,而是在压缩过程中动态生成的. 并且这个串表仅在压缩过程中需要,一旦压缩完毕,串表就不需要了。而解压时,根据压缩 ·收稿 日期l1998一Ol—O5 维普资讯 青 岛大 学 学 报 第 l3卷 的数据可以再形成与压缩时相同的串表 。 压缩开始时,初始化串表使其包括所有的单字 (代码从 0到 255),LZW 压缩算法规 定清串表代码为 256,结束代码为 257,由此串表中增加第一个表项时.对应的代码是 258。由于8位码的最大值是255,256用9位代码才能表示,因此开始输出的代码应为9 位代码,但当串表增加到512项时,需要输出10位代码。为限制串表的大小,LZW 压缩算 法规定串表不能超过 4096项,即当代码位数超过 l2位时,放弃这个串表,重新初始化串 表,同时输出一个清位码,并按新的串表继续进行压缩。 LZW 压缩算法需要两个工作变量,PrefixString(前缀串变量)和ReadChar(读人字 符变量),LZW 压缩算法如下: (1)初始化串表并且置PrefixString为空 (2)当输入没结束时执行 1)读人字符到 ReadChar 2)若PrefixString+ReadChar在串表中 则 PrefixString=PrefixString+ReadChar 否则①输出PrefixString在串表中的代码 ②在串表中增加项PrefixString+ReadChar

文档评论(0)

1亿VIP精品文档

相关文档