Color separation based on a tone model
By employing tone models to adjust colorant usage in specific tone regions, the color separation process in printing technologies improves color fidelity and reduces grain and artifacts, addressing the limitations of existing colorant saving techniques.
Patent Information
- Application Number
- PCT/US2023/036470
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-10-31
- Publication Date
- 2025-05-08
AI Technical Summary
Existing color separation processes in printing technologies, such as those used in ink-jet or laser printers, often compromise color fidelity and introduce visible artifacts, particularly when employing colorant saving techniques like gray component replacement (GCR).
The proposed solution involves generating print data using color separation processes that utilize tone models with defined tone regions. These tone models provide a value between 0 and 1 indicating the likelihood that a color belongs to a specific tone type, allowing for localized departure from overall colorant-saving strategies. This approach adjusts the use of black (K) and chromatic colorants based on tone models, optimizing color representation while minimizing grain and artifacts.
The described technique enhances color fidelity by optimizing the use of colorants in specific tone regions, such as skin tones, while reducing grain and visible artifacts. This results in improved image quality and perceived aesthetics in printed images.
Smart Images

Figure US2023036470_08052025_PF_FP_ABST
Abstract
Description
COLOR SEPARATION BASED ON A TONE MODELBACKGROUND
[0001] A printing device, such as, an ink-jet or laser printer, may deposit a printing fluid (e.g., ink or toner) corresponding to multiple colorants onto a print medium according to a color separation process to generate a printed image.BRIEF DESCRIPTION OF THE DRAWINGS
[0002] FIG. 1 is an illustration of an example printer device according to an example;
[0003] FIG. 2 is an illustration of an example printhead carriage according to an example;
[0004] FIG. 3 is an illustration of a color space according to an example;
[0005] FIG. 4 is an illustration of color separation according to an example;
[0006] FIG. 5 is an illustration of halftoning according to an example;
[0007] FIG. 6 is an illustration of colorant saving according to an example;
[0008] FIG. 7 is a block diagram of a printing pipeline of a printer controller that generates print data according to some examples;
[0009] FIG. 8 is an illustration of a tone region within a color space according to an example;
[0010] FIG. 9 is an illustration of color separation according to an example;
[0011] FIG. 10 is an illustration of color separation according to an example;
[0012] FIG. 11 is a flowchart illustrating a process for printing an image according to an example;
[0013] FIG. 12 is a block diagram illustrating a computer program product according to an example;
[0014] FIG. 13 is a block diagram illustrating an example fluid delivery apparatus according to an example; and
[0015] FIG. 14 is a block diagram illustrating a hardware apparatus including a semiconductor package according to an example.DETAILED DESCRIPTION
[0016] Certain examples described herein provide example techniques for generating print data. A printer may utilize a color separation process to print an image to a substrate. For example, image data may include color data represented in a 3D color space, such as pixel-level image color representations in a red-green-blue (RGB) color space, a CIELAB color space, a cyan-magenta- yellow (CMY) color space, or the like. That is, image data may include colorimetric tristimulus values. A color separation process converts (or separates) image data to corresponding colorants of a printer. A color separation process determines how colorimetric tristimulus values are represented on the substrate by depositing corresponding colorants. For example, a printer may be able to deposit cyan, magenta, yellow and black (CMYK) colorants (e.g., ink or toner) to a substrate and a color separation process may be used to determine how droplets or particles of each of the CMYK colorants are deposited to a substrate to reproduce a color indicated by colorimetric tristimulus values. In some cases, in order to reduce costs, a color separation process may utilize colorant saving techniques, such as, for example, gray component replacement (GCR). Colorant saving techniques may reduce color fidelity and / or introduce visible artifacts to a printed image. According to the techniques described herein, in one example, print data is generated using example color separation processes that may improve color fidelity for defined color tone types.
[0017] FIG. 1 is an illustration of a printer device 100 according to an example. In the example illustrated in FIG. 1 , printer device 100 comprises a printhead carriage 102, a scanner 106, and a controller 108. As further illustrated in FIG. 1 , printhead carriage 102 is supported by member 104. Member 104 may include a rail or the like. In the example of FIG. 1 , printhead carriage 102 is supported by member 104 and able to move across the width of a print medium P in a carriage axis direction (CAD). Print medium P advances underneath printhead carriage 104 in a print axis direction (PAD). Print medium may comprise a substrate, such as, a sheet or continuous web of media and may include any form of print media, including, but not limited to, paper, cardboard (i.e. corrugated media), fabric, polymer films, and the like.
[0018] In one example, printhead carriage 102 is slidably mounted on a guide rod. That is, member 104 may be a guide rod that defines a carriage transition (or carriage) axis along which printhead carriage 102 traverses over a print zone for performing printing. In one example, a carriage drive (not shown in FIG. 1 ) actuates printhead carriage 102 for effecting the carriage transition. Thereby, printhead carriage 102 is reciprocally translatable in a forward direction (e.g., left- to-right along CAD) and a backward or reverse direction (e.g., right-to-left along CAD) over a print zone. In one example, printhead carriage 102 and member 104 are enclosed by a hood (not shown in FIG. 1 ).
[0019] In the example illustrated in FIG. 1 , print medium is supported in a print zone by a print medium support assembly 110. Print medium support assembly 110 may apply a vacuum to adhere a portion of the print medium to print medium support assembly 110 while printing fluid is being deposited. It should be noted that for ease of illustration, print medium support assembly 110 represents a simplified print medium support assembly 110. For example, in some examples, a print medium support assembly may include numerous pallets traveling along an endless conveyor having various vacuum configurations. The techniques described herein are equally applicable to various print medium support assembly configurations.
[0020] As described in further detail below, for example, with respect to FIG. 2, printhead carriage 102 may include a plurality printheads, where a printhead comprises a die forming a plurality of nozzles. The nozzles may be aligned in columns along a length of a printhead e.g., in a direction parallel to the PAD. For example, printhead carriage 102 may comprise a plurality of ink-jet printheads. A printing fluid, including, for example, ink or a modelling agent, may be ejected through the nozzles of the printhead. In this manner, printheads included in printhead carriage 102 may deposit ink onto print medium P thereby printing an image corresponding to a print job. It should be noted that in other examples, a printhead may include a thermal or piezo-electric printhead. It should be noted that ink is used herein as an example, and in other examples, other printing fluids, such as, pre-printing and post-printing agents (e.g. varnishes, glosses, undertreatments) may alternatively be deposited. Further, it should be noted that thetechniques described herein are equally applicable to laser printing, where colorants include CMYK toner, as well as other types of printing.
[0021] As described in further detail below, in one example, a plurality of printheads may be arranged in two or more rows, which may be staggered. It should be noted that although printer device 100 is described as including a printhead carriage which traverses a print media in the CAD, in other examples, printhead carriage 102 may form part of a page wide array printer. In the example of a page wide array printer, a printhead carriage may be fixed about the CAD and printheads may extend across the width of a print medium. In this case, a position of a printed image on a print medium may be controlled through activation of different nozzles along the width of the page wide array. Further, in one example, printer device 100 may be arranged such that printhead carriage 102 is able to traverse a print media in the CAD and the PAD.
[0022] As further illustrated in FIG. 1 , printer device 100 includes scanner 106 and controller 108. Scanner 106 may scan a printed image. Scanner 106 may include a reflectance sensor that is arranged to measure an intensity of reflected light (including, e.g., infrared light). For example, scanner 106 may include an emitter to emit light and sensor to measure an intensity of light that is reflected from a surface (e.g., the print medium). The measured intensity of reflected light may indicate whether colorant is deposited to the corresponding location of a print media. For example, light reflected from black ink would have a lower measured intensity than light reflected from white paper. In this manner, it can be determined if printing fluid is deposited to a particular location of a substrate. Values measured by scanner 106 may be used for printer calibration operations. For example, controller 108 may receive values from scanner and perform printhead alignment calibration operations.
[0023] It should be noted that in FIG. 1 , controller 108 is illustrated as being located on printhead carriage 102 in proximity to scanner 106. Such an illustration is for the sake of illustrative purposes. That is, controller 108 may be located at various locations within or in proximity to printer device 100 or may be physically independent of printer device 100. For example, controller 108 may comprise a computer system that is electronically coupled or otherwise in communication(e.g., wirelessly) with printer device. In one example, controller 108 may comprise a printed circuit board and / or integrated circuitry. Further, in one example, controller 108 may form part of a control sub-system that is electronically-coupled to a wider control system, e.g., controller 108 may be coupled over a system bus to other printed circuit boards. In one example, controller 108 may comprise a processor in the form of a central processing unit, microprocessor or system-on-chip device. Controller 108 may include a memory and / or be electronically coupled to a memory (not shown in FIG. 1 ). A memory may comprise volatile and / or non-volatile memory. In some examples, the memory may comprise non-volatile memory to store instructions for the controller 108 and configuration data for the printing system. Further, instructions and / or data may be transferred from the non-volatile memory to the volatile memory during operation, wherein, for example, a processor of the controller 108 may access data and instructions stored in the volatile memory. The volatile memory may comprise any form of Random Access Memory (RAM) and the non-volatile memory may comprise solid-state memory, magnetic storage devices, and / or Read Only Memory (ROM), amongst others. Instructions stored in memory may be loaded and executed by a processor of controller 108 to effect the functionality described herein.
[0024] In addition to performing calibrations operations, controller 108 may receive print job commands and / or data corresponding to a print job (e.g., image data) from a print job source. A print job source may include a computer or any other source of print jobs. Controller 108 may generate print data such that a print job is executed. In some examples, controller 108 may determine and / or reproduce a print mask from received data. In some examples, the received data itself may already correspond to a print mask. In other examples, a print mask may be dynamically generated during printing of a printjob. Further, a print mask may also be stored from the outset in a memory and controller 108 may then dynamically access the print mask during execution of a print job.
[0025] As described above, printhead carriage 102 may include a plurality of printheads arranged in staggered rows. FIG. 2 is an illustration of an example printhead carriage 200 including printheads arranged in staggered rowsaccording to an example. It should be noted that in some cases printheads may be referred to as pens. As described above, a printhead comprises a die forming a plurality of nozzles. A die, which may also be referred to as a printhead die, may include an integrated circuit structure formed on a silicon substrate. In some examples, dies may be embedded in monolithic moldings. A printhead architecture may define a number of dies per printhead, a number of columns of nozzles per die, and a number of nozzles per column. For example, six dies may be located in a single printhead, each die may include four columns of nozzles, and each column of nozzles may include hundreds of nozzles. In some examples, a set of columns of nozzles is associated with a different color, such as cyan, magenta, yellow and black (CMYK). It should be noted that in some cases, a set of columns of nozzles may be referred to as a trench or slot. In the example illustrated in FIG. 2, for Printhead 4, nozzles columns for a trench are illustrated. It should be noted, a column of nozzles includes hundreds of nozzles, and the illustrated nozzle columns in FIG. 2 represent a simplification for explanatory purposes. For example, a printing device capable of printing at 1200 dots per inch (DPI) may have 1200 nozzles per inch (e.g., per inch length or per square inch) arranged or formed in its die or dies.
[0026] In the example illustrated in FIG. 2, printhead carriage 200 includes six printheads (i.e. , Printhead O-Printhead 5) where each printhead includes three or four trenches and each trench is associated with a colorant. As illustrated in FIG. 2, Printhead 0, Printhead 2, and Printhead 4 are arranged in a row (hereinafter Row 0) about the CAD and Printhead 1 , Printhead 3, and Printhead 5 are arranged in a row (hereinafter Row 1 ) about the CAD. As further illustrated in FIG. 2, there is overlap about the PAD between the bottoms of Printhead 0, Printhead 2, and Printhead 4 and the tops of Printhead 1 , Printhead 3, and Printhead 5. In this manner, the printheads in printhead carriage 200 are arranged in staggered rows. It should be noted that although the example illustrated in FIG. 2 illustrates two staggered rows, in other examples printhead carriage 200 may include two or more rows of printheads, which may or may not be staggered. As such, the techniques described herein may be equally applicable to a printhead carriage including any number of rows of printheads.
[0027] As described above, printer medium may include, but is not limited to, paper, cardboard (i.e. corrugated media), fabric, polymer films, and the like. That is, for example, printer device 100 may print large scale print jobs. Large scale print jobs may include printing posters, signage, and cardboard packaging for commercial use. For commercial printing applications, as well as for other printing applications, it may be desirable to implement colorant saving processes. That is, as described above, a color separation process may utilize colorant saving techniques, such as, for example, gray component replacement (GCR). It should be noted that other colorant saving techniques may be utilized, for example under color removal (UCR) and black generation techniques.
[0028] As described above, image data may include color data represented in a 3D color space. FIG. 3 represents an example where image data is represented in a CIELAB color space. The CIELAB color space includes three axes, where the L* axis represents darkness to lightness, where black corresponds to 0 and white corresponds to 100; the a*-axis represents green to magenta, where -128 is green and +127 is magenta; and the b*-axis represents blueness to yellowness, where -128 is blue and +127 is yellow. Thus, in the CIELAB color space, a color may be defined as, for example, (L*=59, a*=19, b*=44).
[0029] As further described above, a color separation converts a 3D color space value to corresponding colorant amounts to be deposited by a printing device. For example, as described above, a printing device may include CMYK colorants, which may be referred to as colorant channels or planes. FIG. 4 represents an example where image data represented as a L*a*b value is converted to a CMYK value, where the CMYK value may correspond to how droplets or particles of each colorant are deposited to a substrate. It should be noted that in theory any color in a 3D color space corresponding to a device color gamut may be printed using CMY colorants. However, in practice, combining CMY colorants produces an imperfect black. Further, CMY colorants may be more expensive than a K colorant. Thus, in order to save on the cost per print job and to produce deeper black tones, a K colorant is used in addition to the combination of the CMY colorants. Thus, for printing devices that utilize CMY colorants and a black colorant, there is a choice on how darker colors are obtained by compositing CMYcolorants and using the K colorant. How much K colorant is used to darken a color instead of using composite CMY colorants may be determined according to defined color separation rules.
[0030] Referring to FIG. 4, as illustrated, the L*a*b* value may be mapped to a CMY value. For example, a L*a*b* value (L*=59, a*=19, b*=44) may be mapped to a CMY value of (C=0.25, M=0.50, Y=0.75), where each of the values for CMY range from 0 to 1 . As further illustrated in FIG. 4, separation rules may determine how the CMY value is converted to a CMYK value, i.e., mapped to four colorants. A CMY value and / or a CMYK value may be referred to as a separation point. It should be noted that in FIG. 4, a CMYK color separation model is represented as a three dimensional cube for CMY and color separation rules for K. This is for the sake of illustration and a CMKY color separation may also be represented in other ways, e.g., a set of tetrahedra, etc. As described above, a color separation process may utilize colorant saving techniques, such as, for example, gray component replacement (GCR). Separation rules may be used to determine how, for example, GCR is applied. For example, a simple GCR process may be implemented as a restriction where a CMY value is split into gray contributions and colored contributions and gray contributions are replaced with a K colorant. For example, CMY value (C=0.25, M=0.50, Y=0.75) may be split into a gray component of 0.25 (which in this example represents C=0.25, M=0.25, Y=0.25) and a remaining colored contribution of C=0, M=0.25, Y=0.50. Accordingly, for this example, the gray component may be replaced with the K colorant to produce a CMYK value of C=0, M=0.25, Y=0.25, K=0.25. It should be noted that this would be considered an aggressive GCR, but intermediate replacements of gray are also possible and may be specified according to separation rules. For example, in an example, only 50% of the gray component may be replaced, which would result in CMYK values of C=0.125, M=0.375, Y=0.625, K=0.125.
[0031] In some cases, separation rules may be determined according to user settings. For example, a graphical user interface for a printing device may provide various controls (e.g., sliders) which enable a user to select how black is handled and separation rules may be determined based on the user selections. For example, a graphical user interface may provide so-called black or gray rampcontrols and a black width parameter control may enable a user to control the distance from the neutral axis at which black generation is applied.
[0032] It should be noted that a model for generating color separation data may be built by defining specific regions where color space values can easily be modelled to colorant values, including the gray axis and the chromatic ramps from primaries / secondaries to black. Further, the rest of the color separation model may be interpolated from these regions. For example, referring to FIG. 4, it may be fairly straightforward to map color space values to edges of the cube (e.g., mapping to primary colorant axes) and other specific separation points. In some cases, although a color separation model may be well defined for edges and specific separations points within the color separation, the rest of the volume may not be directly mapped, but left to an interpolation process. An interpolation process may be based on user settings and applied globally for a color separation model. For example, referring to FIG. 4, in some cases, the same defined interpolation process may be applied at all color regions within the cube. In some cases, an interpolation process, even in implementations including a black width parameter, may not provide optimal performance for specific color regions, for example, regions of interest, including skin tones.
[0033] As described above, a CMYK value may correspond how each colorant is deposited to a substrate. Further, a halftoning process is a process for reproducing a continuous tone image on a substrate by approximating the continuous tone image to a discrete deposit pattern of printing fluid drops. That is, halftoning essentially represents image data using a discrete pattern of deposited printing fluid or toner dots. FIG. 5 is an illustration of halftoning according to an example. Referring to FIG. 5, at the top, a gradient representing continuous tone color data is illustrated. In the example illustrated FIG. 5, a channel may have an intensity value ranging from 0% to 100%. That is, for example, in the case of a K channel, 0% represents white and 100% represents perfect black with percentages in between representing various grayscales. In FIG. 5, below the gradient are various coverage patterns which provide a conceptual visualization of halftoning. That is, for each intensity value, a coverage pattern corresponding to the intensity value may be deposited to asubstrate. It should be noted that the possible coverage patterns would be determined based on capabilities of a printing device. For example according to a DPI (dots per inch) capability of a particular printing device and / or the number of drops (e.g., 0, 1 , or 2 drops) a printing device can deposit to a particular location on a substrate. In FIG. 5, for 0% intensity, no printing fluid is deposited and for 100% intensity, the maximum amount of printing fluid is deposited.
[0034] Thus, a color separation process and a halftoning process may determine how each channel colorant is deposited to a substrate. Further, separation rules of a color separation process, including those utilized to reduce the amount of colored colorants, determine how each colorant is deposited to a substrate. With respect to the example described above, where a CMY value is (C=0.25, M=0.50, Y=0.75) and a corresponding CMYK value is (C=0.0, M=0.25, Y=0.50, K=0.25), FIG. 6 provides a conceptual example of how separation rules may impact the actual amount of each colorant deposited to a substrate. In FIG. 6, the top portion of the figure illustrates how each of CMY may be deposited in an overlapping manner to a substrate to arrive at a printed image and the bottom portion of the figure illustrates, alternatively, how each of CMYK may be deposited to the substrate to arrive at the printed image when separation rules are applied. It should be noted that the example in FIG. 6 is based on the example halftoning process illustrated in FIG. 5 being applied to each colorant channel. It should be noted that this represents a simplified process of multi-channel halftoning, for illustrative purposes, and in practice, halftoning could include numerous techniques, such as, error diffusion, for determining how to deposit colorants to a substrate. However, it should be noted that, as illustrated in FIG. 6, compared to the CMY pattern, in the CMYK pattern, there are black dots for the K channel. As described in further detail below, black dots may create grain or visible artifacts.
[0035] As described above, colorant saving techniques may reduce color fidelity and / or introduce visible artifacts to a printed image. For example, as further described above, colorant saving techniques may be utilized in various printing applications, such as, printing posters, signage, and cardboard packaging. For example, a black generation technique may control the amount of a black colorant that is deposited and a gray component replacement may control how a blackcolorant modulates the amount of chromatic colorants. In the adjustment of both the black generation and the gray component replacement techniques, there are trade-offs to consider, some of them include: Colorant efficiency: more black colorant reduces the total amount of colorant required to get the same color; Color stability: more black colorant creates more stable colors; Gamut: more black colorant allows to reach deeper, darker colors; and Grain: less black colorant reduces the perceived grain due to halftoning. Thus, in CMYK printing systems, there is a trade-off between amount of grain and colorant efficiency, color stability, and gamut. The color fidelity and grain-free reproduction of skin tones may be considered of interest when evaluating image quality. For example, color fidelity and / or the amount of grain appearing in skin tones may be considered for comparing different colorant saving techniques and / or for comparing the quality of printing systems. As described above, the techniques described herein are applicable to printing systems where a color separation process is utilized including for example ink or toner based printing systems.
[0036] As described above, an interpolation process may be based on user settings and applied globally for all regions of a color separation model. Thus, in some cases, when trying to minimize the grain in the skin tones region, the only user settings available are gray ramp K generation parameters with a global impact (i.e. , these setting are applied to the entire color gamut), and K generation parameters for the yellow and magenta ramps, which may shrink the reachable gamut and possibly create concavities in the gamut boundary. Further, colors lying inside the tetrahedron corresponding to yellow and magenta ramps, including the skin tones, may not be directly controlled by a K versus CMY balance, and are left to the separation interpolation. This disclosure provides techniques for controlling K versus CMY colorant use in specific tone regions (e.g., skin tone regions). That is, according to the techniques herein, a specific tone region may locally depart from an overall colorant-saving strategy set for the rest of the color gamut. The techniques described herein may be used to selectively correct the appearance of excess grain in the skin-tones color region, where grain may more easily create an unintended aesthetics effect, and thus, directly impacts on the perceived quality of a printed image. Further, accordingto the techniques herein, colorant saving techniques may be applied to other color regions.
[0037] FIG. 7 is a block diagram of a printing pipeline of a printer controller that generates print data according to example techniques described herein. Controller 700 is an example of a controller that may be utilized with various printing systems (e.g., an ink-jet or a laser printer), include for example printing device 100. Is some cases, the printing pipeline of controller 700 may be referred to as a printing engine. As illustrated in FIG. 7, the printing pipeline of controller 700 includes colormap / separation unit 702, linearization unit 704, halftoning unit 706, and control data unit 708. It should be noted that although example controller 700 is illustrated as having distinct functional blocks, such an illustration is for descriptive purposes and does not limit controller 700 and / or sub-components thereof to a particular hardware or software architecture. Functions of controller 700 may be realized using any combination of hardware, firmware, and / or software implementations. That is, a unit can refer to a hardware processing circuit, which can include any or some combination of a microprocessor, a core of a multi-core microprocessor, a microcontroller, a programmable integrated circuit, a programmable gate array, or another hardware processing circuit. Alternatively, a unit can refer to a combination of a hardware processing circuit and machine-readable instructions (software and / or firmware) executable on the hardware processing circuit. A unit can include a portion of a hardware processing circuit of controller 700, or alternatively, a unit can include machine- readable instructions executable by the controller 700.
[0038] As illustrated in FIG. 7, the printing pipeline receives image data and generates print data. Print data may be used to control printing of an image to a substrate. In the example of FIG. 7, colormap / separation unit 702 receives input image data and generates a color separation. As described above, image data may include image color data represented in a 3D color space. That is, image data may include colorimetric tristimulus values. In some cases, such image data may be referred to as continuous tone or contone data. That is, such data may be capable of representing numerous tones of a color per pixel. For example, as described above, for a CIELAB image, the L* value may be continuous in therange from 0 to 100, and the a* and b* value may be continuous in the range of - 128 to +127 is magenta. For an RGB image, each channel may have an intensity value in a continuous range from 0 to 255 corresponding to levels of intensity. It should be noted that in some examples, colormap / separation unit 702 may map or convert color data from a color space for input image to another color space. For example, colormap / separation unit 702 may convert RGB color space data to CIELAB color space data.
[0039] According to the techniques herein, colormap / separation unit 702 may utilize tone models having defined tone regions. The color gamut, or range of colors that may be represented in the 3D color space may include the entire volume of the 3D color space. A tone region may include a subset of the color gamut in a 3D color space. For example, a tone region may include a subset of the color gamut corresponding to greens or a tone region may include a subset of the color gamut corresponding to blues. Further, a tone region may include a subset of the color gamut corresponding skin tones. Thus, according to the techniques herein, a tone region may be defined, and may include, for example, skin tones or earth tones. FIG. 8 is an illustration of a tone region within a color space according to an example. That is, as illustrated in FIG. 8, for the CIELAB color space described above with respect to FIG. 3, a defined tone region is illustrated as a sphere within the color space. It should be noted that there are numerous types of shapes (e.g., cubes, tetrahedra, etc.) which may be used to define a tone region. Further, a tone region may be defined according to as a set of discrete 2D regions about an axis. For example, a tone region may be defined using a set 2D regions (e.g., ellipses) in the a* and b* plane at discrete values of L*
[0040] According to the techniques herein, a tone model corresponding to the tone region may be defined. For example, referring to FIG. 8, a value of 1 may correspond to the point at the center of the sphere and a value of 0 may correspond to points outside of the sphere and each point within the sphere may have a value in the range of (0,1 ], That is, for example, in the case where the tone model represents skin tones, the tone model provides a value of 0 for points in the color space (i.e. , discrete colors) outside the skin tone region and non-zerovalues for points in the color space within the tone region, where higher values, up to 1 , are provided based on proximity to the center of the tone region. In one example, a value of 0 to 1 may correspond to the probability that a color is a defined tone type. That is, for example, a value of 0 to 1 may provide the likelihood that a particular color (e.g., (L*=59, a*=19, b*=44)) is a skin tone. Similarly, when a tone region includes a subset of the color gamut corresponding to blues a value of 0 to 1 may correspond to the likelihood that a particular a color appears in a sky or water portion of an image. As described in further detail below, the likelihood a particular color is a particular tone may be used to determine how colorants are used to represent the color in a printed image.
[0041] It should be noted that in some examples, the transition between 1 to 0 in a tone model may be linear according to the distance from the center of the tone region. With respect to skin tone, such a tone model may be, for example, based on example models provided in “Skin Color Modeling of Digital Photographic Images.” Zeng, Huanzhao and Luo, Ming Ronnier. May 1 , 2011 , Journal of Imaging Science and Technology, Vol. 55, p. 03020. In other examples, the transition between 1 to 0 in a tone model may be non-linear. That is, according to the techniques herein, there may be numerous ways to provide a value from [0, 1 ] for a point in a color space.
[0042] According to the techniques herein, a specific tone region may locally depart from an overall colorant-saving strategy set for the rest of the color gamut. In one example, a value provided by a tone model for a particular color may be used to determine how colorants are used to represent the color in a printed image. In one example, a value of [0, 1 ] as provided by a tone model may be used to determine how colorimetric tristimulus values are mapped to CMYK values. FIG. 9 and FIG. 10 are illustrations of color separation according to examples where a specific tone region may locally depart from an overall colorant-saving strategy. In each of FIG. 9 and 10, K Depletion is illustrated. K Depletion may be calculated based on a tone model, as described in further detail below. It should be noted, however, FIG. 9 provides an example where K Depletion is calculated directly from image data colorimetric tristimulus values and FIG. 10 provides an example where K Depletion is calculated from adetermined CMYK. Thus, the example in FIG. 9 may correspond to applying a color separation according to technique herein and the example in FIG. 10 may correspond to adjusting a color separation according to techniques herein. As described above, separation rules may be determined according to user settings, similarly, with respect to FIG. 10, a user setting may be provided to enable a user to adjust a defined color separation according to the techniques herein. That is, the techniques described herein may be utilized as part of a graphical user interface for a printing device, where a user is enabled to apply a color separation where a specific tone region may locally depart from an overall colorant-saving strategy.
[0043] Referring to FIG. 9 and FIG. 10, similar to FIG. 4, image data represented as a L*a*b value is converted to a CMYK value. As illustrated in FIG. 9 and FIG. 10, a K Depletion is calculated and used to deplete K from the CMYK value to arrive at CMYK’. For example, if a CMYK value is C=0, M=0.25, Y=0.25, K=0.25 and a K Depletion value corresponds to 50% K depletion, the a CMYK value may be C=0, M=0.25, Y=0.25, K=0.125.
[0044] In one example, a variable K may be computed according to the following equations:K’ = max(K-AK,0), AK = W* KdWhere,. r x ; x >= y max( x, y ) = [y.x<y
[0045] In one example, Kd may be the global strength of K depletion. For example, in the example above where K ranges from 0 to 1 , Kd may be set to 0.25. It should be noted that Kd, is a parameter modelling the strength of the K depletion and in a case where a grain model and an acceptability threshold are defined, the parameter can be computed based on the grain model and the threshold. In other examples, this parameter may be adjusted manually. W is a global weight, which may be computed using multiple weights. In one example,1 / 1 / may be computed by multiplying three weights. That is, in one example, 1 / 1 / may be computed as follows: l / l / = w1 *w2*w3
[0046] In one example, the following non-linear function E(x) may be used for calculating each of w1 , w2, and w3:
[0047] It should be noted that, function E( x ) (for argument x in the range [0,1]) starts linearly and smoothly saturates to 1 at 0.5.
[0048] As described above, a K Depletion may be calculated based on a tone model. In one example, w1 may be equal to E( p ), where p is a value in the range of [ 0, 1] according to a tone model. That is, for example, if a point in a color space is outside a tone region (i.e. , p = 0), w1 is set to 0 and if the point is at the center of the tone region (i.e., p = 1 ) w1 is set to 1. In one example, in the case where a tone region is a sphere p may be calculated according to the following equation:where, Lo, ao, bo is the center of the sphere, and r is the radius of the sphere.
[0049] It should be noted that if the point is outside of the tone region, according to the equations provided above, AK is equal to 0 and K’ is equal to K. That is, K in the CMYK value is left as is, i.e., K depletion is not applied. That is, in this manner, an overall colorant-saving strategy set for the rest of the color gamutoutside of the tone region is left as is. It should be noted that in the case of skin tones, w1 is the weight considering the proximity to the skin tone model center, so points near the center of the skin tone region have stronger weight.
[0050] In one example, w2 and w3 may be computed according to the following equations:max (C.M.y)VI / 3 = E (1 —100
[0051] In this example, w2 is the weight considering lightness of a color, and for the case of skin tones, is defined such that light skin tones have a stronger weight and dark skin tones have a weaker weight (i.e., less vs. more K depletion). Finally, w3 is the weight of the inner region of the gamut, which is defined such that near the gamut boundary the weight decays in order to not affect the gamut boundary. It should be noted that in the example above, the calculation of W utilizes: for w1 , a p value derived from a tone model using, for example, a L*a*b value; for w2, a L* value; and for w3, a CMY value. There may be numerous ways to compute a p value, a L* value, and a CMY value and thus, numerous ways to determine compute W. For example, FIG. 9 illustrates an example, where w1 may be computed directly from a L*a*b value of image data and FIG. 10 illustrates an example where w1 may be computed from a L*a*b value generated from a CMYK value. In other examples, other intermediate and additional conversions may be utilized. It should be noted, however, that in general, each point in a CMY color separation may be considered to correspond to a pair of colorimetry and CMYK values and K’ may be calculated utilizing any combination of a CMY value and corresponding colorimetry and CMYK values.
[0052] Referring to FIG. 9 and FIG. 10, after a CMYK value is determined, that is, K in a CMYK value is replaced with the K value, a C’M’Y’K value is computed. The colorimetry of CMYK’ differs from CMYK. For example, as described above,a CMYK value may be C=0, M=0.25, Y=0.25, K=0.25 and a CMYK value may be C=0, M=0.25, Y=0.25, K=0.125, which may have respective L*a*b* values of L* = 65, a*= 19, b*= 7 and L* = 74, a*= 21 , b*= 8. C’M’Y’K may be computed by performing a search to find the C’M’Y’ values that, together with the calculated K, minimize the difference, A, with the original colorimetry.
[0053] In one example, this process may be represented by the following functions: arg mincw’ / ’ A (F(CMYK),F(C’M’Y’K’))Where, F(cmyk) is a forward model that provides the colorimetry of a cmyk value.
[0054] It should be noted that there may be multiple ways to define the difference, A. That is, for example, the International Commission on Illumination (CIE) provides several distance metrics AE*, which may be used as the difference, A. In one example, AE*oo may be used as the distance to be minimized as it correlates to the perceived distance. In another example, a AF*ab could be used, if the computation time is a constraint. Alternatively, if the colorimetric space is already a perceptually uniform space like a UCS CAM-based space, a simple Euclidean distance can be used. CIE provides the following equation for calculating AE*at>Where, (Li* ai* bi*) and (L2*, a2*, b2*) are two colors in the color space.
[0055] It should be noted that, in most cases, a match can be found such that A=0. However, near the gamut boundary, some colors cannot be matched with K’. If this is the case, then a small loss of gamut may be expected in that region. It should be noted that computing C’M’Y’K’ according to the techniques herein, may provide smooth and monotonic transitions between the skin tones region andthe rest of the gamut space while preserving the colorimetry. Finally, as illustrated in FIG. 9 and 10, a C’M’Y’K’ color separation value is generated. Thus, according to the techniques herein, a CMYK value for a separation point within a tone region may be replaced by a computed C’M’Y’K’ value.
[0056] Referring again to FIG. 7, the C’M’Y’K color separation value may be computed and output by colormap / separation unit 702. Linearization unit 704 may map non-linear data to a linear function. As described above, a halftoning process reproduces a continuous tone image by approximating the continuous tone image to a discrete deposit pattern of printing fluid drops. Examples of halftoning process include search-based half-toning, matrix half-toning, and error diffusion. Halftoning unit 706 may perform halftoning processes. In the example illustrated in FIG. 7, halftoning unit 706 is illustrated as including error diffusion logic 706A. Error diffusion logic 706A may be utilized by halftoning unit 706 to perform error diffusion. In error diffusion, essentially, the error caused by a particular pixel is calculated and propagated to neighboring pixels or locations in specific proportions (e.g., weights). For example, in some regions of an image, the error may be diffused evenly among unprocessed neighbor locations while, in other regions, the error may be diffused randomly. In some examples, the decision regarding whether or not print fluid is to be deposited at a particular position may be made in a position-dependent manner.
[0057] Referring again to FIG. 7, control data unit 708 may receive data from a halftoning process and generate print data, e.g., print masks. A print mask may define each position of each pass in which a drop or particle is deposited. Thus, according to the techniques herein, colormap / separation unit 702, linearization unit 704, halftoning unit 706, and / or control data unit 710 may generate print data such that a specific tone region may locally depart from an overall ink-saving strategy set for the rest of the color gamut.
[0058] FIG. 11 is a flowchart illustrating a process for printing an image that may be performed by controller 700 according to an example. At 1102, tristimulus values correspond to an image are received. For example, a printing engine may receive a CIELAB value. At 1104, a plane depletion amount based on a tone model is computed. For example, a K plane depletion amount based on a tonemodel having a defined tone region may be computed. It should be noted that in other examples, a depletion amount for any of the C, M, Y, or K planes may be computed. At 1106, color separation data is computed based on the received tristimulus values and the computed plane depletion amount. For example, as described above, C’M’Y’K’ color separation data may be computed. At 1108, an image may be printed using the computed color separation data. That is, for example, colorant may be deposited to a substrate according to the computed color separation data.
[0059] FIG. 12 illustrates a block diagram of an example computer program product 1200. In some examples, as shown in FIG. 12, computer program product 1200 includes a machine-readable storage 1202 that may also include computer readable instructions 1204. In some implementations, the machine- readable storage 1202 may be implemented as a non-transitory machine- readable storage. In an example, the computer readable instructions 1204, may be executed by a processor 1206, implement aspects of process 1100 (FIG. 11 ), described above. That is, printing pipeline logic illustrated in FIG. 12 may include aspects of process 1100 (FIG. 11 ).
[0060] FIG. 13 is a block diagram illustrating a hardware apparatus including a semiconductor package according to an example. FIG. 13 shows an illustrative example of a printer 1300. In the illustrated example, the printer 1300 may include a processor 1302 and a memory 1304 communicatively coupled to the processor 1302. The memory 1304 may include computer readable instructions 1306. In an example, the computer readable instructions 1306, may be executed by the processor 1302, implement aspects of process 1100 (FIG. 11 ), described above. That is, printing pipeline logic illustrated in FIG. 13 may include aspects of process 1100 (FIG. 11 ).
[0061] In some implementations, the processor 1302 may include a general purpose controller, a special purpose controller, a storage controller, a storage manager, a memory controller, a micro-controller, a general purpose processor, a special purpose processor, a central processor unit (CPU), the like, and / or combinations thereof. Further, implementations may include distributed processing, component / object distributed processing, parallel processing, thelike, and / or combinations thereof. For example, virtual computer system processing may implement the methods or functionalities as described herein, and the processor 1302 described herein may be used to support such virtual processing.
[0062] In some examples, memory 1304 is an example of a computer-readable storage medium. For example, memory 1304 may be any memory which is accessible to the processor 1302, including, but not limited to RAM memory, registers, and register files, the like, and / or combinations thereof. References to “computer memory” or “memory” should be interpreted as possibly being multiple memories. The memory may for instance be multiple memories within the same computer system. The memory may also be multiple memories distributed amongst multiple computer systems or computing devices.
[0063] FIG. 14 shows an illustrative semiconductor apparatus 1400 (e.g., chip and / or package). The illustrated apparatus 1400 includes substrates 1402 (e.g., silicon, sapphire, or gallium arsenide) and computer readable instructions 1404 (such as, configurable computer readable instructions) and / or fixed-functionality computer readable instructions (e.g., hardware)) coupled to the substrate(s) 1402. In an example, the computer readable instructions 1404 implement aspects of process 1100 (FIG. 11 ). That is, printing pipeline logic illustrated in FIG. 14 may include aspects of process 1100 (FIG. 11 ).
[0064] In some implementations, computer readable instructions 1404 may include transistor array and / or other integrated circuit / IC components. For example, configurable logic and / or fixed-functionality hardware logic implementations of the computer readable instructions 1404 may include configurable computer readable instructions such as, for example, programmable logic arrays (PLAs), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), or fixed-functionality computer readable instructions (e.g., hardware) using circuit technology such as, for example, application specific integrated circuit (ASIC), complementary metal oxide semiconductor (CMOS) or transistor-transistor logic (TTL) technology, the like, and / or combinations thereof.
[0065] All definitions, as defined and used herein, should be understood tocontrol over dictionary definitions, definitions in documents incorporated by reference, and / or ordinary meanings of the defined terms.
[0066] Furthermore, for ease of understanding, certain functional blocks may have been delineated as separate blocks; however, these separately delineated blocks should not necessarily be construed as being in the order in which they are discussed or otherwise presented herein. For example, some blocks may be able to be performed in an alternative ordering, simultaneously, etc.
[0067] Although a number of illustrative examples are described herein, it should be understood that numerous other modifications and examples can be devised by those skilled in the art that will fall within the spirit and scope of the principles of the foregoing disclosure. More particularly, reasonable variations and modifications are possible in the component parts and / or arrangements of the subject combination arrangement within the scope of the foregoing disclosure, the drawings and the appended claims without departing from the spirit of the foregoing disclosure. In addition to variations and modifications in the component parts and / or arrangements, alternative uses will also be apparent to those skilled in the art. The examples may be combined to form additional examples.
Claims
CLAIMSWe claim:1 . A method of printing an image, comprising: receiving tristimulus values corresponding to the image; computing a K plane depletion amount based on a tone model having a defined tone region; computing CMYK color separation data based on the tristimulus values and the computed K plane depletion amount, wherein K plane depletion is applied to tristimulus values corresponding to the defined tone region; and printing the image using the computed CMYK color separation data.
2. The method of claim 1 , wherein applying K plane depletion to tristimulus values corresponding to the defined tone region includes reducing K in CMYK color separation data for tristimulus values corresponding to the defined tone region compared to tristimulus values not corresponding to the defined tone region.
3. The method of claim 1 , wherein a defined tone region is a subset of a color gamut.
4. The method of claim 3, wherein a subset of a color gamut corresponds to one of a skin tone region or an earth tone region.
5. The method of claim 2, wherein reducing K for tristimulus values corresponding to the defined tone region includes reducing K based on a location of a tristimulus value within the defined tone region.
6. The method of claim 5, wherein reducing K based on the location of a tristimulus value within the defined tone region includes reducing K based on proximity to a point in the defined tone region.
7. The method of claim 5, wherein reducing K for tristimulus values corresponding to the defined tone region further includes reducing K based on a lightness of the tristimulus value.
8. A printer device, comprising: a printing engine to form an image on a print medium using multiple colorants; and a controller to: compute a K plane depletion amount based on a tone model having a defined tone region; generate CMYK color separation data corresponding to the image based on the computed K plane depletion amount, wherein K plane depletion is applied to tristimulus values corresponding to the defined tone region; and print the image using the generated CMYK color separation data.
9. The printer device of claim 8, wherein a defined tone region is a subset of a color gamut.
10. The printer device of claim 8, wherein applying K plane depletion to tristimulus values corresponding to the defined tone region includes reducing K in CMYK color separation data for tristimulus values corresponding to the defined tone region compared to tristimulus values not corresponding to the defined tone region.11 . The printer device of claim 10, wherein generating CMYK color separation data corresponding to the image further includes adjusting CMY values after K has been reduced in CMYK color separation data.
12. The printer device of claim 11 , wherein adjusting CMY values includes reducing a difference in colorimetry between CMYK color separation data with reduced K and CMYK color separation data without reduced K.
13. A non-transitory computer-readable storage medium comprising a set of computer-readable instructions stored thereon, which when executed by a processor of a printing system, cause the processor to: compute a K plane depletion amount based on a tone model, wherein the tone model provides an indication whether a colorimetry of a separation point in a CMYK color separation corresponds to a defined tone region;generate CMYK color separation data corresponding to an image based on the computed K plane depletion amount, wherein K plane depletion is applied to tristimulus values corresponding to the defined tone region; and print the image using the generated CMYK color separation data.
14. The medium of claim 13, wherein a defined tone region is a subset of a color gamut.
15. The medium of claim 14, wherein a subset of a color gamut corresponds to one of a skin tone region or an earth tone region.
Citation Information
Patent Citations
Methods, apparatus and systems for blending multiple gcrs
US20090296153A1
Achieving ink cost saving for printing devices by taking visual appearance and real ink costs into account
US20170253063A1
Visual ink savings
US20200369024A1