我需要关于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解码