南理工多媒体技术基础无损压缩编码实验

南理工多媒体技术基础无损压缩编码实验

ID:21885042

大小:73.50 KB

页数:6页

时间:2018-10-25

南理工多媒体技术基础无损压缩编码实验_第1页
南理工多媒体技术基础无损压缩编码实验_第2页
南理工多媒体技术基础无损压缩编码实验_第3页
南理工多媒体技术基础无损压缩编码实验_第4页
南理工多媒体技术基础无损压缩编码实验_第5页
资源描述:

《南理工多媒体技术基础无损压缩编码实验》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、无损压缩编码实验一、实验目的1、掌握常见的几种无损编码方法(霍夫曼编码,算术编码,词典编码等)的原理和实现2、了解并掌握如何运用C++程序实现编码二、实验要求1、任选一种无损编码方式,通过C++编程实现。2、字符串的输入时手工输入的。3、在屏幕上显示编码结果。三.LZW编码基本原理1.提取原始文木文件数据中的不同字符,基于这些字符创建一个编译表,然后用编译表中的字符的索引来替代原始文木文件数据中的相应字符,减少原始数据大小。2.看起来和调色板图象的实现原理差不多,但是应该注意到的是,我们这里的编

2、译表不是事先创建好的,而是根据原始文件数据动态创建的,解码时还要从已编码的数据中还原出原来的编译表.、LZW编码算法流程LZW算法基于转换串表(字典)T,将输入字符串映射成定长(通常为12位)的码字。在12位4096种可能的代码中,256个代表单字符,剩下3840给出现的字符串。1)初始化:将所有的单字符串放入串表2)读第一个输入字符给前缀串co3)Step:读下一个输入字符K;if没有这样的K(输入己穷尽):•码字(co)输出;结束。IfcoK己存在于串表中:•coK:=(o;repeatSt

3、ep;elsecoK不在于串表屮:•码字(co)输出;•(oK加进串表;K:=o);repeatStep.五.程序代码及注释#include#includc#includeusingnamespacestd;stringdic[30];intn;intfind(strings)//字典巾寻找字符串,返冋序号{inttemp=-1;for(inti=0;i<30;i++){if(dic[i]=s)temp=i+l;}returntemp;}vo

4、idinit()//字典初始化{dic[0]="a";dicUKb’.;dic[2]="c";//建立根缀表:字根为a,b,cfor(inti=3;i<30;i++)//其余为空{dic[i]="";voidcode(stringstr){init();//初始化chartemp[2];temp[0]=str[0];//取第一个字符temp[l]=.stringw=temp;inti=l;intj=3;//目前字典存储的最后一个位貫cout«"编码为:";for(;;){chart[2

5、];t[O]=str[i];//取下一个字符t[l]='*;stringk=t;if(k=="")//为空,字符串结朿cout«"n«find(w);break;//退出for循环,编码结朿}if(find(w+k)>-l){W=w+k;//w,k相加得到的字符串在字典中存在,则将此字符串赋给W所指的空间i++;}else{cout«""«find(v);stringwk=w+k;//w,k相加得到新的字符串赋给wk所指空间dic[j++]=wk;//将此新的字符串写入字典w=k;//将k

6、所指向的内容(下一个字符)赋给w所指空间i++;cout«endl;for(i=0;i

7、下一个字符if(cw<=j+l)cout«dic[cw-l];chart[2];t[O]=dic[cw-l][O];//将dic[cw-l]所指的字符串第一个字符给t[0]t[l]=W;stringk=t;j++;dic[j]=dic[pw-l]+k;//前一个字符串加上dic[cw-l]所指字符串的第一个字符组成新的字符串入表}else//不在词典巾{chart[2];t[O]=dic[pw-l][O];//dic[pw-l]所指的字符串第一个字符赋给t[0]t[l]=W;stringk=t;

8、j++;dic[j]=dic[pw-l]+k;//dic[pw-1]所指的字符串加上dic[pw-1]所指的字符串第一个字符组成新的字符串入表cout«dic[cw-l];}}cout«endl;for(i=0;i

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

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

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