LZW编码算法.doc

LZW编码算法.doc

ID:49689378

大小:144.00 KB

页数:10页

时间:2020-03-03

LZW编码算法.doc_第1页
LZW编码算法.doc_第2页
LZW编码算法.doc_第3页
LZW编码算法.doc_第4页
LZW编码算法.doc_第5页
资源描述:

《LZW编码算法.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、班级____学号__姓名_____评分__________1.实验名称LZW编码与解码算法2.实验目的2.1 通过实验进一步掌握LZW编码的原理;2.2 用C/C++等高级程序设计语言实现LZW编码。3.实验内容步骤或记录(包括源程序或流程和说明等)3.1实验原理(1)在压缩过程中动态形成一个字符列表(字典)。(2)每当压缩扫描图像发现一个词典中没有的字符序列,就把该字符序列存到字典中,并用字典的地址(编码)作为这个字符序列的代码,替换原图像中的字符序列,下次再碰到相同的字符序列,就用字典的地址代替字符序列3.2实验步骤LZW编码算法的具体执行步骤如下:

2、步骤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的码字输出到码字流;② 结束。3.3源程序#include

3、#includeusingnamespacestd;constintN=200;classLZW{private:stringDic[200];//存放词典intcode[N];//存放编码过的码字public:LZW(){//设置词典根Dic[0]='a';Dic[1]='b';Dic[2]='c';string*p=Dic;//定义指针指向词典中的字符}voidBianma(stringcs[N]);//进行编码intIsDic(stringe);//判断是否在词典中intcodeDic(stringf);voiddisplay(in

4、tg);//显示结果};voidLZW::Bianma(stringcs[N]){stringP,C,K;P=cs[0];intl=0;for(inti=1;i

5、LZW::IsDic(stringe){//如果字符流中还有字符需要编码for(intb=0;b<200;b++){if(e==Dic[b])return1;}return0;}intLZW::codeDic(stringf){intw=0;for(inty=0;y<200;y++)if(f==Dic[y]){w=y+1;break;}returnw;}voidLZW::display(intg){cout<<"经过LZW编码后的码字如下:"<

6、<"经LZW编码后的词典如下:"<>length;while(length>=N){cout<<"该长度太长,请重新输入:";cin>>length;}cout<<"请输入要进行LZW编码的字符序列:"<

7、th;a++)cin>>CSstream[a];t.Bianma(CSstream);return0;}1.实验环境(包括软、硬件平台)硬件:装有32M以上内存MPC;软件:WindowsXP操作系统、VisualC++高级语言环境。2.实验结果(截图)及分析1.实验存在问题和解决方法在设计过程中,设计LZW编码的算法比较复杂,不能很快地将编码思想转化为具体的编程语言,仔细地看过书上的相关介绍并通过上网参考才完成。2.实验思考题7.1、分析LZW编码算法的优缺点。LZW的优点是逻辑简单,实现速度快。缺点是字典的生成和查找是基于顺序插入和检索模式,需要处理

8、的数据量较大时会降低查找效率。7.2、试编写LZW解码算法。voidupdate

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。