izigzag.m

来自「% 这是参照 University of California 提供的 MPEG」· M 代码 · 共 50 行

M
50
字号
function a=izigzag(v,m,n)
% 这是参照 University of California 提供的 MPEG 源代码的基础上编制的。
%用分块方法(8x8的块)对图象做逆zigzag变换,
%效率极高,程序简洁,属信息隐藏中常用的方法之一。
%作者:辽宁大学 信息学院 范铁生
%email:fts0@163.com

a=zeros(m,n);
a(1,1)=v(1);
counter=2;
for k=3:1:m+n
    b1=bound1(k,a);
    b2=bound2(k,a);
    if mod(k,2)==1
        for p=b1:1:b2
            a(p,k-p)=v(counter);
            counter=counter+1;
        end
    else
        for p=b2:-1:b1
            a(p,k-p)=v(counter);
            counter=counter+1;
        end
    end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% inner function
function b1=bound1(k,a)
[m,n]=size(a);
for b1=1:1:m
    q=k-b1;
    if q<=n
        return
    end
end
%%%%%%%%%%%%%%%%%%%%%%
function b2=bound2(k,a)
[m,n]=size(a);
for q=1:1:n
    b2=k-q;
    if b2<=m
        return
    end
end
%%%%%%%%%%%%%%%%%%%%%



⌨️ 快捷键说明

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