The dictionary meaning of the word ’restoration’ is the act of bringing back a system, that existed previously. In data processing, ’restoration’ refers to the task of recovering the original or clean data from the given corrupt data. In Computer Vision, restoration is considered to be an umbrella term as it spans over a variety of problems that depends upon the type of: • Data being restored. • Corruption, the data has to recover from. The most frequently dealt data in Computer Vision problems is either an image or a video, and the most typical form of corruption, found in this data is due to Blur, Noise, Haze, Rain, Missing-pixels or Low-resolution, among others. The restoration problems with the stated corruptions can be but not limited to Deblurring, Denoising, Dehazing, Deraining, Inpainting and Super-resolution. These can be applied either on an image or a video. The next section elaborates some of these problems that will be addressed in this thesis.