function [Pix_out] = correlation1(Pix_in, threshold_g)
%
%CORRELATION1   Performs correlation-based color interpolation Kernel 1
%
%   Usage: [Pix_out] = correlation1(Pix_in, threshold_g)
%
%      Pix_out       = Interpolated image 3D array output
%                      Valid range: 0 <= Pix_out(:,:,:) <= 255 (8 bits)
%
%      Pix_in        = Bayer CFA RGB image 3D array input
%                      Valid range: 0 <= Pix_in(:,:,:) <= 255 (8 bits)
%
%      threshold_g   = Activation threshold for correlation-based
%                      adjustment to bilinear-interpolated green pixels
%                      on red and blue centers
%                      The bilinear interpolation is the average of the
%                      four green pixels 
%                      Valid range: 0 <= threshold_g <= 1275 (5 x 255)
%
%   Assumptions: Pix_in has the following format -
%
%        1 2 3 4 . . . w      d   Color Plane
%     ------------------     --- -------------
%   1 |  G R G R . . . R      1   R
%   2 |  B G B G . . . G      2   G
%   3 |  G R G R . . . R      3   B
%   4 |  B G B G . . . G
%   . |  . . . . . . . R
%   . |  . . . . . . . G
%   . |  . . . . . . . R
%   h |  B G B G B G B G
%
%   Author:    Gary Embler
%   Email:     gary_embler@agilent.com
%   Date:      05/07/01
%   Reference: "Correlation-Based Color Mosaic Interpolation Using a
%              Connectionist Approach", G. Embler
%
%   Copyright (c) 2001 by Gary Embler
%

%======================================================================
% Initialization
%----------------------------------------------------------------------

[h, w, d]   = size(Pix_in);

%======================================================================
% Pixels Pass-Through
%----------------------------------------------------------------------

Pix_out = Pix_in;

%======================================================================
% Common Arrays
%----------------------------------------------------------------------

% Pixel Input Complements

Pix_in_n(1:2:(h-1), 2:2:w,     1)   = ...                        % R_n
   bitcmp(Pix_in(1:2:(h-1), 2:2:w,     1), 8);                   % R

Pix_in_n(1:2:(h-1), 1:2:(w-1), 2)   = ...                        % GR_n
   bitcmp(Pix_in(1:2:(h-1), 1:2:(w-1), 2), 8);                   % GR

Pix_in_n(2:2:h,     2:2:w,     2)   = ...                        % GB_n
   bitcmp(Pix_in(2:2:h,     2:2:w,     2), 8);                   % GB

Pix_in_n(2:2:h,     1:2:(w-1), 3)   = ...                        % B_n
   bitcmp(Pix_in(2:2:h,     1:2:(w-1), 3), 8);                   % B

%======================================================================
% R, B-Center G-Interpolation - Kernel 1
%----------------------------------------------------------------------

% Kernel 1 R-Center G Sums

Pix_sum(:,:,1,1)        = Pix_in_n(4:2:h,     2:2:(w-2), 2)... % G3_n
                        + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n
                        + Pix_in(  3:2:(h-1), 3:2:(w-1), 2);   % G0

Pix_sum(:,:,1,2)        = Pix_in_n(4:2:h,     2:2:(w-2), 2)... % G3_n
                        + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G1
                        + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2);   % G0_n

Pix_sum(:,:,1,3)        = Pix_in_n(4:2:h,     2:2:(w-2), 2)... % G3_n
                        + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G1
                        + Pix_in(  3:2:(h-1), 3:2:(w-1), 2);   % G0

Pix_sum(:,:,1,4)        = Pix_in_n(4:2:h,     2:2:(w-2), 2)... % G3_n
                        + Pix_in(  3:2:(h-1), 1:2:(w-3), 2)... % G2
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n
                        + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2);   % G0_n

Pix_sum(:,:,1,5)        = Pix_in_n(4:2:h,     2:2:(w-2), 2)... % G3_n
                        + Pix_in(  3:2:(h-1), 1:2:(w-3), 2)... % G2
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n
                        + Pix_in(  3:2:(h-1), 3:2:(w-1), 2);   % G0

Pix_sum(:,:,1,6)        = Pix_in_n(4:2:h,     2:2:(w-2), 2)... % G3_n
                        + Pix_in(  3:2:(h-1), 1:2:(w-3), 2)... % G2
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G1
                        + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2);   % G0_n

Pix_sum(:,:,1,7)        = Pix_in_n(4:2:h,     2:2:(w-2), 2)... % G3_n
                        + Pix_in(  3:2:(h-1), 1:2:(w-3), 2)... % G2
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G1
                        + Pix_in(  3:2:(h-1), 3:2:(w-1), 2);   % G0

Pix_sum(:,:,1,8)        = Pix_in(  4:2:h,     2:2:(w-2), 2)... % G3
                        + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n
                        + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2);   % G0_n

Pix_sum(:,:,1,9)        = Pix_in(  4:2:h,     2:2:(w-2), 2)... % G3
                        + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n
                        + Pix_in(  3:2:(h-1), 3:2:(w-1), 2);   % G0

Pix_sum(:,:,1,10)       = Pix_in(  4:2:h,     2:2:(w-2), 2)... % G3
                        + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G1
                        + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2);   % G0_n

Pix_sum(:,:,1,11)       = Pix_in(  4:2:h,     2:2:(w-2), 2)... % G3
                        + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G1
                        + Pix_in(  3:2:(h-1), 3:2:(w-1), 2);   % G0

Pix_sum(:,:,1,12)       = Pix_in(  4:2:h,     2:2:(w-2), 2)... % G3
                        + Pix_in(  3:2:(h-1), 1:2:(w-3), 2)... % G2
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n
                        + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2);   % G0_n

Pix_sum(:,:,1,13)       = Pix_in(  4:2:h,     2:2:(w-2), 2)... % G3
                        + Pix_in(  3:2:(h-1), 1:2:(w-3), 2)... % G2
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n
                        + Pix_in(  3:2:(h-1), 3:2:(w-1), 2);   % G0

Pix_sum(:,:,1,14)       = Pix_in(  4:2:h,     2:2:(w-2), 2)... % G3
                        + Pix_in(  3:2:(h-1), 1:2:(w-3), 2)... % G2
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G1
                        + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2);   % G0_n

Pix_sum(:,:,1,15)       = Pix_in(  4:2:h,     2:2:(w-2), 2)... % G3
                        + Pix_in(  3:2:(h-1), 1:2:(w-3), 2)... % G2
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G1
                        + Pix_in(  3:2:(h-1), 3:2:(w-1), 2);   % G0


% Kernel 1 B-Center G Sums

Pix_sum(:,:,2,1)        = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n
                        + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n
                        + Pix_in(  2:2:(h-2), 4:2:w,     2);   % G0

Pix_sum(:,:,2,2)        = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n
                        + Pix_in(  1:2:(h-3), 3:2:(w-1), 2)... % G1
                        + Pix_in_n(2:2:(h-2), 4:2:w,     2);   % G0_n

Pix_sum(:,:,2,3)        = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n
                        + Pix_in(  1:2:(h-3), 3:2:(w-1), 2)... % G1
                        + Pix_in(  2:2:(h-2), 4:2:w,     2);   % G0

Pix_sum(:,:,2,4)        = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G2
                        + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n
                        + Pix_in_n(2:2:(h-2), 4:2:w,     2);   % G0_n

Pix_sum(:,:,2,5)        = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G2
                        + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n
                        + Pix_in(  2:2:(h-2), 4:2:w,     2);   % G0

Pix_sum(:,:,2,6)        = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G2
                        + Pix_in(  1:2:(h-3), 3:2:(w-1), 2)... % G1
                        + Pix_in_n(2:2:(h-2), 4:2:w,     2);   % G0_n

Pix_sum(:,:,2,7)        = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G2
                        + Pix_in(  1:2:(h-3), 3:2:(w-1), 2)... % G1
                        + Pix_in(  2:2:(h-2), 4:2:w,     2);   % G0

Pix_sum(:,:,2,8)        = Pix_in(  3:2:(h-1), 3:2:(w-1), 2)... % G3
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n
                        + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n
                        + Pix_in_n(2:2:(h-2), 4:2:w,     2);   % G0_n

Pix_sum(:,:,2,9)        = Pix_in(  3:2:(h-1), 3:2:(w-1), 2)... % G3
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n
                        + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n
                        + Pix_in(  2:2:(h-2), 4:2:w,     2);   % G0

Pix_sum(:,:,2,10)       = Pix_in(  3:2:(h-1), 3:2:(w-1), 2)... % G3
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n
                        + Pix_in(  1:2:(h-3), 3:2:(w-1), 2)... % G1
                        + Pix_in_n(2:2:(h-2), 4:2:w,     2);   % G0_n

Pix_sum(:,:,2,11)       = Pix_in(  3:2:(h-1), 3:2:(w-1), 2)... % G3
                        + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n
                        + Pix_in(  1:2:(h-3), 3:2:(w-1), 2)... % G1
                        + Pix_in(  2:2:(h-2), 4:2:w,     2);   % G0

Pix_sum(:,:,2,12)       = Pix_in(  3:2:(h-1), 3:2:(w-1), 2)... % G3
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G2
                        + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n
                        + Pix_in_n(2:2:(h-2), 4:2:w,     2);   % G0_n

Pix_sum(:,:,2,13)       = Pix_in(  3:2:(h-1), 3:2:(w-1), 2)... % G3
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G2
                        + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n
                        + Pix_in(  2:2:(h-2), 4:2:w,     2);   % G0

Pix_sum(:,:,2,14)       = Pix_in(  3:2:(h-1), 3:2:(w-1), 2)... % G3
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G2
                        + Pix_in(  1:2:(h-3), 3:2:(w-1), 2)... % G1
                        + Pix_in_n(2:2:(h-2), 4:2:w,     2);   % G0_n

Pix_sum(:,:,2,15)       = Pix_in(  3:2:(h-1), 3:2:(w-1), 2)... % G3
                        + Pix_in(  2:2:(h-2), 2:2:(w-2), 2)... % G2
                        + Pix_in(  1:2:(h-3), 3:2:(w-1), 2)... % G1
                        + Pix_in(  2:2:(h-2), 4:2:w,     2);   % G0


% Kernel 1 R-Center Negative Adjustment Sums

Adj_sum_0_75_n(:,:,1,1)    = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,1);

Adj_sum_0_75_n(:,:,1,2)    = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,2);
                     
Adj_sum_0_75_n(:,:,1,3)    = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,4);

Adj_sum_0_75_n(:,:,1,4)    = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,8);


Adj_sum_0_5_n(:,:,1,1)     = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,3);

Adj_sum_0_5_n(:,:,1,2)     = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,5);

Adj_sum_0_5_n(:,:,1,3)     = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,6);

Adj_sum_0_5_n(:,:,1,4)     = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,9);

Adj_sum_0_5_n(:,:,1,5)     = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,10);

Adj_sum_0_5_n(:,:,1,6)     = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,12);


Adj_sum_0_25_n(:,:,1,1)    = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,7);

Adj_sum_0_25_n(:,:,1,2)    = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,11);

Adj_sum_0_25_n(:,:,1,3)    = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,13);

Adj_sum_0_25_n(:,:,1,4)    = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n
                           + Pix_sum(:,:,1,14);


% Kernel 1 R-Center Positive Adjustment Sums

Adj_sum_0_25(:,:,1,1)      = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,1);

Adj_sum_0_25(:,:,1,2)      = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,2);

Adj_sum_0_25(:,:,1,3)      = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,4);

Adj_sum_0_25(:,:,1,4)      = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,8);


Adj_sum_0_5(:,:,1,1)       = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,3);

Adj_sum_0_5(:,:,1,2)       = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,5);

Adj_sum_0_5(:,:,1,3)       = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,6);

Adj_sum_0_5(:,:,1,4)       = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,9);

Adj_sum_0_5(:,:,1,5)       = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,10);

Adj_sum_0_5(:,:,1,6)       = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,12);


Adj_sum_0_75(:,:,1,1)      = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,7);

Adj_sum_0_75(:,:,1,2)      = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,11);

Adj_sum_0_75(:,:,1,3)      = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,13);

Adj_sum_0_75(:,:,1,4)      = Pix_in(  3:2:(h-1), 2:2:(w-2), 1)... % R
                           + Pix_sum(:,:,1,14);


% Kernel 1 B-Center Negative Adjustment Sums

Adj_sum_0_75_n(:,:,2,1)    = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,1);

Adj_sum_0_75_n(:,:,2,2)    = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,2);
                     
Adj_sum_0_75_n(:,:,2,3)    = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,4);

Adj_sum_0_75_n(:,:,2,4)    = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,8);


Adj_sum_0_5_n(:,:,2,1)     = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,3);

Adj_sum_0_5_n(:,:,2,2)     = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,5);

Adj_sum_0_5_n(:,:,2,3)     = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,6);

Adj_sum_0_5_n(:,:,2,4)     = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,9);

Adj_sum_0_5_n(:,:,2,5)     = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,10);

Adj_sum_0_5_n(:,:,2,6)     = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,12);


Adj_sum_0_25_n(:,:,2,1)    = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,7);

Adj_sum_0_25_n(:,:,2,2)    = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,11);

Adj_sum_0_25_n(:,:,2,3)    = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,13);

Adj_sum_0_25_n(:,:,2,4)    = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n
                           + Pix_sum(:,:,2,14);


% Kernel 1 B-Center Positive Adjustment Sums

Adj_sum_0_25(:,:,2,1)      = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,1);

Adj_sum_0_25(:,:,2,2)      = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,2);

Adj_sum_0_25(:,:,2,3)      = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,4);

Adj_sum_0_25(:,:,2,4)      = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,8);


Adj_sum_0_5(:,:,2,1)       = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,3);

Adj_sum_0_5(:,:,2,2)       = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,5);

Adj_sum_0_5(:,:,2,3)       = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,6);

Adj_sum_0_5(:,:,2,4)       = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,9);

Adj_sum_0_5(:,:,2,5)       = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,10);

Adj_sum_0_5(:,:,2,6)       = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,12);


Adj_sum_0_75(:,:,2,1)      = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,7);

Adj_sum_0_75(:,:,2,2)      = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,11);

Adj_sum_0_75(:,:,2,3)      = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,13);

Adj_sum_0_75(:,:,2,4)      = Pix_in(  2:2:(h-2), 3:2:(w-1), 3)... % B
                           + Pix_sum(:,:,2,14);


% Kernel 1 Negative Adjustment

Adj_max_0_75_n(:,:,:)      = max(max(Adj_sum_0_75_n(:,:,:,1),...
                                     Adj_sum_0_75_n(:,:,:,2)),...
                                 max(Adj_sum_0_75_n(:,:,:,3),...
                                     Adj_sum_0_75_n(:,:,:,4)));

Adj_max_0_5_n(:,:,:)       = max(max(max(Adj_sum_0_5_n(:,:,:,1),...
                                         Adj_sum_0_5_n(:,:,:,2)),...
                                     max(Adj_sum_0_5_n(:,:,:,3),...
                                         Adj_sum_0_5_n(:,:,:,4))),...
                                 max(Adj_sum_0_5_n(:,:,:,5),...
                                     Adj_sum_0_5_n(:,:,:,6)));

Adj_max_0_25_n(:,:,:)      = max(max(Adj_sum_0_25_n(:,:,:,1),...
                                     Adj_sum_0_25_n(:,:,:,2)),...
                                 max(Adj_sum_0_25_n(:,:,:,3),...
                                     Adj_sum_0_25_n(:,:,:,4)));

Adj_thrs_0_75_n(:,:,:)     = clip((Adj_max_0_75_n(:,:,:)...
                                   - threshold_g), 0, 1275);

Adj_thrs_0_5_n(:,:,:)      = clip((Adj_max_0_5_n(:,:,:)...
                                   - threshold_g), 0, 1275);

Adj_thrs_0_25_n(:,:,:)     = clip((Adj_max_0_25_n(:,:,:)...
                                   - threshold_g), 0, 1275);

Adj_n(:,:,:)      = max(max(   bitshift(Adj_thrs_0_25_n(:,:,:), -2),...
                               bitshift(Adj_thrs_0_5_n( :,:,:), -1)),...
                       (   bitshift(Adj_thrs_0_75_n(:,:,:), -2)...
                         + bitshift(Adj_thrs_0_75_n(:,:,:), -1)));...


% Kernel 1 Positive Adjustment

Adj_max_0_25(:,:,:)        = max(max(Adj_sum_0_25(:,:,:,1),...
                                     Adj_sum_0_25(:,:,:,2)),...
                                 max(Adj_sum_0_25(:,:,:,3),...
                                     Adj_sum_0_25(:,:,:,4)));

Adj_max_0_5(:,:,:)         = max(max(max(Adj_sum_0_5(:,:,:,1),...
                                         Adj_sum_0_5(:,:,:,2)),...
                                     max(Adj_sum_0_5(:,:,:,3),...
                                         Adj_sum_0_5(:,:,:,4))),...
                                 max(Adj_sum_0_5(:,:,:,5),...
                                     Adj_sum_0_5(:,:,:,6)));

Adj_max_0_75(:,:,:)        = max(max(Adj_sum_0_75(:,:,:,1),...
                                     Adj_sum_0_75(:,:,:,2)),...
                                 max(Adj_sum_0_75(:,:,:,3),...
                                     Adj_sum_0_75(:,:,:,4)));

Adj_thrs_0_25(:,:,:)       = clip((Adj_max_0_25(:,:,:)...
                                   - threshold_g), 0, 1275);

Adj_thrs_0_5(:,:,:)        = clip((Adj_max_0_5(:,:,:)...
                                   - threshold_g), 0, 1275);

Adj_thrs_0_75(:,:,:)       = clip((Adj_max_0_75(:,:,:)...
                                   - threshold_g), 0, 1275);

Adj(:,:,:)        = max(max(   bitshift(Adj_thrs_0_25(:,:,:), -2),...
                               bitshift(Adj_thrs_0_5( :,:,:), -1)),...
                       (   bitshift(Adj_thrs_0_75(:,:,:), -2)...
                         + bitshift(Adj_thrs_0_75(:,:,:), -1)));...


% Kernel 1 Average

Avg(:,:,:)  = bitshift(Pix_sum(:,:,:,15), -2);


% Kernel 1 R-Center G-Output

Adj_sel(:,:,1) =   Avg(:,:,1) < Pix_in(3:2:(h-1), 2:2:(w-2), 1);  % R

Pix_out(3:2:(h-1), 2:2:(w-2), 2) =...
   (~Adj_sel(:,:,1) .* clip((Avg(:,:,1) - Adj_n(:,:,1)),...
                             Pix_in(3:2:(h-1), 2:2:(w-2), 1),...  % R
                             Avg(:,:,1)))...
 + ( Adj_sel(:,:,1) .* clip((Avg(:,:,1) + Adj(  :,:,1)),...
                             Avg(:,:,1),...
                             Pix_in(3:2:(h-1), 2:2:(w-2), 1)));   % R

% Kernel 1 B-Center G-Output

Adj_sel(:,:,2) =   Avg(:,:,2) < Pix_in(2:2:(h-2), 3:2:(w-1), 3);  % B

Pix_out(2:2:(h-2), 3:2:(w-1), 2) =...
   (~Adj_sel(:,:,2) .* clip((Avg(:,:,2) - Adj_n(:,:,2)),...
                             Pix_in(2:2:(h-2), 3:2:(w-1), 3),...  % B
                             Avg(:,:,2)))...
 + ( Adj_sel(:,:,2) .* clip((Avg(:,:,2) + Adj(  :,:,2)),...
                             Avg(:,:,2),...
                             Pix_in(2:2:(h-2), 3:2:(w-1), 3)));   % B

%======================================================================
