Deconvolution Basics

When an image is blurred, mathematically it is convolved with a point-spread function (PSF). This blurring can be removed through a process of deconvolution. A convolution can be calculated quite easily by taking the Fast Fourier Transform (FFT) of the image and the PSF, multiplying the two together pixel-by-pixel, and taking the inverse FFT. In principle, deconvolution can be performed in the same fashion by using division instead of multiplication. However this is not practical in reality due to the possibility of zeros in the PSF and strong noise amplification in areas where the values in the PSF is small.

Iterative methods such as Maximum Entropy and Lucy-Richardson deconvolution overcome this problem. An initial guess image is constructed, and then adjusted in a series of steps called iterations. These iterations continue until the process converges on a solution.

The iterative process is as follows: start with a guess, usually a blank image. Blur the ”guess” image using the point-spread function. Compare it against the original image, using statistical methods. Now adjust the ”guess” image using this information, creating a new ”guess”. Repeat the process until the image converges on the correct result.

The iterative process can be unstable, so it has to be controlled to prevent large excursions. This is done using constraints. The major difference between the various algorithms is the choice of constraints that are applied to the processing. Maximum Entropy Deconvolution, as the name implies, chooses the solution that has the maximum information theory entropy. This forces the solution to the maximum likelihood estimate. Lucy-Richardson has different but equally effective constraints.

The decision on when best to stop the iterations is a topic of ongoing debate. If the iterations are stopped too soon, the image is not sharpened completely. If the iterations are stopped too late, noise amplification becomes a problem. Since the user must make this decision, MaxIm DL shows the result of each iteration on the screen.