ALE
Image Processing Software

Deblurring, Anti-aliasing, and Superresolution.


Local Operation
localhost
5393119533

[ Up ]

High-Frequency Enhancement Renderer

The High-Frequency Enhancement Renderer is a built-in post-processing step based on the unsharp mask technique, which has been used to enhance high frequencies since the days of photographic plate processing (see, for example, this page). This renderer acts after all other rendering steps have completed, except for Irani-Peleg Iterative Image Reconstruction, which occurs afterward.

(The remainder of this text outlines version-specific information and offers no further justification for rendering predicates.)

Release 0.3.1

The filter in release 0.3.1 acts on a square region, centered on the pixel to be filtered, where the length of each side of the square is linear with the scale factor (arbitrarily selected to be 2.5 times the scale factor).  The pixel being filtered makes a positive contribution weighted with the total area of the filter region, and all pixels coincident with the filter region make a negative contribution weighted with the area in which the pixel is coincident with the filter region.

This filter was chosen primarily due to its implementation simplicity and also for its satisfaction of the following two criteria:

First, the filter value returned for a uniformly valued pixel array is zero.  Hence, when the pixels in the region of the filter support do not vary in value, the high-frequency filter returns zero.  This seems to be a reasonable requirement for a high-frequency filter.  

Second, the filter support for a pixel closely corresponding to given pixel in the original (unscaled) frame spans a region corresponding to a neighborhood of pixels in the original frame that is roughly independent of the scale factor.

In release 0.3.1, the filter result described above was divided by 100, so that an enhancement factor of 1.0 would look reasonable for an image that had been scaled up by a factor of 4. This division step is replaced by a more general and elegant normalization step in release 0.4.0.

Since this filter requires a square region of pixels centered on the pixel to be filtered, it cannot operate near the boundary of an image. We avoid this problem in release 0.3.1 by not filtering near the boundary of images.

Release 0.4.0 and later

The filter in release 0.4.0 was modified from the filter in release 0.3.1 in two ways:

First, the filter was extended to operate near the boundaries of an image. When necessary, the filter region is constrained so that it fits within the boundary of the image. (However, the notion of boundary used does not yet elegantly accommodate the non-rectangular boundaries that may occur when image extents are increased.)

Second, the filter was normalized so that the filtered pixel makes a positive contribution with unit (1) weight, and all pixels coincident with the filter region make a negative contribution with weight a/A, where a is the area in which the pixel is coincident with the filter region and A is the total area of the filter region.

This change provides the following nice property that did not hold for the filter in release 0.3.1:

Filtering and then scaling is almost the same as scaling and then filtering.

Hence, a given high-frequency enhancement argument in ALE will achieve roughly similar results regardless of scale factor. This behavior should be less surprising than the behavior in 0.3.1, in which merely increasing the scale factor argument could cause pixel values to become distorted as they eventually collided with the limits of the image format.


Copyright 2002, 2003 David Hilvert

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.