WO2023239359A1 - Halftone pattern generation - Google Patents

Halftone pattern generation Download PDF

Info

Publication number
WO2023239359A1
WO2023239359A1 PCT/US2022/032653 US2022032653W WO2023239359A1 WO 2023239359 A1 WO2023239359 A1 WO 2023239359A1 US 2022032653 W US2022032653 W US 2022032653W WO 2023239359 A1 WO2023239359 A1 WO 2023239359A1
Authority
WO
WIPO (PCT)
Prior art keywords
halftone
halftone pattern
spatial frequency
pattern
value
Prior art date
Application number
PCT/US2022/032653
Other languages
French (fr)
Inventor
Tsuyoshi Yamashita
Peter Morovic
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/US2022/032653 priority Critical patent/WO2023239359A1/en
Publication of WO2023239359A1 publication Critical patent/WO2023239359A1/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/40Picture signal circuits
    • H04N1/405Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels
    • H04N1/4051Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a dispersed dots halftone pattern, the dots having substantially the same size

Definitions

  • halftoning is a process in which a discrete number of printing fluids are distributed spatially to render a continuous-tone image.
  • FIG. 1 illustrates an example apparatus and printing device
  • Fig. 2 illustrates a first example halftone pattern spatial distribution and spatial frequency
  • FIG. 3 illustrates a second example halftone pattern spatial distribution and spatial frequency
  • Fig. 4 illustrates a third example halftone pattern spatial distribution and spatial frequency
  • FIG. 5 illustrates a fourth example halftone pattern spatial distribution and spatial frequency
  • Fig. 6 illustrates a method of generating a halftone pattern according to an example
  • Fig. 7 illustrates a halftone pattern according to an example
  • Fig. 8 illustrates a decision matrix following adjustment of the spatial frequency of the halftone pattern of Fig. 6 and according to an example
  • Fig. 9 illustrates the updated halftone pattern of Fig. 7 following moving location of some pixel values and according to an example
  • Fig. 10 illustrates a halftone matrix according to an example. DETAILED DESCRIPTION
  • 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 International Commission on Illumination
  • XYZ XYZ
  • LAB XYZ
  • X, Y and Z or tristimulus values are used to model a color
  • Cl E 1976 L*, a*, b* - Cl ELAB or ‘LAB’
  • YUV luminance
  • U and V chrominance dimensions
  • IPT 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).
  • 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.
  • 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.
  • 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 ahesolution 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 bi-level printer) in a common addressable print area (e.g. a printable “pixel”).
  • An NP may be referred to as a “pixel state”.
  • Each NPac vector may therefore define a probability distribution for colorant or printing fluid combinations for each halftone pixel in the halftone (e.g. a likelihood that a particular colorant or printing fluid combination or available output state is to be placed or defined at each pixel location in the halftone).
  • 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.
  • Each pixel of an image is associated with a color value or tone, for example 0-256 for each color of an 8-bit color space.
  • a halftone pattern comprises a plurality of halftone pixels having pixel values depending on the tone, also referred to herein as the halftone value.
  • the halftone pattern may be represented by 1’s and 0’s in a matrix or array and which indicate dots or no dots in the halftone pattern.
  • a dark image pixel may have a tone or halftone value of 220 and may be rendered using a halftone pattern with a dense distribution of “dots’ or colorant drops which may be represented as many pixel values of “1” in the halftone matrix.
  • a light image pixel may have a sparse distribution of dots represented a halftone matrix with few pixel values of “1” but many pixels values of “0” or “no dot”.
  • Different halftone patterns may be used depending on many factors such as the printing application, the substrates, colorants and printing equipment used, and how the printed image may be viewed. Using the same halftone pattern across the image may result in visual artefacts such as Moire and so the halftone patterns may be varied across the image to reduce these effects.
  • a halftone matrix may be defined having element values which correspond to dots in a halftone pattern at different tones.
  • This assignment of tone element values in the halftone matrix may continue until a maximum tone value having all dots in the halftone pattern.
  • a halftone pattern for a given tone may then be determined from the halftone matrix by finding all element values equal to or less than the tone.
  • different numbers of element values or dots may be assigned for each tone.
  • the NP associated with the NPac vector are distributed across the halftone pixels according to some pattern to provide the relative area coverage of NP defined by the NPac vector.
  • the distribution of NP across the pixels of one halftone pattern are changed compared with the distribution of NP across the pixels of adjacent halftone patterns. In an example, this is achieved by randomizing the distribution of NP across each halftone pattern. This may be achieved by applying Blue or Green noise to the distribution. However, this can still result in bad grain due to dense clustering which becomes visible.
  • Certain examples described herein address a challenge with improving the halftone patterns used in image rendering for different applications.
  • Rules for distributing halftone patterns or the distribution of pixels having pixel values of 1 (dot) and 0 (no dot) in the spatial domain rely on optimizing the spacing between the halftone pixels of the same pixel value. However, this can still result in visible clustering of dots, in particular in medium fills or mid-tones (e.g. 30-40%).
  • Certain examples described herein use spatial frequency adjustment of halftone patterns to optimize dot distribution and reduce visible artefacts.
  • the adjustment may be based on a predetermined or wanted spatial frequency which may vary depending on the intended application of the image to be rendered, for example a Billboard that will be viewed from a distance or a marketing brochure that will be read closely.
  • the halftoning of the image may then be adjusted depending on the desired application, the substrate or colorant materials used, the printing process an equipment or other factors.
  • Figure 1 shows an example of a printing system including a printing device 110 and a halftone matrix generation apparatus 140.
  • the printing device 110 comprises a carnage assembly 120 and a control unit 125.
  • the carriage assembly 120 comprises a set of printheads 121 carried by a carriage 122.
  • a drive assembly (not shown) moves the carriage assembly 120 along a scan axis in response to drive signals from the control unit 125.
  • Each of the printheads 121 comprises a plurality of dies, with each die comprising a plurality of nozzles through which drops of printing fluid are dispensed.
  • the printheads are fluidly coupled to fluid reservoirs (not shown), which supply printing fluids to the printheads.
  • Each printing fluid may be a colorant or a non-colorant, such as a pre-treatment (e.g. fixer/optimizer) or post-treatment (e.g. overcoat) fluid.
  • the printing device comprises five printheads that are supplied with eight different printing fluids: cyan (C) , magenta (M), yellow (Y), black (K), light cyan (c), light magenta (m), optimizer (P) and overcoat (S).
  • the control unit 125 may comprise a processor, a storage medium, and an input/output interface(not shown).
  • the printing device 1 10 also comprises a halftone matrix 126 which may be used by the control unit in a halftoning process for rendering an image initially received as print data 105.
  • the halftone matrix 126 may be used to generate halftone patterns for different tones or halftone values in image pixels of different color values.
  • the halftone matrix may be received from the halftone matrix generating apparatus 140.
  • the halftone matrix generating apparatus 140 comprises a processor 141 and a storage medium 112.
  • the processor 141 is responsible for controlling the operation of the halftone matrix generation apparatus 140 and executes an instruction set 130 stored in the storage medium 112.
  • the instruction set 130 comprises instructions, which when executed by the processor 141 , implement a halftoning matrix generation method.
  • the storage medium 113 stores a predetermined spatial frequency 139 or parameters to calculate such a frequency distribution for use by the halftone matrix generation method.
  • the printing device 100 receives print data 105.
  • the print data 105 may be a raster image generated by a raster image processor.
  • a color mapping module or process maps the colors of the print data 105 (e.g. RGB or CMYK) to the colors of the printing device 100, for example CMYKcmPS.
  • the color mapping module may map the colors to an area coverage color space, such as the Neugebauer Primary area coverage (NPac) color space.
  • NPac Neugebauer Primary area coverage
  • each pixel of an image is represented by an NPac vector.
  • a Neugebauer Primary (NP) corresponds to one of the possible combinations of printing fluids at each image pixel, including the absence of any printing fluids.
  • the total number of NPs depends on the number of printing fluids, k, and the number of drop states, D, for each printing fluid, and may be defined as D k . So, for a printing device having three printing fluids (e.g.
  • NPs are: blank, C, M, Y, CM, CY, MY and CMY.
  • An NPac vector defines the relative area covered by each of the NPs. So, for example, an NPac vector of [magenta:0.3; cyan:0.2; blank: 0.5] implies that 30% of the area is magenta, 20% is cyan, and 50% is blank.
  • a halftoning process using the halftone matrix 126 converts image data output by the color mapping module into a plurality of halftone patterns, each corresponding to an image pixel.
  • the carriage assembly 120 is controlled by the controller 110 to print the halftone patterns onto a print medium by controlling the travel of the carriage 120 and the firing of the nozzles of the printheads 121 according to the halftone patterns.
  • the instruction set 130 when implemented by the processor 141 , causes a number of actions.
  • a halftone pattern is determined fora halftone value, the halftone pattern having a plurality of pixel values dependent on the halftone value.
  • the spatial frequency of the halftone pattern is adjusted dependent on a predetermined spatial frequency 139 which may also be stored in the storage medium 112.
  • a halftone matrix may be generated iteratively, starting with an empty matrix for example, and adjusting halftone patterns through increasing tone values.
  • the completed halftone matrix 126 may be forwarded to the printer device 126 for use in the halftoning process for printing print data 105.
  • Example methods for generating the halftone matrix 126 for rendering image data in different applications are described in more detail below.
  • Examples of different applications may include printing an image defined in print data using different substrate materials and/or for viewing at different distances and/or for different types of image content.
  • Fig. 2 illustrates halftone patterns for one color for three different spatial distributions of dots corresponding to colorant drops - 5%, 25% and 50%.
  • the different spatial densities are shown in the upper images and correspond to different color or halftone values.
  • the 50% spatial distribution is a denser distribution and corresponds to a darker rendering of the color than the 5% spatial distribution.
  • the spatial distributions show the distributions of “dots” or pixels having a binary pixel value of 1 and “no dots” or pixels having a binary pixel value of 0.
  • the frequency distribution for each of the spatial distributions is shown immediately below in Fig. 2.
  • the frequency distribution may be determined using a Fast Fourier Transform (FFT) of the spatial distribution.
  • FFT Fast Fourier Transform
  • Fig. 3 - 5 illustrate different halftone spatial distributions (of binary pixel values) as well as their corresponding frequency distributions. Some of these distributions may be more beneficial in some circumstances, such as close viewing or when using latex substrate which is noisier in terms of dot placement accuracy. Other distributions may be more beneficial for different circumstances such as distant viewing or on paper-based substrates. Predetermined or “ideal” frequency distributions may be determined experimentally for different circumstances and these may be used for generating halftone matrices as the circumstances dictate.
  • Fig.6 illustrates a method of generating a halftone matrix according to an example.
  • the method 600 may be implemented by the apparatus 140 of Fig.1 , although the method may alternatively be implemented by any suitable computing device.
  • the method determines a halftone pattern for a halftone value, where the halftone pattern has a plurality of pixel values dependent on the halftone value.
  • the halftone value is a color value or tone and corresponds to a particular density of dots or 1’s in the halftone pattern.
  • the example method generates a halftone matrix by iterating through a plurality of halftone patterns for different halftone values.
  • the method may start with an empty halftone pattern with pixels values all 0, however pixel values may be predetermined for lower halftone values.
  • new 1’s or dots are added to the halftone pattern. These may be added to random locations where a 1 or dot does not already exist. The number of 1’s added will depend on the number of pixels in the halftone pattern as well as the number of halftones. For example, for 256 halftone values and a matrix size of 1024, four dots or 1’s will be added to the halftone pattern.
  • Each halftone pattern will correspond to a number of dots or colorant pixels depending on the halftone value. For example, a halftone value of 20 may have very few dots whereas a halftone value of 240 may have many dots and correspond to a darker rendering of the same color. The dots may correspond to a pixel value of one “1” and a lack of dots may correspond to a pixel value of zero “0”.
  • the distribution of the new dots (1’s in the halftone matrix) may be randomly assigned, or assigned using other approaches such as Blue or Green noise or using predetermined kernels having a predetermined allocation of dots and no dots for each halftone value.
  • Fig. 7 For simplicity part of an example halftone pattern 700 is illustrated in Fig. 7.
  • This 4x4 matrix is part of a larger matrix with binary pixel values and with an equal number of pixel values 1 and 0.
  • the full matrix has 16x16 pixels and with an equal number of 1’s across the full matrix, this may correspond to a halftone value of 8 in a halftone matrix having 16 halftone values.
  • the 1’s that have been added to match the current halftone value are shown with a lightly shaded background and are located at positions [1 ,3] and [2,4], It can be seen that there is a cluster of 1’s in the top right quadrant and a cluster of 0’s (void) in the lower left quadrant. Otherwise, the 1 ’s and 0’s are evenly distributed. In practice, much larger matrices are used, and the distribution of pixel values and their respective numbers may vary considerably.
  • the method calculates a spatial frequency of the halftone pattern. This may be achieved using a Discrete Fourier Transform (DFT), for example a Fast Fourier Transform (FFT).
  • DFT Discrete Fourier Transform
  • FFT Fast Fourier Transform
  • Fig. 2-5 illustrate examples of halftone patterns and their respective spatial frequencies.
  • the method adjusts the spatial frequency of the halftone pattern dependent on the predetermined desired orspatial frequency. This may be implemented by multiplying the spatial frequency of the halftone pattern with a proportion or percentage of a predetermined spatial frequency.
  • the predetermined spatial frequency may be selected depending on a range of factors such as the likely viewing distance, the substrate material, the colorant materials, the printing equipment and/or a color map choice for example.
  • the proportion or percentage of the predetermined spatial frequency employed may be determined empirically based on factors such as convergence accuracy and speed. An example is 5%.
  • the method calculates a decision matrix by performing an Inverse Discrete Fourier Transform (IDFT), such as an Inverse Fast Fourier Transform (IFFT), on the halftone pattern with adjusted spatial frequency.
  • IDFT Inverse Discrete Fourier Transform
  • IFFT Inverse Fast Fourier Transform
  • the decision matrix 800 illustrated in Fig. 8 corresponds to the halftone pattern of Fig. 7 but with an adjusted spatial frequency. It can be seen that in this decision matrix 800, the top left pixel value has changed from 0 to 0.1 and the top right pixel value has changed from 1 to 0.95. Other pixel value changes can be seen, and the decision matrix 800 of Fig. 8 may be thought of as a “blurred” version of the halftone pattern 700 of Fig. 7, with some non-binary values instead of just 1’s “dot” and 0’s “no dot”.
  • the method moves locations of some of the pixel values in the halftone pattern.
  • the decision matrix 800 is used to determine which pixel values to move within the halftone pattern 700.
  • the recently added 1’s correspond to new dots are considered - these are shown with lightly shaded background.
  • pixel value 0.75 from pixel location [1 ,3] of the decision matrix 800 has the largest difference from the corresponding “1 ” pixel value in the halftone pattern 700.
  • pixel value 0.3 from pixel location [4,1] of the decision matrix has the largest difference from the corresponding “0” pixel in the halftone pattern.
  • the method 600 uses these largest pixel value differences between pixel values in the decision matrix 800 and halftone pattern 700 to identify pixel value locations in the halftone pattern to adjust.
  • the pixel values in the halftone matrix 700 from the identified locations are swapped. This is indicated by the arrowed line indicating the intended pixel value movements.
  • the resulting adjusted halftone pattern 900 can be seen in Fig. 9 where the “1” from location [1 ,3] of the original halftone pattern 700 has been swapped with the “0” from location [4,1], The dashed arrowed line indicates the pixel values that have swapped location.
  • the matrices of Fig. 7 - 9 are only part of the respective halftone pattern, decision matrix and adjusted halftone pattern and it will be appreciated that the pixel value differences of 700 and 800 will be explored across the entire 16x16 matrices and that this may result in different pixel values being moved in the part of the adjusted halftone matrix 900.
  • a large number of newly added 1’s from the halftone pattern for the current halftone value may be compared with the corresponding values in the decision matrix calculated following spatial frequency adjustment. The values of the decision matrix may then be used to move some of these pixel values in the adjusted corresponding halftone pattern.
  • the determination of which pixel values to move and where is based on the change or difference between the pixel value in the halftone pattern 700 and the pixel value at the same location of the decision matrix 600.
  • the pixels having the largest change or difference, corresponding to 0.75 and 0.3 in the decision matrix are swapped in the adjusted halftone pattern 900. If additional pixel values are to be moved, the pixels values with the next largest change, 0.8 and 0.2 in the decision matrix 800 may also be swapped.
  • This example has an improved effect compared with using a void and cluster approach to rearranging the pixel values within the adjusted halftone pattern, by utilizing spatial frequency instead of finding the largest void and the smallest cluster.
  • the pixel values determined to move may be based on various factors, such as a predetermined number of the pixel values of the decision matrix 800 having the largest difference compared with the halftone pattern 700.
  • pixel locations identified for moving may be based on exceeding a threshold difference between the original pixel value and the pixel value in the decision matrix. These may also be randomly weighted or ranked based on the amount of change compared with the initial halftone pattern. A predetermined number of movements may be made based on this rank, for example two swaps are made in the example of Fig. 8 and 9.
  • the method determines whether a termination condition has been met.
  • the termination condition may simply be a predetermined number of iterations.
  • the termination condition may be related to the method stabilizing, for example when there are no more, or below a threshold number of movements in pixel values at 650.
  • a pixel value being moved back to its original position in the adjusted halftone pattern may also be used as a termination condition.
  • the method returns to 620 where the spatial frequency of the adjusted halftone pattern following the pixel value movements is calculated and again nudged using the predetermined spatial frequency. This process 620 - 650 continues until the termination condition is met. [0052] If the termination condition is met, the method assigns the current pixel values to the halftone matrix for the current halftone value at 670. As noted above, in this example, the group of 1’s that may be moved correspond to the new 1’s added to match the current halftone value. The 1’s already determined for previous halftone values are retained in position and are not moved by the method.
  • the method then returns to 610 where the next halftone value is processed.
  • the 1’s of the previously adjusted halftone pattern are retained and new 1’s are added to match the new halftone value.
  • the halftone matrix is completed or generated at 680.
  • the method 600 then forwards the generated halftone matrix, which has the desired spatial frequency or is close to this, to a printer.
  • the generated halftone matrix may then be used by a printer to halftone an image for printing.
  • the printed image will then have the desired spatial frequency which may be optimized for viewing at a distance, close up or for use with a particular substrate material.
  • Fig 10. Illustrates part of an example halftone matrix corresponding to the adjusted halftone pattern 900.
  • the halftone matrix 1000 includes element values corresponding to each halftone value processed so far, in this example 1- 8, with each 0 value representing an unallocated or no dot position.
  • the dot positions are represented by the non-zero values and depending on the halftone value to be used. For example, for a halftone value of 5, a halftone pattern can be generated from this halftone matrix by allocating a dot to each of element values 1-5.
  • the method 600 will have replaced all 0 values with a value between 1-16 representing dot positions in a halftone pattern for different halftone values.
  • PARAWACS halftone matrices are processed using the method 600, however other halftone matrices corresponding to individual colors may also be processed using the method.
  • the visual appearance of the rendered images is improved with fewer visible artefacts.
  • the rendered image may also be customized for different applications, substrates, colorants and printing equipment by changing the predetermined spatial frequency used.
  • the method provides the ability to build halftone matrices that match a wanted Fourier spectrum, and may be particularly helpful for HANS pipelines and PARAWACS. Different types of randomness may be introduced when moving the pixel values.
  • the greater control over the spatial patterns may be used to improve robustness, grain and banding. This may be particularly useful when using some materials such as latex substrates.
  • halftone matrix values may be determined by other methods.
  • low halftone values may be first determined by another method with the method of 600 being used to add halftone matrix values for darker or higher halftone values.
  • the method may be applied in other ways, for example sampling, masking and rendering pattern distribution.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)

Abstract

A method in described in which a halftone pattern is generated using a predetermined spatial frequency. In an example, a halftone pattern for a halftone value is generated, the halftone pattern having a plurality of pixel values dependent on the halftone value. The spatial frequency of the halftone pattern is adjusted dependent on a predetermined spatial frequency.

Description

HALFTONE PATTERN GENERATION
BACKGROUND
[0001] In printing, halftoning is a process in which a discrete number of printing fluids are distributed spatially to render a continuous-tone image.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Fig. 1 illustrates an example apparatus and printing device;
[0003] Fig. 2 illustrates a first example halftone pattern spatial distribution and spatial frequency;
[0004] Fig. 3 illustrates a second example halftone pattern spatial distribution and spatial frequency;
[0005] Fig. 4 illustrates a third example halftone pattern spatial distribution and spatial frequency;
[0006] Fig. 5 illustrates a fourth example halftone pattern spatial distribution and spatial frequency;
[0007] Fig. 6 illustrates a method of generating a halftone pattern according to an example;
[0008] Fig. 7 illustrates a halftone pattern according to an example;
[0009] Fig. 8 illustrates a decision matrix following adjustment of the spatial frequency of the halftone pattern of Fig. 6 and according to an example;
[0010] Fig. 9 illustrates the updated halftone pattern of Fig. 7 following moving location of some pixel values and according to an example; and
[0011] Fig. 10 illustrates a halftone matrix according to an example. DETAILED DESCRIPTION
[0012] 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.
[0013] 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 Cl E 1976 (L*, a*, b* - Cl ELAB 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).
[0014] 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.
[0015] 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.
[0016] 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 printresolution area. The set of NPs may depend on an operating configuration of a device, such as a set of available colorants. A colorant or printing fluid combination as described herein may be formed of one or multiple colorants or printing fluids. For example, if a bi-level printing device uses CMY printing fluids there can be eight NPs or output states. These NPs relate to the following: C, M, Y, CM, CY, MY, CMY, and W (white or blank indicating an absence of printing fluid). An NP may comprise an overprint of a plurality of available printing fluids, such as a drop of magenta on a drop of cyan (for a bi-level printer) in a common addressable print area (e.g. a printable “pixel”). An NP may be referred to as a “pixel state”. [0017] Each NPac vector may therefore define a probability distribution for colorant or printing fluid combinations for each halftone pixel in the halftone (e.g. a likelihood that a particular colorant or printing fluid combination or available output state is to be placed or defined at each pixel location in the halftone). In this manner, a given NPac vector defines a set of halftone parameters that can be used in the halftoning process to map a color to NPs to be statistically distributed over the plurality of pixels for a halftone. Moreover, the statistical distribution of NPs to pixels in the halftone serves to control the colorimetry and other print characteristics of the halftone.
[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 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.
[0019] Each pixel of an image is associated with a color value or tone, for example 0-256 for each color of an 8-bit color space. A halftone pattern comprises a plurality of halftone pixels having pixel values depending on the tone, also referred to herein as the halftone value. The halftone pattern may be represented by 1’s and 0’s in a matrix or array and which indicate dots or no dots in the halftone pattern. . For example, a dark image pixel may have a tone or halftone value of 220 and may be rendered using a halftone pattern with a dense distribution of “dots’ or colorant drops which may be represented as many pixel values of “1” in the halftone matrix. A light image pixel may have a sparse distribution of dots represented a halftone matrix with few pixel values of “1” but many pixels values of “0” or “no dot”. Different halftone patterns may be used depending on many factors such as the printing application, the substrates, colorants and printing equipment used, and how the printed image may be viewed. Using the same halftone pattern across the image may result in visual artefacts such as Moire and so the halftone patterns may be varied across the image to reduce these effects. However, it is difficult for a predetermined arrangement of halftone patterns to address all artefacts that may only be visible in some conditions, for example they may be visible nearby but not from a distance and vice versa.
[0020] A halftone matrix may be defined having element values which correspond to dots in a halftone pattern at different tones. For example, a halftone matrix may have an element value 1 corresponding to tone=1 and which represents the location of a dot in the halftone pattern for tone=1. Fortone=2, the halftone matrix may have an element value 2, which together with the element value 1 , represent the locations of two dots in the halftone pattern for tone=2. This assignment of tone element values in the halftone matrix may continue until a maximum tone value having all dots in the halftone pattern. A halftone pattern for a given tone may then be determined from the halftone matrix by finding all element values equal to or less than the tone. In other examples, different numbers of element values or dots may be assigned for each tone.
[0021] When using NPac, the NP associated with the NPac vector are distributed across the halftone pixels according to some pattern to provide the relative area coverage of NP defined by the NPac vector. In order to avoid visual artifacts such as Moire, the distribution of NP across the pixels of one halftone pattern are changed compared with the distribution of NP across the pixels of adjacent halftone patterns. In an example, this is achieved by randomizing the distribution of NP across each halftone pattern. This may be achieved by applying Blue or Green noise to the distribution. However, this can still result in bad grain due to dense clustering which becomes visible.
[0022] Certain examples described herein address a challenge with improving the halftone patterns used in image rendering for different applications. Rules for distributing halftone patterns or the distribution of pixels having pixel values of 1 (dot) and 0 (no dot) in the spatial domain rely on optimizing the spacing between the halftone pixels of the same pixel value. However, this can still result in visible clustering of dots, in particular in medium fills or mid-tones (e.g. 30-40%). Certain examples described herein use spatial frequency adjustment of halftone patterns to optimize dot distribution and reduce visible artefacts. The adjustment may be based on a predetermined or wanted spatial frequency which may vary depending on the intended application of the image to be rendered, for example a Billboard that will be viewed from a distance or a marketing brochure that will be read closely. The halftoning of the image may then be adjusted depending on the desired application, the substrate or colorant materials used, the printing process an equipment or other factors.
[0023] Figure 1 shows an example of a printing system including a printing device 110 and a halftone matrix generation apparatus 140.
[0024] The printing device 110 comprises a carnage assembly 120 and a control unit 125. The carriage assembly 120 comprises a set of printheads 121 carried by a carriage 122. A drive assembly (not shown) moves the carriage assembly 120 along a scan axis in response to drive signals from the control unit 125.
[0025] Each of the printheads 121 comprises a plurality of dies, with each die comprising a plurality of nozzles through which drops of printing fluid are dispensed. The printheads are fluidly coupled to fluid reservoirs (not shown), which supply printing fluids to the printheads. Each printing fluid may be a colorant or a non-colorant, such as a pre-treatment (e.g. fixer/optimizer) or post-treatment (e.g. overcoat) fluid. In the illustrated example, the printing device comprises five printheads that are supplied with eight different printing fluids: cyan (C) , magenta (M), yellow (Y), black (K), light cyan (c), light magenta (m), optimizer (P) and overcoat (S).
[0026] The control unit 125 may comprise a processor, a storage medium, and an input/output interface(not shown). The printing device 1 10 also comprises a halftone matrix 126 which may be used by the control unit in a halftoning process for rendering an image initially received as print data 105. The halftone matrix 126 may be used to generate halftone patterns for different tones or halftone values in image pixels of different color values. The halftone matrix may be received from the halftone matrix generating apparatus 140.
[0027] The halftone matrix generating apparatus 140 comprises a processor 141 and a storage medium 112. The processor 141 is responsible for controlling the operation of the halftone matrix generation apparatus 140 and executes an instruction set 130 stored in the storage medium 112. The instruction set 130 comprises instructions, which when executed by the processor 141 , implement a halftoning matrix generation method. In addition to the instruction set 130, the storage medium 113 stores a predetermined spatial frequency 139 or parameters to calculate such a frequency distribution for use by the halftone matrix generation method.
[0028] During use, the printing device 100 receives print data 105. In one example, the print data 105 may be a raster image generated by a raster image processor. A color mapping module or process (not shown) maps the colors of the print data 105 (e.g. RGB or CMYK) to the colors of the printing device 100, for example CMYKcmPS.
[0029] The color mapping module may map the colors to an area coverage color space, such as the Neugebauer Primary area coverage (NPac) color space. In NPac color space, each pixel of an image is represented by an NPac vector. A Neugebauer Primary (NP) corresponds to one of the possible combinations of printing fluids at each image pixel, including the absence of any printing fluids. The total number of NPs depends on the number of printing fluids, k, and the number of drop states, D, for each printing fluid, and may be defined as Dk. So, for a printing device having three printing fluids (e.g. cyan, magenta and yellow) and two drop states (zero drops and one drop), the NPs are: blank, C, M, Y, CM, CY, MY and CMY. An NPac vector defines the relative area covered by each of the NPs. So, for example, an NPac vector of [magenta:0.3; cyan:0.2; blank: 0.5] implies that 30% of the area is magenta, 20% is cyan, and 50% is blank.
[0030] A halftoning process using the halftone matrix 126 converts image data output by the color mapping module into a plurality of halftone patterns, each corresponding to an image pixel. The carriage assembly 120 is controlled by the controller 110 to print the halftone patterns onto a print medium by controlling the travel of the carriage 120 and the firing of the nozzles of the printheads 121 according to the halftone patterns.
[0031] The instruction set 130, when implemented by the processor 141 , causes a number of actions. At 133, a halftone pattern is determined fora halftone value, the halftone pattern having a plurality of pixel values dependent on the halftone value. [0032] At 137, the spatial frequency of the halftone pattern is adjusted dependent on a predetermined spatial frequency 139 which may also be stored in the storage medium 112.
[0033] A halftone matrix may be generated iteratively, starting with an empty matrix for example, and adjusting halftone patterns through increasing tone values. The completed halftone matrix 126 may be forwarded to the printer device 126 for use in the halftoning process for printing print data 105.
[0034] Example methods for generating the halftone matrix 126 for rendering image data in different applications are described in more detail below. Examples of different applications may include printing an image defined in print data using different substrate materials and/or for viewing at different distances and/or for different types of image content.
[0035] Fig. 2 illustrates halftone patterns for one color for three different spatial distributions of dots corresponding to colorant drops - 5%, 25% and 50%. The different spatial densities are shown in the upper images and correspond to different color or halftone values. The 50% spatial distribution is a denser distribution and corresponds to a darker rendering of the color than the 5% spatial distribution. The spatial distributions show the distributions of “dots” or pixels having a binary pixel value of 1 and “no dots” or pixels having a binary pixel value of 0. The frequency distribution for each of the spatial distributions is shown immediately below in Fig. 2. The frequency distribution may be determined using a Fast Fourier Transform (FFT) of the spatial distribution. It can be seen that there is a low likelihood of a high value around the center of the spacial distribution pattern. This indicates a pattern that does not have low frequency visible artefacts and looks smooth and pleasing to the viewer who is farther away than is able to resolve the higher frequency pattern where significant intensity exists ..in the spatial distribution
[0036] Fig. 3 - 5 illustrate different halftone spatial distributions (of binary pixel values) as well as their corresponding frequency distributions. Some of these distributions may be more beneficial in some circumstances, such as close viewing or when using latex substrate which is noisier in terms of dot placement accuracy. Other distributions may be more beneficial for different circumstances such as distant viewing or on paper-based substrates. Predetermined or “ideal” frequency distributions may be determined experimentally for different circumstances and these may be used for generating halftone matrices as the circumstances dictate.
[0037] Fig.6 illustrates a method of generating a halftone matrix according to an example. The method 600 may be implemented by the apparatus 140 of Fig.1 , although the method may alternatively be implemented by any suitable computing device.
[0038] At 610, the method determines a halftone pattern for a halftone value, where the halftone pattern has a plurality of pixel values dependent on the halftone value. The halftone value is a color value or tone and corresponds to a particular density of dots or 1’s in the halftone pattern.
[0039] The example method generates a halftone matrix by iterating through a plurality of halftone patterns for different halftone values. The method may start with an empty halftone pattern with pixels values all 0, however pixel values may be predetermined for lower halftone values. At 610, for the next halftone value, for example tone=1 following empty set or tone=0, new 1’s or dots are added to the halftone pattern. These may be added to random locations where a 1 or dot does not already exist. The number of 1’s added will depend on the number of pixels in the halftone pattern as well as the number of halftones. For example, for 256 halftone values and a matrix size of 1024, four dots or 1’s will be added to the halftone pattern.
[0040] Each halftone pattern will correspond to a number of dots or colorant pixels depending on the halftone value. For example, a halftone value of 20 may have very few dots whereas a halftone value of 240 may have many dots and correspond to a darker rendering of the same color. The dots may correspond to a pixel value of one “1” and a lack of dots may correspond to a pixel value of zero “0”. The distribution of the new dots (1’s in the halftone matrix) may be randomly assigned, or assigned using other approaches such as Blue or Green noise or using predetermined kernels having a predetermined allocation of dots and no dots for each halftone value. [0041] For simplicity part of an example halftone pattern 700 is illustrated in Fig. 7. This 4x4 matrix is part of a larger matrix with binary pixel values and with an equal number of pixel values 1 and 0. In this example the full matrix has 16x16 pixels and with an equal number of 1’s across the full matrix, this may correspond to a halftone value of 8 in a halftone matrix having 16 halftone values. The 1’s that have been added to match the current halftone value are shown with a lightly shaded background and are located at positions [1 ,3] and [2,4], It can be seen that there is a cluster of 1’s in the top right quadrant and a cluster of 0’s (void) in the lower left quadrant. Otherwise, the 1 ’s and 0’s are evenly distributed. In practice, much larger matrices are used, and the distribution of pixel values and their respective numbers may vary considerably.
[0042] At 620, the method calculates a spatial frequency of the halftone pattern. This may be achieved using a Discrete Fourier Transform (DFT), for example a Fast Fourier Transform (FFT). Fig. 2-5 illustrate examples of halftone patterns and their respective spatial frequencies.
[0043] At 630, the method adjusts the spatial frequency of the halftone pattern dependent on the predetermined desired orspatial frequency. This may be implemented by multiplying the spatial frequency of the halftone pattern with a proportion or percentage of a predetermined spatial frequency. The predetermined spatial frequency may be selected depending on a range of factors such as the likely viewing distance, the substrate material, the colorant materials, the printing equipment and/or a color map choice for example.
[0044] The proportion or percentage of the predetermined spatial frequency employed may be determined empirically based on factors such as convergence accuracy and speed. An example is 5%.
[0045] At 640, the method calculates a decision matrix by performing an Inverse Discrete Fourier Transform (IDFT), such as an Inverse Fast Fourier Transform (IFFT), on the halftone pattern with adjusted spatial frequency. This results in a decision matrix where some of the pixel values are adjusted compared with the starting halftone pattern. For example, the decision matrix 800 illustrated in Fig. 8 corresponds to the halftone pattern of Fig. 7 but with an adjusted spatial frequency. It can be seen that in this decision matrix 800, the top left pixel value has changed from 0 to 0.1 and the top right pixel value has changed from 1 to 0.95. Other pixel value changes can be seen, and the decision matrix 800 of Fig. 8 may be thought of as a “blurred” version of the halftone pattern 700 of Fig. 7, with some non-binary values instead of just 1’s “dot” and 0’s “no dot”.
[0046] At 650, the method moves locations of some of the pixel values in the halftone pattern. The decision matrix 800 is used to determine which pixel values to move within the halftone pattern 700. The recently added 1’s correspond to new dots are considered - these are shown with lightly shaded background. In the example of Fig. 8, pixel value 0.75 from pixel location [1 ,3] of the decision matrix 800 has the largest difference from the corresponding “1 ” pixel value in the halftone pattern 700. Similarly, pixel value 0.3 from pixel location [4,1] of the decision matrix has the largest difference from the corresponding “0” pixel in the halftone pattern. The method 600 uses these largest pixel value differences between pixel values in the decision matrix 800 and halftone pattern 700 to identify pixel value locations in the halftone pattern to adjust. In this example, the pixel values in the halftone matrix 700 from the identified locations are swapped. This is indicated by the arrowed line indicating the intended pixel value movements. The resulting adjusted halftone pattern 900 can be seen in Fig. 9 where the “1” from location [1 ,3] of the original halftone pattern 700 has been swapped with the “0” from location [4,1], The dashed arrowed line indicates the pixel values that have swapped location.
[0047] The matrices of Fig. 7 - 9 are only part of the respective halftone pattern, decision matrix and adjusted halftone pattern and it will be appreciated that the pixel value differences of 700 and 800 will be explored across the entire 16x16 matrices and that this may result in different pixel values being moved in the part of the adjusted halftone matrix 900. Similarly, for larger matrices, a large number of newly added 1’s from the halftone pattern for the current halftone value may be compared with the corresponding values in the decision matrix calculated following spatial frequency adjustment. The values of the decision matrix may then be used to move some of these pixel values in the adjusted corresponding halftone pattern. [0048] In an example, the determination of which pixel values to move and where is based on the change or difference between the pixel value in the halftone pattern 700 and the pixel value at the same location of the decision matrix 600. In the example of Fig. 8 and 9, the pixels having the largest change or difference, corresponding to 0.75 and 0.3 in the decision matrix, are swapped in the adjusted halftone pattern 900. If additional pixel values are to be moved, the pixels values with the next largest change, 0.8 and 0.2 in the decision matrix 800 may also be swapped. This example has an improved effect compared with using a void and cluster approach to rearranging the pixel values within the adjusted halftone pattern, by utilizing spatial frequency instead of finding the largest void and the smallest cluster.
[0049] In some examples, the pixel values determined to move may be based on various factors, such as a predetermined number of the pixel values of the decision matrix 800 having the largest difference compared with the halftone pattern 700. In other examples pixel locations identified for moving may be based on exceeding a threshold difference between the original pixel value and the pixel value in the decision matrix. These may also be randomly weighted or ranked based on the amount of change compared with the initial halftone pattern. A predetermined number of movements may be made based on this rank, for example two swaps are made in the example of Fig. 8 and 9.
[0050] At 660, the method determines whether a termination condition has been met. The termination condition may simply be a predetermined number of iterations. Alternatively or additionally, the termination condition may be related to the method stabilizing, for example when there are no more, or below a threshold number of movements in pixel values at 650. In another example, a pixel value being moved back to its original position in the adjusted halftone pattern may also be used as a termination condition.
[0051] If the termination condition is not met, the method returns to 620 where the spatial frequency of the adjusted halftone pattern following the pixel value movements is calculated and again nudged using the predetermined spatial frequency. This process 620 - 650 continues until the termination condition is met. [0052] If the termination condition is met, the method assigns the current pixel values to the halftone matrix for the current halftone value at 670. As noted above, in this example, the group of 1’s that may be moved correspond to the new 1’s added to match the current halftone value. The 1’s already determined for previous halftone values are retained in position and are not moved by the method.
[0053] The method then returns to 610 where the next halftone value is processed. In this example, the 1’s of the previously adjusted halftone pattern are retained and new 1’s are added to match the new halftone value.
[0054] Once all halftone values have been processed in this way, the halftone matrix is completed or generated at 680. The method 600 then forwards the generated halftone matrix, which has the desired spatial frequency or is close to this, to a printer. The generated halftone matrix may then be used by a printer to halftone an image for printing. The printed image will then have the desired spatial frequency which may be optimized for viewing at a distance, close up or for use with a particular substrate material.
[0055] Fig 10. Illustrates part of an example halftone matrix corresponding to the adjusted halftone pattern 900. The halftone matrix 1000 includes element values corresponding to each halftone value processed so far, in this example 1- 8, with each 0 value representing an unallocated or no dot position. The dot positions are represented by the non-zero values and depending on the halftone value to be used. For example, for a halftone value of 5, a halftone pattern can be generated from this halftone matrix by allocating a dot to each of element values 1-5. When completed, the method 600 will have replaced all 0 values with a value between 1-16 representing dot positions in a halftone pattern for different halftone values.
[0056] In an example, PARAWACS halftone matrices are processed using the method 600, however other halftone matrices corresponding to individual colors may also be processed using the method. The visual appearance of the rendered images is improved with fewer visible artefacts. The rendered image may also be customized for different applications, substrates, colorants and printing equipment by changing the predetermined spatial frequency used. [0057] The method provides the ability to build halftone matrices that match a wanted Fourier spectrum, and may be particularly helpful for HANS pipelines and PARAWACS. Different types of randomness may be introduced when moving the pixel values. The greater control over the spatial patterns may be used to improve robustness, grain and banding. This may be particularly useful when using some materials such as latex substrates.
[0058] Various alternatives may be employed. For example, some of the halftone matrix values may be determined by other methods. For example, low halftone values may be first determined by another method with the method of 600 being used to add halftone matrix values for darker or higher halftone values. Whilst the approach has been described with application to halftone matrices, the method may be applied in other ways, for example sampling, masking and rendering pattern distribution.
[0059] 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

CLAIMS What is claimed is:
1 . A method comprising: determining a halftone pattern fora halftone value, the halftone pattern having a plurality of pixel values dependent on the halftone value; adjusting the halftone pattern by adjusting the spatial frequency of the halftone pattern dependent on a predetermined spatial frequency.
2. The method of claim 1 , comprising: multiplying the spatial frequency of the halftone pattern by a proportion of the predetermined spatial frequency to determine a decision matrix; adjusting a location of a pixel value in the halftone pattern dependent on the decision matrix.
3. The method of claim 2, wherein determining the decision matrix comprises: calculating a Discrete Fourier Transform of the halftone pattern to determine the spatial frequency of the halftone pattern; calculating an Inverse Discrete Fourier Transform of spatial frequency following multiplying by a proportion of the predetermined frequency to determine the decision matrix.
4. The method of claim 2, wherein determining the location of the pixel value to be adjusted is based on a pixel value difference between corresponding pixel values in the halftone pattern and the decision matrix.
5. The method of claim 4, wherein determining the location of the pixel value to be adjusted based one or more of the following: a pixel value difference above a threshold; a largest pixel value difference.
6. The method of claim 4, wherein the pixel values of the halftone pattern are 0 or 1 , and comprising swapping the locations of two pixel values having 0 and 1 based on a pixel value difference between said pixel values and corresponding pixel values of the decision matrix.
7. The method of claim 2, comprising iteratively adjusting the spatial frequency of the halftone pattern following said adjusting a location of a pixel value.
8. The method of claim 6, comprising iteratively adjusting the spatial frequency of the halftone pattern following the swapping the locations of two pixel values.
9. The method of claim 7, comprising iterating until a termination condition.
10. The method of claim 1 , comprising generating a halftone matrix by determining and adjusting a halftone pattern for a plurality of different halftone values.
11 . The method of claim 10, comprising printing using the generated halftone matrix.
12. Apparatus comprising: a processor; a memory storing instructions for execution by the processor and a predetermined spatial frequency, wherein the instructions, when executed by the processor, cause the processor to: determine a halftone pattern for a halftone value, the halftone pattern having a plurality of pixel values dependent on the halftone value; adjust the spatial frequency of the halftone pattern dependent on the predetermined spatial frequency; generate a halftone matrix using the halftone pattern with adjusted spatial frequency for a plurality of halftone values.
13. The apparatus of claim 12, the processor to: multiply the spatial frequency of the halftone pattern by a proportion of the predetermined spatial frequency to determine a decision matrix; adjust a location of a pixel value in the halftone pattern dependent on the decision matrix.
14. The apparatus of claim 13, the processor to determine the location of the pixel value to be adjusted based on pixel value differences between the pixel values in the halftone pattern and the decision matrix.
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: determine a halftone pattern for a halftone value, the halftone pattern having a plurality of pixel values dependent on the halftone value; adjust the spatial frequency of the halftone pattern dependent on a predetermined spatial frequency.
PCT/US2022/032653 2022-06-08 2022-06-08 Halftone pattern generation WO2023239359A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2022/032653 WO2023239359A1 (en) 2022-06-08 2022-06-08 Halftone pattern generation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2022/032653 WO2023239359A1 (en) 2022-06-08 2022-06-08 Halftone pattern generation

Publications (1)

Publication Number Publication Date
WO2023239359A1 true WO2023239359A1 (en) 2023-12-14

Family

ID=82547470

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2022/032653 WO2023239359A1 (en) 2022-06-08 2022-06-08 Halftone pattern generation

Country Status (1)

Country Link
WO (1) WO2023239359A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991012686A1 (en) * 1990-02-07 1991-08-22 Eastman Kodak Company Digital halftoning with correlated minimum visual modulation patterns
EP0639023A1 (en) * 1993-08-13 1995-02-15 Agfa-Gevaert N.V. Frequency-modulation halftone screen and method for making same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991012686A1 (en) * 1990-02-07 1991-08-22 Eastman Kodak Company Digital halftoning with correlated minimum visual modulation patterns
EP0639023A1 (en) * 1993-08-13 1995-02-15 Agfa-Gevaert N.V. Frequency-modulation halftone screen and method for making same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WANG M ET AL: "PREDICTION OF THE TEXTURE VISIBILITY OF COLOR HALFTONE PATTERNS", JOURNAL OF ELECTRONIC IMAGING, S P I E - INTERNATIONAL SOCIETY FOR OPTICAL ENGINEERING, US, vol. 11, no. 2, 1 April 2002 (2002-04-01), pages 195 - 205, XP001115912, ISSN: 1017-9909, DOI: 10.1117/1.1455010 *

Similar Documents

Publication Publication Date Title
EP3135025B1 (en) Color halftone processing
US9674403B2 (en) Creating a color gamut look-up-table
EP3135026B1 (en) Generation of color mapping representative of a color halftone processing pipeline
EP3455079A1 (en) Setting ink use limits for a printing system
US20180007237A1 (en) Color printing look-up-table
US11379700B1 (en) Halftone matrix for use with fine features
US8363280B2 (en) System and method of halftone printing of image spot colors using ranked ordered pairing of colorants and halftone screens
US8576243B2 (en) Display-color function image conversion
US10691988B2 (en) Printing of a halftone based on multiple colorant deposition orders
EP3213499B1 (en) Post-processing halftone images
US11381707B2 (en) Error diffusion for printing
WO2023239359A1 (en) Halftone pattern generation
US20230382132A1 (en) Printing modes with drying delays
WO2022086550A1 (en) Ink-vector to npac conversion
US11477346B2 (en) Color calibration in a printing system
US10728423B2 (en) Colorant vector calibration
US11418681B1 (en) Halftone matrix generation using kernels
US20210243334A1 (en) Clustering colors for halftoning
US11449283B1 (en) Hybrid-masked halftone area Neugebauer separation (HANS) pipeline
US8059311B2 (en) Font and line art rendering for multi-bit output devices
US11876944B2 (en) Neugebauer primaries halftone level adjustment
WO2024081021A1 (en) Multiple halftone masks pixels allocation
JP2020124835A (en) Image processor, image processing method and program

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: 22741611

Country of ref document: EP

Kind code of ref document: A1