function [NR, center] = NevilleR2Q(order)
%------------------------------------------------------------------------------
%
% The most simple version: R -> Q (R2Q) and downsampling over 1 level
%
% Creates stencil corresponding to Quincunx Neville filters.
%
% Reference: v
% Jelena Kovacevic' and Wim Sweldens
% IEEE Transactions on Image Processing, 1999.
% (see esp. Table 2, p.18)
%
% See also: stencilR2Q
%
% Design and implementation by:
% Dr. Paul M. de Zeeuw <Paul.de.Zeeuw@cwi.nl> http://homepages.cwi.nl/~pauldz/
% Last Revision: January 23, 2001.
% 2001-2002 Stichting CWI, Amsterdam
%------------------------------------------------------------------------------
if order == 2
n = 3;
NR = zeros(n);
% (1)
NR( 1, 2) = 1;
NR( 2, 1) = 1;
NR( 2, 3) = 1;
NR( 3, 2) = 1;
%
NR = NR/(2^2);
center = [(n+1)/2 (n+1)/2];
%----------------------------
elseif order == 4
n = 5;
NR = zeros(n);
% (1)
NR(1+1, 1+2) = 10;
NR(1+2, 1+1) = 10;
NR(1+2, 1+3) = 10;
NR(1+3, 1+2) = 10;
% (2)
NR( 1, 2) = -1;
NR( 1, 4) = -1;
NR( 2, 5) = -1;
NR( 4, 5) = -1;
NR( 5, 2) = -1;
NR( 5, 4) = -1;
NR( 2, 1) = -1;
NR( 4, 1) = -1;
%
NR = NR/(2^5);
center = [(n+1)/2 (n+1)/2];
%----------------------------
elseif order == 6
n = 7;
NR = zeros(n);
% (1)
NR(2+1, 2+2) = 174;
NR(2+2, 2+1) = 174;
NR(2+2, 2+3) = 174;
NR(2+3, 2+2) = 174;
% (2)
NR(1+1, 1+2) = -27;
NR(1+1, 1+4) = -27;
NR(1+2, 1+5) = -27;
NR(1+4, 1+5) = -27;
NR(1+5, 1+2) = -27;
NR(1+5, 1+4) = -27;
NR(1+2, 1+1) = -27;
NR(1+4, 1+1) = -27;
% (3)
NR( 1, 4) = 2;
NR( 4, 7) = 2;
NR( 7, 4) = 2;
NR( 4, 1) = 2;
% (4)
NR( 1, 2) = 3;
NR( 1, 6) = 3;
NR( 2, 7) = 3;
NR( 6, 7) = 3;
NR( 7, 2) = 3;
NR( 7, 6) = 3;
NR( 2, 1) = 3;
NR( 6, 1) = 3;
%
NR = NR/(2^9);
center = [(n+1)/2 (n+1)/2];
%----------------------------
elseif order == 8
n =11;
NR = zeros(n);
% (1)
NR(4+1, 4+2) = 23300;
NR(4+2, 4+1) = 23300;
NR(4+2, 4+3) = 23300;
NR(4+3, 4+2) = 23300;
% (2)
NR(3+1, 3+2) = -4470;
NR(3+1, 3+4) = -4470;
NR(3+2, 3+5) = -4470;
NR(3+4, 3+5) = -4470;
NR(3+5, 3+2) = -4470;
NR(3+5, 3+4) = -4470;
NR(3+2, 3+1) = -4470;
NR(3+4, 3+1) = -4470;
% (3)
NR(2+ 1, 2+ 4) = 625;
NR(2+ 4, 2+ 7) = 625;
NR(2+ 7, 2+ 4) = 625;
NR(2+ 4, 2+ 1) = 625;
% (4)
NR(2+ 1, 2+ 2) = 850;
NR(2+ 1, 2+ 6) = 850;
NR(2+ 2, 2+ 7) = 850;
NR(2+ 6, 2+ 7) = 850;
NR(2+ 7, 2+ 2) = 850;
NR(2+ 7, 2+ 6) = 850;
NR(2+ 2, 2+ 1) = 850;
NR(2+ 6, 2+ 1) = 850;
% (5)
NR( 2, 5) = -75;
NR( 2, 7) = -75;
NR( 5,10) = -75;
NR( 7,10) = -75;
NR(10, 5) = -75;
NR(10, 7) = -75;
NR( 5, 2) = -75;
NR( 7, 2) = -75;
% (6)
NR( 1, 6) = 9;
NR( 6,11) = 9;
NR(11, 6) = 9;
NR( 6, 1) = 9;
% (7)
NR( 2, 3) = -80;
NR( 2, 9) = -80;
NR( 3,10) = -80;
NR( 9,10) = -80;
NR(10, 3) = -80;
NR(10, 9) = -80;
NR( 3, 2) = -80;
NR( 9, 2) = -80;
%
NR = NR/(2^16);
center = [(n+1)/2 (n+1)/2];
%----------------------------
else
error(' Neville - order other than 2 4 6 8 not available ')
end
%------------------------------------------------------------------------------