1. A method for performing super-resolution on a single input image, comprising: generating an initial upscaled version of the input image; determining a noise level of the input image; generating at least two downscaled versions of the input image; generating for each of the downscaled versions of the input image a low-frequency version; determining, for each patch of the initial upscaled version of the input image, a position of at least one best matching patch among the low-frequency versions of the downscaled versions of the input image, wherein noise levels of the downscaled versions of the input image are considered and wherein the noise level of the input image is used to calculate the noise levels of the downscaled versions of the input image; extracting patches from the downscaled images at the determined positions of the best matching patches; and reconstructing the upscaled version of the input image using the extracted patches.