LZW数据压缩算法的原理分析

2019-12-30 13:04:36于丽

原输入数据为:A B A B A B A B B B A B A B A A C D A C D A D C A B A A A B A B .....
采用LZW算法对其进行压缩,压缩过程用一个表来表述为:
注意原数据中只包含4个character,A,B,C,D
用两bit即可表述,根据lzw算法,首先扩展一位变为3为,Clear=2的2次方+1=4; End=4+1=5;
初始标号集因该为

 

0 1 2 3 4 5
A B C D Clear End

 

而压缩过程为:

第几步 前缀 后缀 Entry 认识(Y/N) 输出 标号
1   A (,A)      
2 A B   (A,B)       N A 6
3 B A   (B,A)       N B 7
4 A B   (A,B)       Y    
5 6 A   (6,A)       N 6 8
6 A B   (A,B)       Y    
7 6 A   (6,A)       Y    
8 8 B   (8,B)       N 8 9
9 B B   (B,B)       N B 10
10 B B   (B,B)       Y    
11 10 A   (10,A)       N 10 11
12 A B   (A,B)       Y