第四次作业

1、 参考书《数据压缩导论(第4版)》  Page 121              7,8

7、使用LZ77算法对一个序列进行编码。给定C(a)=1,C(b)=2,C(c)=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

答:(1)可知输入为4,5,3,1,2,8,2,7,9,7,4

 输入4:                                                          

 输出:T

P=T

输入5:

输出:TH                                                                 

P=TH

输入3:

输出:THI

P=HI

输入1:

输出:THIS

P=IS

输入2:

输出:THISb

P=Sb

输入8:

输出:THISbIS

P=bIS

输入2:

输出:THISbISb

P=ISb

输入7:

输出:THISbISbHI

P=bHI

输入9:

输出:THISbISbHISb

P=HISb

输入7:

输出:THISbISbHISbHI

P=SbHI

输入4:

输出:THISbISbHISbHIT

P=HIT

索引
1 S
2 b
3 I
4 T
5 H
6 TH
7 HI
8 IS
9 Sb
10 bI
11 ISb
12 bH
13 HIS
14 SbH
15 HIT
原文地址:https://www.cnblogs.com/wangyuntao/p/4837504.html