  We propose a fully-convolutional neural-network architecture for image
denoising which is simple yet powerful. Its structure allows to exploit the
gradual nature of the denoising process, in which shallow layers handle local
noise statistics, while deeper layers recover edges and enhance textures. Our
method advances the state-of-the-art when trained for different noise levels
and distributions (both Gaussian and Poisson). In addition, we show that making
the denoiser class-aware by exploiting semantic class information boosts
performance, enhances textures and reduces artifacts.
