WO2022086550A1 - Ink-vector to npac conversion - Google Patents

Ink-vector to npac conversion Download PDF

Info

Publication number
WO2022086550A1
WO2022086550A1 PCT/US2020/057017 US2020057017W WO2022086550A1 WO 2022086550 A1 WO2022086550 A1 WO 2022086550A1 US 2020057017 W US2020057017 W US 2020057017W WO 2022086550 A1 WO2022086550 A1 WO 2022086550A1
Authority
WO
WIPO (PCT)
Prior art keywords
ink
npac
vector
lut
convertible
Prior art date
Application number
PCT/US2020/057017
Other languages
French (fr)
Inventor
Sergio ETCHEBEHERE JUAN
Peter Morovic
Jan Morovic
Hector GOMEZ MINANO
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2020/057017 priority Critical patent/WO2022086550A1/en
Publication of WO2022086550A1 publication Critical patent/WO2022086550A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/56Processing of colour picture signals
    • H04N1/60Colour correction or control

Definitions

  • Color printing may result from a number of colorants of different colors being superimposed on top of a substrate, such as paper or other media. Since some printing technologies only allow for a very small number of levels of inks to be deposited at a given location on a substrate, half-toning may be used to obtain ink patterns that result in a given color when seen from a suitable viewing distance.
  • a printing system may be associated with a color space, defined by one or more colorants available to the printing system for deposition or application to a print medium.
  • An example of a colorant color space is the Cyan, Magenta, Yellow, BlacK (CMYK) color space, wherein four variables are used in a subtractive color model to represent respective quantities of colorants. Examples of colorants include inks, dyes, pigments, paints, toners and powders.
  • Figure 1 is a schematic illustration of the interaction of different color spaces according to an example
  • Figure 2 illustrates projection of an ink-vector into the convex hull of asset of ink-vectors according to an example
  • Figure 3 illustrates a HANS printing pipeline according to an example
  • Figure 4 is a flow chart illustrating showing a method of converting ink-vectors to NPac according to an example
  • Figure 5 is a flow chart illustrating a method of determining a reduced set of Neugebauer Primaries for a printing apparatus according to an example; and [0008] Figure 6 illustrates a printing apparatus according to an example.
  • Color can be represented within imaging devices such as print and display devices in a variety of ways.
  • 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.
  • a color model is used to represent a color at a lower dimensionality.
  • 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.
  • 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.
  • 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.
  • RGB Red, Green, Blue
  • an additive color model defines three variables representing different quantities of red, green and blue light.
  • values for these quantities may be defined with reference to a quantized set of values.
  • 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.
  • CIE Cyan, Magenta, Yellow and Black
  • CIE International Commission on Illumination
  • XYZ XYZ
  • LAB CIE 1976
  • YUV luminance
  • U and V chrominance dimensions
  • IPT IPT color space
  • 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.
  • 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.
  • NPac Neugebauer Primary area coverage
  • An NPac vector in the NPac color space represents a statistical distribution of Neugebauer Primaries (NPs) over an area of a halftone.
  • NPs Neugebauer Primaries
  • 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 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.
  • a colorant or printing fluid combination as described herein may be formed of one or multiple colorants or printing fluids.
  • 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 bilevel printer) in a common addressable print area (e.g. a printable “pixel”).
  • An NP may be referred to as a “pixel state”.
  • An NPac space provides a large number of metamers. Metamerism is the existence of a multitude of combinations of reflectance and emission properties that result in the same perceived color for a fixed illuminant and observer. Multiple NPac vectors in an NPac space may have a similar colorimetry (e.g. a similar representation in a color space with three dimensions). Several NPac vectors may thus be useable to represent a given color. Different NPac vectors that have similar colorimetry may, however, have differing attributes or properties other than colorimetry (e.g. different appearances under different illuminants).
  • Each NPac vector may therefore define a probability distribution for colorant or printing fluid combinations for each 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).
  • 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.
  • the statistical distribution of NPs to pixels in the halftone serves to control the colorimetry and other print characteristics of the halftone.
  • Spatial distribution of NPs according to the probability distribution specified in the NPac vector may be performed using a halftone method.
  • suitable halftoning methods include matrix-selector-based Parallel Random Area Weighted Area Coverage Selection (PARAWACS) techniques and techniques based on error diffusion.
  • PARAWACS matrix-selector-based Parallel Random Area Weighted Area Coverage Selection
  • An example of a printing pipeline that uses area coverage representations for halftone generation is a Halftone Area Neugebauer Separation (HANS) pipeline.
  • an NP may include one of /V k -1 combinations of k printing fluids, or an absence of printing fluid (resulting in N 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 print head, to enact different drop states. For example, if a multilevel 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 may define a set of drop states used or useable by a given printing system in a given operating state.
  • a simple color space may be defined using ink vectors which represent the proportion of individual inks within a combination such as an NPac vector.
  • an ink vector may be a vector with a predefined set of elements, where each element represents an ink (e.g. a colorant or color output available to the rendering device) and the value of the element represents a quantity of ink (e.g. [C, M, Y, K]).
  • An ink vector may be used to instruct deposit of inks in a printing device, e.g. where the value represents a particular number of drops or quantity of ink to deposit.
  • An ink vector may be used to instruct the printing of a color in an addressable area of a substrate (e.g. a print “pixel”).
  • 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 matt and gloss, cardboard, textiles, plastics and other materials.
  • Certain examples described herein address a challenge with printing apparatus having limited memory and/or processing resources for converting ink-vectors to NPac. Furthermore, examples described herein enable automatic unattended ink-vector to NPac conversion, a process that was previously manual and needed significant expert knowledge, and may not even have been possible in some cases. Certain examples described herein allow any given set of ink-vectors (such as in a look-up table - LUT) to be transformed to NPac given any limitation on the maximum number of available NP.
  • a reduced set of these NP may be needed or useful for representing the desired ink-vector or ink interaction.
  • a reduced set of NP for these colorants may include: blank, C, M, CM, CC, CCM, MM, CMM, CCMM.
  • the following NP may not be needed: CCCM, CCCMM, CCCMMM, CMMM, CCMMM.
  • Using a reduced set of NP reduces the memory and/or processing needed, however the reduced set of NP may not always be sufficient for transforming a set of ink-vectors associated with the printing apparatus to corresponding NPac.
  • this may be addressed by a first option of adding NP from the large set of NP to the reduced set of NP.
  • this issue may additionally or alternatively be addressed by a second option adjusting or projecting the ink-vector into a convex hull of a set of inkvectors which are transformable to NPac by the reduced set of NP.
  • the first option may be used up to a maximum number of NP whereupon the second option is used if further non-convertible ink-vectors are encountered.
  • Figure 1 illustrates the interaction of different color spaces according to an example.
  • An ink-vector may be converted or transformed to one or more Neugebauer Primary area coverages (NPac). This may be achieved using a linear programming calculation or a lookup table (LUT) mapping ink-vectors to corresponding NPac where the calculations have already been performed.
  • the calculations or LUT use a set of Neugebauer Primaries (NP) to transform the ink-vector where the calculation converges to an NPac if it can be represented by the set of available NP.
  • NP Neugebauer Primary area coverages
  • the Figure shows a first or reduced set of NP (NP-1 ) 110 and a larger second or superset of NP (NP-2) both of which can be used to transform a set of ink-vectors 120 to a set of NPac 130, 180
  • the set of ink-vectors 120 corresponds to combinations of colorants available to a printing apparatus for rendering a color image.
  • the set of inkvectors may include those corresponding multiple drops of the colorants.
  • each ink-vector of the set of ink-vectors 120 may be converted into a corresponding one or more NPac in the set of NPac 130.
  • the set of ink-vectors (shown as a repeated rounded square symbol (120) for simplicity of explanation) may be converted into a larger set of NPac 180.
  • the larger set of NPac 180 contains additional NPac because using the additional NP may result in more NPac for each inkvector.
  • the larger set may also contain NPac for ink-vectors which cannot be converted to NPac with the reduced set of NP 115.
  • Block 140 represents an ink-vector within the set of ink vectors 120 that cannot be converted to an NPac using the first set of NP 115.
  • Adding an NP 145, or a number of NP, into the first set of NP 110 from the second set of NP 160 forms an enhanced or enlarged first set of NP 115.
  • the first set of ink-vectors 120 may be converted into a larger set of NPac 135.
  • This enhanced or enlarged set of NPac 135 may now be used to convert the ink-vector 140 into an NPac 150. If this is still not possible, more NP may be added to the first set of NP 110 from the second set of NP 160 until conversion is possible.
  • Block 170 represents an ink-vector which is outside the set of ink-vectors 120. It may still be possible to convert this to an NPac using the first set of NP 110 or an enlarged first set of NP 115. Alternatively, the ink-vector 170 may be adjusted so that it falls within the set of ink-vectors 120. In other words, values within the ink-vector 170 may be adjusted so that it is part of a complex hull of the set of ink-vectors. The adjusted ink-vector then falls within the set of inkvectors 120 which are convertible by the first set of NP 110 to NPac 130.
  • Block 175 represents an NPac of the adjusted ink-vector when converted using the first set of NP 110.
  • Figure 2 illustrates adjusting an ink-vector in more detail according to an example.
  • An ink-vector space 200 is shown having a magenta axis 210M and a cyan axis 210C representing the amounts or drops of magenta and cyan colorants for a particular printing apparatus.
  • the printing apparatus can deposit zero, one (C) or two (CC) drops of cyan combined with zero or one (M) drops of magenta colorant.
  • the combinations 220 of colorants define a set of ink-vectors and a complex hull 230 of the set defines a boundary which encloses all ink-vectors of the set.
  • the convex hull 230 may be such that all ink-vectors within its boundary are convertible to NPac using the first set of NP 110.
  • An ink-vector 240 which falls outside the convex hull 230 cannot be converted to an NPac using the first set of NP, unless this is suitably enlarged as described above.
  • the ink-vector 240 may be adjusted such that its position within the ink-vector space 200 falls within the convex hull.
  • the adjusted ink-vector 245 is shown in this example as being on the boundary of the complex hull 230 at the closest point to the original ink-vector 240.
  • FIG. 3 illustrates a HANS color printing pipeline according to an example.
  • the pipeline 300 includes a color management stage 320 which receives a source file comprising image data in a source color space, for example CIE 1976.
  • the color management stage 320 generates a device color output 330 corresponding to colors that the printer apparatus can actually render onto a substrate - for example the image data may be mapped from a RGB color space to a CMYK color space.
  • the device color output 330 can be processed by a color separation stage 340 that maps input from the device color output to amounts of colorants to be applied to the substrate for each pixel.
  • this can be represented by ink-vectors which may be mapped from the device colors using an ink-vector lookup table (LUT) 345.
  • the ink-vectors may be further mapped to NPac vectors by a further conversion process 350.
  • the ink-vector to NPac conversion process 350 may be implemented using linear programming calculations or by consulting an NPac LUT 352.
  • the NPac LUT 352 may be pre-calculated using a first or reduced set of NP.
  • the NPac describe the coverage of the colorants to be applied at each pixel. This data may be further processed into halftones using a halftoning function before being used to apply colorants to the substrate.
  • An LUT update process 354 may be used to handle situations where an ink-vector cannot be converted to a corresponding NPac using the NPac LUT 352. This may be because the ink-vector LUT 345 for the printing apparatus has been updated and includes additional or different ink-vectors or because the colorants used by the printing apparatus have been changed resulting in some different ink-vectors than previously used.
  • the LUT update process may handle ink-vectors that are not convertible using the first set of NP by enlarging this first set of NP (option 1). This may be achieved by adding NP from a second set of NP 356 to the first set of NP used by the NPac LUT 352. The NPac for the ink-vector may then be recalculated using the enlarged first set of NP and the result added to the NPac LUT for future use.
  • the LUT update process 352 may alternatively or additionally adjust the ink-vector so that it falls within a complex hull of the set of ink-vectors (option 2). Where the adjusted ink-vector corresponds to an ink-vector already having a node in the NPac LUT 352, the corresponding NPac may be looked up in the table 352. Where this is not the case, a new NPac may be calculated for the adjusted ink-vector using the first set of NP, and the resulting NPac stored in the NPac LUT 352 for future use by adjusting a node corresponding to an inkvector which does not convert to an NPac..
  • Figure 4 illustrates a method of printing an image according to an example.
  • the method 400 may be performed in association with a printing apparatus or may be performed separately to generate a suitable NPac LUT for downloading to the printing apparatus. Different parts of the method 400 may be performed by different components of a color rendering system. Parts of the method 400 may also be performed in a different order to that illustrated.
  • the method is described with reference to Figures 1 and 2 for clarity and simplicity of explanation but features of these figures are not necessary for the method 400 in some examples.
  • the method 400 comprises obtaining a set of ink-vectors.
  • This may be a set of ink-vectors which are predetermined for a printing apparatus based on the available colorants and installed into the a printing apparatus.
  • the set of ink-vectors may be obtained as part of an update to better use available color resources or to describe changes in color resources such as additional or different colorants.
  • Item 402 may also correspond to receiving image data resulting in a set of ink-vectors not previously used by the printing apparatus and which need conversion to NPac on-the-fly whilst processing the print data.
  • the method comprises transforming or converting each inkvector in the set of ink vectors to an NPac using a first set of NP.
  • the first set of NP may also be pre-defined for the printing apparatus, and may be limited for example due to memory and/or processing constraints.
  • the conversion may e performed using a linear programming calculation and/or by looking up an existing NPac LUT if available.
  • the method 400 determines whether the ink-vector can converge to an NPac using the first set of NP. If it can (Y), then the method moves to item 414 where the NPac LUT is updated where a new NPac was calculated. If the method 400 determines that the ink-vector can not converge to an NPac (N), then the method moves one or both of options 1 and/or 2 to handle this situation.
  • the method adds an NP from the second set of NP 160 to the first set of NP 110 to generate an enlarged first set of NP 115. This corresponds to option 1 , and the method may then return to item 404 to try to transform the ink-vector using the enlarged first set of NP. If this is successful, the method will update the LUT with the new ink-vector - NPac pair at item 414. If this is not successful, the method 400 will return to item 410 where a further NP is added to the first set of NP and this repeats until the ink-vector can be converted to an NPac or until a limit of NP in the first set of NP has been reached.
  • the NP added to the first set of NP may be determined according to the ink-vector currently being processed. For example, an NP or a group of NP from the second set already known to be used to convert the ink-vector to an NPac using the second set may be used. Where the ink-vector is convertible to multiple NPac using the second set of NP, the simplest NPac may be selected and the NP for this added to the first set of NP. The simplest NPac may be the one using the least number of NP, or some other criteria.
  • the larger second set of NP may be used to convert the set of ink-vectors to NPac and each ink-vector associated with a group of NP needed to convert to one or another NPac. This group can then be used to select NP from when enlarging the first set of NP at item 410.
  • the method 400 projects or adjusts the ink-vector so that it falls within the complex hull of the original set of ink vectors specified for the printing apparatus and/or which are convertible to NPac using the first set of NP. This may be achieved using a suitable quadratic equation to find a minimum Euclidean distance to the complex hull.
  • the method returns to item 404 where it attempts to convert this to an NPac using the first set of NP. If this is successful, the method will update the LUT with the new ink-vector - NPac pair at item 414. If this is not successful, the method 400 may be configured to move try option 1 at item 410. Here a new NP is added to the first set of NP and conversion to NPac attempted again.
  • Item 412 results in a changed or adjusted ink-vector which may result in a printed color change compared with the intended color represented by the non-adjusted ink-vector.
  • the NPac LUT may be reprofiled by printing the NPac for the adjusted ink-vector in a test pattern, measuring colorimetry parameters and reprofiling or adjusting the NPac LUT as needed to print the desired color for the adjusted ink-vector.
  • the ICC profile for the HANS pipeline 200 may also be recomputed.
  • the method 400 may be configured to use a combination of options 1 and 2.
  • the method 400 may be configured to execute item 410 up to five times for each ink-vector and if not successful to execute item 412.
  • the method 400 determines whether there are more ink-vectors to process and if so (Y), returns to item 404 to process the next ink-vector.
  • the method moves to item 418 and is ready for printing using the converted NPac.
  • image data is converted to inkvectors and NPac including the newly converted NPac.
  • the processed image data may then be halftoned and used to control printing of the image.
  • Figure 5 illustrates a method 500 of determining a first or reduced set of NP for converting ink-vectors to NPac.
  • the method 500 may be operated together with or independently of the method 400 of Figure 4.
  • the method 500 may be performed in association with a printing apparatus or may be performed separately to generate a suitable NPac LUT for downloading to the printing apparatus.
  • Different parts of the method 500 may be performed by different components of a color rendering system. Parts of the method 500 may also be performed in a different order to that illustrated.
  • the method is described with reference to Figures 1 - 3 for clarity and simplicity of explanation but features of these figures are not necessary for the method 500 in some examples.
  • the method 500 converts a set of ink-vectors associated with a printing apparatus to a superset of corresponding NPac using a superset or second set of NP.
  • the superset of NPac 180 using the second set of NP 160 is larger than the set of NPac 130 generated using a smaller or reduced set of NP 110.
  • the method 500 at item 504 sorts the NP according to a predetermined metric associated with the generated NPac.
  • Example metrics may include the average or maximum area coverage of the NP over all the NPac of the set 180.
  • the method 500 also identifies a number X of the highest sorted NP which corresponds to an initial first or reduced set of NP that can be used to convert ink-vectors to NPac.
  • the number X may be a predetermined proportion of a maximum number of NP for the first set 110, for example 50%. The method 500 then determines whether these are sufficient for converting all ink-vectors to NPac and if not adds more NP from the second set.
  • the method 500 attempts to convert the current/next inkvector to an NPac. This may be determined using a linear programming calculation for example.
  • the method 500 determines whether the ink-vector can be converted to an NPac using the reduced or first set of NP. If this is the case (Y), then the method returns to item 506 to process the next ink-vector. However, if the ink-vector cannot be converted to an NPac (N), the method moves to item 510.
  • the method determines which NP of the second set of NP 160 to add to the first set of NP in order to convert or transform the ink-vector to an NPac. The method then returns to item 506 to process the next ink-vector. This process repeated until all ink-vectors are processed to ensure that the first set of NP contains sufficient NP to convert all ink-vectors to NPac.
  • item 510 finds the X+1 NP in the sorted NP from item 504 and adds this to the first set of NP 110.
  • the method 500 determines whether the maximum number of NP for the first set of NP has been reached at item 512, and if not (N) returns to item 506 to attempt to convert the ink-vector again.
  • the method stops at item 514 having generated the first set of NP 110 which may then be used for example in the method of Figure 4.
  • NP from the second set may be added to the first set if an ink-vector cannot be converted to an NPac. This corresponds to option 1.
  • the additional NP may be taken from the sorted list of NP determined at item 504.
  • the ink-vector may be adjusted to fall within a complex hull of the set of ink-vectors that can be converted to NPac using the first set of NP.
  • Figure 6 illustrates a printing apparatus 600 according to an example.
  • the apparatus 600 comprises a processor 605 which is connectably coupled to a computer-readable memory 610 comprising a set of computer-readable instructions 615 stored thereon, which may be executed by the processor 605.
  • the processor 605 may be arranged to control other components of the apparatus 600, including for example a printing pipeline and a print device arranged to apply one or more colorants to a substrate.
  • the computer-readable instructions 615 in the memory 610 may be used to implement the above described behavior.
  • the memory may be a non- transitory computer-readable storage medium for example, a hard drive, a CD- ROM disc, a USB-drive, a solid-state drive or any other form of magnetic storage device, optical storage device, or flash memory device, maintained locally or accessed remotely, capable of having thereon computer readable code suitable for the functions described herein.
  • Instruction 620 instructs the processor 605 to convert an ink-vector to an NPac using a first set of NP in response to determining that the ink-vector is convertible to a corresponding NPac using the first set of NP.
  • the first set of NP may be determined according to the method 500 of Figure 5, although other approaches may be used including manually developing the first set of NP.
  • Instruction 625 instructs the processor 605 to select an option for further processing where the ink-vector is not convertible to an NPac using the first set of NP.
  • Option 1 corresponding to instruction 630 or option 2 corresponding to instruction 635 may be selected according to pre-configuration.
  • the instruction may instruct the processor to use both options 1 and 2 in different orders.
  • Instruction 630 instructs the processor 605 to add an NP (or more than one NP) to the first set of NP from the second set of NP to increase the size of the first set of NP.
  • the additional NP may be the next on the list of sorted NP from the method 500 from Figure 5 although other NPs may be selected using different strategies.
  • Instruction 630 also instructs the processor 605 to convert the ink-vector to an NPac using the enlarged first set of NP.
  • the NPac may then be stored in a LUT for future use when the same ink-vector is encountered again.
  • Instruction 635 instructs the processor 605 to adjust the ink-vector to be within a convex hull of a set of ink vectors convertible to NPac using the first set of NP.
  • a simplified example is shown in Figure 2, although more generally an N- dimensional space may be created, each dimension corresponding to a colorant.
  • the NP: CCY in a printing apparatus having C, M, Y and K inks will correspond to coordinate (2, 0, 1 , 0) in the 4D space.
  • a complex hull is determined which contains all coordinates each NP capable of being printed by the printing apparatus.
  • Each ink-vector may also be plotted in this space and checked to determine whether this is within the complex hull. If it is then the ink- vector can be converted to an NPac using the set of NP. If it is not, then the inkvector may be adjusted or repositioned within the space.
  • the corresponding coordinate may be projected into the complex hull, minimizing the Euclidean distance. If the change in ink amounts for the projected ink-vector are below a threshold, then this may be used as the adjusted ink-vector. In this case, the instruction 635 also converts the adjusted ink vector to an NPac using the first set of NP.
  • the threshold change in ink amounts may depend on an assessment of what is considered to be a negligible color difference, for example using colorimetry. This may be non-linear for each ink channel or colorant with changes in some colorants such as K being more noticeable than other colorants sch as Y. The projection to the complex hull may then favor colorants where changes are considered less noticeable.
  • the thresholds for different colorants may be adjusted by experimentation to optimize the perceived rendering of colors. These may be affected by factors such as halftone noise and substrate type, for example vinyl needs high amounts of ink and so may be more susceptible to noticeable differences when adjusting ink-vectors.
  • a printing apparatus uses 679 color resources for printing onto a Latex product and it was found that approximately 10% needed inkvector adjustment, resulting in approximately 400 of 6561 NPac with modified ink amounts. These corresponded to NPac using large amounts of ink for several colorants at the same time - associated with dark areas of the gamut boundary. Using the described printing apparatus, including adjusting inkvectors, no substantial difference in volume or perceived color was observed.
  • Some examples provide a process which enables a translation of a given ink-vector set into an NPac set by exploring the possible NP space and allowing certain projections in cases where the translation is not possible.

Abstract

Certain examples relate to a method of a method of method of converting inkvectors to NPac. The method comprises obtaining an ink-vector for an image to be printed and responsive to determining that the ink-vector is convertible to a corresponding Neugebauer Primary area coverage (NPac) using a first set of Neugebauer Primaries (NP), converting the ink-vector to the NPac using the first set of NP. When the ink-vector is not convertible to a corresponding NPac using a first set of NP, the method adds an NP to the first set of NP from a second set of NP in order to generate an enhanced first set of NP and converts the ink-vector to the NPac using the enhanced first set of NP. The method may additionally or alternatively adjust the ink-vector to be within a convex hull of a set of ink-vectors convertible to NPac using the first set of NP and converting the adjusted ink-vector to a corresponding NPac.

Description

INK-VECTOR TO NPAC CONVERSION
BACKGROUND
[0001] Color printing may result from a number of colorants of different colors being superimposed on top of a substrate, such as paper or other media. Since some printing technologies only allow for a very small number of levels of inks to be deposited at a given location on a substrate, half-toning may be used to obtain ink patterns that result in a given color when seen from a suitable viewing distance. A printing system may be associated with a color space, defined by one or more colorants available to the printing system for deposition or application to a print medium. An example of a colorant color space is the Cyan, Magenta, Yellow, BlacK (CMYK) color space, wherein four variables are used in a subtractive color model to represent respective quantities of colorants. Examples of colorants include inks, dyes, pigments, paints, toners and powders.
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 illustration of the interaction of different color spaces according to an example;
[0004] Figure 2 illustrates projection of an ink-vector into the convex hull of asset of ink-vectors according to an example;
[0005] Figure 3 illustrates a HANS printing pipeline according to an example;
[0006] Figure 4 is a flow chart illustrating showing a method of converting ink-vectors to NPac according to an example;
[0007] Figure 5 is a flow chart illustrating a method of determining a reduced set of Neugebauer Primaries for a printing apparatus according to an example; and [0008] Figure 6 illustrates a printing apparatus according to an example.
DETAILED DESCRIPTION
[0009] 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.
[0010] 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 IPT 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).
[0011] 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.
[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 2k-1 combinations of k printing fluids within the printing system, or an absence of printing fluid (resulting in 2k 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 bilevel printer) in a common addressable print area (e.g. a printable “pixel”). An NP may be referred to as a “pixel state”.
[0013] An NPac space provides a large number of metamers. Metamerism is the existence of a multitude of combinations of reflectance and emission properties that result in the same perceived color for a fixed illuminant and observer. Multiple NPac vectors in an NPac space may have a similar colorimetry (e.g. a similar representation in a color space with three dimensions). Several NPac vectors may thus be useable to represent a given color. Different NPac vectors that have similar colorimetry may, however, have differing attributes or properties other than colorimetry (e.g. different appearances under different illuminants).
[0014] Each NPac vector may therefore define a probability distribution for colorant or printing fluid combinations for each 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.
[0015] 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.
[0016] In multi-level printers, e.g. where print heads are able to deposit /V drop levels, an NP may include one of /Vk-1 combinations of k printing fluids, or an absence of printing fluid (resulting in Nk 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 print head, to enact different drop states. For example, if a multilevel 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 may define a set of drop states used or useable by a given printing system in a given operating state. [0017] A simple color space may be defined using ink vectors which represent the proportion of individual inks within a combination such as an NPac vector. For example, an ink vector may be a vector with a predefined set of elements, where each element represents an ink (e.g. a colorant or color output available to the rendering device) and the value of the element represents a quantity of ink (e.g. [C, M, Y, K]). An ink vector may be used to instruct deposit of inks in a printing device, e.g. where the value represents a particular number of drops or quantity of ink to deposit. An ink vector may be used to instruct the printing of a color in an addressable area of a substrate (e.g. a print “pixel”).
[0018] 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 matt and gloss, cardboard, textiles, plastics and other materials.
[0019] Certain examples described herein address a challenge with printing apparatus having limited memory and/or processing resources for converting ink-vectors to NPac. Furthermore, examples described herein enable automatic unattended ink-vector to NPac conversion, a process that was previously manual and needed significant expert knowledge, and may not even have been possible in some cases. Certain examples described herein allow any given set of ink-vectors (such as in a look-up table - LUT) to be transformed to NPac given any limitation on the maximum number of available NP.
[0020] A large number of ink-vectors may be convertible to many respective NPac using a large set of NP. This can be a time-consuming manual process. It may also need significant memory and/or processing resources which may be unavailable in some printing apparatus. This issue increases as the number of colorants and/or amounts (or drop levels) of colorants increases. For example a simple printing apparatus that has six different colorants (C, M, Y, K, light C, light M) each with three drop levels (0, 1 , 2) has a total of 36 = 729 possible NP. More complex printing apparatus may have for example 14 colorants and three drop levels resulting in 250+ million NP. Out of these possible NP, in practice many would not be used, for example a large number of colorants at high drop levels. However, a reduced set of these NP may be needed or useful for representing the desired ink-vector or ink interaction. For example, where only some cyan and some magenta is needed, a reduced set of NP for these colorants may include: blank, C, M, CM, CC, CCM, MM, CMM, CCMM. In this case the following NP may not be needed: CCCM, CCCMM, CCCMMM, CMMM, CCMMM.
[0021] Using a reduced set of NP reduces the memory and/or processing needed, however the reduced set of NP may not always be sufficient for transforming a set of ink-vectors associated with the printing apparatus to corresponding NPac. In an example this may be addressed by a first option of adding NP from the large set of NP to the reduced set of NP. In another example, this issue may additionally or alternatively be addressed by a second option adjusting or projecting the ink-vector into a convex hull of a set of inkvectors which are transformable to NPac by the reduced set of NP. In an example, the first option may be used up to a maximum number of NP whereupon the second option is used if further non-convertible ink-vectors are encountered.
[0022] Figure 1 illustrates the interaction of different color spaces according to an example. An ink-vector may be converted or transformed to one or more Neugebauer Primary area coverages (NPac). This may be achieved using a linear programming calculation or a lookup table (LUT) mapping ink-vectors to corresponding NPac where the calculations have already been performed. The calculations or LUT use a set of Neugebauer Primaries (NP) to transform the ink-vector where the calculation converges to an NPac if it can be represented by the set of available NP. The Figure shows a first or reduced set of NP (NP-1 ) 110 and a larger second or superset of NP (NP-2) both of which can be used to transform a set of ink-vectors 120 to a set of NPac 130, 180
[0023] The set of ink-vectors 120 corresponds to combinations of colorants available to a printing apparatus for rendering a color image. The set of inkvectors may include those corresponding multiple drops of the colorants. Using the first set of NP 115, each ink-vector of the set of ink-vectors 120 may be converted into a corresponding one or more NPac in the set of NPac 130. Using the larger second set of NP 160, the set of ink-vectors (shown as a repeated rounded square symbol (120) for simplicity of explanation) may be converted into a larger set of NPac 180. The larger set of NPac 180 contains additional NPac because using the additional NP may result in more NPac for each inkvector. The larger set may also contain NPac for ink-vectors which cannot be converted to NPac with the reduced set of NP 115.
[0024] Block 140 represents an ink-vector within the set of ink vectors 120 that cannot be converted to an NPac using the first set of NP 115. Adding an NP 145, or a number of NP, into the first set of NP 110 from the second set of NP 160 forms an enhanced or enlarged first set of NP 115. Using the enlarged first set of NP 115, the first set of ink-vectors 120 may be converted into a larger set of NPac 135. This enhanced or enlarged set of NPac 135 may now be used to convert the ink-vector 140 into an NPac 150. If this is still not possible, more NP may be added to the first set of NP 110 from the second set of NP 160 until conversion is possible.
[0025] Block 170 represents an ink-vector which is outside the set of ink-vectors 120. It may still be possible to convert this to an NPac using the first set of NP 110 or an enlarged first set of NP 115. Alternatively, the ink-vector 170 may be adjusted so that it falls within the set of ink-vectors 120. In other words, values within the ink-vector 170 may be adjusted so that it is part of a complex hull of the set of ink-vectors. The adjusted ink-vector then falls within the set of inkvectors 120 which are convertible by the first set of NP 110 to NPac 130. Block 175 represents an NPac of the adjusted ink-vector when converted using the first set of NP 110.
[0026] Figure 2 illustrates adjusting an ink-vector in more detail according to an example. An ink-vector space 200 is shown having a magenta axis 210M and a cyan axis 210C representing the amounts or drops of magenta and cyan colorants for a particular printing apparatus. In this simple example, the printing apparatus can deposit zero, one (C) or two (CC) drops of cyan combined with zero or one (M) drops of magenta colorant. The combinations 220 of colorants define a set of ink-vectors and a complex hull 230 of the set defines a boundary which encloses all ink-vectors of the set. [0027] The convex hull 230 may be such that all ink-vectors within its boundary are convertible to NPac using the first set of NP 110. An ink-vector 240 which falls outside the convex hull 230 cannot be converted to an NPac using the first set of NP, unless this is suitably enlarged as described above. Alternatively, the ink-vector 240 may be adjusted such that its position within the ink-vector space 200 falls within the convex hull. The adjusted ink-vector 245 is shown in this example as being on the boundary of the complex hull 230 at the closest point to the original ink-vector 240.
[0028] Figure 3 illustrates a HANS color printing pipeline according to an example. The pipeline 300 includes a color management stage 320 which receives a source file comprising image data in a source color space, for example CIE 1976. The color management stage 320 generates a device color output 330 corresponding to colors that the printer apparatus can actually render onto a substrate - for example the image data may be mapped from a RGB color space to a CMYK color space.
[0029] The device color output 330 can be processed by a color separation stage 340 that maps input from the device color output to amounts of colorants to be applied to the substrate for each pixel. In an example this can be represented by ink-vectors which may be mapped from the device colors using an ink-vector lookup table (LUT) 345. The ink-vectors may be further mapped to NPac vectors by a further conversion process 350. The ink-vector to NPac conversion process 350 may be implemented using linear programming calculations or by consulting an NPac LUT 352. The NPac LUT 352 may be pre-calculated using a first or reduced set of NP.
[0030] The NPac describe the coverage of the colorants to be applied at each pixel. This data may be further processed into halftones using a halftoning function before being used to apply colorants to the substrate.
[0031] An LUT update process 354 may be used to handle situations where an ink-vector cannot be converted to a corresponding NPac using the NPac LUT 352. This may be because the ink-vector LUT 345 for the printing apparatus has been updated and includes additional or different ink-vectors or because the colorants used by the printing apparatus have been changed resulting in some different ink-vectors than previously used.
[0032] As noted previously, the LUT update process may handle ink-vectors that are not convertible using the first set of NP by enlarging this first set of NP (option 1). This may be achieved by adding NP from a second set of NP 356 to the first set of NP used by the NPac LUT 352. The NPac for the ink-vector may then be recalculated using the enlarged first set of NP and the result added to the NPac LUT for future use.
[0033] The LUT update process 352 may alternatively or additionally adjust the ink-vector so that it falls within a complex hull of the set of ink-vectors (option 2). Where the adjusted ink-vector corresponds to an ink-vector already having a node in the NPac LUT 352, the corresponding NPac may be looked up in the table 352. Where this is not the case, a new NPac may be calculated for the adjusted ink-vector using the first set of NP, and the resulting NPac stored in the NPac LUT 352 for future use by adjusting a node corresponding to an inkvector which does not convert to an NPac..
[0034] Figure 4 illustrates a method of printing an image according to an example. The method 400 may be performed in association with a printing apparatus or may be performed separately to generate a suitable NPac LUT for downloading to the printing apparatus. Different parts of the method 400 may be performed by different components of a color rendering system. Parts of the method 400 may also be performed in a different order to that illustrated. The method is described with reference to Figures 1 and 2 for clarity and simplicity of explanation but features of these figures are not necessary for the method 400 in some examples.
[0035] At item 402, the method 400 comprises obtaining a set of ink-vectors. This may be a set of ink-vectors which are predetermined for a printing apparatus based on the available colorants and installed into the a printing apparatus. The set of ink-vectors may be obtained as part of an update to better use available color resources or to describe changes in color resources such as additional or different colorants. Item 402 may also correspond to receiving image data resulting in a set of ink-vectors not previously used by the printing apparatus and which need conversion to NPac on-the-fly whilst processing the print data.
[0036] At item 404, the method comprises transforming or converting each inkvector in the set of ink vectors to an NPac using a first set of NP. The first set of NP may also be pre-defined for the printing apparatus, and may be limited for example due to memory and/or processing constraints. The conversion may e performed using a linear programming calculation and/or by looking up an existing NPac LUT if available.
[0037] At item 406, the method 400 determines whether the ink-vector can converge to an NPac using the first set of NP. If it can (Y), then the method moves to item 414 where the NPac LUT is updated where a new NPac was calculated. If the method 400 determines that the ink-vector can not converge to an NPac (N), then the method moves one or both of options 1 and/or 2 to handle this situation.
[0038] At item 408, the method adds an NP from the second set of NP 160 to the first set of NP 110 to generate an enlarged first set of NP 115. This corresponds to option 1 , and the method may then return to item 404 to try to transform the ink-vector using the enlarged first set of NP. If this is successful, the method will update the LUT with the new ink-vector - NPac pair at item 414. If this is not successful, the method 400 will return to item 410 where a further NP is added to the first set of NP and this repeats until the ink-vector can be converted to an NPac or until a limit of NP in the first set of NP has been reached.
[0039] The NP added to the first set of NP may be determined according to the ink-vector currently being processed. For example, an NP or a group of NP from the second set already known to be used to convert the ink-vector to an NPac using the second set may be used. Where the ink-vector is convertible to multiple NPac using the second set of NP, the simplest NPac may be selected and the NP for this added to the first set of NP. The simplest NPac may be the one using the least number of NP, or some other criteria. In order to determine NP that can be used for conversion of an ink-vector to an NPac, the larger second set of NP may be used to convert the set of ink-vectors to NPac and each ink-vector associated with a group of NP needed to convert to one or another NPac. This group can then be used to select NP from when enlarging the first set of NP at item 410.
[0040] At item 412, the method 400 projects or adjusts the ink-vector so that it falls within the complex hull of the original set of ink vectors specified for the printing apparatus and/or which are convertible to NPac using the first set of NP. This may be achieved using a suitable quadratic equation to find a minimum Euclidean distance to the complex hull. Once the adjusted ink-vector is obtained, the method returns to item 404 where it attempts to convert this to an NPac using the first set of NP. If this is successful, the method will update the LUT with the new ink-vector - NPac pair at item 414. If this is not successful, the method 400 may be configured to move try option 1 at item 410. Here a new NP is added to the first set of NP and conversion to NPac attempted again.
[0041] Item 412 results in a changed or adjusted ink-vector which may result in a printed color change compared with the intended color represented by the non-adjusted ink-vector. To compensate for these artefacts, the NPac LUT may be reprofiled by printing the NPac for the adjusted ink-vector in a test pattern, measuring colorimetry parameters and reprofiling or adjusting the NPac LUT as needed to print the desired color for the adjusted ink-vector. The ICC profile for the HANS pipeline 200 may also be recomputed.
[0042] The method 400 may be configured to use a combination of options 1 and 2. For example the method 400 may be configured to execute item 410 up to five times for each ink-vector and if not successful to execute item 412.
[0043] Once the current ink-vector has been converted to NPac and the result stored in the LUT at item 414, the method moves to item 416. At item 416 the method 400 determines whether there are more ink-vectors to process and if so (Y), returns to item 404 to process the next ink-vector. When all ink-vectors have been converted to NPac (N), the method moves to item 418 and is ready for printing using the converted NPac. Here, image data is converted to inkvectors and NPac including the newly converted NPac. The processed image data may then be halftoned and used to control printing of the image. [0044] Figure 5 illustrates a method 500 of determining a first or reduced set of NP for converting ink-vectors to NPac. The method 500 may be operated together with or independently of the method 400 of Figure 4. The method 500 may be performed in association with a printing apparatus or may be performed separately to generate a suitable NPac LUT for downloading to the printing apparatus. Different parts of the method 500 may be performed by different components of a color rendering system. Parts of the method 500 may also be performed in a different order to that illustrated. The method is described with reference to Figures 1 - 3 for clarity and simplicity of explanation but features of these figures are not necessary for the method 500 in some examples.
[0045] At item 502, the method 500 converts a set of ink-vectors associated with a printing apparatus to a superset of corresponding NPac using a superset or second set of NP. The superset of NPac 180 using the second set of NP 160 is larger than the set of NPac 130 generated using a smaller or reduced set of NP 110.
[0046] In order to generate a reduced set of NP for use with the printing apparatus for converting ink-vectors to NPac, the method 500 at item 504 sorts the NP according to a predetermined metric associated with the generated NPac. Example metrics may include the average or maximum area coverage of the NP over all the NPac of the set 180.
[0047] At item 504, the method 500 also identifies a number X of the highest sorted NP which corresponds to an initial first or reduced set of NP that can be used to convert ink-vectors to NPac. The number X may be a predetermined proportion of a maximum number of NP for the first set 110, for example 50%. The method 500 then determines whether these are sufficient for converting all ink-vectors to NPac and if not adds more NP from the second set.
[0048] At item 506, the method 500 attempts to convert the current/next inkvector to an NPac. This may be determined using a linear programming calculation for example.
[0049] At item 508, the method 500 determines whether the ink-vector can be converted to an NPac using the reduced or first set of NP. If this is the case (Y), then the method returns to item 506 to process the next ink-vector. However, if the ink-vector cannot be converted to an NPac (N), the method moves to item 510.
[0050] At item 510, the method determines which NP of the second set of NP 160 to add to the first set of NP in order to convert or transform the ink-vector to an NPac. The method then returns to item 506 to process the next ink-vector. This process repeated until all ink-vectors are processed to ensure that the first set of NP contains sufficient NP to convert all ink-vectors to NPac.
[0051] In an example, item 510 finds the X+1 NP in the sorted NP from item 504 and adds this to the first set of NP 110. The method 500 then determines whether the maximum number of NP for the first set of NP has been reached at item 512, and if not (N) returns to item 506 to attempt to convert the ink-vector again.
[0052] If the maximum number of NP has been reached (Y), the method stops at item 514 having generated the first set of NP 110 which may then be used for example in the method of Figure 4.
[0053] As discussed with respect to Figure 4, further NP from the second set may be added to the first set if an ink-vector cannot be converted to an NPac. This corresponds to option 1. The additional NP may be taken from the sorted list of NP determined at item 504. Alternatively or additionally, the ink-vector may be adjusted to fall within a complex hull of the set of ink-vectors that can be converted to NPac using the first set of NP.
[0054] Figure 6 illustrates a printing apparatus 600 according to an example. The apparatus 600 comprises a processor 605 which is connectably coupled to a computer-readable memory 610 comprising a set of computer-readable instructions 615 stored thereon, which may be executed by the processor 605. The processor 605 may be arranged to control other components of the apparatus 600, including for example a printing pipeline and a print device arranged to apply one or more colorants to a substrate.
[0055] The computer-readable instructions 615 in the memory 610 may be used to implement the above described behavior. The memory may be a non- transitory computer-readable storage medium for example, a hard drive, a CD- ROM disc, a USB-drive, a solid-state drive or any other form of magnetic storage device, optical storage device, or flash memory device, maintained locally or accessed remotely, capable of having thereon computer readable code suitable for the functions described herein.
[0056] Instruction 620 instructs the processor 605 to convert an ink-vector to an NPac using a first set of NP in response to determining that the ink-vector is convertible to a corresponding NPac using the first set of NP. In an example, the first set of NP may be determined according to the method 500 of Figure 5, although other approaches may be used including manually developing the first set of NP.
[0057] Instruction 625 instructs the processor 605 to select an option for further processing where the ink-vector is not convertible to an NPac using the first set of NP. Option 1 corresponding to instruction 630 or option 2 corresponding to instruction 635 may be selected according to pre-configuration. The instruction may instruct the processor to use both options 1 and 2 in different orders.
[0058] Instruction 630 instructs the processor 605 to add an NP (or more than one NP) to the first set of NP from the second set of NP to increase the size of the first set of NP. The additional NP may be the next on the list of sorted NP from the method 500 from Figure 5 although other NPs may be selected using different strategies.
[0059] Instruction 630 also instructs the processor 605 to convert the ink-vector to an NPac using the enlarged first set of NP. The NPac may then be stored in a LUT for future use when the same ink-vector is encountered again.
[0060] Instruction 635 instructs the processor 605 to adjust the ink-vector to be within a convex hull of a set of ink vectors convertible to NPac using the first set of NP. A simplified example is shown in Figure 2, although more generally an N- dimensional space may be created, each dimension corresponding to a colorant. For example, the NP: CCY in a printing apparatus having C, M, Y and K inks will correspond to coordinate (2, 0, 1 , 0) in the 4D space. A complex hull is determined which contains all coordinates each NP capable of being printed by the printing apparatus. Each ink-vector may also be plotted in this space and checked to determine whether this is within the complex hull. If it is then the ink- vector can be converted to an NPac using the set of NP. If it is not, then the inkvector may be adjusted or repositioned within the space.
[0061] To adjust the ink-vector, the corresponding coordinate may be projected into the complex hull, minimizing the Euclidean distance. If the change in ink amounts for the projected ink-vector are below a threshold, then this may be used as the adjusted ink-vector. In this case, the instruction 635 also converts the adjusted ink vector to an NPac using the first set of NP.
[0062] The threshold change in ink amounts may depend on an assessment of what is considered to be a negligible color difference, for example using colorimetry. This may be non-linear for each ink channel or colorant with changes in some colorants such as K being more noticeable than other colorants sch as Y. The projection to the complex hull may then favor colorants where changes are considered less noticeable. The thresholds for different colorants may be adjusted by experimentation to optimize the perceived rendering of colors. These may be affected by factors such as halftone noise and substrate type, for example vinyl needs high amounts of ink and so may be more susceptible to noticeable differences when adjusting ink-vectors.
[0063] In an example, a printing apparatus uses 679 color resources for printing onto a Latex product and it was found that approximately 10% needed inkvector adjustment, resulting in approximately 400 of 6561 NPac with modified ink amounts. These corresponded to NPac using large amounts of ink for several colorants at the same time - associated with dark areas of the gamut boundary. Using the described printing apparatus, including adjusting inkvectors, no substantial difference in volume or perceived color was observed.
[0064] Some examples provide a process which enables a translation of a given ink-vector set into an NPac set by exploring the possible NP space and allowing certain projections in cases where the translation is not possible.
[0065] 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

Claims

What is claimed is:
1 . A method comprising: obtaining an ink-vector for an image to be printed; responsive to determining that said ink-vector is convertible to a corresponding Neugebauer Primary area coverage (NPac) using a first set of Neugebauer Primaries (NP), convert said ink-vector to said NPac using the first set of NP; responsive to determining that said ink-vector is not convertible to a corresponding NPac using the first set of NP, perform at least one of: adding an NP to the first set of NP from a second set of NP in order to generate an enhanced first set of NP and converting said inkvector to said NPac using the enhanced first set of NP, adjusting said ink-vector to be within a convex hull of a set of inkvectors convertible to NPac using the first set of NP and converting said adjusted ink-vector to a corresponding NPac; printing the image using the converted NPac.
2. The method of claim 1 , comprising, in response to determining that the ink-vector is not convertible, adding an NP to the first set of NP from a second set of NP in order to generate an enhanced first set of NP and converting said ink-vector to said NPac using the enhanced first set of NP, then adjusting said ink-vector to be within a convex hull of a set of ink-vectors convertible to NPac using the first set of NP and converting said adjusted ink-vector to a corresponding NPac.
3. The method of claim 1 , wherein the first set of NP is a subset of the second set of NP.
4. The method of claim 1 , wherein the adjusted ink vector is adjusted using quadratic programming to find the closet point on the convex hull.
5. The method of claim 1 , comprising using a lookup table (LUT) to convert the ink-vectors to NPACS, the LUT having nodes each corresponding to a conversion between a said ink-vector and a respective NPac, wherein a node is added to the LUT when adding an NP to the first set of NP, the node added corresponding to a conversion between the additional ink-vector and an NPac using the additional NP from the second set.
6. The method of claim 1 , comprising using a LUT to convert the ink-vectors to NPACS, the LUT having nodes each corresponding to a conversion between a said ink-vector and a respective NPac, wherein a node of the LUT is adjusted corresponding to a conversion between the adjusted ink-vector and an NPac.
7. The method of claim 6, comprising reprofiling the LUT.
8. The method of claim 1 , comprising determining the first set of NP by converting a superset of ink-vectors to a superset of NPac using the second set of NP; and determining the first set of NP from NP of the second set according to a predetermined metric.
9. The method of claim 8, where the predetermined metric is the average or maximum area coverage of the NP over all the NPac of the superset of NPac.
10. The method of claim 8, wherein the second set of NP are sorted according to the predetermined metric and responsive to determining that a said ink-vector of the superset is not convertible to a corresponding NPac using a first set of NP, adding an NP from the second set of NP to the first set of NP according to the next sorted NP of the second set of NP.
11. The method of claim 8, wherein responsive to determining that a said ink-vector of the superset is not convertible to a corresponding NPac using a first set of NP, adding an NP from the second set of NP to the first set of NP, 19 wherein the NP added to the first set is the NP from the second set used to covert the ink-vector to an NPac.
12. A printing apparatus comprising: a print device to print an image onto a substrate using a number of colorants; a memory and a processor to: obtain an ink-vector for an image to be printed; convert said ink-vector to said NPac using the first set of NP in response to determining that said ink-vector is convertible to a corresponding Neugebauer Primary area coverage (NPac) using the first set of Neugebauer Primaries (NP), perform at least one of the following in response to determining that said ink-vector is not convertible to a corresponding NPac using the first set of NP, add an NP to the first set of NP from a second set of NP in order to generate an enhanced first set of NP and converting said ink-vector to said NPac using the enhanced first set of NP; adjust said ink-vector to be within a convex hull of a set of ink-vectors convertible to NPac using the first set of NP and converting said adjusted inkvector to a corresponding NPac. printing the image using the converted NPac.
13. The apparatus of claim 12, memory comprising a lookup table (LUT) used by the processor to convert the ink-vectors to NPACS, wherein the LUT has nodes each corresponding to a conversion between a said ink-vector and a respective NPac, wherein a node is added to the LUT when adding an NP to the first set of NP, the node added corresponding to a conversion between the additional ink-vector and an NPac using the additional NP from the second set.
14. The apparatus of claim 12, memory comprising a LUT used by the processor to convert the ink-vectors to NPACS, the LUT having nodes each corresponding to a conversion between a said ink-vector and a respective 20
NPac, wherein a node is added to the LUT corresponding to a conversion between the adjusted ink-vector and an NPac.
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: convert an ink-vector to an NPac using a first set of NP in response to determining that said ink-vector is convertible to a corresponding Neugebauer Primary area coverage (NPac) using the first set of Neugebauer Primaries (NP), perform at least one of the following in response to determining that said ink-vector is not convertible to a corresponding NPac using the first set of NP, add an NP to the first set of NP from a second set of NP in order to generate an enhanced first set of NP and convert said ink-vector to said NPac using the enhanced first set of NP; adjust said ink-vector to be within a convex hull of a set of ink-vectors convertible to NPac using the first set of NP and convert said adjusted inkvector to a corresponding NPac.
PCT/US2020/057017 2020-10-23 2020-10-23 Ink-vector to npac conversion WO2022086550A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2020/057017 WO2022086550A1 (en) 2020-10-23 2020-10-23 Ink-vector to npac conversion

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/057017 WO2022086550A1 (en) 2020-10-23 2020-10-23 Ink-vector to npac conversion

Publications (1)

Publication Number Publication Date
WO2022086550A1 true WO2022086550A1 (en) 2022-04-28

Family

ID=81291005

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2020/057017 WO2022086550A1 (en) 2020-10-23 2020-10-23 Ink-vector to npac conversion

Country Status (1)

Country Link
WO (1) WO2022086550A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11665304B1 (en) 2022-06-09 2023-05-30 Hewlett-Packard Development Company, L.P. Encoding plural colorant vectors in a Neugebauer Primary area coverage vector

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480299B1 (en) * 1997-11-25 2002-11-12 University Technology Corporation Color printer characterization using optimization theory and neural networks
US20110096344A1 (en) * 2009-10-26 2011-04-28 Jan Morovic Printing System
US20170126931A1 (en) * 2014-04-25 2017-05-04 Hewlett-Packard Development Company, L.P. Color halftone processing
WO2017184167A1 (en) * 2016-04-22 2017-10-26 Hewlett-Packard Development Company, L.P. Ink-channel to npac mapping

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480299B1 (en) * 1997-11-25 2002-11-12 University Technology Corporation Color printer characterization using optimization theory and neural networks
US20110096344A1 (en) * 2009-10-26 2011-04-28 Jan Morovic Printing System
US20170126931A1 (en) * 2014-04-25 2017-05-04 Hewlett-Packard Development Company, L.P. Color halftone processing
WO2017184167A1 (en) * 2016-04-22 2017-10-26 Hewlett-Packard Development Company, L.P. Ink-channel to npac mapping

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11665304B1 (en) 2022-06-09 2023-05-30 Hewlett-Packard Development Company, L.P. Encoding plural colorant vectors in a Neugebauer Primary area coverage vector

Similar Documents

Publication Publication Date Title
US9674403B2 (en) Creating a color gamut look-up-table
US5473446A (en) Color digital halftoning using black and secondary color replacement and color vector dithering
US5917994A (en) Color digital halftoning using black and secondary color replacement
EP3135025B1 (en) Color halftone processing
US8363273B2 (en) Printing system
US10893172B2 (en) Color calibration
US8270032B2 (en) Generating color lookup table
US11475257B2 (en) Mapping between color spaces
US11418682B2 (en) Generating an area coverage vector
EP3213499B1 (en) Post-processing halftone images
WO2022086550A1 (en) Ink-vector to npac conversion
US10897556B2 (en) Generating an area coverage vector
US20230382132A1 (en) Printing modes with drying delays
US11477346B2 (en) Color calibration in a printing system
US20200177768A1 (en) Colorant vector calibration
US11283965B2 (en) Print calibration system and method
US20230396728A1 (en) Color prediction in multiple contexts
US11025798B2 (en) Associating a color with a neugebauer primary
WO2023224663A1 (en) Color histogram based image selection
US20220109781A1 (en) Color matching

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20958895

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20958895

Country of ref document: EP

Kind code of ref document: A1