This paper proposes a deep learning method for single image super-resolution (SR), which directly learns an end-to-end mapping between low- and high-resolution images using a deep convolutional neural network (CNN). The method jointly optimizes all layers of the network, unlike traditional methods that handle each component separately. The proposed CNN has a lightweight structure and achieves state-of-the-art restoration quality and fast speed for practical online usage. The method is compared with traditional sparse-coding-based SR methods, which are shown to be equivalent to a deep CNN. The proposed model, called Super-Resolution Convolutional Neural Network (SRCNN), is shown to outperform existing methods in terms of PSNR and speed. The SRCNN is trained using a large dataset and achieves superior performance, especially when more training data is available. The method is also efficient in terms of computational time, with a training time of about three days on a GPU. The SRCNN is able to handle different upscaling factors and is robust to variations in image quality. The results show that the SRCNN achieves high-quality super-resolution with minimal pre/post-processing. The method is also applicable to other low-level vision tasks such as image deblurring and simultaneous SR+denoising.This paper proposes a deep learning method for single image super-resolution (SR), which directly learns an end-to-end mapping between low- and high-resolution images using a deep convolutional neural network (CNN). The method jointly optimizes all layers of the network, unlike traditional methods that handle each component separately. The proposed CNN has a lightweight structure and achieves state-of-the-art restoration quality and fast speed for practical online usage. The method is compared with traditional sparse-coding-based SR methods, which are shown to be equivalent to a deep CNN. The proposed model, called Super-Resolution Convolutional Neural Network (SRCNN), is shown to outperform existing methods in terms of PSNR and speed. The SRCNN is trained using a large dataset and achieves superior performance, especially when more training data is available. The method is also efficient in terms of computational time, with a training time of about three days on a GPU. The SRCNN is able to handle different upscaling factors and is robust to variations in image quality. The results show that the SRCNN achieves high-quality super-resolution with minimal pre/post-processing. The method is also applicable to other low-level vision tasks such as image deblurring and simultaneous SR+denoising.