Previous

Next

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.