Bilinear interpolation is the process of taking a two-dimensional set of numbers and interpolating the values linearly, finding a point using a weighted average of four values.
The idea behind two-dimensional interpolation is that having some periodic plane of discrete data you can predict the value of a non-integer x and y within the plane. This is done using data for integer coordinate positions in the plane and using this, the aim is to try to predict a value for these non-integer x and y positions.
In order to bilinearly interpolate we need to look at the four values surrounding the value we want.



First we take interpolate values (horizontally), giving:


Then we interpolate these values (vertically), giving:
IV = i1(1 - yf) + i2yf
This gives us a predicted value for the point.
Note that the result of bilinear interpolation is independent of the order of interpolation, that is, performing the linear interpolations in the other order, vertically, then horizontally, would also produce an equivalent expression for the predicted value.