网站大量收购闲置独家精品文档,联系QQ:2885784924

关于LZW算法的改进研究20121132884921187.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LZW算法的实质是无损压缩技术[1-3],LZW算法通过对输入流进行分析,自适应地生成一个包含输入流中不重复子串的串表,将每一子串映射为一独立的码字输出。这样,它就充分利用了相邻输入之间的相关性,可以取得超过信源一阶熵的编码效率。然而,受缓存容量、计算复杂度和计算速度等因素的限制,串表的长度受到一定限制,且一般信源所具有的局部平稳性随缓存容量加大,编码效率提高不大。即:它自身固有一定的缺陷与不足,难以满足人们的需要,对它进行改进一直成为人们的研究目标之一[4-6]。为了解决这一问题,本文对LZW算法进行了改进,命名为LZWC编码算法。它兼有LZW算法的优点,还具有自身的优越性。首先对LZW算法进行一些必要的介绍和分析。 1. LZW算法 LZW算法[1]由韦尔奇(T.A.Welch)于1984年通过对LZ算法的改进。开发出的一种更优算法。它是一种基于字典的编码方法。并且它是LZ系列码中应用最广,变形最多的一种算法。LZW压缩有3个重要的对象:数据流、编码流和编译表。在编码时,数据流是输入对象,编码流就是输出对象;在解码时,编码流则是输入对象,数据流是输出对象;而编译表是在编码和解码时都需要借助的对象。 1.1LZW算法的编码原理 LZW算法的编码原理为:对消息序列xn=x1x2x3…xn从左到右进行阅读,并以此进行LZW编码: (1)对x1显然是第一次出现,它的前面也没有字符,那么他的编号是1,它的码元为(1,0, x1)。 (2)对于x2它可能有两种情况发生,即x1=x2或x1≠x2。对此,有 ①如果x1=x2,那么对于x2不作编码,而对x3的编码位点取2,连接位点则为1,这表示对x3作第二次编码,它与第一次编码的x1相连接。 ②如果x1≠x2,那么x2的编码位点取为2,连接位点则为0,这表示对x2作第二次编码,它的前面没有出现过相同的字符。 (3)依照上述步骤递推,如果对向量xn=x1x2x3…xn,nm,我们已经得到它的编码:C={(i,li, xji),i=1,2, …, k }. 对上式的C满足的条件:对每一个i有且只有一对(i,li),使liiji成立。那么C构成一LZW树。由树的构造可知,对每个点i,它的枝li是唯一的。因此,树C的全部枝为li,i=0,1,…,k 确定,而且每个li与xn中的子向量xαi对应。 (4)如向量xn中的编码C及相应的树确定,那么我们就可读xn+1,xn+2,…, xn+k,并对它们继续进行编码,如果有一个i≦k使xαi=(xn+1,xn+2,…, xn+k)成立,而且对任何i≦k都有:xαi≠( xn+1,xn+2,…, xn+k,xn+k+1)成立。那么: ①不对字符xn+1,xn+2,…, xn+k进行编码。 ②对xn+k+1作它的编码为(K+1,i, xn+k+1)。 以此类推,就可以完成对xn的编码C。 2.2 LZW算法的原理 LZW算法通过编码表来组织输人字符串,并把它们转换成一定长度的编码。LZW算法有一个重要的特性称作前缀性,即如果一个字符串在编码表上,那它的前缀串也在编码表上。例如:A、B为两个不同的字符串,AB组成一新的字符串,A为B的前缀串,如果B在编码表中,则一定在编码表中。 LZW通过编码表识别源输人字符序列,通过向编码表中增加新的字符串,从而识别更多、更长的字符序列。但由于前缀性的约束,这种识别一般每次只在原来的基础上增加一个字符,依次进行。同时,由于编码算法没有很强的分析功能,使它不知道哪些字符序列将来出现的概率较大,所以它具有一定的盲目性。例如,有一个长度为n的字符序列,LZW编码表要完全识别它,则至少需要该序列部分或全部重复出现n次。但是,当一个较长的字符串重复出现两次,我们就能够容易识别它,而且这样的字符串再次出现的概率是非常大的。基于这样一种认识,本文在LZW算法的基础上,构造了一种新的编码算法,我们把新算法称为LZWC编码算法,一般情况下它对数据的压缩率比LZW算法有大幅度提高。新算法在最差的情况下可退化成标准的LZW算法。下面对LZWC算法的原理进行详细的介绍。 2 LZWC算法 LZWC算法的基本原理是针对源输人数据中不同特点的数据序列,采用不同的编码器分别编码。数据序列的分类则是根据它的特点,通过对原始数据序列的分析来完成。 LZWC算法共有两个编码器,它们是:

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档