文档库 最新最全的文档下载
当前位置:文档库 › LZW编码Matlab程序

LZW编码Matlab程序

LZW编码Matlab程序
LZW编码Matlab程序

function [S,sz]=LZW(x)%S为编码,sz为字典中新短语的个数,x为原消息

n=length(x);

S{1}=x(1);

zd(1).z=strcat(x(1),x(2));%表示对应的字

zd(1).p=256;%表示对应的编码

sz=1;%sz表示字典中字的个数

ss=1;%ss表示输出压缩码的个数

j=2;

while j<=n

i=n;h=1;

while (i>=j+1&&h>0)

sx=x(j:i);

k=1;

a=1;

while (k<=sz&&a>0)

kl=strcmp(sx,zd(k).z);

if kl==1

a=0;

ss=ss+1;

S{ss}=zd(k).p;

if (i

sz=sz+1;

zd(sz).z=strcat(sx,x(i+1));

zd(sz).p=255+sz;

end

end

k=k+1;

end

if a==0

h=0;

end

i=i-1;

end

if h==1

sx=x(j);

ss=ss+1;

S{ss}=sx;

if j

sz=sz+1;

zd(sz).z=strcat(sx,x(j+1));

zd(sz).p=255+sz;

end

end

m=length(sx);

j=j+m;

end

相关文档