LZW字典编码

本文详细介绍了LZW压缩编码算法的工作原理,并通过一个具体的例子展示了如何用Python实现LZW编码和解码的过程。文章还提供了一个完整的Python代码示例,用于对灰度图像进行LZW编码和解码。

1977年,两位以色列教授Lempel和Ziv提出了查找冗余字符和用较短的符号标记替代冗余字符的概念。1985年,由Welch加以充实而形成LZW,简称“LZW”技术。

  • 举例说明

  1. 首先将图像从左到右,从上到下扫描,将所有像素排成一列,叫做被处理像素
  2. 研究符号出现的规律--拼接
  • 构造当前识别序列,这个序列是动态产生的,其初始值为“空”
  • 以当前识别序列和当前被处理像素进行拼接

  • 如果所形成的符号串在字典中已经有了,则将拼接符号串置为当前识别序列,将下一个像素置为当前被处理像素,重复第(2)步

  • 如果拼接所形成的符号串在字典中没有
  • (输出当前识别序列在字典中的位置,这位就是该 符号序列的编码
  • 生成一个新的字典条目
  • 将当前被处理像素变成当前识别序列,将下一个像素置为当前被处理像素,重复第(2)步。 

 最后的编码:0,0,255,255,256,258,260,259,257,255

LZW的解码:根据编码查找字典 

编码值

<
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ace2NoU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值