1. A system comprising: a data processing apparatus; and a non-transitory computer readable storage medium in data communication with the data processing apparatus and storing instructions executable by the data processing apparatus and upon such execution cause the data processing apparatus to perform operations comprising: upscaling a low resolution image with a first resolution that depicts particular content to a second resolution greater than the first resolution to create a first upscaled image; creating first pixel subsets of the first upscaled image, each subset in the first pixel subsets having a first size, each pixel in the first upscaled image included in a subset in the first pixel subsets; creating second pixel subsets of a high resolution image with a third resolution, greater than the first resolution, that depicts the particular content, each subset in the second pixel subsets having a second size, each pixel in the high resolution image included in a subset in the second pixel subsets, a quantity of the first pixel subsets being the same as a quantity of the second pixel subsets and each of the first pixel subsets corresponding to a respective one of the second pixel subsets; determining, for each subset in the first pixel subsets or for each subset in the second pixel subsets, a value of a property of the pixel subset; determining, for each subset in the first pixel subsets or for each subset in the second pixel subsets, a group of subsets to which the corresponding pixel subset belongs using the value of the property of the corresponding pixel subset, each pixel subset included in one and only one group; and determining, for each of the groups of subsets, a filter to apply to each of the first pixel subsets that correspond to the pixel subsets in the group to create a final pixel subset that approximates the corresponding second pixel subset using the first pixel subset, a combination of all of the final pixel subsets representing a second upscaled image.