Simultaneous Individual and Coupled Error Diffusion

Information

  • Patent Application
  • 20070268525
  • Publication Number
    20070268525
  • Date Filed
    May 16, 2006
    18 years ago
  • Date Published
    November 22, 2007
    16 years ago
Abstract
A system for halftoning an color image that includes first and second primary colors is disclosed. The system includes a first input-dependent threshold generator that generates a threshold based on the first color. The system further includes a second input-dependent threshold generator that generates a threshold based on sum of the first color and the second color.
Description

BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram of an prior art apparatus that can implement an error diffusion halftone technique.



FIG. 2 is a block diagram of a printing system in accordance with one embodiment of the present invention for making a print decision based on a magenta input and a cyan input for a specific pixel location.



FIG. 3 is a block diagram of a printing system in accordance with one embodiment of the present invention for making a print decision based on a magenta input and a cyan input for a specific pixel location that includes only two error buffers.





DETAILED DESCRIPTION

It is to be understood that the invention is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the drawings. The invention is capable of other embodiments and of being practiced or of being carried out in various ways. Also, it is to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having” and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. Unless limited otherwise, the terms “connected,” “coupled,” and “mounted,” and variations thereof herein are used broadly and encompass direct and indirect connections, couplings, and mountings. In addition, the terms “connected” and “coupled” and variations thereof are not restricted to physical or mechanical connections or couplings.


In addition, it should be understood that embodiments of the invention include both hardware and electronic components or modules that, for purposes of discussion, may be illustrated and described as if the majority of the components were implemented solely in hardware. However, one of ordinary skill in the art, and based on a reading of this detailed description, would recognize that, in at least one embodiment, the electronic based aspects of the invention may be implemented in software. As such, it should be noted that a plurality of hardware and software-based devices, as well as a plurality of different structural components may be utilized to implement the invention. Furthermore, and as described in subsequent paragraphs, the specific configurations illustrated in the drawings are intended to exemplify embodiments of the invention and that other alternative configurations are possible.


The term output as used herein encompasses output from any printing device such as a copier, a printer, or a so-called “all-in-one device” which incorporates multiple functions such as scanning, copying, and printing capabilities in one device. Such printing devices may utilize ink jet, dot matrix, dye sublimation, laser, and any other suitable print formats.


One embodiment of the present invention is directed to halftoning an input image using error diffusion so that both the combined and individual color planes meet the pattern quality criteria. In one embodiment, at least two spread error weights and at least two thresholds are based on an input pixel value.


One embodiment of the present invention is based on the following ideas:


(a) The prior art combined color halftone method functions well to produce an optimal pattern of combined dot types. Embodiments of the present invention maintain this desired property. The combined color halftone method has a primary problem of determining how to make an optimal pattern of the sum of the number of dots from the individual dot planes, i.e., when to print a dot independent of the dot type, and a secondary problem of determining which of the dot types to print when it is determined to actually print one of the types of dots.


(b) The prior art standard error diffusion halftone algorithm functions well to produce a pattern of a single dot type. Embodiments of the present invention maintain this desired property to make a pleasing pattern of one, and possibly more, of the individual dot types.


A first embodiment of the present invention, therefore, includes two error diffusion mechanisms (i.e., two “spread” functions to maintain error) to satisfy the primary problem of determining when to print a dot independent of the dot type. The spread functions take as an input the sum of the number of drops in the individual dot planes.


In addition, a first embodiment of the present invention includes a third error diffusion mechanism to satisfy the secondary problem of determining which of the types of dots to print when it is determined to actually print one of the types of dots. The input of the third spread function is the number of drops of one of the individual planes. For example, if the drop types include cyan and magenta drops, and assuming that cyan drops are somewhat more visible than magenta drops, then the third spread function will have as an input the number of cyan drops to be printed to make an optimal pattern of cyan drops, subject to the constraint of making an optimal pattern of the total number of cyan and magenta drops. As another example, if the drop types include large and small drops, the third spread function will have as an input the number of large drops to be printed.



FIG. 2 is a block diagram of a printing system 60 in accordance with a first embodiment of the present invention for making a print decision based on a magenta input 30 and a cyan input 31 for a specific pixel location. System 60 includes two threshold generators 33 and 34, each of which is input-dependent (rather than constant) based on pixel input values 30 and/or 31 using known methods. One such example of an input-dependent threshold generator is disclosed in Ostromoukhov, “A Simple and Efficient Error-Diffusion Algorithm”, ACM Siggraph (Aug. 12-17, 2001) (“Ostromoukhov”). Threshold generator 33 receives as an input the sum of inputs 30 and 31 from adder 32 and outputs a “cyan+magenta threshold”, while threshold generator 34 receives cyan input 31 and outputs a “cyan threshold”.


System 60 further includes a pair of comparators 35 and 38. Comparator 38 compares an output of adder 55 (i.e., the sum of input cyan 31 and a previously calculated error diffusion value from an error buffer 52) with the cyan threshold. If the output of adder 55 is greater, comparator 38 outputs a “1” on output A. Otherwise, comparator 38 outputs a “0” on output A.


Comparator 55 compares an output of adder 36 (i.e., the sum of the outputs of adders 53 and 54) with the cyan+magenta threshold. If the output of adder 36 is greater, comparator 35 outputs a “1” on output B. Otherwise, comparator 35 outputs a “0” on output B.


An output decision unit 37 makes a decision to print or not print a cyan or magenta drop based on inputs A and B. A print decision of a cyan drop generates a 255 on output C, line 40, and a no print decision generates a 0 on output C. A print decision of a magenta drop generates a 255 on output D, line 41, and a no print decision generates a 0 on output D. Table 1 below discloses the outputs on C and D based on the inputs on A and B for one embodiment of output decision unit 37.














TABLE 1







A
B
C
D





















0
0
0
0



0
1
0
255



1
0
0
0



1
1
255
0










The outputs on C (i.e., 0 or 255) are subtracted in adders 42 and 43 from the outputs of adders 55 and 54, respectively. The outputs on D (i.e., 0 or 255) are subtracted in adder 55 from the outputs of adder 53, respectively. The outputs of adders 42-44 are then received by error weight application modules 45, 47 and 49, respectively. Weight generation module 46 generates spread error weight values to error weight application module 45. Weight generation module 48 generates spread error weight values to error weight application modules 47 and 49. Both error weight generation modules 46 and 48 are input-dependent. Weight generation module 46 uses cyan 31 as input, while weight generation module 48 uses the sum of cyan 31 and magenta 30 as input. An example of an input-dependent error weigh generation module is disclosed in Ostromoukhov.


The outputs of weight application modules 45, 47 and 49 are stored in error buffers 52, 51 and 50, respectively, to be used in spreading the error in the next pixel calculation.


In FIG. 2 three instances of diffusion are used so that three error buffers 50-52 are included to operate the three different spread functions. If memory is constrained, then as shown in FIG. 3, a second embodiment of the invention, one of the error buffers can be removed.



FIG. 3 is a block diagram of a printing system 70 in accordance with a second embodiment of the present invention for making a print decision based on a magenta input 72 and a cyan input 71 for a specific pixel location that includes only two error buffers. System 70 includes two threshold generators 74 and 75, each of which is input-dependent (rather than constant) based on pixel cyan and magenta input values 71 and/or 72 using known methods. Threshold generator 74 receives as an input the sum of inputs 71 and 72 from adder 73 and outputs a “cyan+magenta threshold”, while threshold generator 75 receives cyan input 71 and outputs a “cyan threshold”.


System 70 further includes a pair of comparators 78 and 79. Comparator 78 compares an output of adder 76 (i.e., the sum of input cyan 71 and a previously calculated error diffusion value from an error buffer 85) with cyan threshold. If the output of adder 76 is greater, comparator 78 outputs a “1” on output A. Otherwise, comparator 78 outputs a “0” on output A.


Comparator 79 compares an output of adder 77 (i.e., the sum of the outputs of adder 73 and an error buffer 86) with cyan+magenta threshold. If the output of adder 77 is greater, comparator 79 outputs a “1” on output B. Otherwise, comparator 79 outputs a “0” on output B.


An output decision unit 90 makes a decision to print or not print a cyan or magenta drop based on inputs A and B. A print decision of a cyan drop generates a 255 on output C, line 91, and no print decision generates a 0 on output C. A print decision of a magenta drop generates a 255 on output D, line 92, and a no print decision generates a 0 on output D. Table 2 below discloses the outputs on C and D based on the inputs on A and B for one embodiment of output decision unit 90.














TABLE 2







A
B
C
D





















0
0
0
0



1
0
0
0



0
1
0
255



1
1
255
0










In adder 80, the output on C (i.e., 0 or 255) is added to the output on D (i.e., 0 or 255). In adder 81, the output on C is subtracted from the output of adder 76. In adder 82, the output of adder 80 is subtracted from the output of adder 77. The outputs of adders 81 and 82 are received by error weight application modules 84 and 83, respectively. Two weight generation modules 87 and 88 generate spread error weight values to error weight application modules 84 and 83, respectively. Both error weight generation modules 87 and 88 are input-dependent. Weight generation module 87 uses cyan 71 as input, while weight generation module 88 uses the output of adder 73, the sum of cyan 71 and magenta 72 as input.


The outputs of weight application modules 83 and 84 are stored in error buffers 86 and 85, respectively, to be used in spreading the error in the next pixel calculation.


As disclosed, embodiments of the present invention allow both the combined and individual color planes to meet the pattern quality criteria. In general, embodiments of the present invention are similar to the prior art when deciding when to print a drop, but once it is decided to print a drop, use more intelligence in deciding what type of drop (i.e., cyan or magenta) to print.


The foregoing description of some embodiments of the invention has been presented for purposes of illustration. It is not intended to be exhaustive or to limit the invention to the precise steps and/or forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be defined by the claims appended hereto.

Claims
  • 1. An apparatus for halftoning an color image comprising first and second primary colors, said apparatus comprising: a first input-dependent threshold generator receiving the first color as a first threshold input; anda second input-dependent threshold generator receiving a sum of the first color and the second color as a second threshold input.
  • 2. The apparatus of claim 1, further comprising: a first input-dependent error weight generation module receiving the first color as a first error weight input; anda second input-dependent error weight generation module receiving the sum of the first color and the second color as a second error weight input.
  • 3. The apparatus of claim 1, wherein the first primary color is cyan and the second primary color is magenta.
  • 4. The apparatus of claim 1, further comprising: a first weight application module coupled to the first error weight generation module anda second weight application module coupled to the second error weight generation module.
  • 5. The apparatus of claim 4, further comprising: a third weight application module coupled to the second error weight generation module.
  • 6. The apparatus of claim 1, wherein the first and second primary colors each comprise eight bits.
  • 7. The apparatus of claim 1, further comprising a first comparator coupled to said first threshold generator and a second comparator coupled to said second threshold generator.
  • 8. The apparatus of claim 7, further comprising an output decision unit coupled to said first and second comparators, said output decision unit adapted to determine whether to print said first primary color and whether to print the second primary color based on outputs from said first and second comparators.
  • 9. A method of halftoning an color image comprising first and second primary colors, said method comprising: generating a first threshold based on the first color; andgenerating a second threshold based on a sum of the first color and the second color.
  • 10. The method of claim 9, further comprising: generating a first error weighting based on the first color; andgenerating a second error weighting based on the sum of the first color and the second color.
  • 11. The method of claim 9, wherein the first primary color is cyan and the second primary color is magenta.
  • 12. The method of claim 9, further comprising: comparing the first threshold with a sum of the first color and a first error value to generate a first comparison; andcomparing the second threshold with a sum of the second color and a second error value to generate a second comparison.
  • 13. The method of claim 12, further comprising determining whether to print said first primary color and whether to print the second primary color based on said first and second comparisons.
  • 14. The method of claim 10, further comprising: generating a first error spread by applying the first error weighting; andgenerating a second error spread by applying the second error weighting.
  • 15. The method of claim 14, further comprising: generating a third error spread by applying the second error weighting.
  • 16. A method of halftoning a color image comprising: calculating a first digital value for a first color and a second digital value for a second color of the color image;generating a first error weighting based on the first digital value; andgenerating a second error weighting based on the sum of the first digital value and the second digital value.
  • 17. The method of claim 16, further comprising: generating a first threshold based on the first digital value; andgenerating a second threshold based on the sum of the first digital value and the second digital value.
  • 18. The method of claim 16, wherein the first color is cyan and the second color is magenta.
  • 19. The method of claim 18, wherein the first digital value and the second digital value is eight bits.
  • 20. The method of claim 17, further comprising: determining whether to print a color drop; andif it is determined to print a color drop, determining whether to print the first color or the second color.