3-
Error diffusion
Traditional error diffusion halftoning produces
high quality binary images from digital grayscale images. Error diffusion
shapes the quantization noise power into the high frequency regions where
the human eye is the least sensitive.
More precisely, the input image is compared to a threshold, and the quantization
error is used to modify the surrounding yet to be considered input values
as governed by the error filter.
This algorithm was first introduced by Floyd and Steinberg, who also proposed
the most common filter, shown in figure X.
The algorithm processes pixels in a raster order, so the only non-zero filter
elements are those in front and below the current pixel. As with all error
filters, the elements must sum to one. Several larger error filters have been
proposed that appear to create better looking images. However, the output
looks better because the filters tends to sharpen more ; areas of flat gray
tend to be less homogeneous than the original Floyd and Steinberg filter.
Another solution that has been investigated is to use a sharpening filter
as a pre-filter, which also introduces better looking images. Sometimes visual
artefacts occur, especially for medium gray levels. These drawbacks can be
cancelled by introducing two features : first, a less regular raster of the
image, and second, the add of noise to the filter coefficients. The result
of this modified error diffusion is shown in figure X.
Error diffusion may be extended to color images as well.
The easiest extension is generated by diffusing the error into separate color
channels independently. The result is pretty good, but we can see some undesirable
features, that could be reduced if we process the RGB values at the same time.
Indeed, the eye is more sensitive to achromatic high frequencies than to the
lower ones.
So the idea we want to exploit is to diffuse the error from each gun of
the pixel into not only neighbouring pixels of the same color, but also the
ones of different colors.
To obtain a true matrix linear color model, one needs to model the color
processing of the human visual system as a convolution with a matrix valued
coefficient. We use a pattern color separable model, which first transforms
devide-dependent RGB values into a space with basis functions represented
by the normalized color sensitivities of the three cone types. I used the
spectra provided in the tutorials for the power spectral densities of the
three display guns, along with the entire spectral responsivities of the LMS
cones. The transition matrix is the product of those spectra. Thus, each RGB
pixel value is transformed into the corresponding cone photoreceptor absorption
rate. The LMS coordinates are then transformed using a color transformation
into an opponent representation. The three opponent visual pathways are the
luminance (L+M+S), the red-green (L-M) and the blue yellow (L+M-S).
Then, we perform spatial filtering on each of these channel using a different
spatial filter on each channel.
A matrix valued filter can be obtained using this model and minimizing a
cost function of the visual distortion.
The matrix we used was taken from []. Here it is :
The following plots show the very good results of this method.