The present invention generally relates to methods, systems and computer program products for error diffusion, and for example, to methods, systems and computer program products for error diffusion based on Kueppers' color separation and halftoning methods.
Printing with three subtractive primary colors cyan, magenta, yellow plus black is standard in today's printing technology, and is usually referred to as CMYK-printing. (The color black is usually abbreviated by the letter “K”, which stands for “key”.) In order to mix the subtractive colors on the paper, ink dots are deposited on the paper thereby yielding partially overlapping color dots. In the overlapping regions, each color dot represents a filter according to the rules of subtractive color mixing, so that cyan and magenta yields a blue color, cyan and yellow yields a green color and magenta and yellow yields a red color. Subtractive color mixing is also referred to as physical color mixing, since each of the colors cyan, magenta and yellow acts as a filter overlay. Cyan filters out red light from the spectrum of white light, magenta filters out green light and yellow filters out blue light. It is noted that red, green and blue are the primary colors of additive color mixing as used e.g. in color television. In non-overlapping regions, cyan, magenta, and yellow act as additive (more precisely: optical) colors. The idea of printing small dots or other geometrical surfaces of primary colors within a small pixel area on a print medium to obtain any color instead of printing a solid area with said color is referred to as “halftoning” which has the advantage that only a small set of different inks is used, less ink is used (since in many halftoning techniques, parts of the image remain unprinted) and that therefore the paper does not become saturated compared to the usage of the solid color areas.
However, it has been observed that the colors of the colors red, green and blue cannot be reproduced very brightly by means of the three subtractive primary colors. Therefore, Harald Kueppers devised a color separation which is based on the colors cyan, magenta and yellow on the one side, red, green and blue on the other side, and the colors black and white. This color separation and the printing technique based on it are described e.g. in U.S. Pat. No. 4,812,899 and U.S. Pat. No. 4,878,977. Starting from a red, green and blue representation of a pixel color, Kueppers transforms this representation by means of what he refers to as “integral color mixing” into a representation in which a pixel is represented by juxtaposed non-overlapping solid elemental surfaces—a surface of one color of the three additive primary colors appears, a surface of one color of the three subtractive primary colors appears (chromatic component of the pixel), and a black surface and a white surface (achromatic component of the pixel). Although Kueppers' seven-color printing offers considerable advantages over traditional four color CMYK printing, his method has found little or no practical application in analog or digital printing, probably due to the difficulty of generating the required color separations at sufficiently high resolution, and the corresponding printing processes with sufficiently high resolution color to color registration accuracy.
A method is provided of reproducing continuous tone pixel colors of a color image having many pixels based on Kueppers' device states. The Kueppers' device states of a printing device are the printed pixel colors that are allowed based on Kueppers' color separation and halftoning. The method includes selecting a Kueppers' device state in the proximity of a continuous tone pixel color to be reproduced from the printing device's set of Kueppers' device states, printing the Kueppers' device state, and diffusing an error between the continuous tone pixel color and the selected Kueppers' device state to one or more pixels in the neighborhood.
According to another aspect, a printing device is provided which includes a controller for performing a method of reproducing continuous tone pixel colors of a color image having many pixels based on Kueppers' device states. The Kueppers' device states of a printing device are the printed pixel colors that are allowed based on Kueppers' color separation and halftoning. The method includes selecting a Kueppers' device state in the proximity of a continuous tone pixel color to be reproduced from the printing device's set of Kueppers' device states, printing the Kueppers' device state, and diffusing an error between the continuous tone pixel color and the selected Kueppers' device state to one or more pixels in the neighborhood.
According to still another aspect, a computer program product is provided which is either in the form of a machine-readable medium with program code stored on it, or in the form of a propagated signal including a representation of program code. The program code is arranged to carry out a method, when executed on a computer, of reproducing continuous tone pixel colors of a color image having many pixels based on Kueppers' device states. The Kueppers' device states of a printing device are the printed pixel colors that are allowed based on Kueppers' color separation and halftoning. The method includes selecting a Kueppers' device state in the proximity of a continuous tone pixel color to be reproduced from the printing device's set of Kueppers' device states, printing the Kueppers' device state, and diffusing an error between the continuous tone pixel color and the selected Kueppers' device state to one or more pixels in the neighborhood.
Other features are inherent in the methods and products disclosed or will become apparent to those skilled in the art from the following detailed description of embodiments and accompanying drawings.
Embodiments of the invention will now be described, by way of example, and with reference to the accompanying drawings, in which:
a depicts reflectance behavior of three subtractive primary colors and three additive (optical) primary colors which are used in Kueppers' color separation;
b shows reflectance behavior of the achromatic colors black and white which are used in Kueppers' color separation;
a illustrates the principle of a halftoning technique proposed by Kueppers for his color separation;
b illustrates the principle of amplitude modulation halftoning for a CMY color printer;
c illustrates the principle of frequency modulation halftoning for a CMY color printer;
The drawings and the description of the drawing are of embodiments of the invention and not of the invention itself.
In some of the embodiments, continuous tone pixel colors of a color image having many pixels based on Kueppers' device states are reproduced. The Kueppers' device states of a printing device are the pixel colors that are reproducible by the printing device based on Kueppers' color separation and halftoning. The method includes selecting a Kueppers' device state in the proximity of a continuous tone pixel color to be reproduced from the printing device's set of Kueppers' device states. Then, the Kueppers' device state is printed, and an error between the continuous tone pixel color and the selected Kueppers' device state is diffused to one or more pixels in the neighborhood.
In some of the embodiments, the continuous tone pixel color to be reproduced is an original pixel color of the color image, or an original pixel color of the color image in combination with an error diffused from pixels already visited. In some of the embodiments, this combination is implemented by adding an error from pixels already visited to the original pixel color.
The term “pixel” as used herein refers to a color separation which is defined by means of primary color components. A color separation indicates which percentages of the primary colors are needed to represent any color. A color separation can be implemented, for example, on a color monitor; then the percentages indicate how intensely the red, green, and blue phosphors on the inner side of a screen are excited. A color separation may also be implemented by printing techniques. Then, the percentages indicate the sizes of areas (coverages) of a small area (pixel area) that are to be covered with dots of primary colors (e.g. cyan, magenta and yellow) to obtain a color impression in the eye of the observer. This effect only occurs, if the observer looks at the dots from a sufficiently large distance. The implementation of a color separation by means of dots of primary colors is referred to as halftoning.
The term “continuous tone pixel color” refers to a color separation in which, for example, as many color tones may be represented as are distinguishable by a human observer. For example, an RGB-separation with 8-bits for each of the primary colors may provide as many color tones as are distinguishable by the human eye. A “continuous tone pixel color” is a point of the image to be reproduced or it is a color of the image to be reproduced in combination with an error diffused from pixels already visited.
In some of the embodiments, the pixels in the neighborhood of a pixel currently visited are the pixels directly to the left, to the right, above and below the pixel currently visited.
It is noted that, in other embodiments, the term “neighborhood” of a pixel does not only refer to pixels which are directly adjacent to the pixel which is currently visited, but also to pixels which are within a predetermined distance from the pixel currently visited. As mentioned above, in some of the embodiments, the error is diffused to one neighboring pixel only. This may be performed, for example, preferably in combination with a randomization, in which in each error diffusion step, one of the neighboring pixels is randomly selected.
The wording “a Kueppers' device state in the proximity of a continuous tone pixel color” is to be understood in the sense that the Kueppers' device state is close to the continuous tone pixel color in terms of the optical impression yielded by the two different points in the color space in which the color reproduction method according to embodiments of the invention is performed. In the CIE-LAB color space, for example, two color points are the more optically close, the smaller is the Euclidean distance between them. However, in an eight-dimensional device space (=ink color space) according to Kueppers' color separation, two points may belong to the same optical impression although their Euclidean distance is unequal to zero.
To ensure understanding of the principle of Kueppers' color separation, the terms (a) “additive”, (b) “optical”, and (c) “subtractive” color mixing will be elucidated below.
a) Additive color mixing refers to the mixing of beams of light with photons of certain wavelengths. The color receptors in the human eye, called cones, carrying pigments, are stimulated by certain spectra of light. The peaks of these stimulations (absorption) are approximately in the short-wave sector at 419 nm (blue pigment), in the middle-wave sector at 531 nm (green pigment) and in the long-wave sector at 558 nm (red pigment). By stimulating the cones with beams of light of different intensities of these wavelengths, all color impressions can be obtained. It should be mentioned, however, that the absorption-schemes of the color pigments of the cones, and therefore their excitation, are correlated which means that by stimulating a cone with green light, also the blue cone pigment is excited.
b) Optical color mixing refers to printing technology, and features printing colors dots so closely next to each other that the observer gets, from a certain distance, due to the limited resolution of his/her eyes the impression that s/he actually perceives one (mixed) color instead of two different colors (coming from two close but locally different places). Thereby, the color impression only occurs in the observer's eye, whereas in additive color mixing, a stream of mixed photons actually excites the eye's color receptors. The primary colors in optical mixing are the same as the primary colors of additive mixing: red, green and blue.
c) Subtractive color mixing also refers to printing technology, but to the physics of color ink. The three primary colors in subtractive color mixing are cyan, magenta and yellow. By printing these colors one above the other, all color impressions can be obtained. To understand this phenomenon, one has to be aware that colors printed on a piece of paper, being irradiated with white light (=a complete spectrum of visible colors), absorb some parts of the spectrum, whereas other parts are reflected and stimulate the pigments in the cones in the eye of the observer. For example, the color cyan absorbs all red parts of the light spectrum and reflects the blue and green parts of the spectrum. Cyan may therefore be referred to as a “long-wavelength subtractor”. Magenta absorbs green parts of the spectrum and is therefore a “medium-wavelength subtractor”, while it reflects the red and blue parts of the spectrum. Yellow is a “short-wavelength-subtractor” or a blue subtractor.
When a cyan dot is printed on top of a magenta dot, both the red parts of the spectrum and green parts of the spectrum are absorbed so that only blue light is reflected. This means that both color dots behave as a filter. However, the blue color obtained is in most cases not a very saturated blue, since a broad range of the white light spectrum is still reflected. Since a broad range of the spectrum is reflected, the color appears bright.
The spectrum of the primary colors of optical mixing is narrower than the spectrum of the subtractive primary colors. If a red dot is printed on top of a green dot, the color obtained would be black, since the red dot only reflects red parts of the spectrum and the green dot only reflects green parts of the spectrum. When one dot is printed on top of the other, then all light is absorbed and no light is reflected, which corresponds to the color black. However, when red and green color dots are printed next to each other, in a non-overlapping printing mode, the color impression obtained in the eye is not yellow, since the green and red color spectrum refer to narrow color spectra, so that the printing of a green dot next to a red dot would lead to a dark color since only small parts of the spectrum are reflected.
Kueppers' color separation, which is also referred to as “integral color mixing” by himself, uses the primary colors of subtractive color mixing (cyan, magenta and yellow) and the primary colors of optical color mixing (red, green and blue). However, the colors are not printed on top of each other, which means that the color mixing is not subtractive but is, in fact, an optical color mixing which, besides the original optical primary colors, also uses the subtractive primary colors, like in optical mixing, by printing them next to each other. Furthermore, the achromatic colors black and white are used. Since the subtractive primary colors (reflecting large parts of the spectrum) are printed next to each other, they enable bright colors to be printed. Therefore, the optical primary colors only need to be used to reflect the surplus between a dominant additive color (the color with the highest percentages) and a second-dominant optical primary color (the color with the second highest percentages) is obtained, which will be explained below. In essence, the deficit of color mixing based on the optical primary colors red, green and blue and their darkness due to the low reflectance of these colors is compensated by the high reflectance of the colors cyan, magenta and yellow, which means that brighter colors can be printed. On the other hand, the deficit of color mixing based on the subtractive primary colors cyan, magenta and yellow leading to desaturated gray colors is compensated by the saturated colors red, green and blue. Thereby, the synthesis of subtractive and optical primary colors in combination with the achromatic colors black and white as devised by Kueppers leads to an enlarged color gamut in comparison to printing with the colors cyan, magenta and yellow only.
For the implementation of Kueppers' color separation on a printing device, Kueppers' also describes a halftoning procedure, in which a pixel color is represented by dividing a pixel area of an image into juxtaposed, substantially non-overprinted elemental areas which form a chromatic and an achromatic component. The chromatic component of said pixel area is further divided into juxtaposed rectangular sub-sections and each of the sub-sections is printed with only one color. The sub-sections of said elemental areas which form the chromatic component are printed with at most one of three optical primary color inks and at most one of three subtractive color inks. The relative sizes of white and black elemental areas are varied according to the achromatic component of the color.
In Kueppers' halftoning technique, the elemental areas are represented as solid areas, which means that they are completely filled with ink color. As mentioned above, the subsections of the elemental areas are juxtaposed substantially in a non-overprinted area.
Incidentally, Kueppers' halftoning is a continuous technique in that the sub-sections may have areas from a continuous set of possible area sizes. In this aspect, Kueppers' technique resembles an amplitude modulation halftoning which will be explained below (cf.
In some of the embodiments, Kueppers' color separation and halftoning is used as a basis to define a discrete set of Kueppers' state devices.
The term “device state” refers to a printed pixel color which is directly reproducible by a printing device. This means that “device states” are colors (or color impressions) that a reproducible on a pixel-level, whereas other colors may only be reproduced “indirectly” by putting several pixels (represented as device states) next to each other and obtaining an average of the pixel colors in the eye of the observer from a sufficiently large distance. An error diffusion is needed to get “in the average” the continuous pixel color to be reproduced. Typically, a continuous tone color is represented as an RGB-value with three 8-bit values, resulting in 2563=16,777, 216 possible colors. However, not all of these colors may be reproduced directly as a device state.
The term “Kueppers' device state” refers to a printed pixel color which is directly reproducible by a seven-color printing device in which colors are represented according to Kueppers' color separation and halftoning. In the following, four different implementations of Kueppers' device states will be explained:
Single-color device states:
a) In some of the embodiments, a “Kueppers' device state” is a dot of one of the colors white, black, cyan, magenta, yellow, red, green, and blue. The dots are printed next to each other with substantially no space between them. In these embodiments, a pixel corresponds to a dot.
b) In other embodiments, a pixel representing a Kueppers' device state is made up of dots which are printed next to each other with substantially no space between them, whereby all dots of one pixel have the same color. The colors are those colors which are provided as inks in the seven-color printing device, i.e. the colors used in Kueppers' color separation, namely cyan, magenta, yellow, red, green, blue, black and white. In some of the embodiments, the color white is not implemented as an ink, but is represented as the white of the paper on which the pixel is printed. However, since the device states in the implementation b) include more dots than in the implementation a), the image to be reproduced will appear coarser.
Multi-color device states:
c) In other embodiments, the Kueppers' device states are pixels represented as a 2×2 sub-pixel matrices, whereby each of the four sub-pixel is a dot. The dots are printed next to each other with substantially no space between them. In these embodiments, a sub-pixel corresponds to a dot.
d) In yet other embodiments, the Kueppers' device states are pixels represented as a 2×2 sub-pixel matrices, whereby each sub-pixel is made up of several dots. All dots of one sub-pixels have the same color. In some of the embodiments, all sub-pixels have the same size (=the same number of dots). However, since these device states are larger than those of c), the image to be printed will appear coarser. The dots are printed next to each other with substantially no space between them.
In the implementations c) and d), one sub-pixel (typically the north-east sub-pixel) is made up of dots of an optical primary color, one sub-pixel (typically the south-west sub-pixel) is made up of dots of a subtractive primary color, one sub-pixel (typically the north-west sub-pixel) is made up of white dots (or is left unprinted), and one sub-pixel (typically the south-east sub-pixel) is made up of black dots. However, the dots of the four sub-pixels may also be of the same color, e.g. all dots of the pixel may be cyan, magenta, black, red, etc.
Pixels are also admissible, in which e.g. two or three sub-pixels are made up of dots all having the same color, and the remaining sub-pixel(s) has/have a different color. However, according to Kueppers' color separation, it is not allowed to use two or three different primary optical colors, or two or three different primary subtractive colors within one 2×2 sub-pixel matrix. The term “Kueppers' device state” also implies that no dots are printed on top of each other. Without departing from the scope of the invention, it may happen, however, that dots are accidentally printed on top of each other due to mechanical imprecisions of the printing device or low viscosity of the inks. However, this printing on top of each other is undesired.
The expression “a printed pixel color allowed based on Kueppers' color separation and halftoning” therefore denotes that colors used within a pixel are in accordance to Kueppers' color separation (cf.
It should be mentioned that in Kueppers' (continuous) halftoning technique, the pixel is divided in sub-areas in a continuous way which reminds one of an amplitude modulation halftoning, whereas in some of the embodiments, the number of the sub-pixels per pixel is always four, whereby all four sub-pixels have the same size. However, these four sub-pixels may be of different colors e.g. (2 sub-pixels red, 2 sub-pixels white or 3 sub-pixels black, 1 sub-pixel green, etc.). This is similar to a frequency modulation halftoning technique (cf.
In contrast to traditional halftoning techniques (cf.
In some of the embodiments, a continuous tone pixel color is printed by the seven-color printing device. However, for reproduction purposes only the set of Kueppers' device states is available. Hence, a device state in proximity of the continuous tone pixel color is determined. In some of the embodiments, this selected device state is the closest device state with regard to the continuous tone pixel color. The term “closest”, however, only has a meaning with regard to a metrics defined in the color space in which the error diffusion is performed.
As mentioned above, the printed pixel colors which can be printed by a particular printer are sometimes referred to as its palette of colors or device states. Typically, the number of RGB-colors that can be generated by a computer and displayed on the computer's display screen is much more than the palette of colors available for a particular printer. Thus, there will typically be some error between the printed color pixel and the ideal continuous color pixel generated by the computer for that pixel. Using error diffusion halftoning techniques, the error between the actual color to be printed by the printing device and the continuous tone pixel color is dispersed to nearby pixels. The colors then printed in those nearby pixel positions will compensate for the tone errors in other nearby color pixels so that the overall tone in an area closely matches the true RGB tone generated by the computer.
To this end, in some of the embodiments, error diffusion is performed in a perceptually linear color space which means that a color in the middle between two other colors is perceived as being in the middle between these two colors. It is mentioned that a CMYK color space of a printer usually does not have this property. Two color spaces which may be used to perform the error diffusion are the CIE-LAB-color space and the LUV-color space which both are perceptually linear.
Therefore, in some of the embodiments, as a first step, all continuous tone pixel colors of the color image are transformed into color values of a perceptually linear color space in which the Kueppers' device states are also indicated.
In other embodiments, the continuous pixel colors and the Kueppers' device states are represented in an eight-dimensional Kueppers' device color space. This color space is partitioned into three-dimensional sub-spaces (at least four out of the eight components are set to zero, the sum of components adds up to 100%). However, there are also points within the entire eight-dimensional space which are not within one of the sub-spaces and are therefore inadmissible (e.g. since they have two subtractive color components unequal to zero). These points need to be reduced to admissible points which will be explained below (see description of
In embodiments with single-color device states, selecting a device state in the proximity of a continuous tone pixel color is selecting the device state corresponding to the largest color component of the continuous tone pixel color.
In some of the embodiments, an error diffusion is performed according to Floyd-Steinberg's error diffusion scheme.
In some of the embodiments, the error between the continuous tone pixel color and the selected Kueppers' device state is an error vector which represents the difference between the continuous tone pixel color and the selected Kueppers' device state.
In some of the embodiments of a single-color device state, the device state selected in the proximity of the continuous pixel color is the device state having the color of a largest component of the continuous pixel color.
In other embodiments, a preprocessing is performed in the perceptually linear color space in which a Voronoi diagram is calculated with regard to the Kueppers' device states. This enables an efficient calculation of closest device states during the error diffusion procedure.
For any topologically discrete set S of points in Euclidean space (here: CIE-LAB-color space), the Voronoi diagram with regard to the set S (device states) represents all points of the Euclidean space that have a smallest distance to at least two points of S. To put it another way, a Voronoi diagram of a set of “sites” is a collection of regions that divide up the plane. Each region corresponds to one of the “sites”, and all the points in one region are closer to the corresponding site than to any other site.
After having calculated the Voronoi diagram for the set of device states, the closest device state for the color to be reproduced can be determined efficiently.
This color is printed and the error is diffused to pixels in the neighborhood in the image.
In some of the embodiments, the continuous tone pixel color is stored as possible 256 tone levels (8-bit) for each of the colors red, green and blue. To reduce the storage requirement, these colors may be mapped onto a reduced set of tone levels by means of look-up tables. These look-up tables contain the 256 tone colors and the reduced tone colors. These colors are referred to as “major entries”. An error between the continuous tone pixel color and the major entry is referred to as e1. In a second step, the Kueppers' device state closest to the determined “major entry” is figured out by means of device state look-up tables, and the error between the Kueppers' device state and the determined “major entry” is referred to as e2. The overall error between the continuous tone pixel color and the Kueppers' device state is then calculated by e=e1+e2.
In some of the embodiments, different look-up tables are provided for different media.
Some of the embodiments refer to a printing device that includes a controller for reproducing continuous tone pixel colors by means of Kueppers' device states. The reproduction of the continuous tone pixel color is performed in accordance with the embodiments described above.
Some of the embodiments of the computer program product with program code for performing the described methods include machine-readable medium that is capable of storing or encoding the program code. The term “machine-readable medium” shall accordingly be taken to include, for example, solid state memories, and, removable and non-removable, optical and magnetic storage media. In other embodiments, the computer program product is in the form of a propagated signal comprising a representation of the program code, which is increasingly becoming the usual way to distribute software. The signal is, for example, carried on an electromagnetic wave, e.g. transmitted over a copper cable or through the air, or a light wave transmitted through an optical fiber. The program code may be machine code or another code which can be converted into machine code, such as source code in a multi-purpose programming language, such as e.g. C, C++, Java, C#, etc. The embodiments of a computer system may be commercially available general-purpose computers programmed with the program code.
Returning now to
The printer 1 includes a printer controller 12 which receives coded signals from computer 10 and provides firing signals to the print cartridges 6 to print color dots. The print cartridges may print at 300 dots-per-inch (dpi), 600 dpi, or any other resolution. If multiple drops of the same color area are to be deposited over the same pixel position (or dot position) to print a multi-drop ink spot on a medium, the carriage containing print cartridges 6 may make multiple scans across the medium to print such overlapping dots.
The techniques described herein for converting an RGB image generated by computer 10 to ink droplets ejected from print cartridges 6 may be implemented using a combination of hardware and software, where portions of the hardware/software are incorporated in computer 10 and other portions located in printer 1. The location of the hardware/software for carrying out this method is a matter of design choice.
a refers to typical reflectance diagrams of additive (optical) and subtractive primary colors used in Kueppers' color separation for the chromatic component. The left column of
The top diagram in the left column shows that the color cyan, when irradiated with white light (=the whole visible spectrum), reflects the blue parts and the green parts of the spectrum, but absorbs the red parts. Therefore, cyan is also referred to as a long-wavelength subtractor. There are two graphs indicated in the diagram, one graph 31 refers to an ideal developing of reflectance value, whereas the other graph 30 indicates the actual developing of reflectance values for a typical cyan ink used for color printing. The color cyan excites the color receptor for blue and green at the same time.
The second diagram in the left column shows that the color magenta reflects short wavelengths, and long wavelengths, but absorbs medium wavelengths in the green part of the spectrum when irradiated with white light. It should be mentioned that the short wavelengths (400 to 500 nm) are reflected less than the long wavelengths (600 to 700 nm). Again, two graphs of reflectance values are given. One graph 33 refers to an ideal magenta, whereas the other graph 32 indicates the reflectance of a typical magenta ink used in color inkjet printers. The color magenta excites the color receptor for red and blue at the same time.
The third diagram in the left column refers to reflectance behavior of the color yellow. One graph 34 indicates the reflectance percentages of a yellow ink used in color inkjet printers, whereas graph 35 illustrates ideal reflectance percentages. The blue parts (400 to 500 nm) of the spectrum are absorbed, while the green (500 to 600 nm) and red parts (600 to 700 nm) of the spectrum are reflected. The color yellow excites the color receptor for green and red at the same time.
The right column shows additive (optical) primary colors as used in Kueppers' color separation. However, although the red, green and blue are usually referred to as complementary colors to cyan, magenta and yellow, the red, green and blue have a much narrower reflectance spectrum than is absorbed by the corresponding complementary color. As will be explained below, the subtractive mixture of cyan and magenta yields blue. However, this blue reflects large parts of the white light and is therefore not a saturated blue since it excites more than the blue color receptor in the eye. The reflectance spectrum shown in the right column, however, refers to a saturated (pure) blue, since only wavelengths around 419 nm are reflected and these wavelengths only excite the blue receptor in the human eye. This color cannot be obtained by subtractive primary colors.
The top diagram in the right column shows a reflectance spectrum (graph 36) for the color red. Wavelengths around 558 nm, which only excite the red color receptor in the human eye, are reflected. The rest of the spectrum is absorbed. Graph 37 refers to an ideal red color, which reflects all wavelengths greater than 600 nm and absorbs all shorter wavelengths. The red color corresponding to the reflectance graph 36 only excites the color receptor for red in the human eye.
The second diagram in the right column illustrates a reflectance spectrum for the color green. Only wavelengths around 531 nm are reflected, whereas all other wavelengths are absorbed, as indicated by graph 38. This color only excites the green color receptor in the human eye. Due to the narrowness of the reflectance spectrum, the green color characterized by the reflectance spectrum appears dark.
The third diagram in the right column illustrates a reflectance spectrum for the color blue. Only wavelengths around 419 nm are reflected, whereas all other wavelengths are absorbed. This color only excites the blue receptor in the human eye. Since, however, the reflectance spectrum 40 is quite narrow, the blue color is rather dark.
b illustrates the reflectance behavior of the achromatic colors black and white which are also used in Kueppers' color separation.
The color white, indicated by graph 42, is usually represented by the paper on which the other colors are printed. Ideally, the white paper reflects all wavelengths of the white light. In contrast, the color black, indicated by graph 43, absorbs all colors. It does not reflect any wavelengths.
On the right side of
The principles of different halftoning procedures are elucidated by means of
a illustrates a halftoning technique to represent a color according to Kueppers' color separation. This halftoning technique starts from an RGB-color separation of a pixel.
The upper part of
A second example is given in which a color (50% red, 0% green, 30% blue) is to be reproduced by means of Kueppers' halftoning. First, the color is represented in Kueppers' color separation. The maximum percentage value all colors have in common is 0%. Therefore, the color white does not appear in Kueppers' color separation. Next, the difference is calculated between the dominant color and the second-dominant color. This difference is 20%. Therefore, 20% out of 100% are reserved for red in the Kueppers' color separation. There are 30% remaining for the colors red and blue. The mixture of these two colors yields the color magenta, so that 30% are reserved for magenta. To obtain the complete 100%, 50% are still missing. These 50% are filled with the color black. This color is represented in Kueppers' halftoning as an area of 20% for the color red, an area of 30% for the color magenta, and 50% of the pixel area is filled with the color black. Again, all solid color areas are printed next to each other, so that no overlapping occurs.
In the halftoning procedures illustrated in
b refers to traditional amplitude modulation halftoning based on the subtractive primary colors cyan, magenta and yellow. In each pixel, which corresponds to a certain surface which is supposed to generate a color impression in the eye of the observer, three dots (one cyan dot, one magenta dot and a yellow dot) of different sizes are printed. The dots partially overlap. In the overlapping portion, the principles of subtractive color mixing apply, in which the colors act as filters, whereas in the non-overlapping portions, the principles of optical color mixing apply which means that each of the colors cyan, magenta and yellow excites two color receptors in the human eye. Amplitude modulation halftoning could also be used with regard to Kueppers' color separation for a seven-color printer. However, since the non-overprinting property is violated by the amplitude modulation halftoning, several of the core advantages of the Kueppers' method, viz. maximal color gamut, reduced ink limits and derived benefits are given up. For each of the individual colors cyan, magenta and yellow, an extra dot raster is calculated, and the dot rasters are displaced with certain offset angles, e.g. yellow=0°, cyan=75°, black=135°, and magenta=15°. The rasters are printed on top of each other, whereby the dots partially overlap as shown in
c refers to frequency modulation halftoning based on the subtractive primary colors cyan, magenta and yellow. Each pixel contains a certain number of dots. A certain number of dots is printed in cyan, magenta and yellow according to which pixel color is to be printed. It should be mentioned that all dots have the same size, and only the number of dots varies within one pixel area to obtain a color impression. This is in contrast to amplitude modulation, where the dots vary in size. Frequency modulation halftoning could also be used with regard to Kueppers' color separation for a seven color printer. However, since the non-overprinting property is also violated by the amplitude modulation halftoning, several of the core advantages of the Kueppers' method, viz. maximal color gamut, reduced ink limits and derived benefits are surrendered.
Alternatively, instead of nine dots, as shown in
It should be mentioned that the error diffusion procedure presented below is illustrated in the CIE-LAB color space in
The device-dependent color space is an eight dimensional color space being partitioned into three-dimensional sub-spaces (at least four components are required to be set to zero, the sum of components adds up to 100%) arranged within the eight-dimensional color space which cannot be visualized since it is inaccessible to human's spatial sense. It may occur within the procedure 30 described below that one sub-space is left, and a point is reached having more than four components unequal to zero. Then, this point which is referred to as “inadmissible” may be reduced to an “admissible” point having at least four coordinates unequal to zero. This reduction may be performed by simplifying the minimum amount of the three optical primary colors to white, and the minimum amount of the three subtractive colors to white. Each two optical primary colors may be replaced with a subtractive color, and each two subtractive colors may be replaced with the color white plus an optical primary color. One may also develop the idea that the entire eight-dimensional color space is partitioned into equivalence classes, whereby each equivalence class has one representative which is admissible (at least four components are unequal to zero, the components add up to 100%); all the other members of the equivalence class (which are inadmissible) may be reduced to that representative. Incidentally, all members of one equivalence class refer to the same optical impression (although their Euclidean distance is unequal to zero). E.g. an inadmissible color only having a red and green component may be reduced to an admissible color with a yellow and black component, according to the rules of Kueppers' color separation.
Alternatively, if an inadmissible point is obtained within the procedure, one may also distribute some of the (more than four) components unequal to zero to components of neighboring primary colors to reach an admissible point within one of the subspaces in the device color space. If the sum of components of a color is larger than 100%, one may multiply all the individual components with the same factor, so that the sum of components becomes 100%. It should be mentioned that the reduction above is afflicted with an error which may also be error diffused. Of course, other projections of an inadmissible point onto an admissible point are also conceivable. Furthermore, it is also possible to switch from the eight-dimensional device space back into the three-dimensional RGB color space.
However, reductions of inadmissible points also need to be performed if the error diffusion is performed in a device-independent color space, e.g. if a color obtained during the error diffusion is out of the gamut of the printing device.
The error diffusion starts with the leftmost pixel of the first row. Its LAB-values are (60/40/50). This pixel is also indicated in the CIE-LAB-color space of
Δ{right arrow over (E)}
c=cont_pixel_color−closest—K·s′_device_state
In the example of
The neighboring pixels of pixel (1,1) are the pixels (1,2), (2,2) and (2,1). Hence, a third of the error vector is added to the continuous tone pixel color of the neighboring pixel. Looking at pixel (1,2), the original LAB-color values (5/30/40) are put in brackets. This value is corrected by the error diffused to pixel (1,2) which is only the error Δ{right arrow over (E)}111, since no other error diffuses its error to pixel (1,2), resulting in the LAB-value (3/27/35). While the original value (5/30/40) would have been transformed into device state D10, the error-corrected LAB-value is represented by D14. It should be mentioned that if this error-corrected LAB-value could be printed (since it is a Kueppers' device state), then the resulting overall-error would be zero. However, since the point (3/27/35) is not a Kueppers' device state, a new error occurs which is Δ{right arrow over (E)}12. This error vector can be represented as the sum of error Δ{right arrow over (E)}111 and Δ{right arrow over (E)}12c. The vector Δ{right arrow over (E)}12c represents the (current) error between the original LAB-value and the device-state actually printed for this LAB-value. However, the error which is diffused to neighboring pixels is Δ{right arrow over (E)}12. For pixel (1,2), device state D14 is printed. In pixel (1,3), one third of the error vector Δ{right arrow over (E)}12 which is represented as Δ{right arrow over (E)}121 is used to correct the original LAB-value (57/37/45). The point obtained is (60/40/50) and will be represented by printing device state D8. The new error is Δ{right arrow over (E)}13Δ{right arrow over (E)}121Δ{right arrow over (E)}13c, whereby Δ{right arrow over (E)}13c represents the error between the device state D8 and the original LAB-point (57/37/45). The error diffusion process may be conceived as adapting an original LAB-point (in brackets) into an error-corrected LAB-point and calculating the error which is the closest device state of the error-corrected LAB-point and the error-corrected LAB-point. This error is diffused to neighboring pixels.
In this manner, the first row of the pixel matrix is determined and the corresponding Kueppers' device states are printed. Subsequently, the error diffusion for the second row of the matrix is calculated, and the corresponding Kueppers' device states are printed. In this way, the error is propagated over the whole image and corresponding Kueppers' device states are printed on the print medium. Alternatively, the error could also be propagated in a serpentine manner.
It should be mentioned that in the example shown in
While the error has been distributed in three equal parts and distributed to neighboring pixels as shown in
In the filter shown in
In
The output of the converter is an 8-bit value for L, an 8-bit value for A, and an 8-bit value for B. These values are supplied to a summer 41. The summer 41 adds to these values diffused errors generated by neighboring pixel positions which have already been processed. There are many types of error diffusion techniques which may be used with the present invention, although one particular error diffusion technique will be described later.
The error-compensated values for each LAB-value are then applied to their associated look-up table. These look-up tables 42-44 only contain a subset of the possible tone levels for each color. The LAB-values in this subset are referred to as major entries. Limiting the tones to a subset of the tones at this stage reduces the required memory space of the device state look-up tables, to be described later. Look-up tables 42-44 may be eliminated if much larger look-up tables can be tolerated.
A tone error between the tone value applied to each of the look-up tables and the closest major entry selected (Li, Ai, Bi) is also output from each look-up table as an error value (Le1, Ae1, Be1). Each of these errors is diffused in accordance with the error diffusion technique used. In one particular embodiment, the error diffusion technique diffuses the error according to the Floyd-Steinberg algorithm into four nearby pixels, such as the pixel directly to the right of the pixel being processed and the three adjacent pixels below the pixel being processed. The pixels in the image map are processed from left to right, row by row. A serpentine or other processing technique may also be used.
Different types of media absorb different amounts of ink. For example, ink deposited on the surface of a glossy photo quality medium does not significantly diffuse into the medium in contrast to ink deposited on a more coarse medium, such as plain paper. Ink which stays on the surface of the medium contributes more to the resulting color than ink which diffuses into the medium. Since ink dispersion within a photo quality medium is less than that in plain paper, up to 8 drops of ink may be used to create a single color dot on the photo quality medium without undesirable dispersion, while only four drops may be acceptable for plain paper. Therefore, a separate look-up table is prepared for each type of medium intended for use with the printer to optimize ink usage and optimize the visual quality of the image printed. Two such look-up tables are shown as look-up tables, and, although there may be many more look-up tables. A particular look-up table is selected by a selector 48 having a control signal which identifies a particular type of medium to be printed upon. The selector may be any decoder which receives a particular coded signal and outputs an enabling signal.
If the system of
The outputs of the 1-dimensional look-up tables are combined by using a bus or a software equivalent of a bus or other type of combiner so as to create a single 3-dimensional index or address (LiAiBi) for indexing one or more entries in the selected look-up table. The ink drop combinations contained in the look-up tables may be experimentally determined to provide a wide range of printed color dots while optimizing ink usage and obtaining fairly uniform ink dispersion within the medium. One output of the selected look-up table will be a code value identifying a Kueppers' device state which consists of a particular combination of ink dots selected from the available inks R, G, B, C, M, Y, and K. This code value is then further processed by the printer controller to convert this value into energizing pulses for ejecting the color ink droplets at precise times from the various print cartridges in the printer 1 as the print cartridges are scanning across the medium.
The selected look-up tables also outputs a second error e2 for the color components L, A and B. This error e2 from the selected look-up table is then summed by summer 41 shown in
The closest major entry 51 in the look-up tables is identified in
Unlike conventional error diffusion which treats each of the color planes independently, the technique shown in
The error diffusion illustrated in
Thus, the embodiments of the invention described above allow for reproducing a continuous tone pixel color by means of an error diffusion procedure based on Kueppers' color separation and halftoning.
All publications and existing systems mentioned in this specification are herein incorporated by reference.
Although certain methods and products constructed in accordance with the teachings of the invention have been described therein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all embodiments of the teachings of the invention fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents.
Number | Date | Country | Kind |
---|---|---|---|
06122100.8 | Oct 2006 | EP | regional |