A simple solution is to use a system of linear equations.
Each row of a matrix is a linear equation, Ax = b
Each row contains kernel weightings A across the image X, B is the blurred pixel color.
The full matrix would be a terabyte, so take advantage of the zeros and use an efficient solve for X instead of inversion.
Enhance really refers to combining multiple images. (stacking) Each pixel in a low res image was a kernel over the same high res image. So undoing a 100 pixel blur is equivalent to combining 10,000 images for 100x super resolution.