?? lip_decode.asv
字號:
function [DecodeMat,Sn,LSP,LIP]=lip_decode(DecodeMat,Sn,N,LSP,LIP)
% 函數 LIP_DECODE() 根據排序位流 Sn,更新列表LIP、LSP
% 輸入參數:DecodeMat —— 上一級解碼后生成的重構系數矩陣
% Sn —— 本級解碼排序位流
% N —— 本級解碼閾值的指數
% LSP —— 上一級解碼生成的重要系數列表
% LIP —— 上一級解碼生成的不重要系數列表
% 輸出參數:DecodeMat —— 本級LIP掃描后更新的重構系數矩陣
% Sn —— 對LIP列表掃描后更新的排序位流
% LSP —— 對LIP列表掃描后更新的重要系數列表
% LIP —— 本級LIP掃描后更新的不重要系數列表
rlip=size(LIP,1);
r=1;
% 解碼路徑與編碼路徑基本一致,不過解碼是根據排序位流 Sn 來選擇執行路徑
% 生成相應位置的重要系數
while r<=rlip
% 讀入當前表項的坐標值
rN=LIP(r,1);
cN=LIP(r,2);
% 根據 Sn 判斷該表項是否重要
% 根據 Sn 的生成原理,每次判斷都是讀入 Sn 的首位數,判斷后立即刪除這一位數
if Sn(1)==1
% 若Sn(1)=1,則表示當前表項是重要的
Sn(1)=[];
% 讀入后即刪除該位 Sn 數據,使 Sn(2)變為 Sn(1),進入下一次判斷
% 這時的 Sn(1) 是正負符號位
if Sn(1)==1
% Sn(1)=1,則相應的系數為正數,其值為本級解碼閾值的1.5倍
DecodeMat(rN,cN)=1.5*2^N;
Sn(1)=[];
else
DecodeMat(rN,cN)=-1.5*2^N;
Sn(1)=[];
end
LSP=[LSP;LIP(r,:)];
LIP(r,:)=[];
else
DecodeMat(rN,cN)=0;
Sn(1)=[];
r=r+1;
end
rlip=size(LIP,1);
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -