A system for assessing image quality of a distorted image relative to a reference image, the system comprising: a trained convolutional neural network that accepts as an input the distorted image and the reference image, and provides as an output a metric of image quality; wherein the convolutional neural network comprises a plurality of layers; wherein the plurality of layers comprises: an input layer configured to apply a normalizing function to image patches making up each of the distorted image and the reference image to provide a normalized distorted image and a normalized reference image; and a convolution layer configured to convolve each of the normalized distorted image and the normalized reference image with N1 filters to provide N1 pairs of feature maps, each pair containing one filtered normalized distorted image and one correspondingly filtered and normalized reference image, where N1 is an integer greater than unity; wherein the plurality of layers further comprises: a linear combination layer configured to compute N2 linear combinations of the N1 feature maps provided from each of the normalized distorted image and the normalized reference image, providing N2 pairs of combined feature maps, each pair containing one combination of filtered normalized distorted images and one corresponding combination of filtered and normalized reference images, where N2 is an integer greater than unity; a similarity computation layer configured to compute N2 similarity maps, each similarity map based on corresponding pixels from a different one of the N2 pairs of combined feature maps; and a pooling layer configured to apply an average pooling for each of the N2 similarity maps to provide N2 similarity input values; and wherein the plurality of layers further comprises: a fully connected layer configured to act on the N2 similarity input values to provide M hidden node values, where M is an integer greater than N2; and a linear regression layer configured to map the M hidden node values to a single output node to provide the metric of image quality. a trained convolutional neural network that accepts as an input the distorted image and the reference image, and provides as an output a metric of image quality; wherein the convolutional neural network comprises a plurality of layers; wherein the plurality of layers comprises: an input layer configured to apply a normalizing function to image patches making up each of the distorted image and the reference image to provide a normalized distorted image and a normalized reference image; and a convolution layer configured to convolve each of the normalized distorted image and the normalized reference image with N1 filters to provide N1 pairs of feature maps, each pair containing one filtered normalized distorted image and one correspondingly filtered and normalized reference image, where N1 is an integer greater than unity; an input layer configured to apply a normalizing function to image patches making up each of the distorted image and the reference image to provide a normalized distorted image and a normalized reference image; and a convolution layer configured to convolve each of the normalized distorted image and the normalized reference image with N1 filters to provide N1 pairs of feature maps, each pair containing one filtered normalized distorted image and one correspondingly filtered and normalized reference image, where N1 is an integer greater than unity; wherein the plurality of layers further comprises: a linear combination layer configured to compute N2 linear combinations of the N1 feature maps provided from each of the normalized distorted image and the normalized reference image, providing N2 pairs of combined feature maps, each pair containing one combination of filtered normalized distorted images and one corresponding combination of filtered and normalized reference images, where N2 is an integer greater than unity; a similarity computation layer configured to compute N2 similarity maps, each similarity map based on corresponding pixels from a different one of the N2 pairs of combined feature maps; and a pooling layer configured to apply an average pooling for each of the N2 similarity maps to provide N2 similarity input values; and a linear combination layer configured to compute N2 linear combinations of the N1 feature maps provided from each of the normalized distorted image and the normalized reference image, providing N2 pairs of combined feature maps, each pair containing one combination of filtered normalized distorted images and one corresponding combination of filtered and normalized reference images, where N2 is an integer greater than unity; a similarity computation layer configured to compute N2 similarity maps, each similarity map based on corresponding pixels from a different one of the N2 pairs of combined feature maps; and a pooling layer configured to apply an average pooling for each of the N2 similarity maps to provide N2 similarity input values; and wherein the plurality of layers further comprises: a fully connected layer configured to act on the N2 similarity input values to provide M hidden node values, where M is an integer greater than N2; and a linear regression layer configured to map the M hidden node values to a single output node to provide the metric of image quality. a fully connected layer configured to act on the N2 similarity input values to provide M hidden node values, where M is an integer greater than N2; and a linear regression layer configured to map the M hidden node values to a single output node to provide the metric of image quality.