LZW是如何进行编码和解码的



我需要关于LZW如何工作的帮助。比如它如何编码数据以及字典,以及如何将其解码回来。。。请给我这个做压缩。

这里有一个简单的例子。假设您正在尝试压缩AAABBC

编码

我们假设原始字典中包含所有字母A-Z,代码为1-26。

以下是编码的所有迭代:

i   word    x   word+x  Output  To dictionary
---------------------------------------------
0           A   A       
1   A       A   AA      1       AA: 27
2   A       A   AA      
3   AA      B   AAB     27      AAB: 28
4   B       B   BB      2       BB: 29
5   B       C   BC      2       BC: 30
6               3   

输出为:1 27 2 2 3

正在解码

我们再次假设,原始字典中所有字母A-Z的代码都是1-26。

i   x   element word    Output  To dictionary
---------------------------------------------
0   1   A       A       A   
1   27  AA      A       AA      AA: 27
2   2   B       AA      B       AAB: 28
3   2   B       B       B       BB: 29
4   3   C       B       C       BC: 30

输出:A AA B B C,它是原始字符串。

你可以自己玩,在这里掌握窍门:

  • LZW编码
  • LZW解码

最新更新