資源簡(jiǎn)介
本改進(jìn)的LZW是基于普通的LZW實(shí)現(xiàn)的,具有更簡(jiǎn)潔 且高效的字典設(shè)計(jì),是利用matlab驗(yàn)證的具體實(shí)現(xiàn)
代碼片段和文件信息
function?a=lzwcode_new(DatCodeInitEnd)
size2?=size(DatCode);
num1=size2(2)?%每行的像素?cái)?shù)
num2=size2(1)?%每列的像素?cái)?shù)
DictTable?=?zeros(40963);%建立一個(gè)長(zhǎng)度為1024的空字典
code??????=?zeros(2551);
if?nargin==1
????InitEnd=255;????
end
for?f=0:InitEnd
DictTable(f+11)=f+1;?%字典前256字節(jié)初始化,向字典1-256地址中寫入1-256初始化數(shù)據(jù)
DictTable(f+12)=f+1;
end
DictCurAddr=InitEnd+1;
c=0;????%編碼輸出下標(biāo)
for?s=1:num2
for?s2=1:num1
if(s==1&&s2==1)
PreCode =DatCode(ss2);
????????TableInsert=1;
????else
????????for?DictAddr=256:DictCurAddr %查詢字典
if(DictTable(DictAddr2:3)==[PreCode?DatCode(ss2)])?
PreCode=DictAddr;
TableInsert=0;
if(s==num2&s2==num1) %最后輸出一個(gè)編碼
c=c+1;
code(c)=DictAddr;
end
break
end
????????end
if(TableInsert?==1) %如果詞條不在字典中,需要構(gòu)建詞條加入字典中
????????????????DictCurAddr=DictCurAddr+1;
c=c+1;
????????????????code(c)=PreCode;?
DictTable(DictCurAddr1:3)=[DictCurAddr?PreCode?DatCode(ss2)];
PreCode?=?DatCode(ss2);
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-01-11?15:49??改進(jìn)lzw數(shù)據(jù)壓縮實(shí)現(xiàn)\
?????文件????????1298??2012-01-11?15:42??改進(jìn)lzw數(shù)據(jù)壓縮實(shí)現(xiàn)\lzw_code.m
?????文件????????2522??2012-01-11?15:42??改進(jìn)lzw數(shù)據(jù)壓縮實(shí)現(xiàn)\lzw_decode.m
- 上一篇:MATLAB標(biāo)定工具箱
- 下一篇:小波聚類matlab源程序
評(píng)論
共有 條評(píng)論