LZW算法

一、压缩的核心

压缩的核心思想是用记号来代替重复出现的字符串,举个栗子: AABAA ,这个字符串中 AA 出现了2次,那么我可以用 1 这个数字来代替 AA ,那么这个字符串压缩后就成了 1B1 ,当然,这不是无损压缩,因为 1 是什么,在解压的时候是不知道的,我们可以简单的把记号和原串的对应表附在字符串后面,这样解压的时候就可以查询解压了,比如 1B1:1,AA 懂点程序的都能明白,确实可以根据这个串来还原,但是这种附一个对应表的做法怎么看都很累赘。LZW 给出了一种方式,让我们的这种做法显得不那么累赘。让我们可以边解压,边翻译出记号对应的原始串。

二、LZW算法概述

  1. 也就是说如果合并的字符串在字典里,就用字典里的编码替换;如果字符不在字典里就在字典里为该字符建立一个编码映射;
  2. 也就是说第一次出现的合并字符不用字典里的编码替换,只有出现过一次的(字典里有映射的)才用编码替换**


参考文献

LZW压缩算法原理解析
LZW算法的流程

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。