LZW 是一种基于字典的无损压缩算法,由韦尔奇于 1984 年在 LZ78 基础上改进而来。它边读数据边构建字符串字典,用短编码替换重复出现的子串,曾是 GIF 图像与 Unix compress 的核心压缩方法。

| 外文名 | Lempel-Ziv-Welch |
| 提出者 | 特里·韦尔奇 |
| 发表时间 | 1984 年 |
| 算法类型 | 字典式无损压缩 |
| 典型应用 | GIF、TIFF、Unix compress |
LZW 算法(Lempel-Ziv-Welch)是一种字典式无损数据压缩算法,由特里·韦尔奇(Terry Welch)于 1984 年发表,是对亚伯拉罕·伦佩尔(Abraham Lempel)与雅各布·齐夫(Jacob Ziv)1978 年提出的 LZ78 算法的工程化改进。它以实现简单、单遍处理、无需预先统计而著称,曾长期是通用压缩的主力。
与霍夫曼编码依赖字符频率不同,LZW 直接利用数据中的重复子串:把见过的字符串登记进字典,再次遇到时只输出字典编号。压缩与解压两端都按同样规则动态构建字典,因此压缩文件里不需要附带字典本身,这是 LZW 最优雅之处。它随 Unix compress 工具普及,又被 GIF 与 TIFF 图像格式采用而家喻户晓。
LZW 最著名的应用是 GIF 图像格式与 TIFF 的可选压缩模式,以及早期的 Unix compress、调制解调器压缩协议 V.42bis 和 PDF 中的部分流压缩。历史上尤尼西斯(Unisys)公司持有的 LZW 专利曾在上世纪九十年代引发广泛争议,直接催生了完全开放的 PNG 格式;相关专利已于 2003 年至 2004 年间在各国陆续到期。如今通用压缩多被基于 LZ77 加熵编码的 DEFLATE、zstd 等取代,但 LZW 仍是理解字典压缩的最佳入门算法。
问:LZW 与 LZ77、LZ78 有何区别?答:LZ77 用滑动窗口内的(距离,长度)指针引用历史数据,LZ78 与 LZW 则显式建字典;LZW 去掉了 LZ78 输出中的附带字符,并预装单字符字典,工程上更简洁。
问:为什么解压端不需要传字典?答:因为字典的每一项都是由已经输出的内容按确定规则生成的,解压端读到编码时能同步执行同样的登记过程。
问:LZW 现在还常用吗?答:在新系统中已不多见,但 GIF 与大量存量 TIFF、PDF 文件仍在使用,读写这些格式仍需实现 LZW。

| 外文名 | Lempel-Ziv-Welch |
| 提出者 | 特里·韦尔奇 |
| 发表时间 | 1984 年 |
| 算法类型 | 字典式无损压缩 |
| 典型应用 | GIF、TIFF、Unix compress |
登录 后参与讨论
暂无讨论,来发表第一条评论吧