A computer-implemented method for upscaling image content, the method comprising: generating a first reconstructed image based on a downscaled image and a downscaling kernel, wherein the first reconstructed image has a first resolution, and the downscaled image has a second resolution; generating an image difference based on the downscaled image and the downscaling kernel, wherein the image difference indicates that at least one visual artifact resides within the first reconstructed image; modifying the downscaling kernel to produce a modified downscaling kernel; and generating a second reconstructed image based on the downscaled image and the modified downscaling kernel, wherein the at least one visual artifact has been reduced within the second reconstructed image or eliminated; wherein generating the first reconstructed image comprises: encoding the downscaling kernel into a latent space to generate a latent representation of the downscaling kernel; generating a degradation map based on the latent representation of the downscaling kernel; and combining the downscaled image and the degradation map to generate the first reconstructed image; and characterized in that generating the image difference comprises: obtaining a set of outputs derived from a convolutional layer of a first convolutional neural network that is used to generate the first reconstructed image; and combining the downscaled image and the degradation map with the set of outputs to generate the image difference, wherein the image difference represents a difference between the first reconstructed image and the downscaled image. generating a first reconstructed image based on a downscaled image and a downscaling kernel, wherein the first reconstructed image has a first resolution, and the downscaled image has a second resolution; generating an image difference based on the downscaled image and the downscaling kernel, wherein the image difference indicates that at least one visual artifact resides within the first reconstructed image; modifying the downscaling kernel to produce a modified downscaling kernel; and generating a second reconstructed image based on the downscaled image and the modified downscaling kernel, wherein the at least one visual artifact has been reduced within the second reconstructed image or eliminated; wherein generating the first reconstructed image comprises: encoding the downscaling kernel into a latent space to generate a latent representation of the downscaling kernel; generating a degradation map based on the latent representation of the downscaling kernel; and combining the downscaled image and the degradation map to generate the first reconstructed image; and characterized in that generating the image difference comprises: obtaining a set of outputs derived from a convolutional layer of a first convolutional neural network that is used to generate the first reconstructed image; and combining the downscaled image and the degradation map with the set of outputs to generate the image difference, wherein the image difference represents a difference between the first reconstructed image and the downscaled image. encoding the downscaling kernel into a latent space to generate a latent representation of the downscaling kernel; generating a degradation map based on the latent representation of the downscaling kernel; and combining the downscaled image and the degradation map to generate the first reconstructed image; and characterized in that generating the image difference comprises: obtaining a set of outputs derived from a convolutional layer of a first convolutional neural network that is used to generate the first reconstructed image; and combining the downscaled image and the degradation map with the set of outputs to generate the image difference, wherein the image difference represents a difference between the first reconstructed image and the downscaled image. obtaining a set of outputs derived from a convolutional layer of a first convolutional neural network that is used to generate the first reconstructed image; and combining the downscaled image and the degradation map with the set of outputs to generate the image difference, wherein the image difference represents a difference between the first reconstructed image and the downscaled image.