1. A method comprising: receiving an image comprising pixels located in the image, each pixel having a pixel value indicative of how the pixel is displayed in the image; and for each respective pixel: determining multiple overlapping patches within the image, the multiple patches containing the pixel, using an image enhancement algorithm to determine a respective patch value for each patch of the multiple overlapping patches, each patch value providing update information for updating a respective subset of multiple pixels, each subset containing the pixel, identifying relevant patch values of the overlapping patches that provide information for updating the pixel, performing a pixel-specific thread process by a processor to determine an aggregate patch value based on the relevant patch values and to update the pixel value for the pixel based on the aggregate patch values.