Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CREATING A SET OF PRINTING MASKS
Document Type and Number:
WIPO Patent Application WO/2021/206705
Kind Code:
A1
Abstract:
Examples described herein relate to the creation of a set of printing masks in a printing system. Data indicative of a grayscale halftone matrix is received and a fraction of each agent relative to every other agent, and an ordering of the agents. An or each element of the grayscale halftone matrix to which an agent is to be applied is identified and a printing mask is created that results in application of the agent to the or each identified element using the determined fraction of the agent. This is repeated for subsequent orders in the determined ordering to create a set of printing masks. An order in which the printing masks are to be applied to the substrate is then determined.

Inventors:
MOROVIC PETER (ES)
MOROVIC JAN (GB)
VIDAL FORTIA JOAN (ES)
Application Number:
PCT/US2020/027239
Publication Date:
October 14, 2021
Filing Date:
April 08, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
International Classes:
H04N1/405; G03F3/08
Foreign References:
US20070046999A12007-03-01
US20120050356A12012-03-01
US20160155032A12016-06-02
US20160037017A12016-02-04
US20200036866A12020-01-30
Attorney, Agent or Firm:
PERRY, Garry A. et al. (US)
Download PDF:
Claims:
CLAIMS

1. A method, comprising: receiving data indicative of a grayscale halftone matrix, the grayscale halftone matrix comprising a plurality of elements, each representing a value on the grayscale; for each of a plurality of agents to be applied to a substrate, determining a fraction of the agent, relative to every other agent; determining an ordering of the agents; creating a set of printing masks, each of which is to be applied to the substrate, said creating including:

(i) for a first order in the determined ordering, identifying an or each element of the grayscale halftone matrix to which an agent is to be applied,

(ii) creating a printing mask, which, when applied to the substrate, results in application of the agent to the or each identified element using the determined fraction of the agent;

(iii) repeating (i) and (ii) for subsequent orders in the determined ordering; and determining a sequence in which the printing masks are to be applied to the substrate.

2. The method of claim 1 wherein, for one of the printing masks, the method further includes: identifying an or each additional element of the grayscale halftone matrix to which a further agent is to be applied, and creating the printing mask, which, when applied to the substrate, results in application of the further agent to the or each identified additional element using the determined fraction of the second agent.

3. The method of claim 1 wherein determining the ordering of the agents comprises receiving data indicative of an ordering for, and with respect to, each of the plurality of elements of the grayscale halftone matrix.

4. The method of claim 1 wherein determining the ordering of the agents comprises determining an ordering in which the agents are to be applied to the substrate.

5. The method of claim 1 wherein a printing mask comprising a pretreatment fluid is determined to be positioned first in the determined sequence of printing masks.

6. The method of claim 1 wherein a printing mask comprising a fixer fluid is determined to be positioned last in the determined sequence of printing masks.

7. The method of claim 1 wherein the grayscale halftone matrix is a PARAWACS halftone matrix.

8. The method of claim 1 wherein the plurality of agents comprises a set of Neugebauer Primaries, and the fraction of each Neugebauer Primary to be applied to the substrate is determined by an NPac vector.

9. The method of claim 1 wherein the fraction of each agent relative to every other agent and the ordering of the agents are determined using a look-up table.

10. The method of claim 1 wherein the substrate is a three-dimensional build unit and the plurality of agents to be applied to the substrate comprise fusing and detailing agents.

11. A print system, comprising: a printing device to apply agents to a print medium in a printing process; a memory arranged to store computer-readable instructions; and a processor to execute the computer-readable instructions to: receive data indicative of a grayscale halftone array, the grayscale halftone array comprising a plurality of elements, each representing a value on the grayscale; for each of a plurality of agents to be applied to the print medium, determine a fraction of the agent, relative to every other agent; determine an ordered sequence of the agents; create a set of printing masks, each of which is to be applied to the print medium, by:

(i) for a first order in the determined ordered sequence, identifying an or each element of the grayscale halftone array to which an agent is to be applied,

(ii) creating a printing mask, which, when applied to the print medium, results in application of the agent to the or each identified element using the determined fraction of the agent;

(iii) repeating (i) and (ii) for subsequent orders in the determined ordered sequence; and determine an order in which the printing masks are to be applied to the substrate.

12. The print system of claim 11 , wherein: the printing device is a 2D printing device; the plurality of agents comprises printing fluids; and the grayscale halftone matrix is a PARAWACS matrix.

13. The print system of claim 11 , wherein: the printing device is an additive manufacturing device; and the plurality of agents comprises a fusing agent and energy to be applied to the print medium.

14. A computer readable medium comprising a set of instructions, which, when executed by a processor of a printing system, cause the processor to: receive data indicative of a grayscale halftone array, the grayscale halftone array comprising a plurality of elements, each representing a value on the grayscale; for each of a plurality of agents to be applied to the print medium, determine a fraction of the agent, relative to every other agent; determine an ordered sequence of the agents; create a set of printing masks, each of which is to be applied to the print medium, by:

(i) for a first order in the determined ordered sequence, identifying an or each element of the grayscale halftone array to which an agent is to be applied, (ii) creating a printing mask, which, when applied to the print medium, results in application of the agent to the or each identified element using the determined fraction of the agent;

(iii) repeating (i) and (ii) for subsequent orders in the determined ordered sequence; and determine an order in which the printing masks are to be applied to the substrate.

Description:
CREATING A SET OF PRINTING MASKS

BACKGROUND

[0001] Halftoning and masking are procedures in a printing process. Halftoning relates to how particular agents or combinations of agents are to be distributed on a substrate to achieve a desired reproduction of input content, while masking relates to a process of distributing halftones over printing events, effectively determining which agents or combinations of agents are to be applied to the substrate and when. The two processes are generally independent, and as a result spatial and temporal control of the distribution of the agents is difficult to achieve.

BRIEF DESCRIPTION OF THE DRAWINGS

[0002] Various features of the present disclosure will be apparent from the detailed description which follows, taken in conjunction with the accompanying drawings, which together illustrate features of the present disclosure, and wherein: [0003] Figure 1 is a schematic diagram of a printing system according to an example;

[0004] Figure 2A is a grayscale halftone matrix according to an example;

[0005] Figure 2B is a PARAWACS matrix according to an example;

[0006] Figure 3A shows the creation a set of printing masks according to a first example;

[0007] Figure 3B shows the creation a set of printing masks according to a second example;

[0008] Figure 4 is a flowchart illustrating an example method of creating a set of printing masks;

[0009] Figure 5 is a computer-readable storage medium according to an example.

DETAILED DESCRIPTION

[0010] This disclosure describes various methods of producing output content. These methods include techniques for printing a 2D document and also for the production of three-dimensional objects by so-called additive manufacturing. To produce a printed output, content data for the desired printed output is processed to form control instructions for a printing apparatus. These control instructions need to be in conformity with available printing operations, also referred to herein as deposition of printing agents and / or discharge operations, that can be performed by the printing apparatus.

[0011] For example, a printing apparatus has a finite number k of available printing agents that can be applied to a substrate, and a finite number L of levels of discrete agent formation. In such a printing apparatus, the content data is processed to generate control data in which there are L k possible discharge operations for each print location.

[0012] In the case of color inkjet printing, the number of discharge operations for each print location is generally much smaller than the number of colors representable in a digital image. For example, in the RGB color model, different amounts of red, green and blue are combined to produce a range of colors. In this model, a single pixel in an 8-bit color image can take one of a possible 256 3 different colors, which is much larger than the number of colors printable by an inkjet printer. [0013] To bridge the large gap in colors between an input digital image and a printed output, a halftoning technique is employed which selectively deposits individual dots of printing agent, also referred to herein as printing fluid, such that the printed image appears to contain more tones than are physically possible to deposit using the printer. This relies on the human perception of many discrete dots of ink appearing to blend into a single block of color when viewed from a suitable distance. The resulting output can be referred to as a spatial distribution of the individual dots, and can be determined during the printing process in such a way that colors that are not within the L k printable colors of the printing apparatus are mimicked in the printed output, at least as far as human perception is concerned.

[0014] One way of doing this is mapping the color of individual pixels in the digital image to an area coverage color space, such as the Neugebauer Primary area coverage (NPac) color space. A single element in the NPac color space is a vector that represents a statistical distribution of Neugebauer Primaries (NPs) over a given area (halftone). In a simple binary (L= 2, i.e. two drop states: “drop” or “no drop”) printer, an NP is one of 2 k A combinations of k printing fluids within the printing system, or an absence of printing fluid (resulting in 2 k 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. [0015] A printing fluid, or colorant, combination as described herein is formed of one or multiple printing fluids or colorants. For example, if a bi-level printing device uses cyan, magenta and yellow (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 two 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”.

[0016] In multi-level printers, e.g. where print heads are able to deposit L drop levels, an NP may include one of L k - 1 combinations of k printing fluids, or an absence of printing fluid (resulting in L k NPs in total). A multi-level printer may use a piezo electric or thermal print head that is capable of depositing different numbers of drops or different drop volumes, and/or may use multiple passes of a printhead, to enact different drop states. For example, if a multi-level printer uses CMY printing fluids with four different drop states (“no drop”, “one drop”, “two drops” or “three drops”), available NPs can include C, CM, CMM, CMMM, etc. A “drop sequence” as used herein defines a set of drop states used or useable by a given printing system in a given operating state.

[0017] Each NPac vector therefore defines a probability distribution for colorant or printing fluid combinations for each pixel in a 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 a 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 the halftone. Moreover, the statistical distribution of NPs to pixels in the halftone serves to control the colorimetry and other print characteristics of the halftone.

[0018] 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 which will be discussed in more detail below. This results in discrete deposit instructions for print resolution pixels, e.g. instructing 0 to L drops of each of the k printing fluids on an addressable area of a print medium. Over a plurality of addressable areas, e.g. an area of print substrate, having a color defined by an NPac vector, the distribution of the printed output will tend towards the statistical distribution of area coverage defined by the NPac vector. An example of a printing pipeline that uses area coverage representations for halftone generation is a Halftone Area Neugebauer Separation (HANS) pipeline.

[0019] It may not be possible to apply the entire content of the halftone to the print substrate in a single pass of a printhead. Furthermore, it may be desired to print certain printing agents before certain other printing agents to avoid visual defects in the printed output. Therefore, the temporal distribution of the printing agents onto a substrate is determined by a series of printing masks that determine which elements of the halftone are to be printed during each pass of the applicator(s).

[0020] Methods of masking include distributing the halftone using error diffusion techniques, which involve recursively comparing a threshold value with each color value of pixels in the digital image to determine which are to be printed. If a pixel is determined to be printed, the difference between the pixel value and the threshold value is computed and diffused into neighboring unprocessed pixels. The result is that the halftone and masking procedure is image dependent and therefore non determ inistic. In this case, it is not possible to determine the spatial and temporal distribution of each individual printing agent deposition prior to printing. This can lead to lower quality printing due to certain printing agents being deposited before others in a non-optimal way. This means that defects such as smudging, or dispersion of colorant may occur, and which would not occur if the printing agents were deposited in an optimal way. Optimization is possible for a single print output, but an optimal set of printing masks for a first print output may not correspond to an optimal set of printing masks for a second print output due to the image dependence of the masking process. [0021] Examples described herein link the halftoning and masking procedures by determining a set of printing masks directly from a grayscale halftone matrix. The examples are relevant to any printing process in which a plurality of printing agents are applied to a substrate, and wherein it is desired to apply each agent in a particular order.

[0022] Therefore, the examples described herein are also applicable to additive manufacturing processes wherein the print output is a three-dimensional printed object. In such systems, the substrate may be a build material in the form of a powder bed comprising, for example, plastic, metallic, or ceramic particles. In some examples, the build material is above a build platform of the build unit and has an x-axis and a y- axis. The build platform lowers in a z-axis of the build volume as successive layers of build material are deposited on the build platform. The build material can be, for example, powder-based, and the material properties of the generated objects may be dependent on the type of build material used and the nature of the solidification process. In some examples, the solidification of the powder material is enabled using a liquid fusing agent. In other examples, solidification may be enabled by the temporary application of energy to the build material. In certain examples, fusing agents are applied to the build material, wherein a fusing agent is a material that, when a suitable amount of energy is applied to a combination of build material and fusing agent, causes the build material to melt, fuse, sinter, coalesce or otherwise solidify. Detailing agent may also be selectively applied where the fusing action is to be reduced or amplified. Coloring of the printed three-dimensional objects is also possible. In some examples, colorants may be deposited on a white (or “blank”) powder to color the powder. In other examples, objects may be constructed from layers of fused colored powder.

[0023] Examples of build materials for additive manufacturing include polymers, crystalline plastics, semi-crystalline plastics, polyethylene (PE), polylactic acid (PLA), acrylonitrile butadiene styrene (ABS), amorphous plastics, polyvinyl alcohol plastic (PVA), polyamide (e.g., nylon), thermo(setting) plastics, resins, transparent powders, colored powders, metal powder, ceramics powder such as for example glass particles, and/or a combination of at least two of these or other materials wherein such combination may include different particles each of different materials or different materials in a single compound particle. Examples of blended build materials include alumide, which may include a blend of aluminum and polyamide, and plastics or ceramics blends. There exist more build materials and blends of build materials that can be managed by an apparatus of this disclosure and that are not mentioned in this disclosure.

[0024] The example methods provide a way of creating a series of printing masks that distribute a subset of agents per pass of an applicator can be determined in a similar way as above with regards to 2D printing. In addition, the spatial and temporal distribution of the applied energy is also controlled using the methods described herein. Furthermore, the example methods are also applicable to other in line processes in a 2D printing system such as content-dependent drying, curing or sublimation processes. Thus, “agent” as used herein can refer to electromagnetic as well as to chemical agents.

[0025] Figure 1 shows a print system 100 according to an example. Certain examples described herein are implemented within the context of this print system. The print system 100 applies agent to a substrate, or medium, to produce a print output 140. The print system 100 may be a 2D printing system such as an inkjet or digital offset printer. Alternatively, the print system 100 may be a 3D printing system, otherwise referred to as an additive manufacturing system. In the example of Figure 1 , the print system 100 comprises a print device 110, a memory 120, and a processor 130. The print device 110 applies agent to a print target in a printing process to produce the print output 140 according to instructions stored on the memory 120 and executed by the processor 130.

[0026] The print output 140 may, for example, comprise colored printing fluids deposited on the substrate. In this case, an agent may refer to a single printing fluid or a combination of a plurality of printing fluids. The printing device 110 may comprise an inkjet deposit mechanism which comprises a nozzle to deposit the printing fluids. In this case, the substrate may be paper, fabric, plastic or any other suitable print medium and the print system 100 may further comprise means to dry, cure or sublimate the substrate after application of the printing fluids.

[0027] In additive manufacturing systems, the print output 140 is a three- dimensional printed object. In such systems, the substrate may be a build material wherein chemical agents, such as fusing, detailing and colorant agents, are applied at each level of a build volume.

[0028] When executed by the processor 130, the computer-readable instructions stored on the memory 120 cause the processor 130 to receive data indicative of a grayscale halftone array, the grayscale halftone array comprising a plurality of elements, each representing a value on the grayscale.

[0029] In general, a halftoning process takes a digital image comprising an array of pixels, and maps to an output comprising many dots that reproduces the digital image when viewed from a suitable distance. A grayscale halftone matrix is an array comprising elements, each with a value on the grayscale. The grayscale is a scale of tone values between black and white. In general, an N-bit grayscale has 2 N possible values of gray. In the example of an 8-bit grayscale, each element of the grayscale halftone matrix can take one of 256 possible gray values between 0 (black) and 255 (white). More generally, grayscale halftone matrices comprising elements with values of any bit-depth are possible.

[0030] One example of a grayscale halftone matrix is a dither matrix which is defined in the sense of thresholding to produce binarized print outputs from a digital image input. Another example of a grayscale halftone matrix is a PARAWACS halftone matrix which comprises grayscale values that are distributed throughout the matrix according to a particular statistical distribution. The generation of a PARAWACS halftone matrix will be discussed in relation to Figures 2A and 2B.

[0031] Figure 2A shows an example generation of a 3x3 grayscale halftone matrix 205 from a grayscale vector 200. In this example, the grayscale is a 3-bit grayscale, wherein each value on the grayscale is an integer between 0 (black) and 7 (white). Each element of the grayscale vector 200 represents one of the 8 gray tones, and the values of each element represent a relative fraction of each gray tone within the 9 pixel halftone. The relative fraction of each gray tone is determined by considering a perceived tone of gray that is desired in the halftone.

[0032] In this example, the elements of the grayscale vector 200 are sequentially placed in the grayscale halftone matrix 205. For instance, the first non zero value in the grayscale vector 200 is 1/9 of gray tone 1. This is placed in the uppermost left element 210 of the grayscale halftone matrix 205. Continuing this for successive values in the grayscale vector 200, another 1 is placed in 215, a 3 is placed in 220, a 6 is placed in 225 and 230 and a 7 is placed in 235, 240, 245 and 250 until the complete grayscale halftone matrix 205 is generated.

[0033] On a larger scale, for example when the matrix is of size 512x512, this method of generating a grayscale halftone matrix may not lead to an accurate printed output. An alternative is to determine the placement of grayscale values from a grayscale vector according to a particular statistical distribution. In this way, the resulting grayscale halftone matrix is referred to as a Parallel Random Area Weighted Area Coverage Selection (PARAWACS).

[0034] Figure 2B shows an example PARAWACS halftone matrix 205’ generated by determining the placement of each value in a grayscale vector 200’ according to uniformly distributed random numbers. In this example, uniformly distributed numbers are generated in the range of 0 to 1. Then, depending on the randomly generated number, a different gray value is chosen from the grayscale vector 200’, proportionally to its relative fraction. [0035] Firstly, the grayscale vector is expressed cumulatively as [1 =2/9, 3=3/9, 6=5/9, 7=1], where zero elements have been omitted for brevity. Now one of the randomly generated numbers is chosen. If the first randomly generated number is between 0 and 2/9, a 1 from the grayscale vector 200’ is placed in element 210’ in the PARAWACS halftone matrix 205’. If the randomly generated number is between 2/9 and 3/9, a 3 is placed, if it is between 3/9 and 5/9 a 6 is placed and if it is between 5/9 and 1 , then a 7 is placed. The probability that the element 210’ is a particular gray tone is equal to the fraction of the gray tone in the grayscale vector 200’.

[0036] This property means that, in the limit of an infinitely sized halftone, the NPac will be directly be represented at the level of the halftone and the elements can be distributed according to a particular statistical distribution. For example, the resulting pattern of the distribution of the elements in the PARAWACS matrix shown in Figure 2B is referred to as white noise. Other examples are possible. By sampling random numbers from different statistical distributions, the resulting pattern within the grayscale halftone can be adjusted. Such patterns can include blue and green noise. Using such patterns within the grayscale halftone matrix can reduce the appearance of visual defects in printed images compared to other halftone methods.

[0037] When executed by the processor 130, the computer-readable instructions stored on the memory 120 also cause the processor 130 to determine a fraction of each agent, relative to every other agent. This determines the amounts of each agent that are to be applied to the substrate.

[0038] In 2D color inkjet printing, the fraction of each printing fluid, relative to every other printing fluid, determines the output print color and is determined to represent the input color data. This information can be obtained from an NPac vector. As explained above, each NPac vector may be determined by a mapping between colors defined in a first color space, wherein the input data is defined, and corresponding colors defined in a second color space. This mapping can be computed directly by the processor 130 but is generally stored in a data structure, such as a lookup table.

[0039] In some examples, such a lookup table is used to map colorimetric values to vectors in an area coverage space. For example, the lookup table may map RGB or CMYK color values to NPac vectors. In some examples, the lookup table maps XYZ, LAB or any other color space used to specify a device color space. Where the vectors comprise NPac vectors, the lookup table is referred to as a “HANS lookup table”. When an RGB mapping is used, the HANS lookup table comprises 17 3 entries. When a CMYK mapping is used, the HANS lookup table comprises 9 4 entries. The HANS lookup table comprises a one-to-one mapping from input color values to NPac vectors.

[0040] Similar techniques can be used in 3D printing apparatus to determine relative fractions of each agent relative to every other agent. In this case, the relative fractions of each agent can be determined from the desired shape of the printed object and the amount of energy needed to be applied to solidify build material where fusing agent has been applied.

[0041] When executed by the processor 130, the computer-readable instructions stored on the memory 120 further cause the processor to determine an ordering, or sequence, of the agents. The ordering or sequence of the agents determines the order in which agents are added to respective printing masks, which in turn determines the spatial distribution of each agent on the print medium. As will be discussed below with reference to creating the printing masks, the sequence of the agents matches the order in which each printing mask is created, so that a first printing mask will comprise agent in the first order in the determined sequence. In one example, the ordering of the agents is determined based on the content of the grayscale halftone matrix.

[0042] As has been described above, the grayscale halftone matrix may comprise elements that are distributed according to a particular statistical distribution, so determining a sequence of the agents determines how each agent is to be distributed in the print output 140. This may be done by determining that agents are to be distributed in correspondence with the distribution of particular gray values in the grayscale halftone matrix. For example, a first printing mask may identify corresponding elements of the grayscale halftone matrix comprising the lightest gray tones. A first agent in the determined ordering can then be distributed in the first printing mask according to the distribution of the lightest tone in the grayscale halftone matrix. This continues for subsequent agents in the determined sequence and the corresponding elements comprising consecutively darker tones in the grayscale halftone matrix.

[0043] In another example the printing masks may be applied to the print medium in the order in which they are created, in which case the determined sequence of the agents corresponds to the sequence in which the agents are to be applied to the medium. In any case, the determination of the sequence of agents may be done by the processor 130 or determined from a data structure, such as the HANS lookup table described above. In 2D printing, this involves determining the NP order.

[0044] The computer-readable instructions, when executed by the processor 130, further cause the processor to create a set of printing masks, each of which is to be applied to the print medium. Each printing mask corresponds to a spatial distribution of agents applied during a single pass of an applicator. Creating the printing masks comprises identifying, for a first order in the determined sequence, an or each element of the grayscale halftone array to which an agent is to be applied. For instance, the grayscale halftone matrix comprises a sense of directionality, for example white to black, which can be associated with the sequence of agents. In this way, the spatial distribution of agents can be determined from the received grayscale halftone matrix, the relative fractions of each agent and an ordering or sequence of the agents. As an example, the lighter tones of the grayscale halftone matrix can be identified with the agents towards the beginning of the sequence.

[0045] The computer-readable instructions, when executed by the processor 130, further cause the processor 130 to create a printing mask, which, when applied to the print medium, results in application of the agent to the or each identified element using the determined fraction of the agent.

[0046] The printing mask is generally an array of equal dimensions to the grayscale halftone matrix, in which case each identified element is conveniently associated with a corresponding element of the printing mask array. This means that the agent(s) corresponding to the identified elements can be applied in a single pass. In this way, the printing mask is generated directly from the grayscale halftone matrix. Therefore, appropriate choices, plus the determined fraction of each agent determine the printed output.

[0047] This process of creating printing masks can be repeated for subsequent orders in the sequence until a full set of printing masks is created that, when combined, distribute the entire NPac according to the spatial pattern of the grayscale halftone matrix.

[0048] The computer-readable instructions, when executed by the processor 130, further cause the processor to determine a sequence in which the masks are to be applied to the substrate. This determines the order in which agents are applied to the substrate and may be actively performed by the processor or predetermined according to a desired sequence in which the agents are to be applied.

[0049] For example, in 2D color printing, it may be desired to apply a pretreatment fluid to the print substrate before the application of any other printing fluids. In this case, a printing mask comprising pretreatment fluid may be determined to be positioned first in the sequence of printing masks. In this case, it may be useful to avoid applying any other printing fluids in at least the next subsequent pass in order for the pretreatment fluid to partially dry. In this case, a blank printing mask can be determined to be applied subsequent to the printing mask comprising the pretreatment fluid.

[0050] In another example, it may be desired to apply a fixer fluid to the substrate after all other printing fluids have been applied. In this case, a printing mask comprising the fixer fluid may be determined to come last in the sequence of printing masks.

[0051] In additive manufacturing systems, the order in which agents are applied to the substrate also affects print quality. For example, when colorant is to be applied to the printed object, similar issues discussed above with regards to 2D color printing arise. Additionally, application of energy to each layer of the build material generally follows the application of the fusing and detailing agents.

[0052] Figure 3A shows the creation of a set of printing masks 310, 315, 320, 325 according to an example. A halftone grayscale matrix 300 is used to create the set of printing masks 310, 315, 320, 325 using a fraction of each agent and an ordering of each agent defined in a tuple 305. The grayscale halftone matrix 300 is identical to the PARAWACS matrix 205’ in Figure 2B, and comprises a directionality that can be used to determine the order in which the printing masks 310, 315, 320, 325 are created. The directionality is from white to black, which in this case corresponds to 1 to 7 in terms of gray values.

[0053] The tuple 305 comprises a list of agents A, B, C and D that are to be applied to a substrate. The ordering in which the printing masks are created is determined by the directionality in the grayscale halftone matrix and the ordering of the agents within the tuple determines the content of each printing mask. For example, a first order in the directionality of the grayscale halftone matrix 300 comprises those elements of the matrix 305 with gray values of 1 , of which there are two such elements. The fraction of agent A, which is listed first in the tuple 305, is 2/9 so that the two elements of the grayscale halftone matrix 300 comprising gray value 1 are identified with agent A.

[0054] A first printing mask 310 is then created, which, when applied to the substrate, results in application of agent A to the identified elements.

[0055] This is continued for subsequent orders in the ordering of agents. For instance, the next order in the directionality of the grayscale halftone matrix 300 comprises those elements with gray value 3, of which there is one. This element is identified with agent in the tuple 305. The desired fraction of agent A is already to be applied using the first printing mask, so the element is identified with the next agent listed in the tuple, which is agent B. A second printing mask 315 is then created such that, when applied to the substrate, it results in application of agent B to the identified element. This process continues for subsequent orders wherein printing masks 320 and 325 are created.

[0056] Once the set of printing masks are created, it can be determined in which order they are to be applied to the substrate. This is done by assigning each printing mask to a pass of a printhead. For example, the printing mask comprising the agent(s) that is determined to be applied to the substrate first is assigned to a first pass of the printhead. Determining a sequence in which the printing masks are to be applied to the substrate allows a user to optimize the order in which agents are applied to the substrate.

[0057] In one example, the printing masks are applied to the substrate in the order in which they are created, so that Mask 1 310 is applied during pass 1 of the printhead, Mask 2 315 is applied during pass 2 of the printhead, and so on. In another example, Mask 3 may be determined to be applied during pass 1 of the printhead. This may be because Mask 3 comprises a pretreatment agent, for example. Being able to change the order in which printing masks are applied to the substrate in this way allows for a determination of the print quality corresponding to each ordering and consequently allows for a determination of the ordering of printing masks that results in the best print quality. This optimized ordering of the printing masks can be used for subsequent print jobs because the ordering of agents and the sequence in which the printing masks are created are correlated.

[0058] In Figure 3A, the fraction of each agent, relative to every other agent, corresponds to a number of gray values in each order of the directionality in the grayscale halftone matrix 300. The result of this is that each printing mask comprises a single agent. However, this need not be the case. For example, the identifying may involve associating more than one agent with a plurality of elements comprising a single gray value in a grayscale halftone matrix. In this example, a number of elements in a grayscale halftone matrix comprising a particular gray value may differ from a number of dots of an agent that is to be applied to the substrate. As a result, a single printing mask may involve application of more than one agent to the substrate in a single pass. This may be useful when it is desired to place the agents on the substrate in the shortest amount of time possible.

[0059] Figure 3B shows the creation of a set of masks 310’, 315’, 320’, 325’ according to another example. In this example, two of the resulting printing masks 310’ and 325’ comprise more than one agent. The grayscale halftone matrix 300’ is identical to the grayscale halftone matrix 300’, but tuple 305’ differs from the tuple 305 shown in Figure 3A. As before, the directionality of the grayscale halftone matrix 300’ determines the ordering in which the printing masks are created, and the ordering of agents in the tuple 305’ determines the content of each printing mask. In this case, the fraction of agent A, relative to every other agent is 1/9 and there are two elements of the grayscale halftone matrix 300’ comprising the lowest gray value of 1 . Therefore, identifying the elements in the grayscale halftone matrix 300’ comprising the lowest gray value involves identifying agent A and subsequent agent B.

[0060] In this example, a first printing mask 310’ is created, which, when applied to the substrate, results in application of agents A and B to the identified elements using the fractions of agents A and B during pass T of the printhead. This continues for the creation of a second printing mask 315’. A single element of the grayscale halftone matrix 300’, comprising gray value 3, is identified with agent B and the printing mask 315’ is created to apply agent B to the identified element. This results in 2/9 of the printed halftone comprising agent B which agrees with the fraction of agent B in the tuple 305’. This process continues to create printing masks 320’ and 325’.

[0061] It will be appreciated that, while in the examples above the directionality is dependent on increasing values on the grayscale, it could alternatively be dependent on decreasing values on the grayscale. Further, while each of the passes in the examples described with regards to Figures 3A and 3B involve application of one or more agents to the substrate, a pass may involve no application of any agents. This is particularly beneficial in the case where drying time is needed with regards to a particular agent that has been applied in a previous pass, as explained above. [0062] By creating a set of printing masks directly from the grayscale halftone matrix based on the relative fraction of agents and an ordering of the agents, and determining an order in which to apply the printing masks, allows the resulting spatial and temporal distribution of agents to be determined prior to printing. The result of this is that content dependence at the pass and halftone levels can be reduced, and even removed. This results in fewer printing defects or artefacts because the halftone can be determined beforehand according to a particular statistical distribution.

[0063] It is also possible to optimize how the agents are placed. For example, through repeated experimentation, it is possible to determine an optimal agent deposition order for a first print job. The optimal agent deposition order may be determined by observing the visual artefact dependence on the ordering of the printing masks, for example. This determined optimal ordering of the printing masks can then be carried through to subsequent print jobs due to the lack of content dependence in the described method.

[0064] Figure 4 is a flowchart illustrating a method 400 of creating a set of printing masks. The method 400 may be applied by a data processing apparatus which may be a part of a printing system or may be provided externally, but communicatively coupled to the printing system.

[0065] At block 405, the method 400 includes receiving data indicative of a grayscale halftone matrix, the grayscale halftone matrix comprising a plurality of elements, each representing a value on the grayscale. As has been described above, the grayscale halftone matrix may be a PARAWACS halftone matrix comprising elements distributed according to a particular statistical distribution.

[0066] At block 410, the method 400 involves, for each of a plurality of agents to be applied to a substrate, determining a fraction of the agent, relative to every other agent. The fraction of each agent determines how much of each agent is to be applied to the substrate and may be determined by a processor arranged to determine an output for a particular input. Alternatively, the fractions of each agent may be determined from a data structure, such as a FIANS lookup table. In 2D printing systems, the agents comprise printing fluids, or colorants. In additive manufacturing systems, the agents comprise fusing agent and energy that is to be applied to the print medium to solidify portions of the print medium.

[0067] At block 415, the method 400 comprises determining an ordering of the agents. The ordering can be determined by the processor or by the data structure, for example. The ordering, when combined with the grayscale halftone matrix and the relative fractions of each agent, determines the spatial distribution of agents in the print output.

[0068] At block 420, the method 400 comprises creating a set of printing masks, each of which is to be applied to the substrate. The creating the set of masks includes, for a first order in the determined ordering, identifying an or each element of the grayscale halftone matrix to which an agent is to be applied. This determines where the agents in the first order in the determined ordering are to be distributed in the printing mask.

[0069] Creating the set of printing masks further includes creating a printing mask, which, when applied to the substrate, results in application of the agent to the or each identified element using the determined fraction of the agent.

[0070] This process of identifying elements of the grayscale halftone matrix and creating a printing mask is repeated for subsequent orders in the determined ordering until a set of printing masks is created.

[0071] At block 425, the method 400 comprises determining a sequence in which the printing masks are to be applied to the substrate. As has been described above, the sequence may be determined by considering whether certain agents need to be applied to the substrate before certain other agents. This could be for visual considerations of a print output. Additionally, or alternatively, it could involve ensuring that a pretreatment agent is applied before any other agents.

[0072] In addition, the method 400 may further include identifying an or each additional element of the grayscale halftone matrix to which a further agent from a subsequent order in the determined order is to be applied. This may be the case when it is desired to place more than one agent in a single pass, and can reduce the time it takes to apply the plurality of agents to the substrate.

[0073] Figure 5 shows a computer readable medium 500 comprising a set of instructions 505, which, when executed by a processor 510 of a printing system, cause the processor 510 to create a set of printing masks in a similar manner to the previously described examples. The computer readable medium 500 may comprise any machine-readable storage media, e.g. such as a memory and/or a storage device. Machine-readable storage media can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable machine-readable media include, but are not limited to, a hard drive, a random-access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory, or a portable disc. In one case, the processor 510 may be arranged to store instructions 505 in memory such as RAM to implement the complex event processing engine.

[0074] The instructions 505 are arranged to, via instruction 515, receive data indicative of a grayscale halftone array, the grayscale halftone array comprising a plurality of elements, each representing a value on the grayscale.

[0075] Via instruction 520, the processor 510 is caused to determine a fraction of each agent of a plurality of agents, relative to every other agent.

[0076] Instruction 525 causes the processor 510 to determine an ordered sequence of the agents.

[0077] Instruction 530 causes the processor to create a set of printing masks, each of which is to be applied to the print medium. The creating the set of masks includes identifying, for a first order in the determined sequence, an or each element of the grayscale halftone array to which an agent is to be applied.

[0078] Creating the set of printing masks further includes creating a printing mask, which, when applied to the print medium, results in application of the agent to the or each identified element using the determined fraction of the agent. This process of creating the printing masks is repeated for subsequent orders in the determined sequence.

[0079] Instruction 535 causes the processor to determine an order in which to apply the printing masks to the print medium. This determines the temporal distribution of the agents onto the print medium.

[0080] 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.