function [slika_rek] = DWT_reconstruction (DWT_matr, n_razl)
% DWT_reconstruction
% Ulazi: DWT_matrica - matrica nastala DWT dekompozicijom
%        n_razl - broj razina razlaganja
% Izlaz: slika_rek - rekonstruirana slika
% Iz matrice dobivene funkcijom SPIHT_decoder radi se rekonstrukcija 
% Haarov wavelet, lifting shema


[sizey_matr sizex_matr]= size(DWT_matr);

for i=n_razl:-1:1
    %i
    [sizey_w sizex_w]= size(DWT_matr);
   
    if i==n_razl
        DWT_matr_pom=DWT_matr(1: sizey_w/2^(i-1), 1:sizex_w/2^(i-1));
    end

    [sizey_pom sizex_pom]=size(DWT_matr_pom);
    
    sl_L_rek=zeros(sizey_pom/2, sizex_pom);
    sl_H_rek=zeros(sizey_pom/2, sizex_pom);
    sl_rek_pom=zeros(sizey_pom, sizex_pom);

    sl_LL_rek=DWT_matr_pom(1: sizey_pom/2, 1:sizex_pom/2);
    sl_HL_rek=DWT_matr_pom((sizey_pom/2+1):sizey_pom, 1:sizex_pom/2);
    sl_LH_rek=DWT_matr_pom(1:sizey_pom/2, (sizex_pom/2+1):sizex_pom);
    sl_HH_rek=DWT_matr_pom((sizey_pom/2+1):sizey_pom, (sizex_pom/2+1):sizex_pom);
    
    sl_L_rek_par=1/2*(sl_LL_rek-sl_LH_rek); %round
    sl_L_rek_nep=sl_LH_rek+sl_L_rek_par;
    sl_L_rek(1:sizey_pom/2, 1:2:(sizex_pom-1))=sl_L_rek_par;
    sl_L_rek(1:sizey_pom/2, 2:2:sizex_pom)=sl_L_rek_nep;

    %H slika
    sl_H_rek_par=1/2*(sl_HL_rek-sl_HH_rek);
    sl_H_rek_nep=sl_HH_rek+sl_H_rek_par;
    sl_H_rek(1:sizey_pom/2, 1:2:(sizex_pom-1))=sl_H_rek_par;
    sl_H_rek(1:sizey_pom/2, 2:2:sizex_pom)=sl_H_rek_nep;
    
    sl_rek_par=1/2*(sl_L_rek-sl_H_rek);
    sl_rek_nep=sl_H_rek+sl_rek_par;
    sl_rek_pom (1:2:(sizey_pom-1), 1:sizey_pom)=sl_rek_par;
    sl_rek_pom(2:2:sizey_pom, 1:sizey_pom)=sl_rek_nep;

    if i==1
       % disp('i je 1 - izlaz');
        break;
    else 
        DWT_matr(1:sizey_pom, 1:sizex_pom)=sl_rek_pom;  
        
        DWT_matr_pom=DWT_matr(1:2*sizey_pom, 1:2*sizex_pom);  
        
    end
     
end

slika_rek=sl_rek_pom;

slika_rek=slika_rek+128;   %jer originalna slika bila u poèetku umanjena za 128 radi SPIHT-a (da bude raspon vrijednosti koeficijenata simetrièan)                      
%figure, imshow(slika_rek, []); to u glavnoj fji

