LZW压缩算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LZW译码
• ZW译码算法中还用到另外两个术语:①当前码字(Current code word):指当前正在处理的码字,用cW表示,用stri ng.cW表示当前缀-符串;②先前码字(Previous code wo rd):指先于当前码字的码字,用pW表示,用string.pW表 示先前缀-符串。 • LZW译码算法开始时,译码词典与编码词典相同,它包含 所有可能的前缀根(roots)。LZW算法在译码过程中会记住 先前码字(pW),从码字流中读当前码字(cW)之后输出当前 缀-符串string.cW,然后把用string.cW的第一个字符扩 展的先前缀-符串string.pW添加到词典中。
目录
• 1 LZW算法简介 • 2 LZW算法 • 2.1 LZW压缩算法 • 2.2 LZW解压算法 • 3 LZW压缩的特点
第一PPT模板网:www.1ppt.com
LZW算法简介
LZW压缩算法的基本概念:LZW压缩有三个重要的对 象:数据流(Char Stream)、编码流(Code Stream)和编译 表(String Table)。在编码时,数据流是输入对象(文本文 件的据序列),编码流就是输出对象(经过压缩运算的编码 数据);在解码时,编码流则是输入对象,数据流是输出对 象;而编译表是在编码和解码时都须要用借助的对象。字符 (Character):最基础的数据元素,在文本文件中就是一个 字节,在光栅数据中就是一个像素的颜色在指定的颜色列表 中的索引值;字符串(String):由几个连续的字符组成; 前缀(Prefix):也是一个字符串,不过通常用在另一个字符 的前面,而且它的长度可以为0;根(Root):一个长度的 字符串;编码(Code):一个数字,按照固定长度(编码长 度)从编码流中取出,编译表的映射值;图案:一个字符串, 按不定长度从数据流中读出,映射到编译表条目.
• 步骤1: 开始时的词典包含所有可能的根(Root),而当前前 缀P是空的; • 步骤2: 当前字符(C) :=字符流中的下一个字符; • 步骤3: 判断缀-符串P+C是否在词典中 (1) 如果“是”:P := P+C // (用C扩展P) ; (2) 如果“否” ① 把代表当前前缀P的码字输出到码字流; ② 把缀-符串P+C添加到词典; ③ 令P := C //(现在的P仅包含一个字符C); • 步骤4: 判断码字流中是否还有码字要译 (1) 如果“是”,就返回到步骤2; (2) 如果“否” ① 把代表当前前缀P的码字输出到码字流; ② 结束。
LZW译码算法的具体执行步骤如下:
步骤1: 在开始译码时词典包含所有可能的前缀根(Root)。
步骤2: cW :=码字流中的第一个码字。
步骤3: 输出当前缀-符串string.cW到字符流。 步骤4: 先前码字pW := 当前码字cW。 步骤5: 当前码字cW := 码字流中的下一个码字。 步骤6: 判断先前缀-符串string.cW是否在词典中 (1) 如果“是”,则: ① 把先前缀-符串string.cW输出到字符流。 ② 当前前缀P :=先前缀-符串string.pW。 ③ 当前字符C :=当前前缀-符串string.cW的第一个字符。 ④ 把缀-符串P+C添加到词典。 (2) 如果“否”,则: ① 当前前缀P :=先前缀-符串string.pW。 ② 当前字符C :=当前当缀P的第一个字符。 ③ 输出缀-符串P+C到字符流,然后把它添加到词典中。 步骤7: 判断码字流中是否还有码字要译
LZW算法简介
• LZW压缩算法的基本原理:提取原始文本文 件数据中的不同字符,基于这些字符创建一个编 译表,然后用编译表中的字符的索引来替代原始 文本文件数据中的相应字符,减少原始数据大小 。看起来和调色板图象的实现原理差不多,但是 应该注意到的是,我们这里的编译表不是事先创 建好的,而是根据原始文件数据动态创建的,解 码时还要从已编码的数据中还原出原来的编译表.
(1) 如果“是”,就返回到步骤4。
(2) 如果“否”, 结束。
LZW压缩的特点
LZW码能有效利用字符出现频率冗余度进行压缩,且字典是自适应生 成的,但通常不能有效地利用位置冗余度。 具体特点如下: l)LZW 压缩技术对于可预测性不大的数据具有较好的处理效果,常用 于TIF格式的 图像压缩 ,其平均压缩比在2:1以上,最高压缩比可达 到3:1。 2)对于数据流中连续重复出现的字节和字串,LZW 压缩技术具有很高 的压缩比。 3)除了用于图像数据处理以外,LZW 压缩技术还被用于文本程序等数 据压缩领域。 4)LZW压缩技术有很多变体,例如常见的ARC、RKARC、PKZIP高 效压缩程序。 5)对于任意宽度和像素位长度的图像,都具有稳定的压缩过程。压缩 和解压缩速度较快。 6)对机器硬件条件要求不高,在 Intel 80386的计算机上即可进行压缩 和解压缩。
LZW算法
算 法 流 程 图
LZW算法
LZW算法基于转换串表(字典)T,将输入 字符串映射成定长(通常为12位)的码字。在12位 4096种可能的代码中,256个代表单字符wenku.baidu.com剩下38 40给出现的字符串。 LZW字典中的字符串具有前缀性,即 ωK∈ T=>;ω∈T。
LZW编码算法的具体执行步骤