- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二 LZW编码算法的实现
实验二 LZW编码算法的实现
一、实验目的
1、学习Matlab 软件的使用和编程
2、进一步深入理解LZW 编码算法的原理
二、实验内容
阅读Matlab代码,画原理图。
三、实验原理
LZW 算法中,首先建立一个字符串表,把每一个第一次出现的字符串放入
串表中,并用一个数字来表示,这个数字与此字符串在串表中的位置有关,并
将这个数字存入压缩文件中,如果这个字符串再次出现时,即可用表示它的数
字来代替,并将这个数字存入文件中。压缩完成后将串表丢弃。如print 字
符串,如果在压缩时用266 表示,只要再次出现,均用266 表示,并将print
字符串存入串表中,在图象解码时遇到数字266,即可从串表中查出266 所代
表的字符串print,在解压缩时,串表可以根据压缩数据重新生成。
LZW 编码的Matlab 源程序及运行结果
function lzw_test(binput)
if (nargin 1)
binput = false;
else
binput = true;
end;
if binput
n=0;
while(n==0)
P = input(please input a string:, s) %提示输入界面
n=length(P);
end;
else
% Tests the special decoder case
P=Another problem on long files is that frequently the compression ratio begins...;
end;
lzwInput=uint8(P);
[lzwOutput, lzwTable] = norm2lzw(lzwInput);
[lzwOutput_decode, lzwTable_decode] = lzw2norm(lzwOutput);
fprintf(\n);
fprintf(Input: );
% disp(P);
% fprintf(%02x , lzwInput);
fprintf(%s , num2str(lzwInput));
fprintf(\n);
文档评论(0)