1 / 28
文档名称:

LZ算法.doc

格式:doc   大小:265KB   页数:28页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

LZ算法.doc

上传人:花开一叶 2018/11/16 文件大小:265 KB

下载得到文件列表

LZ算法.doc

文档介绍

文档介绍:数据压缩与LZ系列算法及其改进
LZ77字典压缩算法简介
字典压缩的原理是构建一个字典,用索引来代替重复出现的字符或字符串。如果字符串相对长,那么对整个字符串构建字典,这个字典将会很大,并且随着字典的增大,匹配速度也会快速下降。原始的LZ77算法是利用了字符串中上下文的相关性特点,通过一个滑动窗口(一个查找缓冲区)来作为字典,对要压缩的字符串保留一个look-aheadbuffer。压缩后的字符串采用三元组来表示:<位移,长度,下一个字符>,在滑动窗口中从后往前找,如果在窗口中有曾经出现过的相同字符,看最多可以匹配多少字节,完了继续往前查找,查找完了取窗口中最长的匹配串(如果有多个相同长度的串可以匹配,取最后一个),将这个匹配串距当前位置的位移,长度,及下一个字符构成的三元组写出。如果在滑动窗口找不到匹配串,那么位移=长度=0,加上不能压缩的字符一起输出。滑动窗口可以通过循环队列实现。
解压缩是一个比较简单而且快速的过程,在需要解压缩时通过位移和长度拷贝之前出现过的字符串就可以完成。
LZ77字典压缩的改进
LZ77压缩算法的大部分时间都会花在字符串匹配上,针对这一点有多种改进:
构建查找树,该思路也有多种实现方法,如LZSS。
构建链表法实现的哈希表,通过对一个字符串的头三个字节做哈希,快速找到匹配字符串的位置之后再沿链表做顺序搜索,如LZRW。
Deflate算法,其在ZIP和GZIP,以及许多软件中使用到,是使用LZ77的变种和huffman编码结合的一种压缩算法。在ZLib的源码中可以找到详细的算法说明。
类似的还有鼎鼎有名的7-ZIP所使用的LZMA算法,也是LZ77算法和算术编码结合的算法,对LZ77的三元组都根据概率再次进行编码,压缩比很高, 但是压缩速度相对较慢。
LZ78/LZW系列算法
LZ77算法针对过去的数据进行处理,而 LZ78 算法却是针对后来的数据进行处理。LZ78通过对输入缓存数据进行预先扫描与它维护的字典中的数据进行匹配来实现这个功能,在找到字典中不能匹配的数据之前它扫描进所有的数据,这时它将输出数据在字典中的位置、匹配的长度以及找不到匹配的数据,并且将结果数据添加到字典中。
比较好的字典数据结构表示是字符查找树(trie,有多种译法),即上一楼提到的解析树(ParseTree),在这个数据结构中,前缀相同的字符串共享祖先节点,依此衍生。因为要压缩的字符串可能会很长,在LZ78中新出现的symbol并且在字典中没有匹配时,会加入到字典中,字典会不断膨胀,需要限制字典的大小。这里对trie有几种处理方法:
停止继续构造字典,形成一个静态的字典,用现有的字典对数据进行压缩(这个处理方法的缺点就是前面的字符串构造出来的字典对后来的数据不一定有效)
重新开始构造字典。这样会使数据分离为一个一个的块,每个块都有独立的字典。(这个方法保留了LZ77的优点,即新数据比旧数据更有相关性,类似Oracle的块压缩)
从trie中替换节点。但是需要考虑有效的替换算法。
LZW算法是LZ78的变种,假如字符串S在字典中有匹配,但是Sx在字典中无匹配,那么Sx会被加入到字典中。因为字典一开始就被初始化为256个字符,所以无需用到LZ77中的三元组表示法,每一个phrase或char都可以用字典中的一个索引表示(总是能在字典中找到),缺点跟LZ78一样,字典会快速增大。LZW中的字典使用了trie结构。
LZMW是LZW的一个改进版本(DB2参考的压缩算法),改进如下:
如果trie满了,应该找到最近最少使用的节点进行替换。一种方法是:找出所有没有子节点的节点(即没有被当做前缀引用的节点),删除其中最老的。
加入字典的phrase由两个子串组成:前匹配项与当前项。LZW中的trie的新增节点表示的是后续不能匹配的symbol,但是LZMW中trie新增节点表示的是后续不能匹配的串。这可以使得字典的单元在逻辑上更自然,生成字典的速度也更快。缺点是:
并不是所有在字典中存在的串其前缀都可以在字典中找到(注:LZW的trie结构是可以的),那么假如一个只部分匹配字典项的串要加入字典中会是个问题,《pression, pletereference》这本书中提到的可能的替代方法是一个串加入trie中时,其所有的前缀也加入到trie中,并且每个节点必须有标志位注明其是否在字典中(因为节点有可能只是上一步提到的前缀节点,而不是实际的字典项)。
查找最长匹配项可能需要回溯。
压缩算法概述
作者:      来源:zz     发表时间:2007-12-03     浏览次数: 43045      字号:大  中  小
中国源码网内相关主题链接
· LZ77压缩算法
· LZ

最近更新

同学过生日不该请客 2页

10.1.4 设计轴对称图案 华师大版公开课一等奖.. 18页

机械工程材料总复习资料 26页

2025年山东省济南市平阴县中考一模物理试题[含.. 19页

二零二四年茶楼茶叶休闲旅游产品开发合同范本.. 17页

二零二四年铲车转让合同及售后服务团队派遣协.. 14页

二零二四年高速公路隧道施工安全与质量监管协.. 17页

二零二四版按时缴纳烟草专卖零售户税担保协议.. 15页

成本控制对企业创新和研发能力的影响 62页

部编版二年级语文下册识字三.《“贝”的故事》.. 42页

工业设计中的可持续性发展策略-洞察阐释 40页

初三叙事作文《雪中即景》700字(共9页PPT)公开.. 9页

传热学期末复习题公开课一等奖课件赛课获奖课.. 13页

改进型RSEI的祁连山自然保护区生态环境质量评.. 8页

2025年自己幸福的家作文(精选篇) 19页

2025年脑筋急转弯提示水(精选6篇) 15页

2025年背叛的议论文作文(共29篇) 19页

2025年聪明的小鸡三年级作文(共13篇) 14页

2025年职称英语考试用书(整理6篇) 7页

2025年职场上激励正能量的句子(精选6篇) 14页

2025年考研科目分值都是多少(精选4篇) 8页

2025年老爸,再来一碗作文(推荐24篇) 30页

2025年老师给大学生评语(共20篇) 42页

二手房买卖合同文本(标准版) 8页

2023年科技特长生招生考试试卷 14页

2022年党员学习笔记_党员学习笔记记录2022年(.. 18页

全文《反有组织犯罪法》PPT 73页

叉车比赛评分表 6页

广州文摘报 3页

复杂的比和比例应用题一题多解附答案 12页