%heat_exa2_di_coP
%  comparison of collocation and difference approximations
DS=2;%input('samp scaling --?')
Par1=input('spline order;0--former; ?')
if Par1>0
    Par=Par1;
end
deci=2;%downsampling ratio
t=input(' evolution time; ?')


load BLO
barle=input('Barbara--1; Lena --2;  ?')
if barle==1
F=blochB;
elseif barle==2
F=blochL;
end
[M,~]=size(F);

ToX=.000000000001;
range_rho1=10000;%input('range_rho1; 111-former; ?')
if range_rho1~=111
    range_rho=[0 range_rho1];
end

lev=log2(deci);
D=(1:deci:M);
%input('gauss--1;savitzky--2; std--3; heat--5;0 --none; ?')



[H,fH]=buikerP(M,t,5);%build kernel
fF=fft2(F);
    fG=fF.*fH;
    G=real(ifft2(fG));


st1=input('noise std; 111-former; ?')
if st1~=111
    st=st1;
    nois=st*randn(M);
end
Z=G+nois;

 etaC=ETTA_P(Par,M,t,1);
 
 etaD=ETTA_P(Par,M,t,2);
 
figure;
subplot(3,2,1)
noi=nois(D,D);
z=G(D,D)+noi;
f=F(D,D);
fetaC=ifft2(etaC);
fetaC1=fetaC(D,D);
etaC=real(fft2(fetaC1));
fetaD=ifft2(etaD);
fetaD1=fetaD(D,D);
etaD=real(fft2(fetaD1));
ee=sum(noi(:).^2);
 % rho=defroP(Par,q,z,mu,ee,range_rho,ToX)
      rhoC=defroP_conv(Par,0,z,etaC,ee,range_rho,ToX)
     
sC=heatsplaP2(z,Par,etaC,lev,rhoC) /4^lev;
      rhoD=defroP_conv(Par,0,z,etaD,ee,range_rho,ToX)
sD=heatsplaP2(z,Par,etaD,lev,rhoD) /4^lev;

[PSNR_z ]=psnB(f,z);
ai(z);
ste=256/deci;
set(gca,'YTick',0:ste:2*ste);set(gca,'YTickLabel',{''})
set(gca,'XTick',0:ste:2*ste);set(gca,'XTickLabel',{''})
title(['\fontsize{16}Sampl=1:' int2str(deci) ', STD=' num2str(st,3) ', PSNR=' num2str(PSNR_z,4 ) ])

subplot(3,2,3)
[PSNR_c]=psnB(F,sC);

ai(sC)
title(['\fontsize{16}Coll., Spl. order: '  int2str(Par) ', PSNR=' num2str(PSNR_c,4 ) ', \rho=' num2str(rhoC,2) ])
%title(['\fontsize{16}\rho=' num2str(rho)])
set(gca,'YTick',0:256:512);set(gca,'YTickLabel',{''})
set(gca,'XTick',0:256:512);set(gca,'XTickLabel', {''})

subplot(3,2,5)
[PSNR_d]=psnB(F,sD);

ai(sD)
title(['\fontsize{16}Diff., Spl. order: '  int2str(Par) ', PSNR=' num2str(PSNR_d,4 ) ', \rho=' num2str(rhoD,2) ])
%title(['\fontsize{16}\rho=' num2str(rho)])
set(gca,'YTick',0:256:512);set(gca,'YTickLabel',{''})
set(gca,'XTick',0:256:512);set(gca,'XTickLabel', {''})


subplot(3,2,2)
deci=DS*deci;
lev=log2(deci);
D=(1:deci:M);
noi=nois(D,D);
z=G(D,D)+noi;
f=F(D,D);
ee=sum(noi(:).^2);

fetaC1=fetaC(D,D);
etaC=real(fft2(fetaC1));

fetaD1=fetaD(D,D);
etaD=real(fft2(fetaD1));

 
      rhoC=defroP_conv(Par,0,z,etaC,ee,range_rho,ToX)
sC=heatsplaP2(z,Par,etaC,lev,rhoC) /4^lev;
rhoD=defroP_conv(Par,0,z,etaD,ee,range_rho,ToX)
sD=heatsplaP2(z,Par,etaD,lev,rhoC) /4^lev;


[PSNR_z ]=psnB(f,z);
ss=round(std(noi(:)))
ai(z);
ste=256/deci;
set(gca,'YTick',0:ste:2*ste);set(gca,'YTickLabel',{''})
set(gca,'XTick',0:ste:2*ste);set(gca,'XTickLabel',{''})
title(['\fontsize{16}Sampl=1:' int2str(deci) ', STD=' num2str(st,3)  ', PSNR=' num2str(PSNR_z,4 )])

subplot(3,2,4)
[PSNR ]=psnB(F,sC);

ai(sC)
title(['\fontsize{16}Coll.,Spl. order: '  int2str(Par) ', PSNR=' num2str(PSNR,4 ) ', \rho=' num2str(rhoC,2) ])
%title(['\fontsize{16}\rho=' num2str(rho)])
set(gca,'YTick',0:256:512);set(gca,'YTickLabel',{''})
set(gca,'XTick',0:256:512);set(gca,'XTickLabel', {''})

subplot(3,2,6)
[PSNR]=psnB(F,sD);

ai(sD)
title(['\fontsize{16}Diff.,Spl. order: '  int2str(Par) ', PSNR=' num2str(PSNR,4 ) ', \rho=' num2str(rhoD,2) ])
%title(['\fontsize{16}\rho=' num2str(rho)])
set(gca,'YTick',0:256:512);set(gca,'YTickLabel',{''})
set(gca,'XTick',0:256:512);set(gca,'XTickLabel', {''})




