bilinear interpolation added