1. A method of reducing blocking and/or noise in an image that has been compressed by a block-based encoding process, the method comprising: deblocking the image using overlapped forward directional transforms, the overlapped forward directional transforms including directional thresholding to filter across horizontal and vertical boundaries; denoising the image using overlapped forward non-directional transforms, the overlapped forward non-directional transforms including non-directional thresholding; edge detecting to classify individual pixels as to whether or not they belong to edge features, generating output pixels by locally adapting to whether the pixels are in block boundaries, and/or include edge features, wherein the edge detecting uses the overlapped forward transforms and local variance calculations.