function x = iDLifting2D_comb(y, J, dinfo, pinfo, lsi)
% LIFTING 2D wavelet decomposition with lifting scheme
%
% USAGE:
%    x = iDLifting2D(y, J, lsi)
% 
% INPUT:   
%    y       - Decomposition Coefficients
%    y{J}    - Lower band
%    y{i}{1} - Lower-Higher band
%    y{i}{2} - Higher-Lower band
%    y{i}{2} - Higher-Higher band
%    J       - Decomposition levels
%    dinfo   - directional info for each block
%    pinfo   - block partition info
%    lsi  - lifting lattice
% OUTPUT:
%    x    - Reconstructed signal
LL = y{J+1};
for i = J:-1:1
LH = y{i}{1};
HL = y{i}{2};
HH = y{i}{3};
L = iDLifting_comb(LL', LH', dinfo{i}{2}, pinfo{i}{2}, lsi);
H = iDLifting_comb(HL', HH', dinfo{i}{3}, pinfo{i}{3}, lsi);
LL = iDLifting_comb(L', H', dinfo{i}{1}, pinfo{i}{1}, lsi);
end
x = LL;