Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MULTIPLE HALFTONE MASKS PIXELS ALLOCATION
Document Type and Number:
WIPO Patent Application WO/2024/081021
Kind Code:
A1
Abstract:
A method is described in which image data is to be printed in a plurality of passes. In an example the method comprises identifying pixels of a halftone matrix having a halftone value, and allocating the identified pixels to one pass mask of a plurality of pass masks depending on a density metric dependent on allocated pixels within said one pass mask.

Inventors:
SARKAR UTPAL KUMAR (ES)
GOMEZ MINANO HECTOR (ES)
MOROVIC PETER (ES)
ETCHEBEHERE JUAN SERGIO (ES)
MOROVIC JAN (GB)
Application Number:
PCT/US2022/077980
Publication Date:
April 18, 2024
Filing Date:
October 12, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
International Classes:
H04N1/40; H04N1/405; H04N1/52; G06K15/10
Domestic Patent References:
WO2021206705A12021-10-14
WO2022093258A12022-05-05
Attorney, Agent or Firm:
CRENSHAW, Diallo T. (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A method comprising: identifying pixels of a halftone matrix having a halftone value; allocating the identified pixels to one pass mask of a plurality of pass masks depending on a density metric dependent on allocated pixels within said one pass mask.

2. The method of claim 1 , wherein the density metric is dependent on a distance to the allocated pixels.

3. The method of claim 2, wherein the density metric is dependent on a square of the distance to the allocated pixels.

4. The method of claim 1 , comprising iterating randomly through the identified pixels and allocating to one of the plurality of pass masks having a lowest value of the density metric.

5. The method of claim 1 , comprising iterating from a lowest halftone value to a highest halftone value of the halftone matrix.

6. The method of claim 1 , using the plurality of pass masks to print received image data in a plurality of passes.

7. The method of claim 6, comprising using each said pass mask to generate a corresponding halftone pattern for printing the received image data.

8. The method of claim 1 , wherein the halftone matrix is a PARAWACS matrix.

9. The method of claim 8, wherein the image data comprises a Neugebauer Primary area coverage (NPac) vector and the method comprises applying the halftone matrix to the image data by assigning a Neugebauer Primary (NP) to each pixel of a halftone pattern according to the NPac vector and the halftone value of a corresponding halftone pixel in the halftone matrix.

10. An apparatus comprising: a processor; a memory storing instructions for execution by the processor to: identify pixels of a halftone matrix having a halftone value; allocate the identified pixels to one printing pass of a plurality of printing passes depending on a density metric dependent on allocated pixels within said one pass mask.

11. The apparatus of claim 10, wherein the density metric is dependent on a distance to the allocated pixels.

12. The apparatus of claim 10, the processor to iterate randomly through the identified pixels and allocate to one of the plurality of pass masks having a lowest value of the density metric.

13. The apparatus of claim 10, wherein the halftone matrix is a PARA WAGS matrix.

14. The apparatus of claim 10, comprising a printhead assembly and the memory storing the halftone matrix, the processor to use the plurality of pass masks to print received image data in a plurality of passes using the printhead assembly.

15. A non-transitory computer-readable storage medium comprising a set of computer-readable instructions that, when executed by a processor, cause the processor to: identify pixels of a halftone matrix having a halftone value; allocate the identified pixels to one pass mask of a plurality of pass masks depending on a density metric dependent on allocated pixels within said one pass mask.

Description:
MULTIPLE HALFTONE MASKS PIXELS ALLOCATION

BACKGROUND

[0001] In printing, halftoning is a process in which a discrete number of printing materials are distributed spatially to generate a continuous-tone image. For example, drops of one or more different colored inks may be allocated to halftone pixels within a halftone according to a pattern which may be aimed at improving image quality, reducing printing material use and/or achieving other desired goals.

BRIEF DESCRIPTION OF THE DRAWINGS

[0002] Figure 1 shows an example printing device;

[0003] Figure 2 shows an example method for printing image data;

[0004] Figures 3a-e illustrate development of pass masks according to an example;

[0005] Figures 4a-d illustrate density metrics for different passes for a halftone level according to an example;

[0006] Figure 5a-b illustrate pass masks for a halftone matrix developed according to a known and an example method; and

[0007] Figure 6 illustrates generating a halftone pattern for an NPac according to an example.

DETAILED DESCRIPTION

[0008] Color can be represented within imaging devices such as print and display devices in a variety of ways. For example, in one case, a color as observed visually by an observer is defined with reference to a power or intensity spectrum of electromagnetic radiation across a range of visible wavelengths. In other cases, a color model is used to represent a color at a lower dimensionality. For example, certain color models make use of the fact that color may be seen as a subjective phenomenon, i.e. dependent on the make-up of the human eye and brain. In this case, a “color” may be defined as a category that is used to denote similar visual perceptions; two colors are said to be similar if they produce a similar effect on a group of one or more people. These categories can then be modelled using a lower number of variables.

[0009] Within this context, a color model may define a color space. A color space in this sense may be defined as a multi-dimensional space, with a point in the multi-dimensional space representing a color value and dimensions of the space representing variables within the color model. For example, in a Red, Green, Blue (RGB) color space, an additive color model defines three variables representing different quantities of red, green and blue light. In a digital model, values for these quantities may be defined with reference to a quantized set of values. For example, a color defined using an 8-bit RGB model may have three values stored in a memory, wherein each variable may be assigned a value between 0 and 255. Other color spaces include: a Cyan, Magenta, Yellow and Black (CMYK) color space, in which four variables are used in a subtractive color model to represent different quantities of colorant or printing fluid, e.g. for a printing system; the International Commission on Illumination (CIE) 1931 XYZ color space, in which three variables (X, Y and Z or tristimulus values) are used to model a color; the CIE 1976 (L*, a*, b* - CIELAB or ‘LAB’) color space, in which three variables represent lightness (L*) and opposing color dimensions (a* and b*); the YUV color space, in which three variables represent the luminance (Y) and two chrominance dimensions (U and V); and the I PT color space, in which the three variables represent a lightness or Intensity dimension (I), a “Protanopia” red-green chroma dimension (P), and a “Tritanopia" yellow-blue chroma dimension (T).

[0010] An image to be printed may be described by image data which may comprise a number of pixels or elements of the image which are each associated with a color value in a color space. The color values of the image data may need to be converted into a different color space specific to a printing apparatus for printing the image. For example, an image defined according to an RGB color space may need to be redefined in a CMYK color space corresponding to colorants available to the printing apparatus. A specific combination of colorants or inks to be printed may be specified as an ink-vector, which corresponds to the of colorant for each pixel of an image to be printed.

[0011] A colorant may be a dye, a pigment, an ink, or a combination of these materials. A substrate may include various types of paper, including matte and gloss, cardboard, textiles, plastics and other materials.

[0012] Other color spaces include area coverage spaces, such as the Neugebauer Primary area coverage (NPac) color space. An NPac vector in the NPac color space represents a statistical distribution of Neugebauer Primaries (NPs) over an area of a halftone. In a simple binary (bi-level, i.e. two drop states: "drop" or “no drop") printer, an NP may be one of 2 k -1 combinations of k printing fluids within the printing system, or an absence of printing fluid (resulting in 2* NPs in total). An NP may thus be seen as a possible output state for a print- resolution area. The set of NPs may depend on an operating configuration of a device, such as a set of available colorants. A colorant or printing fluid combination as described herein may be formed of one or multiple colorants or printing fluids. For example, if a bi-level printing device uses CMY printing fluids there can be eight NPs or output states. These NPs relate to the following: C, M, Y, CM, CY, MY, CMY, and W (white or blank indicating an absence of printing fluid). An NP may comprise an overprint of a plurality of available printing fluids, such as a drop of magenta on a drop of cyan (for a bi-level printer) in a common addressable print area (e.g. a printable “pixel”). An NP may be referred to as a “pixel state”.

[0013] Each NPac vector may therefore define a probability distribution for colorant or printing fluid combinations for each halftone pixel in the halftone (e.g. a likelihood that a particular colorant or printing fluid combination or available output state is to be placed or defined at each pixel location in the halftone). In this manner, a given NPac vector defines a set of halftone parameters that can be used in the halftoning process to map a color to NPs to be statistically distributed over the plurality of pixels for a halftone. Moreover, the statistical distribution of NPs to pixels in the halftone serves to control the colorimetry and other print characteristics of the halftone. [0014] Spatial distribution of NPs according to the probability distribution specified in the NPac vector may be performed using a halftone method. Examples of suitable halftoning methods include matrix-selector-based Parallel Random Area Weighted Area Coverage Selection (PARAWACS) techniques and techniques based on error diffusion. An example of a printing pipeline that uses area coverage representations for halftone generation is a Halftone Area Neugebauer Separation (HANS) pipeline.

[0015] Each halftone pattern corresponds to an image pixel associated with an NPac vector and comprises a plurality of halftone pixels. The NP associated with the NPac vector are distributed across the halftone pixels according to some pattern to provide the relative area coverage of NP defined by the NPac vector. In order to avoid visual artifacts such as moire, the distribution of NP across the pixels of one halftone pattern are changed compared with the distribution of NP across the pixels of adjacent halftone patterns. In an example, this is achieved by randomizing the distribution of NP across each halftone pattern. The printing or rendering of image data onto a substrate such as paper may be implemented by applying drops of colorant according to the halftone patterns.

[0016] Certain examples described herein address a challenge with applying one or more colorants or print material to substrates in which overlapping or mixing of liquid colorants may result in undesirable image quality artifacts due to interactions between the non-dried liquids. This may be addressed by printing colorants in different passes so that one layer of colorant is sufficiently dry before a next layer of colorant is applied. However, the use of halftone pattern masking for different passes may result in undesirable distribution patterns with non-uniform clusters and empty areas which negatively impact the image quality of the final printed image. Some examples address this problem by allocating halftone pixels amongst passes using a density metric based on already allocated halftone pixels within each printing pass or pass mask.

[0017] In some examples, a halftone matrix is used to generate a halftone pattern for an image pixel, depending on a halftone level of the image pixel. This may correspond to a grey value for one or more colorants to be applied to render the image pixel or when using a PARAWACS matrix and NPac’s an amount, coverage or density of colorants to be applied. Whilst the overall halftone pattern for an image pixel is not changed by using multiple printing passes, a decision is made on how to split this into passes designed to achieve certain aims such as improving grain consistency or other image quality characteristics.

[0018] A density metric may be determined for each halftone pixel for different passes so that, for example, the halftone pixel may be allocated to the pass with the lowest density metric value. This may be recorded in a pass matrix or mask for each pass, which records that a dot or colorant is to be applied in that halftone pixel for that pass. The pass mask or pass matrix is then used as a partial halftone pattern for one of the print passes. In an example the density metric may be calculated depending on the proximity or distance of other already allocated halftone pixels in each pass mask. For example, an already allocated adjacent halftone pixel may result in a high-density metric value whereas the nearest already allocated halftone pixel being three halftone pixels away may result in a significantly lower density metric value.

[0019] Figure 1 shows an example of a printing device 10 comprising a carriage assembly 20 and a control unit 30. The printing device may be arranged to print an image use a plurality of passes of the carriage assembly.

[0020] The carriage assembly 20 comprises a set of printheads 22 carried by a carriage 24. A drive assembly (not shown) moves the carriage assembly 20 along a scan axis in response to drive signals from the control unit 30. Each of the printheads 22 comprises a plurality of dies 26, with each die comprising a plurality of nozzles through which drops of printing fluid are dispensed. The printheads are fluidly coupled to fluid reservoirs (not shown), which supply printing fluids to the printheads. Each printing fluid may be a colorant or a non- colorant, such as a pre-treatment (e.g. fixer/optimizer) or post-treatment (e.g. overcoat) fluid. In the illustrated example, the printing device comprises five printheads that are supplied with eight different colorants: cyan (C), magenta (M), yellow (Y), black (K), light cyan (c), light magenta (m), optimizer (P) and overcoat (S). [0021] The control unit 30 comprises a processor 31 , a storage medium 32, and an input/output interface 33. The processor 31 is responsible for controlling the operation of the printing device 30 and executes an instruction set 35 stored in the storage medium 32. The instruction set 35 comprises instructions, which when executed by the processor 31 , implement a method for generating pass masks for applying halftone patterns for image pixels over a plurality of passes. The storage medium 32 may also comprise a halftone matrix 42 and a print pipeline 40.

[0022] The halftone matrix 42 comprises a plurality of halftone values distributed across the matrix according to a pattern which may be determined in advance and/or externally, or on-the-fly when printing. The halftone matrix comprises a number of numerical values distributed through the matrix element in a suitable pattern. This may represent grey values tor a single colorant to generate a halftone pattern according to the grey value or it may represent levels of a PARAWACS matrix to be used for allocating different colorant combinations across a corresponding halftone pattern. A plurality of halftone matrices may be employed, with a different matrix applied to different image pixels to avoid visible artifacts such as moire.

[0023] The print pipeline 40 comprises a number of processes to convert received print data 50 representing an image into instructions for controlling the print cartridge 20 to render the image using colorants available to the print apparatus 10. In one example a HANS pipeline may be used.

[0024] During use, the printing device 10 receives print data 50 which may be in the form of a raster image generated by a raster image processor. A color mapping process may map the colors of the print data 40 (e.g. RGB or CMYK) to the colors of the printing device 30, which in this instance is CMYKcmPS. The color mapping may map the colors to an area coverage color space, such as the Neugebauer Primary area coverage (NPac) color space. In NPac color space, each pixel of an image is represented by an NPac vector. A Neugebauer Primary (NP) corresponds to one of the possible combinations of colorants at each image pixel, including the absence of any printing fluids. The total number of NPs depends on the number of colorants, k, and the number of drop states, D, for each printing fluid, and may be defined as D k . So, for a printing device having three colorants (e.g. cyan, magenta and yellow) and two drop states (zero drops and one drop), the NPs are: blank, C, M, Y, CM, CY, MY and CMY. An NPac vector defines the relative area covered by each of the NPs. So, for example, an NPac vector of [magenta:0.3; cyan:0.2; blank: 0.5] implies that 30% of the area is magenta, 20% is cyan, and 50% is blank.

[0025] A halftoning process uses the halftone matrix 42 stored in the storage medium 32 to convert the image data output by the color mapping process into a plurality of halftone patterns, which collectively form a halftone image. This specifies at each position a number of drops of each colorant to apply onto a substrate.

[0026] The print apparatus 10 prints the halftone patterns onto the substrate by controlling the travel of the carriage 20 and the firing of the nozzles of the printheads 26 according to the halftone patterns. In an example, the print apparatus 10 prints the halftone patterns in multiple printing passes and/or using multiple sets of printheads.

[0027] A masking process is used to distribute the drops of colorant over multiple passes. The method may be implemented by the processor 31 executing a set of computer readable instructions 35 in the storage medium 32. These include: an instruction 46 to identify pixels of a halftone matrix having a halftone value; and an instruction 48 to allocate identified pixels to one pass mask of a plurality of pass masks depending on a density metric of allocated pixels within the pass mask.

[0028] Figure 2 illustrates an example method 200 that may be performed by the printing device of Figure 1. Alternatively, the method may be performed partly by a computing device, and the resulting halftone patterns for different passes may be sent to a printing device for printing.

[0029] At 210, the method comprises determining a halftone matrix. The halftone matrix 40 may be determined in advance, for example using experimentation and/or trial and error, and may be stored on the printing apparatus 10. Alternatively, the halftone matrix may be determined on the fly as part of the print pipeline. The halftone matrix may be tailored to reduce grain and general image noise.

[0030] At 220, the method enters an iteration loop where for each halftone level, the method identifies pixels of the halftone matrix having a halftone level. This is shown in one example in Figures 3a and 3b. Figure 3a illustrates a 10x10 halftone matrix comprising 10 halftone levels distributed throughout the matrix. Figure 3b illustrates the halftone pixels having a halftone level of 1. In one example, the method starts with the lowest halftone value and increases to the highest halftone value through the iterations.

[0031] In other examples, a range of halftone levels may be considered at each iteration, for example 0-54; 55-99...200-254 in an 8-bit grey level based single color halftone matrix. In examples where the halftone matrix corresponds to an individual colorant, additional halftone matrices may be used for different colorants, with each colorant corresponding to a layer and separate passes being used for each layer.

[0032] At 230, the method randomly iterates through the identified pixels and determines a density metric value for these pixels for each pass. The value of the density metric for the current identified pixel for each pass decays with the distance to other already allocated pixels within the respective pass mask or matrix. An already allocated adjacent pixel will result in a higher density metric value than an allocated pixel which is two or three pixel spaces away.

[0033] In one example, the density metric is calculated according to: Density Metric = ep(-x 2 /2s 2 )

Where: ep = exponent x = distance to already allocated pixel s = 1/sqrt(rho)/4, where rho = density

[0034] The density metric may be calculated over all already allocated pixies, although in practice is can be reduced to a small cutoff distance, for example up to x=3s. In on example, a window of a predetermined size is allocated around the pixel under consideration and the number of already allocated pixels (with a drop of colorant) are determined which belong to the current halftone range of levels and the current pass. The already allocated pixels are effectively weighted based on distance x, with the density metric value slowly falling by distance x, then falling very quickly to zero. However, other density metric calculations may alternatively be used. This concept is illustrated in Figures 4a-d which show the density at different locations corresponding to a halftone matrix for four different passes. The darker dots represent locations of a higher value of density metric and so according to the method a halftone pixel will tend to be allocated to a pass mask with the lowest value of density metric.

[0035] At 240, the method allocates the current identified pixel to the pass or mask with the lowest density metric. This means that a colorant dot or drop for that halftone pixel will be applied to the substrate in the allocated pass. This may be implemented by generating a mask or pass matrix for each pass, with allocated halftone pixels being represented in the elements of each pass matrix. Figure 3c shows the allocation of halftone pixels to three masks or passes A, B, C for pixels having a halftone value of 1.

[0036] At 250, the method determines if all of the halftone pixels for the current halftone value have been allocated, and if not, returns to 230 where the next halftone level (or range of halftone levels) is considered. Pixels for a halftone level 2, as well as already considered halftone level 1 , are identified in Figure 3d. [0037] The halftone pixels for the current halftone level are iterated through randomly and their density matric value determined for each pass. The current halftone pixel is allocated to the pass with the lowest density metric value. If the value for two or more passes are equal, one of these passes is randomly selected for the current halftone pixel. This iteration continues until there are no more pixels for the current halftone level. Figure 3e illustrates halftone pixels for halftone levels 1 and 2 distributed amongst the three passes.

[0038] At 260, the method determines if there are further halftone values to consider, and if so returns to 220 to identify halftone pixels having the next halftone level. The halftone levels may be iterated from lowest to highest, for example levels 1 to 10 in the current example, however alternative approaches are possible. By building up the pass matrices or masks from low (dark) to high (light) halftone levels, the most visible printing fluid drops (e.g. low halftone value - darker ink) are most widely distributed improving the image quality perceived by a viewer. However, starting from a high halftone level and iterating to a low halftone level is an alternative approach.

[0039] Returning to 230, the method randomly iterates through the halftone pixels identified for the next halftone level, determining their density metric value and allocating them to one of the passes based on this. The value of the density metric will depend on the distance to already allocated halftone pixels from lower halftone levels as well as any already allocated at the current halftone level. Again, at 240, the method allocates each halftone pixel of the current halftone value to the pass or mask with the lowest value of the calculated density metric. In this way, the allocation of halftone pixels for each halftone level to each pass is more evenly distributed, and in general the completed mask for each pass has a more random but uniform distribution, for example similar to blue noise.

[0040] The method 200 repeats until all halftone levels have been considered, and hence all halftone pixels have been allocated to one of the passes or masks. Once all of the masks have been completed, they may be used for printing an image pixel using corresponding passes of the carriage 24.

[0041] At 270, the method applies the pass masks to color data for one or more image pixels. The pass masks are used to generate a partial halftone pattern for each pass, depending on the halftone level (and halftone matrix if more than one is used) of the image pixel.

[0042] For example, an image pixel having a grey level of 200 for a single colorant may be processed by the method to generate three (or a different number) of partial halftone patterns which together would sum to a halftone pattern corresponding to a halftone matrix with level 200. However, the colorant is printed using the three partial halftone patterns in different passes. This reduces the effects of coalescing and other undesirable effects of drops of overlapping colorant interacting with each other before fully dried on the substrate.

[0043] In another example using a Parallel Random Area Weighted Coverage Selection (PARAWACS) matrix and illustrated in Figure 6, multiple colors are applied within the partial halftone patterns across multiple passes. A simple PARAWACS matrix 630 is illustrated and for one imager pixel receives an NPac 610 having the following distributions: CM 0.4; M 0.1 ; C 0.2 and b (white or blank) 0.3. This may be converted into a cumulative vector 620 and applied to the halftone matrix 630 to generate a halftone pattern 640. However, a method according to an example may be employed to distribute the colorants for each halftone pixel amongst two passes 650-1 and 650-2 as illustrated, effectively generating two partial halftone patterns which are applied in different passes at different times.

[0044] In a HANS print pipeline, image pixels to be printed are represented by NPacs or NP are coverage or probabilities for each contone. Halftoning in this case distributes the NPs spatially which at a single halftone pixel means selecting an appropriate NP from the assigned NPac. The use of a pre-computed PARAWACS matrix provides a selector matrix (e.g. 0 to 255 for 8-bits) that has desired spatial properties and whose values are used as selectors from the NP probabilities defined in the NPacs. Such as matrix could be designed to represent blue noise or green noise. In an example, the halftoning algorithm uses a single PARAWACS matrix which means the halftone pattern is deterministic and only depends on the single matrix. Given this and a density of colorant dots or drops, it can be determined where the drops will be in the halftoned image. It can also be determined where the darker more visible drops will be located. By allocating the dots in each pass using dot density in each pass, an improved distribution of dots can be generated for each pass, as well as for each overall halftone pattern. [0045] In some examples, halftone levels may be allocated in part according to color. For example, Magenta is much more visible than Cyan and so the low to high halftone levels may be allocated first to Magenta (dark to light), then Cyan (dark to light), then an even lighter color such as White.

[0046] In some examples, the masks can be optimized for other properties using an appropriate density metric. For example, where firing frequency is considered, distances between drops fired in the same row could be optimized. Some clustering of drops may even be desirable in some circumstances. Suitable density metrics for these approaches may be determined experimentally.

[0047] Figure 5a illustrates a halftone pattern (top) and a mask (middle) for one of a number of passes which is applied to the halftone pattern. The resulting swath image (bottom) shows clustering and gaps in the printed colorant after one pass which is visually perceptible and undesirable. By contrast, Figure 5b illustrates a halftone pattern (top) and a mask (middle) determined according to an example. The resulting swath image (bottom) is much more evenly distributed and no clustering and gaps can be observed.

[0048] Even if the overall halftone pattern is good (e.g. based on blue noise), if dots or ink drops are printed in each pass with non-uniform clusters and empty areas, attributes such as coalescence (how inks interact before fully drying on the substrate) may negatively impact the completely render image in terms of grin. Also, depending on the per-pass pattern, alignment artefacts between passes and between printhead arrays can interact differently and can adversely affect overall image quality attributes. In some examples, given the halftone patterns, pass masks can be determined such that per-pass pattern quality is maximized (for example by reducing coalescence effects) which in turn can result in significant improvements in pattern control and therefore overall final print quality. This may include improving grain consistency (the level of grain variability between prints), absolute grain performance (overall grain level) as well as effectiveness of pattern control - for example the desired differences as specified in NPacs or halftones as how inks are to overprint at a pixel, or not.

[0049] Some examples provide improved pattern control, both the overall pattern as well as the per pass pattern. This improves absolute grain as well as improving grain consistency between prints and different printing conditions. The NPac range may also be increased with improvements in side-by-side (avoiding dot on dot) and overprinting (favoring dot-on-dot) extremes allowing the potential for greater image quality and color optimization. These advantages may be particularly useful for some applications, such as using latex materials. Software based examples may be easily deployed to upgrade legacy systems, including Page-Wide Arrays (PWA).

[00501 The preceding description has been presented to illustrate and describe examples of the principles described. This description is not intended to be exhaustive or to limit these principles to any precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is to be understood that any feature described in relation to any one example may be used alone, or in combination with other features described, and may also be used in combination with any features of any other of the examples, or any combination of any other of the examples.