欢迎来到天天文库
浏览记录
ID:27619643
大小:169.69 KB
页数:9页
时间:2018-12-05
《lzw编解码实验报告(含程序和注释)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一实验名称LZW编码及译码二、实验目的1、熟悉和巩固信息论课程屮有关信源编码屮LZW编码的原理、方法。2、会用VC调试和验证LZW编码译码程序,提高分析程序的能力3、将所学的理论知识进行上机实践。三、实验要求设计一个LZW编码/译码系统,掌握LZW编码的特点、存储方法和基本原理,培养利用C++语言编写程序以及调试程序的能力,运用信息论知识解决实际问题的能力。用C语言实现LZW编/译码的相关函数的基本框架设计,如LZW树的构建,LZW编码的实现,LZW译码的实现等。四、实验原理由韦尔奇在1984年开发的LZW算法,是LZ系列码中应用最广泛、变形最多的。它是先建立初始字典,在分解输
2、入流为短语词条,这个短语若不在初始字典中,就将其存入字典,这些新词条和初始字典共同构成编码器字典。而初始字典可由信源符号集构成,每一个符号是一个词条。1、编码原理:LZW编码器使用了一种很实用的分析(parsing)算法,称为贪婪分析算法(greedyparsingalgorithm)。在贪婪分析算法中,每一次分析都要串行地检查来自字符流(Charstream)的字符串,从中分解出已经识别的最长的字符串,也就是已经在词典中出现的最长的前缀(Prefix)。用已知的前缀(Prefix)加上下一个输入字符C也就是当前字符(Currentcharacter)作为该前缀的扩展字符,形成新
3、的扩展字符串——缀-符申(String):Prefix.Co这个新的缀-符申(String)是否要加到词典中,还要看词典中是否存有和它相同的缀-符串String。如果有,那么这个缀-符串(String)就变成前缀(Prefix),继续输入新的字符,否则就把这个缀-符串(String)写到词典中生成一个新的前缀(Prefix),并给一个代码。编码示例:被编码的字符申位置123456789字符ABBABABACLZW的编码过程步骤位置词典输岀⑴A(2)B(3)C11⑷AB(1)22(5)BB(2)一实验名称LZW编码及译码二、实验目的1、熟悉和巩固信息论课程屮有关信源编码屮LZW编
4、码的原理、方法。2、会用VC调试和验证LZW编码译码程序,提高分析程序的能力3、将所学的理论知识进行上机实践。三、实验要求设计一个LZW编码/译码系统,掌握LZW编码的特点、存储方法和基本原理,培养利用C++语言编写程序以及调试程序的能力,运用信息论知识解决实际问题的能力。用C语言实现LZW编/译码的相关函数的基本框架设计,如LZW树的构建,LZW编码的实现,LZW译码的实现等。四、实验原理由韦尔奇在1984年开发的LZW算法,是LZ系列码中应用最广泛、变形最多的。它是先建立初始字典,在分解输入流为短语词条,这个短语若不在初始字典中,就将其存入字典,这些新词条和初始字典共同构成编
5、码器字典。而初始字典可由信源符号集构成,每一个符号是一个词条。1、编码原理:LZW编码器使用了一种很实用的分析(parsing)算法,称为贪婪分析算法(greedyparsingalgorithm)。在贪婪分析算法中,每一次分析都要串行地检查来自字符流(Charstream)的字符串,从中分解出已经识别的最长的字符串,也就是已经在词典中出现的最长的前缀(Prefix)。用已知的前缀(Prefix)加上下一个输入字符C也就是当前字符(Currentcharacter)作为该前缀的扩展字符,形成新的扩展字符串——缀-符申(String):Prefix.Co这个新的缀-符申(Strin
6、g)是否要加到词典中,还要看词典中是否存有和它相同的缀-符串String。如果有,那么这个缀-符串(String)就变成前缀(Prefix),继续输入新的字符,否则就把这个缀-符串(String)写到词典中生成一个新的前缀(Prefix),并给一个代码。编码示例:被编码的字符申位置123456789字符ABBABABACLZW的编码过程步骤位置词典输岀⑴A(2)B(3)C11⑷AB(1)22(5)BB(2)33(6)BA(2)44(7)ABA(4)56(8)ABAC(7)6麵•一一⑶2、解码原理:LZW译码算法中会用到另外两个术语:①当前码字(Currentcodeword):指
7、当前正在处理的码字,用cW表示,用string.cW表示当前缀-符串;②先前码字(Previouscodeword):指先于当前码字的码字,用pW表示,用string.pW表示先前缀-符串。LZW译码算法开始时,译码词典与编码词典相同,它包含所有可能的前缀根(roots)。LZW算法在译码过程中会记住先前码字(pW),从码字流中读当前码字(cW)之后输出当前缀-符串string.cW,然后把用string.cW的第一个字符扩展的先前缀-符串string.pW添加到词典中。五、实验
此文档下载收益归作者所有