第四次作业

1、 参考书《数据压缩导论(第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.对解码所得到的序列进行编码,确保得到相同的三元组序列。

 答:由题目可知

(1)三组序列:  <0,0,C(r)>  <0,0,C(a)>  <0,0,C(t)>  <2,8,C(b)>  <3,1,C(b)>  <0,0,C(r)>  <6,4,C(t)>  <9,5,C(t)>

对<0,0,C(c)>进行解码得到序列为:r

对<0,0,C(a)>进行解码得到序列为:ra

对<0,0,C(t)>进行解码得到序列为:rat

对<2,8,C(b)> 进行解码得到序列为:ratatatatatb

对<3,1,C(b)> 进行解码得到序列为:ratatatatatbab

对<0,0,C(r)> 进行解码得到序列为:ratatatatatbabr

对<6,4,C(t)> 进行解码得到序列为:ratatatatatbabratbat

对<9,5,C(t)>进行解码得到序列为:ratatatatatbabratbatbabrat

(2)编码:由于窗口的大小为20,先进性缓冲区的大小为10,则编码缓冲区的大小为10

开始解码序列为:ratatatatatbabratbatbabrat

输入序列为: || ratatatatatbabratbatbabrat     没有与r匹配的项      则输出三元组为:<0,0,3>

输入序列为:| r | atatatatatbabratbatbabrat     没有与a匹配的项      则输出三元组为:<0,0,1>

输入序列为:| ra | tatatatatbabratbatbabrat     没有与t匹配的项      则输出三元组为:<0,0,4>

输入序列为:| rat | atatatatbabratbatbabrat      有匹配串atatatat  则输出三元组为:<2,8,2>

输入序列为:ra | tatatatatb | abratbatbabrat      则输出三元组为:  <3,1,2>

输入序列为:rata | tatatatbab | ratbatbabrat     则输出三元组为:  <0,0,3>

输入序列为:ratat | atatatbabr | atbatbabrat     则输出三元组为:  <6,4,4>

输入序列为:ratatatata | tbabratbat | babrat     则输出三元组为:  <9,5,4>

     

8、给定以下初始词典和接受序列,构建一个LZW词典,并对所发送的序列进行解码。

接收序列:4,5,3,1,2,8,2,7,9,7,4

初始词典:

             索  引       项  
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

原文地址:https://www.cnblogs.com/yaocuiyin/p/4837404.html