encode.m

来自「晓波压缩编码源程序及相关文档好东西」· M 代码 · 共 58 行

M
58
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%   encode  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function out=encode(huff_table)

tree=huff_table;
[m,n]=size(tree)

% for i=1:n
%     i0=i;
%     if tree(6,i)==0 
%        if tree(4,i)==0
%            code='0';
%        else
%            code='1'
%        end
%       i=tree(3,i);    
%    end
%    
%    while (i<n)
%         if (tree(4,i)==0)
%            code=strcat('0',code)
%        else
%            code=strcat('1',code)
%        end
%          i=tree(3,i);    
%      end
%      i=i0;
%      if i==1
%          code_table=code
%      else 
%          code_table=strvcat(code_table,code)
%      end
%  end     

for i=1:(n+1)/2
         code='';
         i0=i
     while(i<n)
         if (tree(4,i)==0)
            code=strcat('0',code)
         else
             code=strcat('1',code)
         end
           i=tree(3,i);   
      end
   i=i0;
     if i==1
         code_table=code;
     else 
         code_table=strvcat(code_table,code)
     end

end

out=code_table;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

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