一、参考书《数据压缩导论(第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。