Patent ID: 7480078

Claim:
A method for performing error diffusion, the method comprising: receiving a pixel intensity value for each pixel in an ordered set of pixels, wherein each pixel intensity value comprises a value within a range, wherein the range comprises a low value and a high value; receiving an initial error value; a computing using at least one processer, an ordered set of comparison values, wherein each comparison value corresponds to a pixel, wherein the comparison value corresponding to a pixel is equal to a sum of the initial error value and the pixel intensity values for each pixel up to and including the pixel in the ordered set of pixels; determining a pixel value for each pixel and an updated error value based on the comparison value for each pixel, wherein determining a pixel value for each pixel and an updated error value comprises: computing an ordered set of thresholds, wherein the number of thresholds in the ordered set of thresholds equals the number of pixels in the ordered set of pixels, wherein the first threshold equals an average of the low value and the high value, wherein each subsequent threshold equals the sum of the preceding threshold in the ordered set and the high value, and for each pixel: determining whether the comparison value corresponding to the pixel is greater than each of the thresholds in the ordered set of thresholds having a order less than or equal to the order of the comparison value, assigning a high value to the pixel value for the pixel if, for each difference in order between the comparison value corresponding to the pixel and the highest threshold exceeded by the comparison value corresponding to the pixel, a comparison value of lower order than the comparison value corresponding to the pixel is less than a threshold having an order between the threshold exceeded by the comparison value corresponding to the pixel and the first threshold, inclusive, and otherwise, assigning a low value to the pixel value for the pixel; and generating an output image based on the pixel values.