标签:
参考书《数据压缩导论(第四版)》P121
7、使用LZ77算法对一个序列进行编码。给定C(a)=1,C(p)=2,C(r)=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。对解码所得到的序列进行编码,确保得到相同的三元组序列。
答:由题意知:W=20,S=10
解码:<0, 0, 3>
增加一个‘r ’:| r,此时元组序列为:r |
解码:<0 , 0, 1>
增加一个‘a ’:r | a
解码:<0, 0, 4>
增加一个‘t’:ra | t
解码:<2, 8, 2>
从第2个字母‘a’开始拷贝2个字母,得:rat | at
再拷贝2个字母,得:rat|atat
再拷贝2个字母,得:rat|atatat
再解码2,此时序列为:rat|atatatb //b 表示空格,对应2
解码:<3,1,2>
从第八个字母a开始拷贝一个字母,得:|ratatatatb |a
再解码2,增加一个b,此时序列为: ratatatatb| ab //b表示空格,对应2
解码:<0,0,3>
增加一个‘ r ’: ra|tatatatbab| r //b表示空格,对应2
解码:<6,4,4>
从第八个字母a开始拷贝四个字母,得: rat|atatatbabr | atba
再解码4,增加一个‘t’,此时序列为: rat|atatatbabr |atbat //b表示空格,对应2
解码:<9,5,4>
从第十个字母b开始拷贝五个字母,得: ratatata | tbabratbat | babra
再解码4,增加一个‘t’,此时序列为: ratatata | tbabratbat | babrat //b表示空格,对应2
解码结束,得到序列 ratatatatbabratbatbabrat //b表示空格,对应2
对所得序列ratatatatbabratbatbabrat进行编码过程如下:
W=20,S=10
|ratatatatbabratbatbabrat
对于r,没有匹配的字符串
发送<0,0,3>
r | atatatatbabratbatbabrat
对于a,没有匹配的字符串
发送<0,0,1>
ra | tatatatbabratbatbabrat
对于t,没有匹配的字符串
发送<0,0,4>
rat| atatatbabratbatbabrat
rat| atatatbabratbatbabrat
rat| atatatbabratbatbabrat
发送<2,8,2>
ratatatatb | abratbatbabrat
发送<3,1,2>
ra| tatatatbab | ratbatbabrat
对于r,没有匹配的字符串
发送<0,0,3>
rat|atatatbabr | atbatbabrat
发送<6,4,4>
ratatata| tbabratbat | babrat
发送<9,5,4>
编码完成
8、给定以下初始词典和接受序列,构建一个LZW词典,并对所发送的序列进行解码。接收序列:4,5,3,1,8,2,7,9,7,4
初始词典:
索引 |
项 |
1 |
S |
2 |
P |
3 |
I |
4 |
T |
5 |
H |
解: 由初始词典和接收序列知(注:B表示空格,对应第2项):
第一个索引值4对应的字母是T,所以接收序列第1个元素为T;
第二个索引值5对应的字母是H,所以接收序列第2个元素为H;
把T、H连接在一起,组成模式TH,由于模式TH没有在词典中出现过,所以将TH添加到词典中作为第6项;
第三个索引值3对应的字母是I,所以接收序列第3个元素为S;
把H、I连接在一起,组成模式HI,由于模式HI没有在词典中出现过,所以将HI添加到词典中作为第7项 ;
第四个索引值1对应的字母是S,所以接收序列第4个元素为I;
把I、S连接在一起,组成模式IS,由于模式IS没有在词典中,出现过,所以将IS添加到词典中作为第8项;
第五个索引值2对应的字母是B,所以接收序列第5个元素为B;
把S、B连接在一起,组成模式SB,由于模式SB没有在词典中出现过,所以将SB添加到词典中作为第9项;
索引值8对应字母IS,所以序列第6、7个元素为I、S;
将B、I连接在一起,组成模式BI,由于模式BI没有在词典中出现过,所以将BI添加到词典中作为第10项;
第六个索引值2对应的字母是B,所以接收序列第8个元素为B;
把S、B连接在一起,组成模式SB,由于模式SB已经在词典中出现过,所以不用再添加
索引值7对应字母HI,所以序列第9、10个元素为H、I;
把B、H串接在一起,组成模式BH,由于模式BH没有在词典中出现过,所以将BH添加到词典中作为第11项;
索引值9对应字母SB,所以序列第11、12个元素为SB;
把H、I串接在一起,组成模式HI,由于模式HI已经在词典中出现过,所以不用再添加;
索引值7对应字母HI,所以序列第13、14个元素为H、I;
把B、H连接在一起,组成模式BH,由于模式HI已经在词典中出现过,所以不用再添加;
索引值4对应字母T,所以序列第15个元素为T;
把I、T串接在一起,组成模式IT,由于模式IT没有在词典中出现过,所以将IT添加到词典中作为第12项;
综上所述得到完整词典如下图所示:
索引 |
项 |
1 |
S |
2 |
B |
3 |
I |
4 |
T |
5 |
H |
6 |
TH |
7 |
HI |
8 |
IS |
9 |
SB |
10 |
BI |
11 |
BH |
12 |
IT |
由词典对发送序列进行解码得到原始序列为:THISBISBHISBHIT
标签:
原文地址:http://www.cnblogs.com/wangchaoqiong/p/4848691.html