- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一\实验名称
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.Co这个新的缀-符申(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
(2)
B
(3)
C
1
1
⑷
AB
(1)
2
2
(5)
BB
(2)
3
3
(6)
BA
(2)
4
4
(7)
AB A
(4)
5
6
(8)
ABAC
(7)
6
麵?
一 一
⑶
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编码算法的具体执行步骤如下:
步骤h开始时的词典包含所有可能的根(Root),而当前前缀P是空的; 步骤2:当前字符(C):=字符流中的下一个字符;
步骤3:判断缀-符串P+C是否在词典中
如果“是”:P : =P+C//(用 C 扩展 P);
如果“否”
把代表当前前缀P的码字输出到码字流;
把缀-符串P+C添加到词典;
令P : =C//(现在的P仅包含一个字符C);
步骤4:判断码字流中是否还有码字要译
如果“是”,就返冋到步骤2;
如果“否”
把代表当前前缀P的码字输出到码字流;
结束。
LZW译码算法的具体执行步骤如下:
步骤h在开始译码时词典包含所有可能的前缀根(Root)。
步骤2: cW :=码字流中的第一个码字。
步骤3:输出当前缀-符串string.cW到码字流。
步骤4:先前码字pW :=当前码字cW。
步骤5:当前码字cW :=码字流中的下一个码字。
步骤6:判断先前缀-符串string.pW是否在词典屮
(1)如果“是”,贝IJ:
把先前缀-符串string.pW输出到字符流。
当前前缀P :=先前缀-符串string.pW。
当前字符C :=当前前缀-符串string.cW的第一个字符。
把缀-符串P+C添加到词典。
(2)如果“否”,贝IJ:
当前前缀P :=先前缀-符串string.pW。
当前字符C :=当前缀-符串string.cW的第一个字符。
输出缀-符串P+C到字符流,然后把它添加到词典中。
步骤7:判断码字
您可能关注的文档
- FPGA设计与应用汉明编译码实验.doc
- FSSS系统介绍培训课件.docx
- G02、G03圆弧插补指令应用比赛电子教案.docx
- GeoGebra在初中数学教学中的运用.docx
- GGH安装作业指导书 脱硫作业资料.doc
- GIS&PM设备接口技术说明设备主数据 最终稿.docx
- gmsh生成非结构网格详解.doc
- GOJNR内容部 游戏新闻、测评、过关方向 岗位实习报告.docx
- Grade4NSModule7TeachingPlan 公开课教案及教学反思.doc
- Grade4NSModule9TeachingPlan 教案及教学反思.doc
- 2026 年人教版八年级物理下册期中质量检测试卷(附答案可下载).docx
- 2026 年人教版八年级语文上册期中综合测评试卷(附答案可下载).docx
- 2026 年人教版八年级语文下册期末学业水平测试试卷(附答案可下载).docx
- 2026 年人教版八年级语文下册期中核心素养测评试卷(附答案可下载).docx
- 2026 年人教版高二地理上册期中质量评估试卷(附答案可下载).docx
- 2026 年人教版高二地理下册期中学业水平调研试卷(附答案可下载).docx
- 2026 年人教版高二化学上册期末学业水平测试试卷(附答案可下载).docx
- 2026 年人教版高二化学下册期中质量检测试卷(附答案可下载).docx
- 2026 年人教版高二数学下册期中学业水平测试试卷(附答案可下载).docx
- 2025-2026 学年下学期四年级语文(部编版)期末质量检测试卷(附答案).docx
最近下载
- 浙江省名校联合体2025-2026学年高一上学期12月月考数学(含答案).docx
- 2024-2025学年四川省成都市金牛区北师大版四年级上册期末考试数学试卷(含答案解析).pdf
- 城市黑臭水体整治工作指南培训-黑臭水体排查、整治及评估方案制定.pdf VIP
- 重庆《建设工程消防设计常见错误》(2024.3).docx
- 安徽省 2021 年普通高等学校专升本招生考试《大学英语》冲刺期测试题 (1).docx VIP
- 招标代理机构服务方案.docx VIP
- 眼科学复习笔记10版--郑汉龙.pdf VIP
- 操作规程和工艺控制指标检查考核制度.docx VIP
- 学习党的二十届四中全会精神测试题3份附答案.docx VIP
- 安徽省六安市金安区六安皋城中学八年级上学期11月期中数学试题(原卷版)-A4.docx VIP
原创力文档


文档评论(0)