I. Introduction
Image restoration (IR) which aims to recover a clean image from its degraded version is a classic and fundamental problem in image processing and computer vision. Typical examples of image degradation include noise, blur, ringing, blocking, rain, snow, haze, etc. These degradations not only harm the quality of the user experience, but also have a negative impact on various computer vision applications that take the degraded images as input. Thus, IR has been extensively studied over the last several decades, and numerous IR techniques have been proposed.