Printing images encoding data
By printing multiple copies of image encoding data at varied orientations and combining them through image processing, the technique addresses printhead misfiring issues in surface printers, ensuring recoverable encoded data.
Patent Information
- Application Number
- PCT/US2024/038832
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-19
- Publication Date
- 2026-01-22
AI Technical Summary
Surface printers, particularly those used in construction, often experience printhead misfiring due to nozzle clogging, leading to errors in printing detailed images that encode data such as QR codes, making them unrecoverable.
The technique involves printing multiple copies of the image encoding data at different orientations to improve recoverability, combining these copies using image processing techniques to compensate for printhead misfiring.
This approach enhances the likelihood of correctly decoding encoded data even when printhead misfiring occurs, ensuring critical information like installation instructions is not lost.
Smart Images

Figure US2024038832_22012026_PF_FP_ABST
Abstract
Description
PRINTING IMAGES ENCODING DATABACKGROUND
[0001] Surface printers may be used to print to a surface by depositing printing material to the surface. For some applications, surface printers may print detailed images that encode data, such as, for example, two-dimensional (2D) codes, including, for example, QR codes (Quick-Response codes).BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Various non-limiting examples will be described with reference to the following accompanying drawings, in which:
[0003] FIG. 1 is a block diagram of a surface printer according to an example;
[0004] FIGS. 2A-2C are views illustrating a surface printer according to an example;
[0005] FIGS. 3A-3C are conceptual drawings illustrating printed images encoding data according to an example;
[0006] FIGS. 4A-4B are conceptual drawings illustrating printed images encoding data according to an example;
[0007] FIG. 5 is a conceptual drawings illustrating a processed printed image encoding data according to an example;
[0008] FIG. 6A is a flowchart illustrating printing an image encoding data according to an example;
[0009] FIG. 6B is a flowchart illustrating recovering an image encoding data according to an example;
[0010] FIG. 7 is a flowchart illustrating printing an image encoding data according to an example;
[0011] FIGS. 8A-8B are conceptual drawings illustrating printing images encoding data according to an example;
[0012] FIG. 9 is a flowchart illustrating printing an image encoding data according to an example;
[0013] FIGS. 10A-10B are conceptual drawing illustrating a nozzle matrices according to an example;
[0014] FIG. 11 is a conceptual drawing illustrating an image encoding data matrices according to an example;
[0015] FIG. 12A-12C are conceptual drawings illustrating examples of comparing a nozzle matrix and image encoding data matrices according to an example.
[0016] FIG. 13 is a block diagram illustrating a computer program product according to an example.DETAILED DESCRIPTION
[0017] Surface printers may include various types of printers for printing to a surface. Surface printers may include autonomous vehicles that print images such as lines and symbols on surfaces (i.e., a substrate) for applications such as construction and street marking. Surface printers may also include, for example, a handheld printer for printing to the surface of a wall, desk, package, floor, or the like. A handheld printer may be manipulated and supported by a user, for example with or without a guide. An autonomous vehicle used for printing may be referred to as a surface marking robot and may receive a floor plan and print a layout for building construction on a floor. For example, a surface printer, such as a surface marking robot, may print elements, such as lines, text, dashed-lines, curved lines, circumferences, points, etc., which correspond to layouts of interior walls, mechanical structures, electrical wiring, plumbing, fire protection structures, HVAC systems, or the like. Flooring materials on which a layout may be printed may include porous surfaces, such as, for example, polished and rough concrete, tarmac, and wood and non-porous surfaces, such as, for example, terrazzo, vinyl, and epoxy. Various printing fluids may be utilized. For example, a surface marking robot may utilize an ink type which may be permanent or semi-permanent and water-based or solvent-based.
[0018] In a construction application, it may be useful to utilize different points, text, and line types during printing. For example, it may be useful to print a relatively wide line having a specific color for an exterior wall layout and print a relatively narrow line having another specific color for an interior layout. Further, for some applications, surface printers may print detailed images that encodedata, such as, for example, QR codes (Quick-Response codes). For example, the encoded data may provide a uniform resource locator (URL) providing relevant information for construction (e.g., installation instructions). A QR code is a type of two-dimensional (2D) matrix encoding data, where each pixel is light or dark, and thus, provides binary coded data. Although some examples are described with respect to QR codes, the techniques described herein are generally applicable to various types of images encoding data, for example, linear barcodes, 2D barcodes, and various two-dimensional codes, including color codes, and other images encoding data.
[0019] In some cases, a surface printer may be in a state where it is not printing in an optimal manner. That is, a printhead may be in a condition where it is misfiring. For example, at least one nozzle of a printhead may be clogged (e.g., due to debris at a construction site or dried ink) and not properly depositing printing fluid to a surface. In some cases, it may be assumed that at some point between servicing routines, a surface printer will be operating in a misfiring condition. In such cases, the resulting image encoding data that is printed to a surface may have errors. For example, in the case of a QR code, dark pixels may not be printed and thus, will incorrectly appear as light pixels. The resulting QR code may not be recoverable. That is, the QR code may not be detectable and / or correctly decodable. This disclosure provides techniques for printing images encoding data to a surface. The techniques described herein are generally applicable to any type of surface printer.
[0020] Figure 1 is a block diagram of a surface printer according to an example. In Figure 1 , example surface printer 100 includes processor 102, memory 104, motion control system 106, position detection system 108, printing control system 110, printing system 1 12, sensors 114, user interface 116, calibration system 118, and communications system 120. Surface printer 100 may include a surface marking robot. In other examples, surface printer 100 may include other types of surface printers, for example, a handheld printer and as such, in some examples, may not necessarily include components specific to a surface marking robot, e.g., position detection system 108.
[0021] Although example surface printer 100 is illustrated as having distinct functional blocks, such an illustration is for descriptive purposes and does not limit surface printer 100 to a particular hardware or machine-readable instruction architecture. Functions of surface printer 100 may be realized using any combination of hardware, and / or machine-readable instruction implementations. In one example, functions of surface printer 100 may include various chipsets connected via a system interface. For example, a system interface may include a chipset supporting PCI and PCIe bus protocols, proprietary bus protocols, Universal Serial Bus (USB) protocols, I2C, or a system interface may include any other logical and physical structure that may be used to interconnect peer devices.
[0022] Surface printer 100 may be self-propelled and apply a printing material on a surface. In some examples, a surface printer may be propelled with user assistance. In some examples, a surface printer comprises a motor, for example, an electric motor, and a source of energy such as a battery. Surfaces may include any of the example surfaces described above. Further, in some examples, a surface may include a field or turf. A surface may comprise holes or obstacles. A surface printer may apply a printing fluid, for example, ink, to the surface while avoiding obstacles.
[0023] Processor 102 may implement functionality and / or process instructions for execution in surface printer 100. Processor 102 may include processing units(s) capable of retrieving and processing instructions, code, and / or data structures for implementing techniques described herein. Instructions may be stored on a computer readable medium, such as memory 104 or internal or external storage devices. Processor 102 may include digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Processor 102 may include multi-core central processing units.
[0024] Memory 104 may store information that may be used by surface printer 100 during operation. Memory 104 may be described as a non-transitory or tangible computer-readable storage medium. Memory 104 may include any typeof memory device or storage medium capable of storing data. A storage medium may include tangible or non-transitory computer-readable media. Computer readable media may include optical discs, flash memory, magnetic memory, or any other suitable digital storage media. In some examples, a memory device or portions thereof may be described as non-volatile memory and in other examples portions of memory devices may be described as volatile memory. Examples of volatile memories may include random access memories (RAM), dynamic random-access memories (DRAM), and static random access memories (SRAM). Examples of non-volatile memories may include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories. A device may store instructions in a suitable, non-transitory computer- readable medium and execute the instructions in hardware using processors.
[0025] Motion control system 106 may propel surface printer 100. In some examples, motion control system 106 may comprise wheels driven by a motor (e.g., an electric motor), or any suitable propulsion system. In some examples, motion control system 106 may comprise control circuitry to control a motor to drive wheels to control a direction and speed of surface printer 100. In some examples, motion control system 106 may include a microcontroller following a trajectory servo in communication with a propulsion system comprising motor driver electronics to supply force to a set of wheels. In some examples, motion control system 106 may also comprise a processor to receive and execute instructions defining an intended path or trajectory for surface printer 100 to follow.
[0026] Position detection system 108 may enable a position of surface printer 100 to be detected. For example, position detection system 108 may receive a guiding system signal, which may be used to detect a position of surface printer 100. For example, surface printer 100 may be guided using a remote guiding system. A guiding system may permit guiding the surface printer 100 from a reference point corresponding to the location of the guiding system. A guiding system may communicate guiding system position information with the surface printer 100 using electromagnetic waves or radiation. Guiding system positioninformation may provide the location of the guiding system, such that the guiding system may be used as a reference point (or beacon) to calculate or estimate an absolute position of surface printer 100. Example guiding systems can include a Wi-Fi access point, an ultrasound beacon, a total station, a laser tracker or an interferometer. In some examples, a guiding system may be an optical guiding system. In this case, the communication between the guiding system and surface printer 100 may take place, for example, through visible or infrared light. For example, position detection system 108 may include a reflector to reflect a measuring beam to a source. In some examples, a guiding system may include a Global Navigation Satellite System (GNSS) receiver providing an absolute position of the guiding system.
[0027] Position detection system 108 may for example, receive information from sensors 114. Sensors 114 may include sensors for use with position detection system 108, as well as additional sensors described in detail below. Sensors for use with position detection system 108 may include any kind of suitable position sensor, such as, for example, rotary encoders located on wheels of surface printer 100, a camera located on the body of surface printer 100, a Light Detection and Ranging (LIDAR) system, an inertial mechanical unit to sense accelerations and direction, a combination including at least some of the previously-mentioned position sensors, or any other suitable kind of position sensor. In some examples, position detection system 108 may compare information from sensors 114 with a servo path to detect deviations. For example, accelerations in an axis other than that defined by the servo path can indicate that surface printer 100 is not following the defined servo path. In some examples, a determination that rotary encoders on the wheels are not increasing steadily can provide an indication that surface printer 100 has deviated from the defined path.
[0028] In some examples, position detection system 108 and / or motion control system 106 may calculate a magnitude and direction of the difference between the current position of surface printer 100 and an intended path and may correct the path accordingly. That is, motion control system 106 and position detection system 108 may operate in conjunction to cause surface printer 100 to traverse an intended path. In some examples, position detection system 108 maycomprise processing circuitry to calculate whether a detected position matches an intended path and cause motion control system 106 to make adjustments.
[0029] Printing control system 110 and printing system 112 may cause a representation of an image to be printed by surface printer 100. For example, in one example, printing control system 110 may receive print job commands and / or data corresponding to a print job (e.g., image data) and generate print data such that a print job is executed. In some examples, printing control system 110 may reproduce print data from received data. In some examples, the received data itself may already correspond to print data. In other examples, print data may be dynamically generated during printing of a print job. Further, print data may also be stored from the outset in a memory and printing control system 110 may then dynamically access the print data during execution of a print job.
[0030] Printing system 112 may cause printing material to be deposited. For example, printing system 112 may include a printhead, where a printhead comprises a die forming a plurality of nozzles. A printhead may be included, for example, in a carriage including a plurality printheads or a fixed printhead array. The nozzles may be aligned in columns along a length of a printhead. Nozzles may include micro valves. For example, a printhead carriage may comprise a plurality of ink-jet printheads. A printing fluid, including, for example, ink or a modelling agent, may be ejected through the nozzles of the printhead. In this manner, printheads included in printing system 1 12 may deposit ink onto a surface, thereby printing an image corresponding to a print job. In other exam pies, printing system 112 may include a thermal or piezo-electric printhead. Further, ink is used herein as an example, and in other examples, other printing fluids, such as, pre-printing (e.g., cleaning fluid) and post-printing agents (e.g. varnishes, glosses, under-treatments) may alternatively be deposited. Printing system 112 may cause printing material to be deposited according to settings. In some examples, a print system may include the following firing settings: aperture time, ink pressure, and drop spacing, which may be adjustable. In other examples, firing settings may include energy, voltage, pulse width, etc.
[0031] As described above, in some examples, printing control system 110 may receive data corresponding to a print job. In some examples, data correspondingto a print job may correspond to a floor plan. A floor plan may include a two- dimensional or three-dimensional representation of a structure such as, for example, a building. In some examples, a floor plan comprises floor plan features corresponding to objects or characteristics, such as, for example, walls, windows, doors, staircases, elevator cases, sinks, types of finish, construction methods, materials, electrical wiring, mechanical structures, plumbing, fire protection structures, HVAC systems, gas, or water supply features, etc. In some examples, a floor plan comprises features corresponding to traffic, parking, or road surface marking, aimed at pedestrians or vehicles.
[0032] In one example, a digital data file may comprise digital data associated with a floor plan. For example, an input file, or a raw input file, may include a digital representation of a drawing provided by a user, for example, in a DXF (Drawing Exchange Format), DWG (DraWinG), or BIM (Building Information Modeling) format, which may include IFC (Industry Foundation Classes) and RVT (Revit) formats. In one example, an input file may be parsed in layers by surface printer 100, for example, for checking that relevant printing information is contained in the file. In one example, an input file may be processed by surface printer 100 to detect obstacles which may impact a trajectory or path to be followed by surface printer 100. In one example, an input file may be processed by surface printer 100 to sort and group clusters of graphical representations such as lines or text. In one example, an input file may be processed by surface printer 100 for path planning, for example in order to sort an order in which graphical representation elements such as floor plan features may be printed, while avoiding obstacles and reducing a printing time. In one example, an input file may be processed by surface printer 100 for printing or marking for example by printing control system 110. In one example, an input file may be processed as described above by an external computing device (not illustrated) that is communicatively connected to surface printer 100 and be sent to surface printer 100.
[0033] Communications system 120 may enable surface printer 100 to communicate with external computing devices via networks. For example, communications system 120 may enable surface printer 100 to communicate with other computing devices connected to local area network and / or wide areanetwork. Communications system 120 may be included as part of a network interface card and may include an optical transceiver, a radio frequency transceiver, or any other type of device that can send and receive information. Communications system 120 may operate according to communications protocols including for example, Global System Mobile Communications (GSM) standards, code division multiple access (CDMA) standards, 3rd Generation Partnership Project (3GPP) standards, European Telecommunications Standards Institute (ETSI) standards, Internet Protocol (IP) standards, Wireless Application Protocol (WAP) standards, and IEEE standards, such as, for example, IEEE 802 standards (e.g., Wireless LAN, PAN, etc.). In one example, communications system 120 may enable surface printer 100 to receive an input file from an external computing device (e.g., a laptop computer or the like).
[0034] As described above, in some examples, surface printer 100 may be guided using a remote guiding system. In some examples, surface printer 100 may additionally be controlled using input received from a user via an external computing device in communication with surface printer 100. For example, input for controlling surface printer 100 may be generated from an input device, such as, for example, a touch-sensitive screen, a trackpad, a joystick, a mouse, or a keyboard. Input may include for example, at least, input to control the movement of surface printer 100, input to modify printing settings, input to modify line properties, and input to modify additional controllable settings (e.g., maximum, minimum speed, etc.) User interface 1 16 may include an input device and / or a basic user interface. For example, in one example, user interface 116 may include basic manual controls (e.g., Power ON / OFF buttons and / or switches) and basic status indicators (e.g., LED lights indicating power and / or operating states).
[0035] As described above, sensors 114 may include sensors for use with position detection system 108. Sensors 114 may further include collision avoidance and safety sensors. For example, LiDAR sensors may be used for collision avoidance and safety sensors may be used to detect cliffs or ledges to prevent surface printer 100 from falling during operation. Sensors 114 may additionally include sensors to measure environmental conditions, for example, temperature sensors, humidity sensors, and optical sensors for measuring anamount sunlight shining on a surface. Sensors 114 may further include image capturing sensors, for example, digital cameras. Calibration system 118 may provide calibration for a printing process. For example, calibration system 118 may cause settings of printing system 112 to be adjusted based on, for example, surface properties, printing material properties, environmental conditions, and the like.
[0036] As described above, a surface printer may include a printing system to cause printing material to be deposited to a surface while the surface printer traverses an intended path. Figures 2A-2C are views illustrating a surface printer according to an example. Figures 2A-2C illustrate exterior views of an example surface printer 200 and elements illustrated in Figures 2A-2C may operate in conjunction with elements described above with respect to Figure 1 . For example, in an example, surface printer 200 may include a processor, a memory and other components illustrated in Figure 1 . As illustrated in Figures 2A-2C, surface printer 200 includes drive wheels 202A-202B, caster wheel 204, user interface 206, reflector 208, printhead 210, and image capture camera 212. Surface printer 200 may include LiDAR sensors, safety sensors, and a position sensing camera, which are not explicitly illustrated in Figures 2A-2C. As described above, a surface printer may include a motion control system to propel the surface printer. Drive wheels 202A-202B are wheels driven by a motor and caster wheel 204 rotates such that surface printer 200 is able to move about a direction and speed. As described above, a surface printer may include basic manual controls and basic status indicators. User interface 206 provides a basic user interface for surface printer 200. For example, user interface 206 may include an ON / OFF button and status indication lights.
[0037] As described above, a surface printer may include a position detection system including a reflector to reflect a measuring beam to a source. Reflector 208 may reflect a measuring beam to a source. In one example, reflector 208 includes a 360-degree prism. As described above, a surface printer may include sensors for use with a position detection system. LiDAR sensors and a position sensing camera may be used with a position detection system. As furtherdescribed above, a surface printer may include sensors for collision avoidance and safety sensors.
[0038] As described above, a surface printer may include a printing system including a printhead, where a printhead comprises a die forming a plurality of nozzles. Printhead 210 represents an example of a printhead having nozzles 211A-211 N arranged in a column to deposit a printing material to a surface. In one example, a printhead may include 32 rows of nozzles (which may also be referred to as nozzle rows). In other examples, printhead 210 may include more or fewer rows of nozzles. Although Figure 2C illustrates an example including a single column of nozzles, a printhead may include multiple columns of nozzles (which may also be referred to as nozzle columns). Further, as described in further detail below, the techniques described herein are generally applicable to printheads having various numbers of columns of nozzles.
[0039] As described above, a surface printer may print a line having a specified width, text, and detailed images that encode data, such as, for example, QR codes. As further described above, the printhead of a surface printer may be in a condition where it is misfiring, for example, a nozzle may be clogged. A surface printer may be designed such that it does not include hardware to ensure printhead reliability (e.g., spittoons to refresh nozzles, wipers to clean printheads, primers for hard recoveries, sensors to check nozzles out, etc.) that may be included in other types of printers. Such design considerations may increase the likelihood that the printhead of a surface printer is in a condition where it is misfiring during operation.
[0040] Surface printer 100 may print a test pattern to a surface and the test pattern may be evaluated to assess if a printhead is in a condition where it is misfiring. For example, in the example where a printhead includes 32 rows of nozzles, a test pattern may include 32 lines of drops, where each line of drops has a pattern which can be used to evaluate whether a particular nozzle is firing properly. For example, a line of drops may include a portion including consecutive drops according to a first firing setting, a portion where drops are not fired, and a portion including consecutive drops according to a second firing setting. The printed test pattern can be compared to an image of a test pattern (e.g., a printoutor a digital image of the test pattern) to assess if any of the nozzles are misfiring. Depending on the drop size, in some cases, the comparison can be done by a user with or with visual assistance. Further, in some cases, an image of the printed test pattern may be captured by a camera, for example, image capturing camera 212, and comparisons may be performed using image processing techniques.
[0041] If an image that encodes data is printed while a printhead is in a condition where it is misfiring, the encoded data may be unrecoverable. That is, for example, QR codes may be sensitive to printhead misfiring conditions, including, for example, at least one row of nozzles being out. Figure 3A illustrates an example of a QR code to be printed. In the example illustrated in Figure 3A, the QR code is a 25x25 pixel QR code. In other examples, QR codes, and other types of 2D codes, of other dimensions may be utilized. In the example illustrated in Figure 3A, each row of the QR code may be aligned with a row of nozzles of a printhead. That is, a respective nozzle row may deposit drops of printing fluid in a manner that the corresponding row of the QR code is printed. For example, each dark pixel of the QR code may be printed by depositing drops of printing fluid at that location. As described above, in one example, a printhead may include 32 rows of nozzles. In one example, the first row of a printhead may be aligned with the first row of the QR and each consecutive nozzle row may print the corresponding row of the QR code. For example, a QR code may be printed as surface printer 200 travels in a print advance direction which is perpendicular to the numbered rows.
[0042] Figure 3B illustrates a case where a printhead is in a misfiring condition. In the example of Figure 3B, rows 2, 5, 10, 23, and 24 are not printing properly. For example, each of these rows may be clogged. As illustrated in Figure 3B for each of these rows, the corresponding QR code information is missing. Figure 3C illustrates the actual pixel errors for the QR code for the case where rows 2, 5, 10, 23, and 24 are not printing properly. That is, for a nozzle row that is blocked, clogged, or out, a pixel error occurs if the QR code includes a dark pixel which is not able to be printed. According to the techniques herein, images encoding datamay be printed to a surface in a manner that increases the likelihood that encoded data is recoverable.
[0043] As described above, a test pattern may be printed to a surface and evaluated to monitor the status of a printhead. In response to determining that the printhead is in a misfiring condition, a user may trigger an ink burst to refresh the nozzles and / or manually wipe the printhead to remove debris that could be blocking some of the nozzles. However, performing these user corrective operations may be time consuming and could significantly impact productivity. For example, a user may not presently be on site to manually wipe the printhead and the time it takes for the user to arrive on site may cause significant delay. Further, such corrective operations may not be effective, as a printhead may have some non-recoverable nozzles. That is, a nozzle may be in a condition where printhead replacement is necessary. The techniques described herein, may increase the likelihood that images encoding data are recoverable in cases where manual user intervention is not performed and / or in cases where nozzles are non- recoverable.
[0044] As described above, images encoding data may encode data which, for example, provide additional information, including, for example, installation instructions. Information in these images may be read after the print job is completed, for example, after subsequent days. Thus, a surface printer may be unavailable (e.g., a surface printing robot may be at another job site) to reprint an image, if needed. Thus, it is useful to maximize the recoverability of images encoding data. Otherwise, relevant information (e.g., information needed for a construction process) may be unavailable and / or lost. Moreover, upon determining an image encoding data is not readable, a user of a surface printer could request a printhead or complete unit replacement. However, the printhead may still be able to print various elements in a layout. For example, the printhead may still be able to print various types of lines. Thus, by ensuring that the printing of images encoding data is not the limiting factor in printing layouts, according to the techniques herein, replacement requests may be reduced.
[0045] In one example, according to the techniques herein, surface printer 100 may print an image encoding data according to a printing configuration thatimproves the recoverability of images encoding data. As described above, with respect to Figure 3A, in one example, a row of a printhead may be aligned with the first row of the QR and each consecutive nozzle row may print the corresponding row of the QR code. In one example, according to the techniques herein, surface printer 100 may print an image encoding data according to a printing configuration relating to printing a first copy of an image encoding data at a first orientation and printing a second copy of the image encoding data at a second orientation. The first and second copies of the image encoding data may be combined to reduce the number of errors and improve the recoverability of the image encoding data.
[0046] Figures 4A-4B are conceptual drawings illustrating printed images encoding data according to an example. Figures 4A-4B correspond to the example described above with respect to Figures 3A-3C, where a surface printer is to print a 25x25 pixel QR code with the first row of the QR code aligned with the first nozzle row and where rows 2, 5, 10, 23, and 24 are in a condition where the rows are not printing (e.g., blocked) and as such the printhead is in a misfiring condition. As illustrated, Figure 4A corresponds to the printing orientation as provided in Figure 3B and Figure 4B corresponds to a printing orientation where the QR code is rotated 90 degrees in the clockwise direction. That is, surface printer 100 may print the QR code at a first orientation and print a copy of the QR code at a second orientation. That is, surface printer 100 may print a second rotated copy of the QR code. Surface printer 200 may print the QR code at a first orientation to the print advance direction and print a copy of the QR code at a second orientation to the print advance direction.
[0047] As illustrated in each of Figures 4A-4B, different portions of the QR code are printed correctly. That is, errors in each of Figures 4A-4B may be considered orthogonal. According to the techniques herein, scans of the images with orthogonal errors may be superimposed such that more of the 2D code is recoverable for a particular printhead misfiring condition. Figure 5 illustrates an example where the images in Figures 4A-4B are superimposed. As illustrated, by comparing the resulting QR code in Figure 5 to the QR code in Figure 3C, the number of errors is reduced. That is, more of the QR code is recoverable and assuch, the likelihood that the QR code is read properly is increased. As described in further detail below, there may be numerous ways in which an image encoding data may be rotated (e.g., 90, 180, 270 degrees) and / or shifted. Thus, according to the techniques herein, surface printer 100 may print multiple copies of an image encoding data using various respective printing configurations. Further, according to the techniques herein, multiple copies of images encoding data may be superimposed using various image processing techniques and / or physical printing techniques.
[0048] Figure 6A is a flowchart illustrating printing an image encoding data according to an example. Figure 6B is a flowchart illustrating recovering an image encoding data according to an example. That is, process 600 in Figure 6A illustrates a process for printing an image encoding data and process 650 in Figure 6B illustrates a corresponding process for recovering data from the image encoding data printed according to process 600.
[0049] Referring to Figure 6A, the entirety, or aspects thereof, of process 600 may be performed by a surface printer. For example, aspects of process 600 may be performed by processor 102 and / or printing system 112 of surface printer 100. Further, in one example, aspects of process 600 may be performed by an external computing device in communication with a surface printer. For example, in one example, surface printer 100 may receive a print job including multiple copies of an image encoding data and proceed to execute the print job. In other examples, surface printer 100 may receive a print job, identify an image encoding data in the print job and generate and print multiple copies of the image encoding data. For example, as described above, an input file may be received and processed by a surface printer 100 or an external computing device and in one example, according to the techniques herein, the input file may be processed such that redundancy is introduced with respect to printing images encoding data.
[0050] At 602, surface printer 100 receives a 2D code, or another type of image encoding data. For example, surface printer 100 may receive an input file including a layout including QR codes. At 604, surface printer 100 prints a copy of the 2D code at a first location. For example, in the case of the example illustrated in Figures 4A-4B, the QR code in Figure 4A may be printed at a firstlocation. At 606, surface printer 100 prints a copy of the 2D code at a second location. As described above, a copy of the 2D code may have a print orientation which is distinct from the 2D code printed at the first location. For example, the copy of the 2D code may be rotated in 90 degrees in a clockwise or counter clockwise direction.
[0051] In one example, each of the first and second location may be proximately located, such that each of the printed 2D codes are in the same field of view of an image capturing device. For example, surface printer 100 may print each of the QR codes next to one another. That is, in one example, a surface printer 100 may print the first QR code, travel a short distance to provide adequate spacing and print the second QR code. In this manner, surface printer 100 may print an image encoding data according to a printing configuration that improves the recoverability of images encoding data.
[0052] As described above, process 600 results in two partially printed 2D codes printed adjacent to each other. Process 650 in Figure 6B illustrates a corresponding process for recovering data from the two partially printed QR codes. Process 650 may be performed by an external computing device (e.g., a tablet computer, a smartphone, or the like). Further, in one example, process 650 may be performed by surface printer 100 and surface printer 100 may communicate the decoded data to an external computing device. At 652, the 2D code printed at the first location is scanned. At 654, the 2D code copy printed at the second location is scanned. That is, an image capturing device, (e.g., an image capturing device of an external computing device or image capture camera 212 of a surface printer) may scan each of the printed 2D codes as a single image or multiple images. At 656, the scanned QR codes are processed. That is, as described above, for example with respect to Figures 4A-4B, each of the printed 2D codes are partial QR codes, and processing combines the partial QR codes, such that more of the QR code is recovered (e.g., as illustrated in Figure 5).
[0053] In one example, processing may include the following: applying an adaptative background removal process to differentiate the content and the background; determining the two partial 2D code positions; rotating one of the patterns, aligning the patterns using a corner detection and a stitching process;and overlapping both images. After the images are overlapped, a 2D code detection and decoding pipeline may be applied. Various approaches may be used to assess the two partial 2D code positions. For example, pattern matching may be used to locate the location pattern part of a QR code and an image may be dilated using morphological operators to find two squares on the image. Thus, according to the techniques herein, in one example, physically distinct copies of partial 2D codes may be printed and superimposed via image processing.
[0054] As described above, according to the techniques herein, multiple copies of images encoding data may be superimposed using physical printing techniques. Figure 7 is a flowchart illustrating printing an image encoding data according to an example. Referring to Figure 7, the entirety, or aspects thereof, of process 700 may be performed by surface printer 100. For example, aspects of process 700 may be performed by processor 102 and / or printing system 112 of surface printer 100. Surface printer 100 may receive a print job, identify an image encoding data in the print job and generate and print multiple copies of the image encoding data. For example, as described above, an input file may be received and processed by a surface printer or an external computing device and in one example, according to the techniques herein, the input file may be processed such that redundancy is introduced with respect to images encoding data by implementing the process 700.
[0055] At 702, surface printer 100 receives a 2D code, or another type of image encoding data. For example, surface printer 100 may receive an input file including a layout including QR codes. At 704, surface printer 100 prints a copy of the 2D code at a first location using a first print orientation. For example, in the case of the example illustrated in Figures 4A-4B, a copy of the 2D code at a location using a first print orientation may include the QR code in Figure 4A. At 706, surface printer 100 prints a copy of the 2D code at the first location using a second print orientation. As described above, print orientations may include orientations which are orthogonal. Thus, in the case of the example illustrated in Figures 4A-4B, in one example, a copy of the 2D code at the location using the second print orientation may include the QR code in Figure 4B. As described above, and illustrated in Figure 5A, if the partial QR codes in Figures 4A-4B aresuperimposed, the partial QR codes form a more complete QR code. In this manner, according to the techniques herein, an image encoding data may be printed according to a printing configuration that reduces the number of errors and improves the recoverability of the image encoding data.
[0056] Whether process 600 or process 700 is performed may depend on specific surface printer configurations and / or printing conditions. For example, with respect to process 700, it may be difficult for some surface printers to print superimposed copies of 2D codes with sufficient precision such that the copies are properly aligned, and, in such cases, it may be preferrable to perform process 600. Further, in some examples, an external computing device which can perform process 650 may not be readily available and in such cases, it may be preferrable to perform process 700.
[0057] As described above, in some cases process 600 and 700 may be performed simply based on an image encoding data being identified in a print job. In one example, according to the techniques herein, process 600 and 700 may be performed in conjunction with identifying a printhead misfiring condition. As described above, surface printer 100 may print a test pattern to a surface and the test pattern may be evaluated to assess if a printhead is in a condition where it is misfiring. In one example, process 600 and 700 may be performed based on a determination that a printhead is in a condition where it is misfiring. As further described above, in some cases, it may be assumed that at some point between servicing routines, a surface printer will be operating in a misfiring condition. That is, the likelihood a surface printerwill be operating in a misfiring condition and that print quality will be unacceptable may be based on a printer operating condition. For example, each of printing fluid type, linear distance printed, nozzle usage, and time since a previous servicing may provide an indication of a likelihood that print quality will be unacceptable for printing images encoding data. Thus, in one example, process 600 and 700 may be performed based on a printer operating condition corresponding to a likelihood that print quality will be unacceptable for printing images encoding data. For example, if at least one of linear distance printed, nozzle usage, or time since a previous servicing exceeds a threshold, process 600 and 700 may be performed. In one example, a threshold may bebased on printing fluid type and / or environmental conditions, temperature, humidity, etc.
[0058] As described above, each row of a 2D code may be aligned with a row of nozzles of a printhead for printing. As further described above, in one example, a printhead may include 32 rows of nozzles and a 2D code may have 25 rows. Thus, in some cases, a surface printer may have more rows of nozzles than rows of a 2D code. In this manner, according to the techniques herein, the position of a 2D code may be changed related to the position of printhead nozzles rows for printing. That is, the 2D code may be shifted about nozzle rows.
[0059] Figure 8A illustrates an example of a QR code to be printed. In the example illustrated in Figure 3A, the first row of the 25x25 pixel QR code is aligned with nozzle row 1 of the printhead. In the example illustrated in Figure 8A, the first row of the 25x25 pixel QR code is aligned with nozzle row 4 of the printhead. Further, in the example illustrated in Figure 8A, there are 32 rows of nozzles. Thus, in the case of 32 rows of nozzles, it may be possible to print a 25x25 pixel QR code according to one of the following alignments of the first row of the QR code: at nozzle row 1 , at nozzle row 2, at nozzle row 3, at nozzle row 4, at nozzle row 5, at nozzle row 6, at nozzle row 7, and at nozzle row 8. As further illustrated in the example of Figure 8A, nozzle rows 2, 5, 10, and 23 are not printing properly. Thus, as illustrated in Figure 8A, a selected alignment may provide which portions of the QR are printed with errors and are printed without errors.
[0060] As described above, there may be several printing orientations (e.g., 0 degrees, 90 degrees, 180 degrees, and 270 degrees) which may be utilized for printing a 2D code. According to the techniques herein, a 2D code may be printed according to an alignment and an orientation. Figure 8B illustrates an example where the 25x25 pixel QR code is aligned with the 7th nozzle row and rotated 90 degrees in the counter-clockwise direction. As illustrated, each of Figure 8A and Figure 8B include different portions of the QR that are printed without error. That is, an alignment and orientation provide the number and locations of errors in a printed 2D code. Depending on the number and locations of errors, the 2D code may or may not be recoverable.
[0061] According to the techniques herein, for an identified printhead misfiring condition and an image encoding data, a printing configuration corresponding to an alignment and an orientation may be evaluated to assess how the identified printhead misfiring condition impacts print quality of the image encoding data for the misfiring condition. Figure 9 is a flowchart illustrating printing an image encoding data according to an example. Referring to Figure 9, the entirety, or aspects thereof, of process 900 may be performed by a surface printer. For example, aspects of process 900 may be performed by processor 102 and / or printing system 112 of surface printer 100. Further, in one example, aspects of process 900 may be performed by an external computing device in communication with a surface printer. For example, in one example, surface printer 100 may receive a print job including an image encoding data and a selected 2D code alignment and orientation and proceed to print the 2D code accordingly. That is, in some examples, an external computing device in communication with a surface printer may aspects of process 900. In other examples, surface printer 100 may receive a print job, identify an image encoding data in the print job, perform the evaluation, and select a 2D code alignment.
[0062] At 902, surface printer 100 receives a 2D code, or another type of image encoding data. For example, surface printer 100 may receive an input file including a layout including QR codes. At 904, surface printer 100 identifies a printhead misfiring condition. As described above, surface printer 100 may print a test pattern to a surface and the test pattern may be evaluated to assess if a printhead is in a condition where it is misfiring. In one example, the results of the evaluation of the test pattern may be stored in memory 104 of surface printer 100 and used for identifying a misfiring condition. For example, a printed test pattern may indicate that a nozzle row is clogged, blocked, or otherwise out. The status of the nozzle may be stored in memory 104 of surface printer 100. As described above, a test pattern may be evaluated by user inspection and / or using an image capturing device, including, for example, an image capturing device of surface printer 100. Thus, in some cases, surface printer 100 may perform the evaluation and store the identified misfiring condition (e.g., nozzle row status). In some cases, an external computing device (or a user thereof) may perform theevaluation and communicate the results to surface printer 100, including for example manual entry to surface printer 100 by a user.
[0063] At 906, surface printer 100 evaluates the print quality impact to a 2D code based on an identified misfiring condition. As described above, an identified misfiring condition may include an identification of a nozzles row which are clogged, blocked, or otherwise out. For example, referring to Figure 8A-8B, in this case, the corresponding identified misfiring condition is that nozzle rows 2, 6, 10, and 23 are out. In general, evaluating the print quality impact on a 2D code based on an identified misfiring condition includes accessing the resulting errors to a printed 2D code based on the identified misfiring conditions. In one example, accessing the resulting errors may include comparing a representation of the identified misfiring condition to a representation of a 2D code.
[0064] In one example, according to the techniques herein, an identified misfiring condition may be represented as a nozzle matrix. Figures 10A-10B are conceptual drawings illustrating nozzle matrices according to an example. In general, a nozzle matrix is a matrix where each cell has a binary value indicating whether a nozzle or nozzle row is firing properly. In some examples, a value of 1 may indicate that a nozzle is firing properly. In some examples, a value of 0 may indicate that a nozzle is firing properly. The number of rows of a nozzle matrix may be based on the number of rows of a printhead and the number of columns of a nozzle matrix may be based on the number of columns of a 2D code to be printed. For example, referring to the example illustrated in Figures 8A-8B, a corresponding nozzle matrix may include a 25x32 matrix with 0 values at rows 2, 5, 20, and 23 indicating these nozzle rows are not firing properly and 1 values at the other rows indicating these nozzle rows are firing properly. Figure 10A provides a simplified 4x7 nozzle matrix. The example in Figure 10A may correspond to a case where a printhead (or a portion thereof) includes 7 rows of nozzles with nozzles rows 2 and 5 being blocked, clogged, or otherwise out, and where a 4x4 2D code is to be printed.
[0065] As described above, a printhead may include multiple columns of nozzles. With respect to Figure 10A, the nozzle matrix corresponds to a case where a nozzle row has a single column of nozzles. In this case, the value of arow is duplicated for each column. However, in cases, where a surface printer 100 includes multiple columns of nozzles, the values of the columns may be duplicated across the width of the nozzle matrix. Figure 10B illustrates a case where there are two columns of nozzles and each nozzle has a value of 0 or 1 and the values of the nozzle columns are duplicated to generate a 5x7 matrix (e.g., columns 1 , 2, 1 , 2 ,1 ). The generation of a nozzle matrix may correspond to which nozzles of a printhead would / could deposit printing fluid for respective pixels of a 2D code. For example, with respect to the example in Figure 10B, a surface printer may operate such that nozzle column #1 prints odd rows of a 2D code and nozzle column #2 prints even rows of a 2D code. In one example, according to the techniques herein, an alignment of columns of a 2D code may be aligned with a particular column of nozzles. That is, a 2D code may be shifted about the nozzles rows and / or nozzle columns.
[0066] As described above, evaluating the print quality impact on a 2D code based on an identified misfiring condition includes accessing the resulting errors to a printed 2D code based on the identified misfiring conditions. This may include comparing a representation of the identified misfiring condition to a representation of a 2D code. As further described above, a 2D code may be printed according to one of several possible printing orientations (e.g., 0 degrees, 90 degrees, 180 degrees, and 270 degrees). Figure 11 is a conceptual drawing illustrating respective representations of a 2D code according to respective printing orientations. That is, the example illustrated in Figure 11 provides where a 4x4 portion of a QR coded is represented as binary values of 0 and 1 for each of four respective printing orientations (e.g., 0 degrees, 90 degrees, 180 degrees, and 270 degrees), with a value of 0 indicating a dark pixel. In other examples, a value of 1 may indicate a dark pixel. Each of these respective matrices may be referred to as a 2D code matrix or image encoding data matrix.
[0067] In one example, accessing the resulting errors may include comparing a nozzle matrix to 2D code matrices. Figures 12A-12C are conceptual drawings illustrating examples of comparing a nozzle matrix and image encoding data matrices. Although each of Figures 12A-12C provides specific examples of comparing a nozzle matrix and 2D code matrices, additional and / or alternativecomparisons may be made using various matrix operations. Referring to the example in Figure 12A, for each 2D code matrix, the 2D code matrix is aligned with the nozzle matrix with its first row at the following positions, 1st row, 2nd row, 3rd row, and 4th row. At each aligned cell position, a binary OR operation is performed and the resulting binary OR operations are summed to generate a total value (or score), which are illustrated in the 1x4 matrices at the right of the Figure 12A. For example, for the 0 degrees 2D code matrix at a position where its first row is aligned with the 1 st row of the nozzle matrix, the value of 13 is generated as follows: [(1 OR 0)+(1 OR 1)+(1 OR 1)+(1 OR 0)] + [(0 OR 0)+(0 OR 0)+(0 OR 1 )+(0 OR 0)] + [(1 OR 1)+(1 OR 1)+(1 OR 0)+(1 OR 0)] + [(1 OR 0)+(1 OR 1)+(1 OR 1)+(1 OR 1 )] = 13. In the example of Figure 12A, a value of 16 would indicate that all of the dark pixels of the QR code should be printed properly and a value of 8 would indicate that none of the dark pixels of the QR code would be printed properly. That is, as such, a generated total value provides an evaluation the print quality impact to a 2D code based on an identified misfiring condition. In the example, of Figure 12A, the total values may indicate the number of resulting errors. As described above, in other examples, a value of 1 may indicate a dark pixel, and as such, in some examples an OR operation may be performed where a value of 1 indicates a dark pixel.
[0068] Figure 12B provides another example of comparing a nozzle matrix and image encoding data matrices. In Figure 12B, for each 2D code matrix, the 2D code matrix is aligned with the nozzle matrix with its first row at the following positions, 1 st row, 2nd row, 3rd row, and 4th row. However, as an alternative to Figure 12A, at each position a binary AND operation is performed and the resulting binary AND operations are summed to generate a total value, which are illustrated. Similar to Figure 12A, the higher the generated total value the lower the print quality impact to a 2D code based on an identified misfiring condition. As described above, in other examples, a value of 1 may indicate a dark pixel, and as such, an AND operation where a value of 1 indicates a dark pixel.
[0069] Figure 12C provides another example of comparing a nozzle matrix and image encoding data matrices. In Figure 12C, for each 2D code matrix, the 2D code matrix is aligned with the nozzle matrix with its first row at the followingpositions, 1 st row, 2nd row, 3rd row, and 4th row of the nozzle matrix with its first column aligned with the first column of the nozzle matrix and also its first column aligned with the second column of the nozzle matrix. At each position, a binary AND operation is performed and the resulting binary AND operations are summed to generate a total value, which are illustrated. Similar to Figures 12A and 12B, the higher the generated total value the lower the print quality impact to a 2D code based on an identified misfiring condition. That is, Figure 12C illustrates an example where there is a nozzle row shift and a nozzle column shift.
[0070] In other examples, additional or alternative binary and / or arithmetic operations may be performed on cells of the nozzle matrix and cells of a 2D code matrix and values of 0 or 1 may be used for dark pixels and / or values of 0 or 1 may be used for the state of a nozzle. For example, at least one of an exclusive OR, not OR, not AND, addition, subtraction, or multiplication may be performed. In general, for some cases, comparing a nozzle matrix and a 2D code matrix to generate a score may be referred to as a convolution.
[0071] Referring again to Figure 9, at 908, a 2D code alignment and orientation are selected. The selection may be based on the evaluation at 906. For example, with respect to the examples, in Figures 12A-12C, in one example, the printing orientation, i.e., the alignment and position (e.g., 90 degrees, row 3), with the highest score may be selected. In some examples, a set number of alignments and positions may be evaluated, including all possible (or all non-redundant) alignments or positions, or a subset thereof, and the printing orientation corresponding to the highest score may be selected. Further, in other examples, a threshold score may be set and a printing orientation with a score exceeding the threshold score may be selected. In some examples, the threshold score may be based on printing fluid type and / or environmental conditions, temperature, humidity, etc.
[0072] In the example described above with respect to Figure 8A, in the case of 32 rows of nozzles, it may be possible to print a 25x25 pixel QR code according to one of the following alignments of the first row: at nozzle row 1 , at nozzle row 2, at nozzle row 3, at nozzle row 4, at nozzle row 5, at nozzle row 6, at nozzle row 7, and at nozzle row 8. In this case, if each of the four 2D code orientations isevaluated at each alignment, 32 convolutions of a 32x25 nozzle matrix and a 25x25 2D code matrix are performed. As described above, in some examples, a subset of the convolutions may be selected to be performed. Further, as described, in some examples, a 2D code exceeding a threshold may be selected.
[0073] Further, in the case of a QR code, different regions of the QR code may be more relevant with respect to detectability and / or whether the QR code is correctly decodable. For example, the top-left, bottom-left, and top-right corners of a QR code include detectable patterns (e.g., 7x7 detectable patterns). Further, the left side of a QR code may generally include error correction data and the right side of a QR code may generally include codeword data. In one example, according to the techniques herein, the evaluation of print quality impact on a 2D code may be based on the impact on a region of a 2D code. For example, in the case of a 25x25 QR code with 7x7 detection patterns at three corners, these three 7x7 regions of the QR may be evaluated. The remaining corner region of the QR code may be evaluated in addition. That is, for example, with respect to the example described above, positions in the nozzle matrix outside of four 7x7 comer regions may not be used for the score. In this case, in some cases, values not contributing to the score may be discarded and / or corresponding cell operations may be skipped. Thus, in one example, evaluating how the identified printhead misfiring condition impacts print quality of the image encoding data includes evaluating an impact to particular regions of the image encoding data.
[0074] Referring again to Figure 9, at 910, surface printer 100 prints the 2D code according to the selected printing orientation.
[0075] Figure 13 illustrates a block diagram of an example computer program product 1300. In some examples, as shown in Figure 13, computer program product 1300 includes a machine-readable storage 1302 that may also include computer readable instructions 1304. In some implementations, the machine- readable storage 1302 may be implemented as a non-transitory machine- readable storage. In an example, the computer readable instructions 1304, may be executed by a processor 1306, implement aspects of process 600 (Figure 6A), aspects of process 700 (Figure 7) and / or aspect of process 900 (Figure 9), described above. That is, printing pipeline logic illustrated Figure 13 may includeaspects of process 600 (Figure 6A), aspects of process 700 (Figure 7) and / or aspect of process 900 (Figure 9).
[0076] In some implementations, computer readable instructions 1304 may include transistor array and / or other integrated circuit / IC components. For example, configurable logic and / or fixed-functionality hardware logic implementations of the computer readable instructions 1304 may include configurable computer readable instructions such as, for example, programmable logic arrays (PLAs), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), or fixed-functionality computer readable instructions (e.g., hardware) using circuit technology such as, for example, application specific integrated circuit (ASIC), complementary metal oxide semiconductor (CMOS) or transistor-transistor logic (TTL) technology, the like, and / or combinations thereof.
[0077] In this manner, according to the techniques herein, an image encoding data may be printed according to a printing configuration that reduces the number of errors and improves the recoverability of the image encoding data.
[0078] All definitions, as defined and used herein, should be understood to control over dictionary definitions, definitions in documents incorporated by reference, and / or ordinary meanings of the defined terms.
[0079] Furthermore, for ease of understanding, certain functional blocks may have been delineated as separate blocks; however, these separately delineated blocks should not necessarily be construed as being in the order as discussed or otherwise presented herein. For example, some blocks may be able to be performed in an alternative ordering, simultaneously, etc.
[0080] Although a number of illustrative examples are described herein, it should be understood that numerous other modifications and examples can be devised that will fall within the spirit and scope of the principles of the foregoing disclosure. More particularly, reasonable variations and modifications are possible in the component parts and / or arrangements of the subject combination arrangement within the scope of the foregoing disclosure, the drawings and the appended claims without departing from the spirit of the foregoing disclosure. In addition to variations and modifications in the component parts and / orarrangements, alternative uses will also be apparent. The examples may be combined to form additional examples.
Claims
CLAIMSWhat is claimed is:1 . A method of printing an image encoding data to a surface, comprising: identifying a printhead misfiring condition; receiving an image encoding data; selecting a printing configuration based on the identified printhead misfiring condition and the image encoding data; and causing the image encoding data to be printed according to the selected printing configuration.
2. The method according to claim 1 , wherein the printing configuration relates to a first printing of the image encoding data and a second printing of the image encoding data, where the second printing has a distinct orientation from the first printing and is printed at a distinct location from the first printing.
3. The method according to claim 1 , wherein the printing configuration relates to a first printing of the image encoding data and a second printing of the image encoding data, where the second printing has a distinct orientation from the first printing and is superimposed on the first printing.
4. The method of claim 1 , wherein the identifying a printhead misfiring condition includes identifying a printer operating condition indicating a likelihood that print quality will be unacceptable.
5. The method of claim 4, wherein the printer operating condition includes at least one of printing fluid type, distance printed, nozzle usage, or time since a previous servicing.
6. The method according to claim 1 , wherein the image encoding data is a two dimensional code.
7. A method of printing an image encoding data to a surface, comprising: receiving an image encoding data; identifying a printhead misfiring condition impacting print quality of the image encoding data; selecting a printing configuration based on the identified printhead misfiring condition; and causing the image encoding data to be printed according to the selected printing configuration.
8. The method according to claim 7, wherein the identifying a printhead misfiring condition includes identifying a nozzle row of the printhead having a clogged nozzle.
9. The method according to claim 7, wherein the printing configuration includes at least one of an alignment or an orientation of the image encoding data with the printhead.
10. The method according to claim 7, wherein the selecting a printing configuration includes selecting a printing configuration having a score exceeding a threshold.
11. The method according to claim 7, wherein the identifying a printhead misfiring condition includes identifying a printhead misfiring condition impacting a particular region of the image.
12. The method according to claim 7, wherein the selected printing configuration includes an alignment where the image encoding data is shifted about nozzle rows.
13. A surface printer, comprising: a printing system; and a processor to:identify a printhead misfiring condition; receive an image encoding data; for printing configurations, evaluate how the identified printhead misfiring condition impacts print quality of the image encoding data; select a printing configuration based on the evaluation; and print the image encoding data according to the selected printing configuration.
14. The surface printer according to claim 13, wherein the printing configurations include a first printing configuration corresponding to a first orientation of the image encoding data with the printhead and a second printing configuration corresponding a second orientation of the image encoding data with the printhead, wherein the second orientation is rotated 90 degrees with respect to the first orientation.
15. The surface printer according to claim 13, wherein the printing configurations include a first printing configuration corresponding to a first nozzle row alignment and a second printing configuration corresponding to a second nozzle row alignment.
Citation Information
Patent Citations
Bar code recorder
JP2003145734A
Printing Apparatus and Method of Printing
US20140184718A1
Method for printing narrow image content
US20210023854A1
Image forming apparatus and storage medium storing program
US20210094278A1