Image-adaptive inkjet printhead stitching process
11945240 ยท 2024-04-02
Assignee
Inventors
Cpc classification
B41J29/393
PERFORMING OPERATIONS; TRANSPORTING
International classification
G06K15/00
PHYSICS
B41J29/393
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A method of printing on an inkjet printer including a plurality of overlapping jetting modules includes analyzing image data within a stitch area to designate white pixels and non-white pixels. For rows where the stitch area includes white pixels, a hard stitch boundary is defined within the stitch area where image pixels to the left of the hard stitch boundary are to be printed using a left jetting module and image pixels to the right of the hard stitch boundary are to be printed using a right jetting module. For image regions where the rows of image pixels within the stitch area include only non-white pixels, a soft-stitching path is defined through the image region, and a fading function is used to gradually transition from printing image pixels with the left jetting module to printing image pixels with the right jetting module in a transition zone around the soft-stitching path.
Claims
1. A method of printing on an inkjet printer including a linehead with a plurality of jetting modules in a staggered, partially overlapping configuration, each of the plurality of jetting modules including a plurality of nozzles, wherein some of the nozzles of adjacent jetting modules overlap each other in a stitch area, the method comprising: receiving image data including an array of image pixels to be printed using the inkjet printer; for image pixels that fall within a particular stitch area where the nozzles of a left jetting module and a right jetting module overlap: analyzing the image data within the particular stitch area to designate white pixels and non-white pixels; for rows of image pixels where the particular stitch area includes white pixels: defining a hard stitch boundary within the stitch area; storing printing data indicating that image pixels within the particular stitch area to the left of the hard stitch boundary are to be printed using the left jetting module; and storing printing data indicating that image pixels within the particular stitch area to the right of the hard stitch boundary are to be printed using the right jetting module; and for image regions of the image data where the rows of image pixels within the stitch area include only non-white pixels: defining a soft-stitching path through the image region; and storing printing data indicating that image pixels within the image region are to be printed using a fading function that gradually transitions from printing image pixels with the left jetting module to printing image pixels with the right jetting module in a transition zone around the soft-stitching path.
2. The method of claim 1, further including using the inkjet printer to print the image pixels that fall within the particular stitch area using the stored printing data.
3. The method of claim 1, wherein the image pixels having only white image content in a defined zone around the image pixels are designated to be white pixels, and all other image pixels are designated to be non-white pixels.
4. The method of claim 3, wherein the defined zone is a rectangular region including a specified number of rows and columns around the image pixel.
5. The method of claim 3, wherein the defined zone is a circular or elliptical region of a specified size around the image pixel.
6. The method of claim 1, wherein the soft-stitching path connects a white pixel in a row above the image region to a white pixel in a row below the image region.
7. The method of claim 6, wherein the soft-stitching path is defined to be a straight line between the white pixel in the row above the image region and the white pixel in the row below the image region.
8. The method of claim 6, wherein the soft-stitching path is a spline path defined between the white pixel in the row above the image region and the white pixel in the row below the image region.
9. The method of claim 1, wherein the fading function provides scale values that are applied to the image pixels in the transition zone to determine pixel values for the left and right jetting modules.
10. The method of claim 9, wherein the scale values applied to pixels to be printed with the left jetting module transition from a value of 1.0 at a left side of the transition zone to a value of 0.0 at a right edge of the transition zone, and the scale values applied to pixels to be printed with the right jetting module transition from a value of 0.0 at a left side of the transition zone to a value of 1.0 at a right edge of the transition zone.
11. The method of claim 9, wherein the scale values of the fading function are selected so that an output density value in the transition zone is equal to an input density level.
12. The method of claim 1, wherein error values are determined between an input density level and an output density level for pixels in the transition zone, and an error diffusion process is used to distribute the determined error value is distributed to the image pixels that have not been processed.
Description
DETAILED DESCRIPTION OF THE INVENTION
(1) In the following description, some embodiments of the present invention will be described in terms that would ordinarily be implemented as software programs. Those skilled in the art will readily recognize that the equivalent of such software may also be constructed in hardware. Because image manipulation algorithms and systems are well known, the present description will be directed in particular to algorithms and systems forming part of, or cooperating more directly with, the method in accordance with the present invention. Other aspects of such algorithms and systems, together with hardware and software for producing and otherwise processing the image signals involved therewith, not specifically shown or described herein may be selected from such systems, algorithms, components, and elements known in the art. Given the system as described according to the invention in the following, software not specifically shown, suggested, or described herein that is useful for implementation of the invention is conventional and within the ordinary skill in such arts.
(2) The invention is inclusive of combinations of the embodiments described herein. References to a particular embodiment and the like refer to features that are present in at least one embodiment of the invention. Separate references to an embodiment or particular embodiments or the like do not necessarily refer to the same embodiment or embodiments; however, such embodiments are not mutually exclusive, unless so indicated or as are readily apparent to one of skill in the art. The use of singular or plural in referring to the method or methods and the like is not limiting. It should be noted that, unless otherwise explicitly noted or required by context, the word or is used in this disclosure in a non-exclusive sense.
(3) Applications for inkjet heads, especially in the packaging market, do not always allow a precise mechanical stitch of neighboring jetting modules. As a result, with traditional hard-stitching it is common for the stitch point to be visible in the printed image, either as a lighter line or a darker line along the boundary depending on the alignment errors of the printing modules due to tolerances in the printed material and the physical components.
(4) This present invention describes a soft-stitching method which is effective to visually hide the stitch point by overlapping the jetting modules and distributing the error over the overlapping area. In an exemplary embodiment, the algorithm is implemented in prepress software used to create the inkjet print file, and is run in the process of separation and rasterization of the image data.
(5) The present invention is well-suited for use in roll-fed inkjet printing systems, such as the printing system 10 described earlier with respect to
(6) In the context of the present invention, the terms web media or continuous web of media are interchangeable and relate to a receiver medium 14 (e.g., a print media) that is in the form of a continuous strip of media that is transported through the printing system 10 in an in-track direction using a web media transport system from an entrance to an exit thereof. The continuous web media serves as the receiving medium 14 to which one or more colorants (e.g., inks or toners), or other coating liquids are applied. This is distinguished from various types of continuous webs or belts that are actually transport system components (as compared to the image receiving media) which are typically used to transport a cut sheet medium in an electrophotographic or other printing system. The terms upstream and downstream are terms of art referring to relative positions along the transport path of a moving web; points on the web move from upstream to downstream.
(7) Additionally, as described herein, the example embodiments of the present invention provide a printing system or printing system components typically used in inkjet printing systems. However, many other applications are emerging which use inkjet printheads to emit liquids (other than inks) that need to be finely metered and deposited with high spatial precision. As such, as described herein, the terms liquid and ink and colorant can be taken to refer to any material that can be deposited by the jetting modules 30 described below. Likewise, the terms printed image and print can be taken to refer to any pattern of material deposited on a receiver medium.
(8) In accordance with some exemplary embodiments of the present invention, the digital image data provided to the first and second jetting modules 30 is modified to provide reduced visibility of the stitch boundary between image content printed by first and second jetting modules 30.
(9) Consider the case where it is desired to stitch together image data printed using a plurality of jetting modules 30 in a particular printing module 12 as illustrated in
(10) In accordance with the present invention, stitching errors are made less obvious by distributing them over a larger area in the overlap region 34. In this way, there is not one point where the image transitions from one jetting module 30 to the other, but instead the transition point is variable or there is a fading from one head to the other. As with FM rasterization, each pixel can only be either printed or not printed (i.e., it is either 100% or 0% of each color), but the resulting error can be distributed over neighboring pixels using an error diffusion algorithm. Additionally, when there are unprinted (i.e., white) areas of the image across the stitch, the transition from one jetting module 30 to the other is arranged such that it occurs in such white areas wherever possible, since neither a line, nor a gap will be visible there.
(11)
(12)
(13) The stitching algorithm is split into two parts. A hard-stitching process is applied to portions of the overlap region that contain white pixels, and a soft-stitching process is applied to portions of the overlap region that contain only non-white pixels. The soft-stitching process can also be referred to as a fading stitch process. An identify white pixels step 72 is used to analyze the image pixels in the overlap region 34 (
(14) A white pixel map 75 is preferably formed and used to indicate which image pixels are white pixels 74 and which are non-white pixels 76. In some embodiments the white pixel map 75 stores binary values where a 0 is stored to indicate a non-white pixel 76 and a 1 is stored to indicate a white pixel 74. In a preferred embodiment, the white pixel map 75 stores an integer value for white pixels 74 where the stored value is a number representing the accumulated number of rows where white pixels can be reached in the rows below with a movement of the cross-track position by +/?one pixel. For example, storing a 5 would indicate that the current pixel is a white pixel and that it is the 5.sup.th consecutive row where white pixels can be reached within a triangular shaped region below the current pixel. Or to phrase it recursively, there is a white pixel in the row below that can be reached going one row down and +/?1 pixel to left or right which has a value of 4. This can be represented using the following logic:
if(IsWhite(x,y)=FALSE)
Map(x,y)=0;
else
Map(x,y)=max[Map(x?1,y+1),Map(x,y+1),Map(x+1,y+1)]+1;
Map(x,y)=clip[Map(x,y),0,MaxMap];
where IsWhite(x,y) is a function which returns TRUE if the image pixel at a location (x,y) is white, and FALSE if the image pixel is non-white, Map(x,y) is the white pixel map, max[ ] is a function which returns the maximum of its arguments, and the clip[ ] function is used to limit the value of Map(x,y) to have a defined maximum value (e.g., MaxMap=255). The Map(x,y) values are computed starting at the bottom of the white stitch zone 35 and working up line-by-line. The bottom line is initialized with Map(x,H)=0 for non-white pixels, and Map(x,H)=MaxMap for white pixels, where H is the number of rows.
(15)
(16)
(17)
(18) Returning to a discussion of
(19) The process of defining the stitching path used in the stitching processes works from top to bottom. For rows within the regions including white pixels 80, a define hard stitch boundary step 84 is used to analyze each row of image data to define a hard stitch boundary 85 within the white stitch zone 35. A determine printing data step 86 is then used to determine the printing data 94 for the jetting modules 30A, 30B. Image pixels to the left of the hard stitch boundary 85 are designated to be printed with the left jetting module 30A, and image pixels to the right of the hard stitch boundary 85 are designated to be printed with the right jetting module 30B. In a preferred embodiment, the define hard stitch boundary step 84 attempts to find an area of white pixels large enough to do a stitch. The area is selected such that the hard stitch boundary 85 is as long (vertically) as possible, and stays as close to the center of the white stitch zone 35 as possible from one row to the next.
(20) When the top-most region in the white stitch zone is a region including white pixels 80, a starting point 46 is selected that corresponds to the pixel that produces the longest continuous area of white in the rows below (i.e., the white pixel map 75 (
(21) In some embodiments, if the maximum value of the white pixel map 75 in a particular row is in a different white pixel area, the hard stitch boundary can jump to the other white pixel area. In some configurations, the jump to the other white pixel area is constrained such that there is a maximum number of columns that can be moved for each row such that it may take a number of rows to complete the transition to the other white pixel area. A soft stitching process is preferably used across the transition.
(22) In some embodiments, if a point on the determined hard stitch boundary 85 is in the inner area 39 (
(23) For regions including only non-white pixels 82, a define soft-stitching path step 88 (
(24) When the region including only non-white pixels 82 is at the top of the image, a starting point for the soft-stitching path 89 can be specified in the topmost row of the white stitch zone 35. In an exemplary embodiment, a different starting point is specified for each color channel of the input image in order to reduce the stitch visibility. The starting point can be randomly selected or can be predefined according to a specified criterion. Similarly, when the region including only non-white pixels 82 is at the bottom of the image, an ending point for the soft-stitching path 89 can be specified in the bottommost row of the white stitch zone 35.
(25) When a region including white pixels 80 falls below a region including only non-white pixels 82, the ending point for the soft-stitching path 89 can be used as the starting point 46 for determining the hard stitch boundary 85 in the region including white pixels 80. The process described above is then used to determine the hard stitch boundary 85 for the remaining rows. In the example of
(26) Returning to a discussion of
(27) A store printing data step 96 is used to store the determined printing data 94 for use in printing the image data 71 on the inkjet printer. Typically, a binary halftoning algorithm will be applied to the stored left and right printing data 94L, 94R. The resulting binary image values are then used to determine whether a drop is printed with each nozzle of the jetting modules 30A, 30B.
(28) To estimate the color resulting from overprinting the faded areas, the fading algorithm uses a statistical approach. The assumption is made that all color management has been applied to the input image to form color separations (i.e., color channels) where the probability p that a drop is generated at a particular point is proportional to the grayscale value of the continuous tone color separation at that point. (The value of p is a mathematical probability in the range 0 to 1.)
(29) In the neighborhood of the soft stitch point, the input pixel value (d.sub.in) will be divided into two parts, one part to be printed by the left jetting module 30A and one part to be printed by the right jetting module 30B. In an exemplary embodiment, a raised cosine is used for the fading function 92:
f.sub.fade(x.sub.in)=0.5+0.5 cos(?(x.sub.in?x.sub.stitch+W/2)/W)(1)
where f.sub.fade(x.sub.in) is the fading function 92, W is the width of the fading function, x.sub.stitch is the stitch point, and x.sub.in is the current point (within the range of x.sub.stitch?W/2). The region where the fading function transitions from 1 to 0 is sometimes referred to as a transition zone. In an exemplary embodiment, W is set to be half the width of the overlap region 34 (
p.sub.left(d.sub.in,x.sub.in)=d.sub.in?f.sub.fade(x.sub.in)(2)
p.sub.right(d.sub.in,x.sub.in)=d.sub.in?p.sub.left(d.sub.in,x.sub.in)(3)
where p.sub.left is a grayscale value for the left jetting module 30A, and p.sub.right is a grayscale value for the right jetting module 30B.
(30) The grayscale values can be viewed as probabilities of printing a dot at a certain location for both heads (typically scaled by a maximum grayscale value of 255). For overprinting two grayscale values (i.e., in the fading area), there will be a probability that a drop will be generated by both jetting modules: p.sub.both=p.sub.left?p.sub.right. Typically, the overprinted dot will provide less than double the density of a single dot, but more than the density of a single dot. As a result, the pattern created by overprinting the faded patterns from the left and right jetting modules 30A, 30B will generally have a lower density than the sum of the densities of the left and right patterns. Therefore, a correction function f.sub.c(p.sub.right,p.sub.left) can be determined to represent the loss in density:
d.sub.out=p.sub.left+p.sub.right?f.sub.c(p.sub.left,p.sub.right)?p.sub.right?p.sub.left=d.sub.in?f.sub.c(p.sub.left,p.sub.right)?p.sub.right?p.sub.left(4)
The value of the correction function will typically be dependent on the ink and substrate and the printing conditions. A value of f.sub.c=0 would correspond to the case where the overprinted dot is equivalent to two dots printed side by side, and a value of f.sub.c=1 would correspond to the case where the overprinted dot is equivalent to a single dot. Empirical evaluation of typical substrates shows that values in the range of 0.7 to 0.9 yield reasonable results in many cases. In an exemplary configuration, a correction function with a constant with a value of f.sub.c(p.sub.left,p.sub.right)=0.9 will be used. However, in general the correction function can be a two-dimensional function which varies as a function of p.sub.left and p.sub.right, where the values of this function can be determined experimentally. Such a two-dimensional function can be represented as a 2-D LUT where the rows and columns are indexed the values of p.sub.left and p.sub.right.
(31) There are a number of different ways to correct the left and right pixels in order to compensate for the density loss. For example, the values of p.sub.left and p.sub.right can be increased until d.sub.out=d.sub.in, for example by adding a portion of f.sub.c to the values of p.sub.left and p.sub.right:
p.sub.left(d.sub.in,x.sub.in)=p.sub.left(d.sub.in,x.sub.in)+f.sub.fade(x.sub.in)?f.sub.c(p.sub.left,p.sub.right)(5)
p.sub.right(d.sub.in,x.sub.in)=p.sub.right(d.sub.in,x.sub.in)+[1?f.sub.fade(x.sub.in)]?f.sub.c(p.sub.left,p.sub.right)(6)
(32) In a preferred embodiment, an analog error diffusion process is used to distribute the error to surrounding pixels that have not been processed. From Eq. (4), the error will be given by:
error=d.sub.out?d.sub.in=?f.sub.c(p.sub.left,p.sub.right)?p.sub.right?p.sub.left(7)
The analog error diffusion process is similar to the well-known binary error diffusion halftoning process except that no quantization process is used to binarize the output. In this case, a fraction of the error is distributed to the grayscale values of nearby pixels that have yet to be processed.
(33) In an exemplary embodiment, the error diffusion process is performed in alternating left and right directions to avoid one-sided accumulation of error compensation in the relatively narrow stitch area.
(34) In an exemplary embodiment, the method of the present invention is applied independently to the image data 71 (
(35) In a preferred embodiment, the printing system 10 (
(36) The invention has been described in detail with particular reference to certain preferred embodiments thereof, but it will be understood that variations and modifications can be effected within the spirit and scope of the invention.
PARTS LIST
(37) 10 printing system 12 printing module 14 receiver medium 16 receiver motion direction 18 dryer 20 imaging system 22 imaging device 30 jetting module 30A jetting module 30B jetting module 31 nozzle array 32 printing region 34 overlap region 35 white stitch zone 36 centerline 37 outer area 38 outer area 39 inner area 40 input image 46 starting point 51 boundary path portion 52 boundary path portion 53 boundary path portion 54 lowest white point 55 highest white point 57 boundary path portion 58 boundary path portion 60 zone 61 center pixel 62 binary white pixel map 70 receive image data step 71 image data 72 identify white pixels step 74 white pixel 75 white pixel map 76 non-white pixel 77 gradient region 78 identify non-white regions step 80 region including white pixels 82 region including only non-white pixels 84 define hard stitch boundary step 85 hard stitch boundary 86 determine printing data step 88 define soft-stitching path step 89 soft-stitching path 90 determine printing data step 92 fading function 94 printing data 94L left printing data 94R right printing data 96 store printing data step 100 graph 102 graph 110 error diffusion coefficients 112 error diffusion coefficients