⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainpass.m

📁 ezw编码
💻 M
字号:
function [D,X,sublist,sub_list] = mainpass(X,threshold,sublist,sub_list) %主扫描程序D=[];global N;global C;[m,n]=size(X);R=zeros(m); % matrix R is a reference matrix, same size as X; '0' means            %this coefficient is not a descendant from zerotree root;            %R矩阵与X同样大小,用于标识是否为子孙系数,‘0’为非[a,b]=size(N);         if C(1,1)==0                  if abs(X(1,1))>=threshold % X(1,1) is DC coefficient                 sublist=[sublist, abs(X(1,1))]; %在sublist中存放重要系数的数据                 sub_list=[sub_list;N(1,1),N(1,2)];%在sub_list中存放重要系数的坐标                  C(1,1)=1;                  if X(1,1)>0                      D=[D,'p'];                   else D=[D,'n'];                  end                  X(1,1)=0;             else                 D=[D,'z'];             end         end         for k=2:4,          if C(N(k,1),N(k,2))==0              if abs(X(N(k,1),N(k,2)))>=threshold                  sublist=[sublist, abs(X(N(k,1),N(k,2)))]; % 扩充存放重要系数;                  sub_list=[sub_list;N(k,1),N(k,2)];                  C(N(k,1),N(k,2))=1;                                 if X(N(k,1),N(k,2))>0 % determine the sign                                     D=[D,'p']; % >0,assign a "p"                                 else D=[D,'n'];% <0,assign a "n"                                 end                                 X(N(k,1),N(k,2))=0;%在小波系数矩阵中,所有重要系数都被标为0                else                                 result = checkdescendants1( k,X,threshold,0);                                  if result==1                                     D=[D,'z'];                                 else                                     D=[D,'t'];                                     R(N(k,1),N(k,2))=1;   % Zerotree, make all its descendants                                     R=checkchildren(k,R); % refference matrix component to 1.                                 end              end          end         end          for k=5:a,               if C(N(k,1),N(k,2))==0                   if abs(X(N(k,1),N(k,2)))>=threshold,                        sublist=[sublist, abs(X(N(k,1),N(k,2)))];                        sub_list=[sub_list;N(k,1),N(k,2)];                       C(N(k,1),N(k,2))=1;                       if X(N(k,1),N(k,2))>0, % determine the sign                           D=[D,'p']; % >0,assign a "p"                       else D=[D,'n'];% <0,assign a "n"                       end                       X(N(k,1),N(k,2))=0;                   elseif R(N(k,1),N(k,2))==0                       result = checkdescendants1( k,X,threshold,0); %检查子孙系数中是否有重要系数                                    if result==1,                           D=[D,'z']; % isolated zero                       else D=[D,'t'];% zerotree                           R(N(k,1),N(k,2))=1;                             R=checkchildren(k,R);                           % 如果是零树,则将他所有的子孙系数在R矩阵中置0                       end                   end               end          end                                          

⌨️ 快捷键说明

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