参考书《数据压缩导论(第4版)》 Page 121 7,8
7、使用LZ77算法对一个序列进行编码。给定C(a)=1,C(b)=2,C(r)=3,C(t)=5。对以下三组序列进行解码:
<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.对解码所得到的序列进行解码,确保得到相同的三元组序列。
解:由题知:C(a)=1,C(_)=2,C(r)=3,C(t)=4,且搜素窗口大小为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,2> | ratatatatat a rat at a rat |
则编码的过程,我们输入的序列为: ratatatatat a rat at a rat
8、给定以下初始词典和接受序列,构建一个LZW词典,并对所发送的序列进行解码。
接收序列:4,5,3,1,2,8,2,7,9,7,4
初始词典:
索 引 | 项 |
1 | S |
2 | b |
3 | I |
4 | T |
5 | H |
解:
初始词典:
索 引 | 项 |
1 | S |
2 | b |
3 | I |
4 | T |
5 | H |
答:可知输入序列:4,5,3,1,2,8,2,7,9,7,4
得到
索引 | 条目 | 输出 |
1 | S | |
2 | _(空格) | |
3 | I | |
4 | T | |
5 | H | |
6 | TH | 4 |
7 | HI | 5 |
8 | IS | 3 |
9 | S_ | 1 |
10 | _IS | 2 |
11 | IS_ | 8 |
12 | _H | 2 |
13 | HIS | 7 |
14 | S_H | 9 |
15 | HIT | 7 |
4 |
输入4 得到序列:T
输入5 得到序列:TH
输入3 得到序列:THI
输入1 得到序列:THIS
输入2 得到序列:THIS_
输入8 得到序列:THIS_IS
输入2 得到序列:THIS_IS_
输入7 得到序列: THIS_IS_HI
输入9 得到序列:THIS_IS_HIS_
输入7 得到序列:THIS_IS_HIS_HI
输入4 得到序列:THIS_IS_HIS_HIT
根据以上的输入的序列我们可得出输出序列编码为:THIS IS HIS HIT