一、参考书《数据压缩导论(第4版)》  Page 121

7.使用LZ77算法对一个序列进行编码。给定C(a)=1,C(_)=2,C(r)=3,C(t)=4。对以下三元祖序列进行解码:

      <0,0,3> <0,0,1> <0,0,4> <2,8,2> <3,1,2> <0,0,3> <6,4,4> <9,5,4>

  假定窗口的大小为20,先行缓冲区的大小为10.对解码所得到的序列进行编码,确保得到相同的三元组序列。

答:解码:

<0,0,3> r
<0,0,1> ra
<0,0,4> rat
<2,8,2> ratatatatat_
<3,1,2> ratatatatat_a_
<0,0,3> ratatatatat_a_r
<6,4,4> ratatatatat_a_rat_at
<9,5,4> ratatatatat_a_rat_at_a_rat

  编码:

输入 输出
r | atatatatat_a_rat_at_a_rat <0,0,3>
r | a | tatatatat_a_rat_at_a_rat <0,0,1>
ra | t | atatatat_a_rat_at_a_rat <0,0,4>
rat | atatatat_ | a_rat_at_a_rat <2,8,2>
ratatatatat_ | a_ | rat_at_a_rat <3,1,2>
ratatatatat_a_ | r | at_at_a_rat <0,0,3>
ratatatatat_a_r | at_at | _a_rat <6,4,4>
ratatatatat_a_rat_at | _a_rat <9,5,4>

 

8.给定以下初始词典和接收序列,构建一个LZW词典,并对所发送的序列进行解码。

  接收序列:4,5,3,1,2,8,2,7,9,7,4

  初始词典:

  索  引     项  
1 S
2 _
3 I
4 T
5 H

答:输入4,p=T,                       输出:T

  输入5,p=TH ,                    输出:TH

  输入3,p=HI,                      输出:THI

  输入1,P=IS,                      输出:THIS

  输入2,P=S_,                     输出:THIS_

  输入8,P=_IS,                    输出:THIS_IS

  输入2,P=IS_,                    输出:THIS_IS_

  输入7,P=_HI,                    输出:THIS_IS_HI

  输入9,P=HIS_,                  输出:THIS_IS_HIS

  输入7,P=S_HI,                  输出:THIS_IS_HIS_HI

  输入4,P=HIT,                    输出:THIS_IS_HIS_HIT

索引
6 TH
7 HI
8 IS
9 S_
10 _I
11 IS_
12 _H
13 HIS
14 S_H
15 HIT

综上所述,编码的结果为THIS IS HIS HIT。