function [new_h] = Wm_Ex_map(half_sum,org_h)
if (half_sum <= 255) & (half_sum >= 128)  
    tmp_value = 2*(255-half_sum);
elseif (half_sum <= 127) & (half_sum >= 0)  
    tmp_value = (2*half_sum+1);
end
if org_h >= 0
    if round(tmp_value/4) == floor(tmp_value/4) & round(tmp_value/4) == ceil(tmp_value/4)
        new_h = tmp_value/4;
    elseif round((tmp_value - 1)/4) == floor((tmp_value - 1)/4) & round((tmp_value - 1)/4) == ceil((tmp_value - 1)/4) 
        new_h = (tmp_value - 1)/4;  
    elseif round((tmp_value - 2)/4) == floor((tmp_value - 2)/4) & round((tmp_value - 2)/4) == ceil((tmp_value - 2)/4) 
        new_h = (tmp_value - 2)/4;  
    elseif round((tmp_value - 3)/4) == floor((tmp_value - 3)/4) & round((tmp_value - 3)/4) == ceil((tmp_value - 3)/4) 
        new_h = (tmp_value - 3)/4;  
    end
else
    if round(-tmp_value/4) == floor(-tmp_value/4) & round(-tmp_value/4) == ceil(-tmp_value/4)
        new_h = tmp_value/4;
    elseif round(-(tmp_value - 1)/4) == floor(-(tmp_value + 1)/4) & round(-(tmp_value - 1)/4) == ceil(-(tmp_value + 1)/4) 
        new_h = -(tmp_value + 1)/4;  
    elseif round(-(tmp_value + 2)/4) == floor(-(tmp_value + 2)/4) & round(-(tmp_value + 2)/4) == ceil(-(tmp_value + 2)/4)
        new_h = -(tmp_value + 2)/4;  
    elseif round(-(tmp_value + 3)/4) == floor(-(tmp_value + 3)/4) & round(-(tmp_value + 3)/4) == ceil(-(tmp_value + 3)/4)
        new_h = -(tmp_value + 3)/4;  
    end
end 
% function [nflag] = Wm_Ex_map(half_sum,org_h)
% nflag = 0;
% if (half_sum <= 255) & (half_sum >= 128)  
%     tmp_value = 2*(255-half_sum);
% elseif (half_sum <= 127) & (half_sum >= 0)  
%     tmp_value = (2*half_sum+1);
% end
% if org_h >= 0
%     if round(tmp_value/4) == (tmp_value/4) 
%         new_h = tmp_value/4;
%         nflag = 1;
%     elseif round((tmp_value - 1)/4) == ((tmp_value - 1)/4) 
%         new_h = (tmp_value - 1)/4;  
%         nflag = 1;
%     elseif round((tmp_value - 2)/4) == ((tmp_value - 2)/4) 
%         new_h = (tmp_value - 2)/4;
%         nflag = 1;
%     elseif round((tmp_value - 3)/4) == ((tmp_value - 3)/4) 
%         new_h = (tmp_value - 3)/4; 
%         nflag = 1;
%     end
% else
%     if round(-tmp_value/4) == (-tmp_value/4) 
%         new_h = tmp_value/4;
%         nflag = 1;
%     elseif round(-(tmp_value + 1)/4) == (-(tmp_value + 1)/4) 
%         new_h = -(tmp_value + 1)/4;  
%         nflag = 1;
%     elseif round(-(tmp_value + 2)/4) == (-(tmp_value + 2)/4) 
%         new_h = -(tmp_value + 2)/4;
%         nflag = 1;
%     elseif round(-(tmp_value + 3)/4) == (-(tmp_value + 3)/4) 
%         new_h = -(tmp_value + 3)/4;  
%         nflag = 1;
%     end
% end
%  
