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