1、 参考书《数据压缩导论(第4版)》 Page 121 7,8
7.使用LZ77算法对一个序列进行编码。给定C(a)=1,C(b)=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。对解码所得到的序列进行编码,确保得到相同的三元组序列。
解:根据题意有C(a)=1,C(b)=2,C(r)=3,C(t)=4.
所以,解码的过程如下:
1. <0,0,3>的解码为r;
2. <0,0,1>的解码为ra;
3. <0,0,4>的解码为rat;
4. <2,8,2>的解码为ratatatatb;
5. <3,1,2>的解码为ratatatatbab;
6. <0,0,3>的解码为ratatatatbabr;
7. <6,4,4>的解码为ratatatatbabratbat;
8. <9,5,4>的解码为ratatatatbabratbatbabrat
根据以上的结果ratatatatbabratbatbabrat,则解码的过程为:
序列 |
输出 |
<0,0,3> |
r |
<0,0,1> |
ra |
<0,0,4> |
rat |
<2,8,2> |
ratatatatatb |
<3,1,2> |
ratatatatatbab |
<0,0,3> |
ratatatatatbabr |
<6,4,4,> |
ratatatatatbabratbat |
<9,5,4> |
ratatatatatbabratbatbabrat |
8.给定一下初始词典和接受序列,构建一个LZW词典,并对所发送的序列进行解码。
接收序列:4,5,3,1,2,8,2,7,9,7,4
初始词典:
索引 | 项 |
1 | S |
2 | _空格 |
3 | I |
4 | T |
5 | H |
(1)输入4,则编码的序列为:T P=T
索引 | 项 |
1 | S |
2 | _空格 |
3 | I |
4 | T |
5 | H |
(2)输入5,则编码的序列为:TH P=TH
索引 | 项 |
1 | S |
2 | _空格 |
3 | I |
4 | T |
5 | H |
(3)输入3,则编码的序列为:THI P=HI
索引 | 项 |
1 | S |
2 | _空格 |
3 | I |
4 | T |
5 | H |
6 | TH |
(4)输入1,则编码的序列为:THIS P=IS
索引 | 项 |
1 | S |
2 | _空格 |
3 | I |
4 | T |
5 | H |
6 | TH |
7 | HI |
(5)输入2,则编码的序列为:THIS_ P=S_
索引 | 项 |
1 | S |
2 | _空格 |
3 | I |
4 | T |
5 | H |
6 | TH |
7 | HI |
8 |
IS |
(6)输入8,则编码的序列为:THIS_IS P=_IS
索引 | 项 |
1 | S |
2 | _空格 |
3 | I |
4 | T |
5 | H |
6 | TH |
7 | HI |
8 | _IS |
(7)输入2,则编码的序列为:THIS_IS_ P=IS_
索引 | 项 |
1 | S |
2 | _空格 |
3 | I |
4 | T |
5 | H |
6 | TH |
7 | HI |
8 | _IS |
9 | S_ |
(8)输入7,则编码的序列为:THIS_IS_HI P=_HI
索引 | 项 |
1 | S |
2 | _空格 |
3 | I |
4 | T |
5 | H |
6 | TH |
7 | HI |
8 | IS |
9 | S_ |
10 | _HI |
(9)输入9,则编码的序列为:THIS_IS_HIS_ P=HIS_
索引 | 项 |
1 | S |
2 | _空格 |
3 | I |
4 | T |
5 | H |
6 | TH |
7 | HI |
8 | IS |
9 | S_ |
10 | _HI |
11 | HIS_ |
(10)输入7,则编码的序列为:THIS_IS_HIS_ HI P=S_HI
索引 | 项 |
1 | S |
2 | _空格 |
3 | I |
4 | T |
5 | H |
6 | TH |
7 | HI |
8 | IS |
9 | S_ |
10 | _HI |
11 | HIS_ |
12 | S_HI |
(11)输入4,则编码的序列为:THIS_IS_HIS_ HIT P=HIT
索引 | 项 |
1 | S |
2 | _空格 |
3 | I |
4 | T |
5 | H |
6 | TH |
7 | HI |
8 | IS |
9 | S_ |
10 | _HI |
11 | HIS_ |
12 | S_HI |
13 | HIT |
所以输出的结果为:
THIS
IS
HIS
HIT