- 34
- 0
- 约5.74千字
- 约 8页
- 2018-01-11 发布于福建
- 举报
一、实验名称
LZW编码及译码
二、实验目的
1、熟悉和巩固信息论课程中有关信源编码中LZW编码的原理、方法。
2、会用VC调试和验证LZW编码译码程序,提高分析程序的能力
3、将所学的理论知识进行上机实践。
三、实验要求
设计一个LZW编码/译码系统,掌握LZW编码的特点、存储方法和基本原理,培养利用C++语言编写程序以及调试程序的能力,运用信息论知识解决实际问题的能力。用C语言实现LZW编/译码的相关函数的基本框架设计,如LZW树的构建,LZW编码的实现,LZW译码的实现等。
四、实验原理
由韦尔奇在1984年开发的LZW算法,是LZ系列码中应用最广泛、变形最多的。它是先建立初始字典,在分解输入流为短语词条,这个短语若不在初始字典中,就将其存入字典,这些新词条和初始字典共同构成编码器字典。而初始字典可由信源符号集构成,每一个符号是一个词条。
1、编码原理:LZW编码器使用了一种很实用的分析(parsing)算法,称为贪婪分析算法(greedy parsing algorithm)。在贪婪分析算法中,每一次分析都要串行地检查来自字符流(Charstream)的字符串,从中分解出已经识别的最长的字符串,也就是已经在词典中出现的最长的前缀(Prefix)。用已知的前缀(Prefix)加上下一个输入字符C也就是当前字符(Current character)作为该前缀的扩展字符,形成新的扩展字符串——缀-符串(String):Prefix.C。这个新的缀-符串(String)是否要加到词典中,还要看词典中是否存有和它相同的缀-符串String。如果有,那么这个缀-符串(String)就变成前缀(Prefix),继续输入新的字符,否则就把这个缀-符串(String)写到词典中生成一个新的前缀(Prefix),并给一个代码。
编码示例:
被编码的字符串
位置 1 2 3 4 5 6 7 8 9 字符 A B B A B A B A C
LZW的编码过程
步骤 位置 词典 输出 A B C 1 (4) A B (1) 2 2 (5) B B (2) 3 3 (6) B A (2) 4 4 (7) A B A (4) 5 6 (8) A B A C (7) 6 -- -- -- (3)
2、解码原理:
LZW译码算法中会用到另外两个术语:①当前码字(Current code word):指当前正在处理的码字,用cW表示,用string.cW表示当前缀-符串;②先前码字(Previous code word):指先于当前码字的码字,用pW表示,用string.pW表示先前缀-符串。LZW译码算法开始时,译码词典与编码词典相同,它包含所有可能的前缀根(roots)。LZW算法在译码过程中会记住先前码字(pW),从码字流中读当前码字(cW)之后输出当前缀-符串string.cW,然后把用string.cW的第一个字符扩展的先前缀-符串string.pW添加到词典中。
五、实验内容步骤及方案
本实验主要有四个函数:
1、编码函数:code( )
2、译码函数:decode( )
3、字典查找函数:find( )
4、字典初始化函数:init( )
LZW编码算法的具体执行步骤如下:
步骤1: 开始时的词典包含所有可能的根(Root),而当前前缀P是空的;
步骤2: 当前字符(C) :=字符流中的下一个字符;
步骤3: 判断缀-符串P+C是否在词典中(1) 如果“是”:P := P+C // (用C扩展P) ;(2) 如果“否”① 把代表当前前缀P的码字输出到码字流;② 把缀-符串P+C添加到词典;③ 令P := C //(现在的P仅包含一个字符C);
步骤4: 判断码字流中是否还有码字要译(1) 如果“是”,就返回到步骤2;(2) 如果“否”① 把代表当前前缀P的码字输出到码字流;② 结束。
LZW译码算法的具体执行步骤如下:
步骤1: 在开始译码时词典包含所有可能的前缀根(Root)。
步骤2: cW :=码字流中的第一个码字。
步骤3: 输出当前缀-符串string.cW到码字流。
步骤4: 先前码字pW := 当前码字cW。
步骤5: 当前码字cW := 码字流中的下一个码字。
步骤6: 判断先前缀-符串string.pW是否在词典中(1) 如果“是”,则:① 把先前缀-符串string.pW输出到字符流。② 当前前缀P :=先前缀-符串string.pW。③ 当前字符C :=当前前缀-符串string.cW的第一个字符。④ 把缀-符串P+C添加到词
您可能关注的文档
最近下载
- 《岭外代答》的人类学解读实验——兼论宋代华夷之辨的弱化.pdf VIP
- QSH 0081-2007 探井(直井)钻井工程设计.docx VIP
- 《岭表录异》青少年读物.pdf VIP
- 资产处置委托协议书模板5篇.docx VIP
- mipi_CSI-2_specification_v1.3._高清版电子文档.pdf VIP
- QSH 0042-2007 钻井液用磺甲基酚醛树脂技术要求.docx VIP
- 《QSH0047-2007-钻井液用抗高温抗盐降滤失剂通用技术要求》.pdf VIP
- 股市主力操盘盘 口摩斯密码(原创内容,侵权必究).pptx
- 指数基金投资指南(银行螺丝钉).pdf VIP
- 《QSH0082-2007-水平井钻井工程设计要求》.pdf VIP
原创力文档

文档评论(0)