Patent Publication Number: US-9895915-B2

Title: Compensating swath height error

Description:
BACKGROUND 
     A printing device, such as a printer, multifunction printer, or the like, may be used to print content onto print media. The resulting print may have a number of inherent characteristics due to the printing process. One such characteristic may be area fill uniformity, which may indicate whether the printed area appears to be uniform in color and/or texture. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The following detailed description references the drawings, wherein: 
         FIG. 1  is a block diagram of an example printing device consistent with disclosed implementations; 
         FIG. 2  is a top view of an example of a printhead assembly printing an image consistent with disclosed implementations; 
         FIG. 3  is a block diagram of an example printing device consistent with disclosed implementations; 
         FIG. 4  is a flow chart of an example process for swath height error compensation consistent with disclosed implementations; and 
         FIG. 5  illustrates three example print masks for compensating swath height error consistent with disclosed implementations. 
     
    
    
     DETAILED DESCRIPTION 
     The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar parts. While several examples are described in this document, modifications, adaptations, and other implementations are possible. Accordingly, the following detailed description does not limit the disclosed examples. Instead, the proper scope of the disclosed examples may be defined by the appended claims. 
     As detailed above, one characteristic of print quality may be area fill uniformity. With the introduction of new types of printers, such as Page Wide Array (“PWA”) printers, this characteristic has been more challenging to achieve. For example, unlike some conventional printers, PWA printers may not include a moving carriage. Instead, there may be a bar of printhead dies covering the width of the print media and oriented orthogonally to the print media path. Printhead assemblies in this bar may include thousands of nozzles which eject drops of printing fluid as the print media moves under the bar in a substantially perpendicular direction. Since PWA printers may include thousands of nozzles dispersed on multiple partially overlapping PWA printhead dies, the ejection of printing fluid from those printhead dies may create an aerodynamic turbulence which may not prevent the printing fluid from reaching its intended destination. One result of this aerodynamic turbulence may be defects in the image, such as poor area fill uniformity created by Dynamic Swath Height Error (“DHSE”). 
     DHSE involves the variation in the swath of printing fluid that printheads in a printing device, such as a PWA printer, print on print media. For example, DHSE may affect the trajectory of the drops ejected by the nozzles in the outermost edges of the PWA printhead dies. This may result in drops of printing fluid landing in the wrong position and towards the center of the die, making the swath printed by the PWA printhead die thinner than intended. While the swath dimension may depend on the amount of printing fluid used (and thus the content of the image), the greater the amount of printing fluid ejected by the nozzles, the more the swath shrinks, resulting in a gap in areas corresponding to areas between the printhead dies. This gap may show up as an image quality defect, such as white lines in the image corresponding to transitions between overlapping printhead dies. Accordingly, to help achieve optimal print quality, a printing device should compensate for image defects created by DHSE. 
     Examples disclosed herein may provide swath height error compensation. To this end, example implementations disclosed herein may provide swath height error compensation by determining a density of an image to be printed. In some implementations, the density may be determined for an overlap area including target pixels (e.g., pixels to be printed on a print medium) capable of being printed by a first set of drop ejection elements of a first printhead die and a second set of drop ejection elements of a second printhead die. Additionally, some implementations may determine a mask to apply to the first set of drop ejection elements and the second set of drop ejection elements. For example, the mask may designate at least one additional drop to apply to at least one target pixel in the overlap area by the first set of drop ejection elements, the second set of drop ejection elements, or a combination of the first set of drop ejection elements and the second set of drop ejection elements. In some examples, the mask may be applied to the first set of drop ejection elements and the second set of drop ejection elements. For example, a printing device may eject the at least one additional drop of printing fluid on the overlap area based on the mask. 
     Referring now to the drawings,  FIG. 1  is a block diagram of an example printing device  100  consistent with disclosed implementations. Printing device  100  may be implemented in various ways. For example, printing device  100  may be a PWA printer, an inkjet printer, a computing system, and/or any other type of device that can produce content (e.g. images, text, etc.) on a print medium. In the example shown in  FIG. 1 , printing device  100  may include a printhead assembly  110 , an ink supply assembly  120 , a media assembly  130 , a processor  140 , an interface  150 , and a machine-readable storage medium  160 . 
     Printhead assembly  110  may be any device capable of ejecting drops of printing fluid toward a print media. For example, printhead assembly  110  may include at least one printhead die which ejects drops of printing fluid through orifices or nozzles onto a print medium to produce a printed image. A print medium may be any suitable material for printing, such as paper, cardstock, transparencies, textiles, mesh, and the like. Typically, the nozzles may be arranged in at least one column or array such that properly sequenced ejection of printing fluid from the nozzles may cause characters, symbols, and/or other graphics or images to be printed upon a print medium as the print medium is moved relative to printhead assembly  110 . An example of printhead assembly  110  consistent with disclosed implementations is discussed in more detail bellow with respect to, for example,  FIG. 2 . 
     Printing fluid supply assembly  120  may be any device capable of supplying printing fluid to a component of printing device  100 . For example, printing fluid supply assembly  120  may be a component or collection of components that supplies printing fluid, such as ink, to printhead assembly  110 . In some implementations, printing fluid supply assembly  120  may include a removable, replaceable, and/or refillable reservoir for storing printing fluid. Printing fluid may flow from the reservoir to printhead assembly  110 . In some implementations, printhead assembly  110  and printing fluid supply assembly  120  may be housed together to form a cartridge or pen. In some implementations, printing fluid supply assembly  120  may be separate from printhead assembly  110  and may supply printing fluid to printhead assembly  110  through an interface connection, such as a supply tube. 
     Media assembly  130  may be any component or collection of components that transports a print medium relative to printhead assembly  110 . For example, media assembly  130  may function to advance or position a print medium relative to printhead assembly  110 , such as by advancing or positioning the print medium in a direction substantially orthogonal to printhead assembly  110 . 
     Processor  140  may be at least one processing unit (CPU), microprocessor, and/or another hardware device to execute instructions to perform operations. For example, processor  140  may fetch, decode, and execute swath height error compensation instructions  170  (e.g., instructions  172 ,  174 , and/or  176 ) stored in machine-readable storage medium  160  to perform operations related to disclosed examples. 
     Interface device  150  may be any device that facilitates the transfer of information between printing device  100  and external components, such as another printing device, a scanner, a desktop computer, a laptop computer, a tablet computing device, a mobile phone, a server, and/or any other suitable type of device. In some examples, interface device  150  may include a network interface device that allows printing device  100  to receive and send data to and from a network. For example, interface device  150  may retrieve and process data related to an image to be printed by printing device  100  from a remote computing system. 
     Machine-readable storage medium  160  may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions. Thus, machine-readable storage medium  160  may be, for example, Random Access Memory (RAM), Electrically-Erasable Programmable Read-Only Memory (EEPROM), a storage drive, an optical disc, and the like. In some implementations, machine-readable storage medium  160  may be a non-transitory computer-readable storage medium, where the term “non-transitory” does not encompass transitory propagating signals. Machine-readable storage medium  160  may be encoded with instructions that, when executed by processor  140 , perform operations consistent with disclosed implementations. For example, machine-readable storage medium  160  may include swath height error compensation instructions  170  that, when executed by a processor, perform operations that may compensate for swath height error. In the example shown in  FIG. 1 , machine-readable storage medium  160  may include density determination instructions  172 , mask determination instructions  174 , and/or compensated printing instructions  176 . 
     Density determination instructions  172  may function to determine an image density of an image to be printed. For example, when density determination instructions  172  are executed by a processor, such as processor  140  of print device  100 , density determination instructions  172  may cause processor  140  and/or another processor to determine a density of an image to be printed in an overlap area. In some implementations, the overlap area may include target pixels capable of being printed by both a first set of drop ejection elements of a first printhead die and a second set of drop ejection elements of a second printhead die of printhead assembly  110 . In some examples, density determination instructions  172  may cause processor  140  of print device  100  and/or another processor to determine the density of the image by determining a halftone level of at least one target pixel in the overlap area. In some implementations, the halftone level may correspond to the drop density (e.g., the number of printing fluid drops) per target pixel. Furthermore, in some implementations, density determination instructions  172  may also cause processor  140  of print device  100  and/or another processor to store data related to the density determination in machine-readable storage medium  160  and/or in another storage device. Examples of these analyses are described in further detail below with respect to, for example,  FIG. 4 . 
     Mask determination instructions  174  may function to determine a mask to apply to a printhead assembly. For example, when mask determination instructions  174  are executed by a processor, such as processor  140  of printing device  100 , mask determination instructions  174  may cause the processor to determine a mask to apply to printhead assembly  110  based on the determined density. In some examples, the mask may be applied on a per-pixel basis, meaning that a mask may be applied to each target pixel in an overlap area that has a particular density. For example, if an overlap area included 10 target pixels, each of the 10 target pixels may be assigned its own mask (although each mask need not be different from another mask applied to a target pixel in the overlap area). As another example, if an overlap area included 10 target pixels (3 having a first density value, 5 having a second density value, and 2 having a third density value), the 3 target pixels with the first density value may be assigned to at least one mask (e.g., a first mask), the 5 target pixels with the second density value may be assigned to at least one mask (e.g., a second mask), and the 2 target pixels with the third density value may also be assigned to at least one mask (e.g., a third mask). Thus, in some examples, each pixel having a first density value may be printed using the same mask or series of masks, each pixel having a second density value may be printing using the same mask of series of masks, and the like. 
     In some implementations, a mask may designate printing fluid drops to apply to a target pixel in the overlap area by the first set of drop ejection elements and the second set of drop ejection elements of printhead  110 . For example, the mask may designate at least one additional drop to apply to at least one target pixel by at least one of the first set of drop ejection elements and the second set of drop ejection elements. In some examples, mask determination instructions  174 , when executed by processor  140  and/or another processor, may select a first mask or a second mask based on the halftone value of the target pixel. In some examples, the first mask may designate that the first set of drop ejection elements or both the first set of drop ejection elements and the second set of drop ejection elements apply drops to each of the target pixels, and the second mask may designate that the first set of drop ejection elements and the second set of drop ejection elements both apply drops to each of the target pixels. Examples of these analyses are described in further detail below with respect to, for example,  FIGS. 4 and 5 . 
     Compensated printing instructions  176  may function to apply the determined mask to a printhead assembly. For example, when compensated printing instructions  176  are executed by a processor, such as processor  140  of printing device  100 , compensated printing instructions  176  may cause processor  140  and/or another processor to apply the mask to the first set of drop ejection elements and the second set of drop ejection elements of printhead  110 . In some implementations, compensated printing instructions  176 , when executed by processor  140 , may eject drops of printing fluid on the overlap area of a print medium based on the applied mask to print the image. Examples of these analyses are described in further detail below with respect to, for example,  FIG. 4 . 
     The arrangement illustrated in  FIG. 1  is simply an example, and printing device  100  may be implemented in a number of different configurations. For example, while  FIG. 1  shows one printhead assembly  110 , printing fluid supply assembly  120 , media assembly  130 , processor  140 , interface  150 , and machine-readable storage medium  160 , printing device  100  may include any number of components  110 ,  120 ,  130 ,  140 ,  150 , and  160  as well as other components not depicted in  FIG. 1 . For example, printing device  100  may omit any of components  110 ,  120 ,  130 ,  140 ,  150 , and  160  and/or combine at least one of components  110 ,  120 ,  130 ,  140 ,  150 , and  160  (e.g., printhead assembly  110  and printing fluid supply assembly  120  may be housed together). As another example, while  FIG. 1  shows that each of components  110 ,  120 ,  130 ,  140 ,  150 , and  160  are communicatively connected, at least one of components,  110 ,  120   130 ,  140 ,  150 , and  160  may not be communicatively connected to other components of printing device  100  or to external components. As yet another example, while  FIG. 1  shows that each of components  110 ,  120 ,  130 ,  140 ,  150 , and  160  are internal to printing device  100 , at least one of components  110 ,  120 ,  130 ,  140 ,  150 , and  160  may be external to printing device  100 . For example, machine-readable storage medium  160  including processing instructions  170  may be located in a computing system external to printing device  100 . 
       FIG. 2  is a top view of an example of a printhead assembly  210  printing an image  240  consistent with disclosed implementations. In certain aspects, printhead assembly  210  may correspond to printhead assembly  110  of  FIG. 1 . For example, printhead assembly  210  may perform functions similar to those describe above with respect to printhead assembly  110  of  FIG. 1  and/or may be incorporated with printing device  100  of  FIG. 1 . Although printhead assembly  210  may be described below with reference to printing device  100  of  FIG. 1  and/or specific components of printing device  100 , other suitable systems and devices may be used with printhead assembly  210 . 
     As shown in  FIG. 2 , printhead assembly  210  may be a wide-array or multi-head printhead assembly including a plurality of modules  220 . At least one of modules  220  may include at least one printhead die  230 . For example, each module  220  may include a plurality of printhead dies  230  and may function to carry the dies  230  and provide electrical and fluidic communication between printhead dies  230 , a printing fluid supply assembly (such as printing fluid supply assembly  120  discussed above with respect to  FIG. 1 ), and/or an electronic controller (such as processor  140  and machine-readable storage medium  160  discussed above with respect to  FIG. 1 ). 
     Dies  230  may be mounted on a face  222  of module  220  and aligned in at least one row. In some implementations, printhead dies  230  may include at least one array of printing or drop ejecting elements, such as nozzles. In some implementations, at least one drop ejecting element of a particular printhead die may be redundant to another drop ejecting elements of another printhead die. That is, in some examples, a nozzle of a particular die may share a printing axis (i.e., an axis extending in a direction substantially parallel to the advancing direction of the print media during printing) with another nozzle of another printhead die such that target pixels corresponding to the printing axis are capable of being printed by either printhead die. For example, printhead die  230 A may include a first set of drop ejection elements that are redundant to a second set of drop ejection elements of printhead die  230 B such that the first set and the second set of drop ejection elements are capable of ejecting drops on the same area of a print medium (e.g., on overlap area  224 A). 
     In some implementations, printhead dies  230  may be arranged in at least one overlapping row. For example, printhead dies  230  may be arranged in a first row and a second row that is spaced from and oriented substantially parallel to the first row. Additionally, printhead dies  230  in the first row may be offset from printhead dies in  230  in the second row such that each printhead die  230  in the first row of a module  220  overlaps at least one printhead die  230  in the second row with respect to a direction substantially perpendicular to the printing axis. As a result, the print swath of each printhead die  230  may overlap with at least one adjacent printhead die in the same module  220  or in different modules  220 A and  220 B. 
     Portions of print media corresponding to an overlap of two printhead dies  230  may be considered to be overlap areas  224 A through  224 G. Printing device  100  may instruct particular nozzles in printhead dies  230  to print in the overlap areas  224 . For example, printing device  100  may apply at least one halftone mask such that printhead die  230 A may print half of the target pixels in overlap area  224 A and printhead die  230 B may print half of the target pixels in overlap area  224 A. Thus, printhead die  230 A may print the portion of image  240  covered by print swath  250 , and printhead die  230 B may print the portion of image  240  covered by print swath  252 . As shown in  FIG. 2 , if printing device  100  does not execute die error compensation instructions  170 , the resulting image  240  may include a number of image defect areas  244 A through  224 G corresponding to die overlap areas  224 A through  224 G. For example, the aerodynamic turbulence created by the movement of the print media and the ejection of the large number of printing fluid drops by printhead assembly  210  may cause printing fluid drops released by dies  230 A and  230 B to land at the wrong location, thus creating gaps or lighter lines between swaths  250  and  252 . The visibility of these image defects in image defect areas  244  may be reduced when printing device  100  executes swath height error compensation instructions  170 . For example, when processor  140  of print device  100  executes swath height error compensation instructions  170 , a mask may be applied that designates at least one additional drop to apply to at least one target pixel. The mask may compensate for the aerodynamic turbulence by assuming that the printing fluid drops will not end up exactly at their intended location. Accordingly, in some examples the mask may add additional drops to the halftone image mask at strategic locations based on the image density to compensate for the movement of the drops during printing. Accordingly, when processor  140  of print device  100  executes swath height error compensation instructions  170 , the gaps or lighter lines between swaths  250  and  252  may be substantially indiscemible to a user viewing the printed image. 
     It is to be understood that  FIG. 2  is a simplified schematic illustration of printhead assembly  210 , and that printhead assemblies consistent with disclosed implementations may include any number of modules, dies, and the like. Furthermore, modules and dies consistent with the disclosed examples may be of any suitable size, shape, and arrangement. 
       FIG. 3  is a block diagram of an example printing device  300  consistent with disclosed implementations. In certain aspects, printing device  300  may correspond to printing device  100  of  FIG. 1 . Printing device  300  may be implemented in various ways. For example, printing device  300  may be a printer, a special purpose computer, a server, a mainframe computer, a computing device executing instructions that receive and process information and provide responses, and/or any other type of computing system. In the example shown in  FIG. 3 , printing device  300  may include an interface device  310 , a density determination engine  320 , a mask determination engine  330 , and a compensated printing engine  340 . 
     Interface device  310  may be any device that facilitates the transfer of information between printing device  300  and external components. In some examples, interface device  310  may include a network interface device that allows printing device  300  to receive and send data to and from a network. For example, interface device  310  may retrieve and process data related to printing an image from a printer external to printing device  300 . 
     Engines  320 ,  330 , and  340  may be electronic circuitry for implementing functionality consistent with disclosed examples. For example, engines  320 ,  330 , and  340  may represent combinations of hardware devices and programming to implement functionality consistent with disclosed implementations. For example, the programming for the engines may be processor executable instructions stored on a non-transitory machine-readable storage medium and the hardware for the engines may include a processing resource to execute those instructions. In some examples, the functionality of engines  320 ,  330 , and  340  may correspond to operations performed by printing device  100  of  FIG. 1 , such as operations performed when die error compensation instructions  170  are executed by processor  140 . In  FIG. 3 , density determination engine  320  may represent a combination of hardware and programming that performs operations similar to those performed when processor  140  executes density determination instructions  172 . Similarly, mask determination engine  330  may represent a combination of hardware and programming that performs operations similar to those performed when processor  140  executes mask determination instructions  174 , and compensated printing engine  340  may represent a combination of hardware and programming that performs operations similar to those performed when processor  140  executes compensated printing instructions  176 . 
       FIG. 4  is a flow chart of an example process  400  for swath height error compensation consistent with disclosed implementations. Although execution of process  400  is described below with reference to printing device  100  of  FIG. 1  and/or specific components of printing device  100 , other suitable systems and devices for execution of at least one step of process  400  may be used. For example, processes described below as being performed by printing device  100  may be performed by printing device  300  and/or any other suitable device. Process  400  may be implemented in the form of executable instructions stored on a storage device, such as a machine-readable storage medium, and/or in the form of electronic circuitry. 
     Process  400  may start (step S 405 ) before an image is printed on a print medium. For example, process  400  may start when printing device  100  receives or otherwise accesses instructions to print an image on a print medium. Once printing device receives or otherwise accesses the instructions, printing device  100  may determine a density of an image (step S 410 ) to be printed. In some implementations, the density of the image may be determined for at least the portion of the image to be printed in an overlap area of a printing material. The overlap area may correspond to an overlap between a first set of drop ejection elements of a first printhead die and a second set of drop ejection elements of a second printhead die, and may include target pixels capable of being printed by the first set of drop ejection elements and the second set of drop ejection elements. 
     In some implementations, printing device  100  may determine a density of an image before the image is printed. For example, printing device  100  may determine the density by using data from an image transformation process, such as a halftoning process. The halftoning process may transform a continuous-tone grayscale or color image into a halftone image with a limited number of tone levels (e.g., CMYK) such that the halftone image may be printed by a printing device, such as printing device  100 . The halftone image may include halftone pixels with various values which may correspond to the number of printing fluid drops to be deposited per target pixel. For example, a halftone value of 0 may correspond to 0 drops per target pixel, a halftone value of 1 may correspond to 1 drop per target pixel, a halftone value of 2 may correspond to 2 drops per target pixel, a halftone value of 3 may correspond to 3 drops per target pixel, and the like. Thus, in some implementations, the density of the image may correspond to the drop density per target pixel. 
     In some implementations, printing device  100  may determine a density of the image by identifying halftone image pixels that correspond to target pixels in the overlap area (hereinafter the “identified halftone image pixels”) and/or determining halftone values of the identified halftone image pixels. The halftone values may include any number of values based on the image and, in some instances, the particular printing device being used to print the image. For example, in some implementations, there may be three halftone values (a first value, a second value, and a third value), while in other implementations there may be two values, five values, and the like. 
     In some implementations, printing device  100  may determine halftone values of the identified halftone image pixels by analyzing the image using various image processing techniques. For example, when the determination of the halftone values of the identified halftone image pixels goes beyond simple pointwise pixel values, printing device  100  may analyze pixels adjacent to a particular identified halftone image pixel to determine its halftone value. 
     In some implementations, printing device  100  may determine halftone values of the identified halftone image pixels by accessing data stored in a machine-readable storage medium, such as machine-readable storage medium  160  and/or another storage device. For example, a storage medium, such as machine-readable storage medium  160 , may include at least one interconnected database which may store information related to the image, such as a bitmap of the image, the halftone image, the halftone values of the image, information related to the identified halftone image pixels, and the like. The at least one database may be configured using any appropriate type of storage system configuration that facilitates the storage of data, as well as the locating, accessing, and retrieving of data stored in the databases (e.g., Oracle, SQL, Access, etc. databases). The databases may include a query function that, in response to determining the identified halftone image pixels, may query image-related information stored in the databases to identify image information meeting specified criteria. For example, printing device  100  may perform a query based on the identified halftone image pixels to determine the halftone values of the identified halftone image pixels. 
     Step  410  of process  400  may also include storing data associated with the density determination. For example, printing device  100  may provide data regarding the density determination to an image storage device, such as a machine-readable storage medium (e.g., machine-readable storage medium  160 ), and/or another device for additional processing. Examples of stored data may include the halftone image, information related to the identified halftone image pixels, the halftone value(s) of the corresponding halftone image pixels, the date/time of the density determination, and/or any other data related to determination of the density of the image. 
     Process  400  may also include determining a mask to apply to the printhead assembly (step S 420 ) based on the determined density. For example, process  400  may include determining a mask to apply to a first set of drop ejection elements of a first printhead die and a second set of drop ejection elements of a second printhead die based on the determined density. In some implementations, the second set of drop ejection elements may be redundant to the first set of drop ejection elements. 
     In some examples, the mask may designate drops to apply to at least one target pixel in the overlap area by both the first set of drop ejection elements and the second set of drop ejection elements. In some implementations, the mask may designate at least one additional drop to apply to at least one target pixel by at least one of the first set of drop ejection elements and the second set of drop ejection elements. For example, the mask may designate drops to apply to the overlap area as dictated by the halftone image as well as additional drops to apply to the overlap area to compensate for swath height error. Thus, in some implementations, the mask may adjust the number of drops to apply to a target pixel in an overlap area based on a density of an image to be printed in the overlap area. For example, the number of drops may be initially defined by the halftone image. Thus, in some examples, the mask may adjust the number of drops defined by the halftone image to apply additional drops to a particular target pixel in the overlap area, and not apply additional drops to another target pixel in the overlap area. In some examples, the mask may adjust the number of drops defined by the halftone image to apply fewer drops to a particular target pixel. 
     The determination of the mask to apply to the printhead assembly based on the determined density may be performed in a number of ways. For example, in some implementations, step S 420  of process  400  may include determining the mask by accessing the halftone values of the identified halftone image pixels, accessing a plurality of masks, and selecting a mask from the plurality of masks for target pixels with a particular halftone value. 
     Printing device  100  may access halftone values of the identified halftone image pixels in a number of ways. In some examples, printing device  100  may use image processing techniques to determine the halftone value of the identified halftone image pixels. In some examples, printing device  100  may access data stored in a machine-readable storage medium, such as machine-readable storage medium  160  and/or another storage device to access stored halftone values, such as the stored halftone values discussed above. For example, as discussed above, machine-readable storage medium  160  may include at least one database that includes a query function that, in response to determining the identified halftone image pixels, may query image-related information stored in the at least one database to determine the halftone values of the identified halftone image pixels. In some examples, printing device  100  may also provide data regarding the halftone values to a storage device, such as a machine-readable storage medium (e.g., machine-readable storage medium  160 ), and/or another device for additional processing. 
     Printing device  100  may access a plurality of masks stored in a machine-readable storage medium, such as machine-readable storage medium  160  and/or another storage device to select a mask. In some implementations, the plurality of masks may include a first mask, a second mask and a third mask. For example, the first mask may correspond to target pixels having a first halftone value and may designate that pixels having the first halftone value be printed according to the halftone image. In some implementations, the first mask may designate that target pixels with a first halftone value receive a number of drops corresponding to the first halftone value, and/or that the first halftone values represent a low drop density per target pixel. For example, the first halftone value may correspond to a drop density of 0 and/or 1. An example of a first mask is discussed in greater detail below with respect to, for example,  FIG. 5 . 
     In some examples, a second mask corresponding to target pixels having a second halftone value may designate: at least one additional drop to apply to a first plurality of the target pixels in the overlap area having the second halftone value by both the first set of drop ejection elements and the second set of drop ejection elements; and at least one drop to apply to a second plurality of the target pixels having the second halftone value by one of the first set of drop ejection elements and the second set of drop ejection elements. In some examples, the second mask may designate that the some of the target pixels in the overlap area having a first halftone value receive a number of drops corresponding to the second halftone value and other target pixels in the overlap area having a second halftone value receive a number of drops corresponding to the second halftone value and at least one additional drop. In some examples, the second mask may designate that the first set of drop ejection elements or both the first set of drop ejection elements and the second set of drop ejection elements apply the at least one additional drop to each of the target pixels having the second halftone value. An example of a second mask is discussed in greater detail below with respect to, for example,  FIG. 5 . 
     In some examples, a third mask corresponding to target pixels having a third halftone value may designate at least one additional drop to apply to a first plurality of the target pixels having the third halftone value and a second plurality of target pixels having the third halftone value by both the first set of drop ejection elements and the second set of drop ejection elements. In some examples, the third mask may designate that each target pixel with the third halftone value receive a number of drops corresponding to the third halftone value and at least one additional drop. In some examples, the third mask may designate that the first set of drop ejection elements and the second set of drop ejection elements both apply the at least one additional drop to each of the target pixels having the third halftone value. An example of a first mask is discussed in greater detail below with respect to, for example,  FIG. 5 . 
     In some implementations, printing device  100  may select a mask from the plurality of masks by performing a query of the at least one database based on a particular halftone value, such as a halftone value accessed as described above. For example, at least one mask may be stored with information that links the mask with at least one halftone value, and printing device  100  may perform a query to determine the appropriate mask based on the linked halftone value (e.g., query for a mask corresponding to a halftone value of “1”). In some examples, the mask may be stored with information that links the masks with at least one halftone value and/or at least one of a plurality of different types of printing devices. Accordingly, in some implementations printing device  100  may perform a query based on the halftone value and the device type of the printing device which will print the image (e.g., query for a mask corresponding to a halftone value of “1” and a device type of “A”). The mask identified by the query may be stored in a machine-readable storage medium, such as machine-readable storage medium  160 , and/or another device for additional processing as a selected mask. 
     Process  400  may also include applying the selected mask (step S 430 ) to the first set of drop ejection elements and the second set of drop ejection elements. In some examples, the mask may be applied to portions of printhead assemblies that correspond with overlap areas without being applied to other portions of printhead assemblies that do not correspond to overlap areas. For example, the mask may be applied to a first set of drop ejection elements of a first printhead die and a second set of drop ejection elements of a second printhead die, but not applied to other drop ejection elements of the first printhead die and the second printhead die. In some implementations, the selected mask may be a single mask or a plurality of separate masks applied to at least one overlapping printhead die  230  (e.g., a mask to apply to a first set of drop ejection elements of a first printhead die and/or a second set of drop ejection elements of a second printhead die). In some implementations, the selected mask may be a weaving mask For example, each overlap area may have two sequences of masks: a first sequence which applies printing fluid to print the image in the overlap area using the first printhead die and/or the second printhead die; and a second sequence which applies additional drops based on the halftone value of a target pixel using the first printhead die and/or the second printhead die to correct any swath height error. As another example of two sequences of masks, the first sequence may apply printing fluid to print the image in the overlap area using the first printhead die and/or the second printhead die for target pixels having a first halftone value; and the second sequence may apply printing fluid to print the image in the overlap area using the first printhead die and/or the second printhead die for target pixels having a second halftone value. In some implementations, the selected mask may be applied by assigning the mask to particular drop ejection elements. Additionally, in some implementations, the mask may be applied by ejecting drops of printing fluid on the overlap area based on the selected mask. For example, printhead assembly  110  may eject drops of printing fluid through orifices or nozzles onto a print medium to produce a printed image. 
     After the image density is determined (step S 410 ), the mask is determined based on the image density (step S 420 ), and the determined mask is applied (step S 430 ), process  400  may end (step S 445 ). 
       FIG. 5  illustrates three example print masks  510 ,  520 , and  530  for compensating swath height error consistent with disclosed implementations. In certain aspects, masks  510 ,  520 , and  530  may relate to print masks described in steps S 420  and S 430  of  FIG. 4  and applied to various components described in  FIGS. 1-3 . In some implementations, masks  510 ,  520 , and  530  may represent the position where a firing instruction is given to a drop ejection element from a first printhead die (die “A”) and/or a second printhead die (die “B”). In some implementations, masks  510 ,  520 , and  530  may be weaving masks, binary masks, binary filters, and/or the like which instruct individual drop ejection elements of a printhead assembly, such as printhead assembly  110 , printhead assembly  210 , and/or the like, to address a pixel that occurs in an image file in a defined sequence of firing. In the example shown in  FIG. 5 , mask  510  may correspond to a mask for target pixels that have a first halftone value (e.g., a halftone value of 1 (where one drop of printing fluid is applied per target pixel)), mask  520  may correspond to a mask for target pixels that have a second halftone value (e.g., a halftone value of 2 (where two drops of printing fluid are applied per target pixel)), and mask  530  may correspond to a mask for target pixels that have a third halftone value (e.g., a halftone value of 3 (where three drops of printing fluid are applied per target pixel)). 
     Mask  510  may correspond to a mask used to deposit drops on target pixels having a first halftone value. For example, mask  510  may be used when a halftone image pixel corresponding to a target pixel has a halftone value of 1, or a low halftone value. In some implementations, mask  510  may include a number of rows and columns which define a plurality of cells  512  (for simplicity, only two of which have been labelled in  FIG. 5 ), and each cell  512  may correspond to a target pixel in an overlap area. As shown in  FIG. 5 , each cell may indicate whether the target pixel with the first halftone value will include printing fluid fired by a first set of drop ejection elements in a first printhead die (die A) or a second set of drop ejection elements in a second printhead die (die B). The character “A” in a cell may indicate that at least one nozzle of printhead die A is fired for the target pixel, and the character “B” in a cell may indicate that at least one nozzle of printhead die B is fired for the target pixel. As shown in  FIG. 5 , the target pixels to be fired by nozzle A may meet the target pixels to be fired by nozzle B in a connection area  514  (indicated by a bolded rectangle in  FIG. 5 ). A connection area may include target pixels to be printed by the first set of drop ejection elements that are adjacent to target pixels to be printed by the second set of drop ejection elements. Furthermore, in some implementations, target pixels with low halftone values (and thus less printing fluid to deposit) may not encounter significant DSHE in an overlap area. Accordingly, mask  510  may not compensate for swath height error and may simply print the target pixel as dictated by other image processing instructions. 
     Mask  520  may correspond to a mask used to deposit drops on target pixels having a second halftone value. For example, mask  520  may be used when a halftone image pixel corresponding to a target pixel has a halftone value of 2, or a medium halftone value. In some implementations, mask  520  may designate that a first set of drop ejection elements or both a first set of drop ejection elements and a second set of drop ejection elements apply drops to each of the target pixels having a second halftone value. In some implementations, mask  520  may include a number of rows and columns which define a plurality of cells  522  (for simplicity, only two of which have been labelled in  FIG. 5 ), and each cell  522  may correspond to a target pixel in an overlap area. As shown in  FIG. 5 , each cell may indicate whether the target pixel will include printing fluid fired by a first set of drop ejection elements in a first printhead die (die A), a second set of drop ejection elements in a second printhead die (die B), or both the first set of drop ejection elements and the second set of drop ejection elements (dies A and B). The character “A” in a cell may indicate that at least one nozzle of printhead die A is fired for the target pixel, the character “B” in a cell may indicate that at least one nozzle of printhead die B is fired for the target pixel, and the character “AB” in a cell may indicate that at least one nozzle of printhead die A and at least one nozzle of printhead die B is fired for the target pixel. 
     As shown in  FIG. 5 , the target pixels to be fired by nozzle A may meet the target pixels to be fired by nozzle B in a connection area  524  (indicated by a bolded rectangle in  FIG. 5 ). For example, connection area  524  may include target pixels that are printed by die A and die B, and may alternate between target pixels to be printed by a single overlapping die and target pixels to be printed by multiple (in this example, two) overlapping dies. While in this particular example, the target pixels in the connection area printed by a single die are printed by printhead die B, some implementations can print the single-die target pixels using die A. 
     Mask  530  may correspond to a mask used to deposit drops on target pixels having a third halftone value. For example, mask  530  may be used when the target pixel has a halftone value of 3, or a high halftone value. In some implementations, mask  530  may designate that a first set of drop ejection elements and a second set of drop ejection elements both apply drops to each of the target pixels with the third halftone value. In some implementations, mask  530  may include a number of rows and columns which define a plurality of cells  532  (for simplicity, only two of which have been labelled in  FIG. 5 ), and each cell  532  may correspond to a target pixel in an overlap area. As shown in  FIG. 5 , each cell may indicate whether the target pixel will include ink fired by a first set of drop ejection elements in a first printhead die (die A), a second set of drop ejection elements in a second printhead die (die B), or both the first set of drop ejection elements and the second set of drop ejection elements (dies A and B). The character “A” in a cell may indicate that at least one nozzle of printhead die A is fired for the target pixel, the character “B” in a cell may indicate that at least one nozzle of printhead die B is fired for the target pixel, and the character “AB” in a cell may indicate that at least one nozzle of printhead die A and at least one nozzle of printhead die B is fired for the target pixel. As shown in  FIG. 5 , the target pixels to be fired by nozzle A may meet the target pixels to be fired by nozzle B in a connection area  534  (indicated by a bolded rectangle in  FIG. 5 ). For example, connection area  534  may include target pixels that are printed by both printhead die A and printhead die B. 
     While  FIG. 5  shows three masks  510 ,  520 , and  530 , any number of masks corresponding to any number of halftone values may be used. Furthermore, while  FIG. 5  shows 8×8 masks with 64 cells and 7 cells in a connection area, masks  510 ,  520 , and/or  530  can include any number of cells and have any number of connection areas. Additionally, while  FIG. 5  shows rectangular connection areas  514 ,  524 , and  534 , connection areas  514 ,  524 , and  534  consistent with disclosed implementations may be any shape and size and thus need not be rectangular. Furthermore, the distribution of pixels between the dies in masks  510 ,  520 , and/or  530  are not limited to the distribution shown in  FIG. 5 . For example, while the depiction of mask  510  in  FIG. 5  shows approximately half of the target pixels will be deposited by die A and half will be deposited by die B, the distribution of target pixels between the dies is not limited to these values. For example, the distribution of target pixels may be much more interwoven than the example shown in  FIG. 5  and may extend over the entire width of the overlap area such that both dies A and B may be used to varying extents. As another example, while masks  510 ,  520 , and  530  may be considered to be directed to level-dependent weaving at the end of the printhead die, masks consistent with disclosed implementations may compensate for swath height error throughout an overlap area and may distribute work differently over involved printhead dies depending on the content of the image to be printed. For example, masks consistent with disclosed implementations may distribute the work load randomly for low-variation content such as photographs and regularly for high variation content such as technical drawings or text. 
     The disclosed examples may include systems, devices, computer-readable storage media, and methods for compensating swath height error. For purposes of explanation, certain examples are described with reference to the components illustrated in  FIGS. 1-5 . The functionality of the illustrated components may overlap, however, and may be present in a fewer or greater number of elements and components. Further, all or part of the functionality of illustrated elements may co-exist or be distributed among several geographically dispersed locations. Moreover, the disclosed examples may be implemented in various environments and are not limited to the illustrated examples. 
     Moreover, as used in the specification and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context indicates otherwise. Additionally, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by this terms. Instead, these terms are used to distinguish one element from another. 
     Further, the sequence of operations described in connection with  FIGS. 1-5  are examples and are not intended to be limiting. Additional or fewer operations or combinations of operations may be used or may vary without departing from the scope of the disclosed examples. For example, printing device  100  may omit the step of determining the density of the image to be printed. As another example, printing device need not start process  400  after receiving or otherwise accessing instructions to print an image on a print medium. Thus, the present disclosure merely sets forth possible examples of implementations, and many variations and modifications may be made to the described examples. All such modifications and variations are intended to be included within the scope of this disclosure and protected by the following claims.