Difference between Sub Sampling and Down Scaling of Images I know that there are many ways to upscale (interpolate) an image using bilinear, bicubic, sinc... Somehow, these same algorithms can also be used to downscale an image. But when it comes to subsampling, I've come across only two methods: Gaussian-blur then discard some rows and columns, or block-averaging.

Is there such thing as bilinear, bicubic,... subsampling?

Instead of Gaussian-blurring then discarding or block-averaging, can/should I do Gaussian-blurring then block-averaging? or bilinear, bicubic,...subsampling if there is such thing?

What I'm doing is trying to make image Gaussian and Laplacian pyramids; but I'm not sure how to decimate and interpolate the image. (Some Python code with Scipy/Numpy would really help.) 

Thank you very much.
Have you looked to the pyUp and pyDown functions in opencv? They upscale and downscale images using a gaussian pyramids.

opencv image filtering page