Bicubic is nearly the same as bilinear, but it takes even more time to calculate the new pixel.
Basically, that's the way it works:
Linear (aka Nearest-Neighbour):
The destination pixel is calculated from 1 source pixel (in other words: 1x1 pixels)
Bilinear:
The destination pixel is calculated from 4 pixels, in other words from a 2x2 pixels block. This produces nicer results, but is slower than linear.
Bicubic:
The destination pixel is calculated from, take a guess, 16 pixels, i.o.w. a 4x4 block.
As you see, generally all the algorithms work the same way, they just use a different amount of neighbour pixels to calculate the new pixel from.
The reason why you usually use bilinear filtering for games is because it is a good compromise between speed and quality...
However, I think I will take a look at that fractal interpolation as soon as I find a big block of free time in my life... :z
- Alhexx