lzw编码过程详解_[2018年最新整理]LZW编码详解.ppt

[2018年最新整理]LZW编码详解

压缩的数据并与一个字典库(库开始是空的)中 步骤1:将词典初始化为包含所有可能的单字 解码步骤 1)读第一个编码code=2H,无输出 2)读code=0H,输出0H对应的a,oldcode=code=0H 3)code=0H,输出0H对应的a,然后将oldcode=0H所对应的字符串“a”加上code=0H对应的字符串的第一个字符”a”,即”aa”添加到字典中,其索引为4H,同时oldcode=code=0H 4)读入code=1H,输出“b”,然后将oldcode=0H所对应的字符串“a”加上code=1H对应的字符串的第一个字符”b”,即”ab”添加到字典中,其索引为5H,同时oldcode=code=1H 5)读入code=6H,由于字典中不存在该索引,将oldcode=1H所对应的字符串“b”加上oldcode=1H对应的字符串的第一个字符”b”,即”bb”添加到字典中,其索引为6H,同时oldcode=code=6H 6)读入code=4H,输出“aa”,然后将oldcode=6H所对应的字符串“bb”加上code=4H对应的字符串的第一个字符”a”,即”bba”添加到字典中,其索引为7H,同时oldcode=code=4H 7)读入code=6H,输出“bb”,然后将oldcode=4H所对应的字符串“aa”加上code=6H对应的字符串的第一个字符”b”,即”aab”添加到字典中,其索引为8H,同时oldcode=code=6H 8)读入code=3H,解码完毕。 解码过程 ①由于LZW算法的关键是通过翻译表来实 算术编码具体方法是将被编码的信源消息表示成实数轴0-1之间的一个间隔,消息越长,编码表示的间隔就越小,即这一间隔所 采用算术编码每个符号的平均编码长度可以为小数。 需的二进制位数就越多。 算 术 编 码 * * 行程编码适合于对二值图像的编码,如果 图像是由很多块颜色或灰度相同的大面积区域 组成的,采用行程编码可以达到很大的压缩比。 通常,为了达到比较好的压缩效果,一般 不单独使用行程编码,而是和其他编码方法结合 使用。如:在JPEG中,就综合使用了行程编码以及哈夫曼编码。 1977年,以色列人Lempel和Ziv共同提出了查找冗余字符 和用较短的符号标记替代冗余字符的概念,简称LZ压缩技术。 1985年,美国人Welch将LZ压缩技术从概念发展到实用阶段,简称LZW压缩技术。广泛用于图象压缩领域。 LZW(Lempel-Ziv & Welch)编码又称字串表编码,属于一种无损编码,LZW编码与行程编码类似,也是对字符串进行编码从而实现压缩,但它在编码的同时还生成了特定字符串以及与之对应的索引字符串表。 LZW编码 字符串插入字典中。 字符串数据在字典库中的位置索引, 的字符串对比, LZW压缩使用字典库查找方案。 它读入待 如有匹配的字符串,则输出该 否则将该 步骤2:当前字符C:=字符流中的下一个字符。 字符,当前前缀P初始化为空。 LZW编码算法 令P:=C,现在的P仅包含一个字符C 步骤3:判断P+C是否在词典中 (1)如果“是”,则用C扩展P,即让P:=P+C (2)如果“否”,则 输出与当前前缀P相对应的码字; 将P+C添加到词典中; 步骤4:判断码字流中是否还有码字要译 (1)如果“是”,就返回到步骤2; (2)如果“否” 把代表当前前缀P的码字输出到码字流; 结束。 LZW编码举例 C A B A B A B B A 字符 9 8 7 6 5 4 3 2 1 位置 7 ABAC 8 6 5 2 BB 5 2 2 2 BA 6 3 3 4 ABA 7 4 4 3 6 4 3 2 1 码字 1 AB 1 1 C B A 输出 词典 位置 步骤 输入数据流: 编码过程: 初始化字符串表 5 H LZW_EOI 4 H LZW_CLEAR 3 H d 2 H c 1 H b 0 H a 索引 字符串 LZW编码实例 aabcabbbbd 输入数据S2 S1+S2 输出结果 S1 生成的新字符串及索引 NULL a a b c a b b b b d NULL NULL a a a aa 4H 0H 0H ab bc ca ab abb bb bb bbd 1H 2H 7H 1H BH 3H 5H b c a ab b b bb d aa <6H> ab <7H> bc <8H> ca <9H> abb bb bbd S1为NULL,故输出结果为空 S1+S2在字符表中,S1=S1+S2 aa不存在,故输出S1=“a”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值