?? lip_scan.m
字號:
function [Sn,LSP,LIP]=lip_scan(Sn,N,LSP,LIP)
% 函數 LIP_SCAN() 檢查LIP表的各個表項是否重要,更新列表LIP、LSP和排序位流 Sn
% 輸入參數:Sn —— 本級編碼排序位流,為空表
% N —— 本級編碼閾值的指數
% LSP —— 上一級編碼生成的重要系數列表
% LIP —— 上一級編碼生成的不重要系數列表
% 輸出參數:Sn —— 對上一級編碼生成的LIP列表掃描后更新的排序位流
% LSP —— 對上一級編碼生成的LIP列表掃描后更新的重要系數列表
% LIP —— 經本級LIP掃描處理后更新的不重要系數列表
global Mat
% Mat是輸入的小波分解系數矩陣,作為全局變量,在編碼的相關程序中使用
rlip=size(LIP,1);
% r 是指向 LIP 當前讀入表項位置的指針
r=1;
% 由于循環過程中列表 LIP 的表長會變化,不適合用 for 循環,故采用 while 循環
while r<=rlip
% 讀入當前表項的坐標值
rN=LIP(r,1);
cN=LIP(r,2);
% 調用 SNOUT() 函數來判斷該表項是否重要
if SnOut(LIP(r,:),N)
% 若重要,則輸入‘1’到 Sn
Sn=[Sn,1];
% 輸入正負符號‘1’或‘0’到 Sn
if Mat(rN,cN)>=0
Sn=[Sn,1];
else
Sn=[Sn,0];
end
% 將該表項添加到重要系數列表 LSP
LSP=[LSP;LIP(r,:)];
% 將該表項從 LIP 中刪除
LIP(r,:)=[];
else
% 若不重要,則輸入‘0’到 Sn
Sn=[Sn,0];
% 將指針指向下一個表項
r=r+1;
end
% 判斷當前 LIP 的表長
rlip=size(LIP,1);
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -