next up previous
Next: Comparisons and Conclusions Up: Error Diffusion Using Linear Previous: Other Applications of LPS

LPS Error Diffusion

By visiting the pixels uniformly all over the image, LPS allows us to diffuse the errors in all directions. For example, we can use the kernel which John Szybist investigated for his Computer Science Master's Project [3]:

 \begin{displaymath}
D_{\mathit LPS} = \frac{1}{32} \left[
\begin{array}{ccccc}...
... 2 & 3 & 2 & 1 \\
\ & 1 & 1 & 1 & \ \\
\end{array} \right]
\end{displaymath} (18)

and distribute the error of the processed pixel P to 20 of its neighbors.

In order not to lose any of the dispersed error, we need to keep track of any neighborhood of a zero value in T (a $5\times 5$ neighborhood in this case) and note the positions in the kernel corresponding to already quantized pixels. We thus update the diffusion kernel after each completed inner loop (the y-loop in our pseudocode), potentially replacing some non-zero coefficient with a zero and updating the divisor (initially 32 here) correspondingly.


  
Figure 4: The ramp rendered using LPS error diffusion.
\begin{figure}\begin{center}
\epsfig{file=lpsramp.ps, width=\ImageDim} \end{center} \end{figure}


  
Figure 5: Linear pixel shuffling error diffusion.
\begin{figure}\begin{center}
\epsfig{file=lpsHc1x150.ps, height=\ImageDim} \end{center}
\end{figure}

In addition to the Szybist filter (18) used for Figs. 4 and 5, we can use a wide variety of kernels; several are shown in Fig. 6.
  
Figure 6: A variety of kernels for LPS error diffusion.
\begin{figure}{\bf flat-3:}
\begin{tex2html_preform}\begin{verbatim}1 1 1
1 P 1...
... 1 1 P 1 1
0 0 1 0 0
0 0 1 0 0\end{verbatim}\end{tex2html_preform}\end{figure}

Ramps rendered using these kernels are shown in Fig. 7.
  
Figure 7: LPS error diffusion using kernels: flat-3, flat-5, flat-7, ring-5, ring-7, and cross.
\begin{figure}\begin{center}
\epsfig{file=flat3ramp.ps, width=\ImageDim}\epsfig{...
...th=\ImageDim}\epsfig{file=crossramp.ps, width=\ImageDim}\end{center}\end{figure}


next up previous
Next: Comparisons and Conclusions Up: Error Diffusion Using Linear Previous: Other Applications of LPS

2000-04-14