第四次作业

 

参考书《数据压缩导论(第四版)》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

TH连接在一起,组成模式TH,由于模式TH没有在词典中出现过,所以将TH添加到词典中作为第6

第三个索引值3对应的字母是I,所以接收序列第3个元素为S

HI连接在一起,组成模式HI,由于模式HI没有在词典中出现过,所以将HI添加到词典中作为第7

第四个索引值1对应的字母是S,所以接收序列第4个元素为I

IS连接在一起,组成模式IS,由于模式IS没有在词典中,出现过,所以将IS添加到词典中作为第8

第五个索引值2对应的字母是B,所以接收序列第5个元素为B

SB连接在一起,组成模式SB,由于模式SB没有在词典中出现过,所以将SB添加到词典中作为第9

索引值8对应字母IS,所以序列第6、7个元素为IS

BI连接在一起,组成模式BI,由于模式BI没有在词典中出现过,所以将BI添加到词典中作为第10

第六个索引值2对应的字母是B,所以接收序列第8个元素为B

 把SB连接在一起,组成模式SB,由于模式SB已经在词典中出现过,所以不用再添加

索引值7对应字母HI,所以序列第9、10个元素为HI

BH串接在一起,组成模式BH,由于模式BH没有在词典中出现过,所以将BH添加到词典中作为第11

索引值9对应字母SB,所以序列第11、12个元素为SB

 把HI串接在一起,组成模式HI,由于模式HI已经在词典中出现过,所以不用再添加

索引值7对应字母HI,所以序列第1314个元素为HI

BH连接在一起,组成模式BH,由于模式HI已经在词典中出现过,所以不用再添加

索引值4对应字母T,所以序列第15个元素为T

 把IT串接在一起,组成模式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

 

posted on 2015-09-30 11:22  王朝琼  阅读(132)  评论(0编辑  收藏  举报