lip_scan.asv

来自「实现SPIHT算法!!!!使用MATLAB 实现程序」· ASV 代码 · 共 38 行

ASV
38
字号
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 —— 上一级编码生成的不重要系数列表

global Mat
% Mat是输入的小波分解系数矩阵,作为全局变量,在编码的相关程序中使用

rlip=size(LIP,1);
r=1;
% 由于循环过程中列表 LIP 的表长会变化,不适合用 for 循环,故采用 while 循环
% r 是指向 LIP 当前读入表项位置的指针
while r<=rlip
% 读入当前表项的坐标值
    rN=LIP(r,1);
    cN=LIP(r,2);
% 判断该表项是否重要
	if SnOut(LIP(r,:),N)
        % 若重要,
        Sn=[Sn,1];
        if Mat(rN,cN)>=0
            Sn=[Sn,1];
        else
            Sn=[Sn,0];
        end
        LSP=[LSP;LIP(r,:)];
        LIP(r,:)=[];
    else
        Sn=[Sn,0];
        r=r+1;
	end        
	rlip=size(LIP,1);
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?