Images are processed for use with computing machines, such as a print apparatus. A print apparatus, for example, may use control data based on processed image data to reproduce a physical representation of an image by operating a print fluid ejection system according to the control data. Image processing may include color calibration. An image may be processed in a print apparatus pipeline or processed offline on separate compute device, such as a print server.
In the following description and figures, some example implementations of print apparatus, appearance calibration systems, and/or methods of appearance matching are described. In examples described herein, a “print apparatus” may be a device to print content on a physical medium (e.g., paper, textiles, a layer of powder-based build material, etc.) with a print material (e.g., ink or toner). For example, the print apparatus may be a wide-format print apparatus that prints latex-based print fluid on a print medium, such as a print medium that is size A2 or larger. In some examples, the physical medium printed on may be a web roll or a pre-cut sheet. In the case of printing on a layer of powder-based build material, the print apparatus may utilize the deposition of print materials in a layer-wise additive manufacturing process. A print apparatus may utilize suitable print consumables, such as ink, toner, fluids or powders, or other raw materials for printing. In some examples, a print apparatus may be a three-dimensional (3D) print apparatus. An example of fluid print material is a water-based latex ink ejectable from a print head, such as a piezoelectric print head or a thermal inkjet print head. Other examples of print fluid may include dye-based color inks, pigment-based inks, solvents, gloss enhancers, fixer agents, and the like.
Certain examples described herein relate to color calibration of a print system. For example, color calibration may be used to adjust the color response of the print system to more accurately correspond to a desired color to be printed. Color calibration may be used to calibrate a color mapping process by which a first representation of a given color is mapped to a second representation of the same color. The concept of “color” can be represented in a large variety of ways, such as in relation to a power or intensity spectrum of electromagnetic radiation across a range of visible wavelengths or a color model is used to represent a color at a lower dimensionality. A “color” may be said to be a category that is used to denote similar visual perceptions where two colors are said to be similar if they produce a similar effect on a group of one or more people. These categories can then be modelled using a lower number of variables. In an example printing pipeline, individual inks may be calibrated separately so that printed colors are similar to or match desired colors.
Colors may be matched among print apparatus using colorimetric processes to assist uniformity of printed images from the devices. Color matching may provide a subset of appearance matching to print the output images into uniformity among print apparatus. Other appearance attributes may affect visual perception of an image and may or may not be affected by color. For example, an image may be rated with a degree of glossiness or grain where color may or may not be independent from such attributes. These non-color appearance attributes, if not matched, may result in outputs from different devices appearing differently even when the images are colorimetrically matched.
Various examples described below relate to appearance calibration of non-color appearance attributes. The appearance calibration may involve providing levels of non-color appearance attributes to a printer and/or adjusting printer settings according to data representing non-color appearance attributes. By defining a framework to coordinate appearance attributes, appearance calibration may occur by using printer characteristic information transferred to a print apparatus in terms of appearance attributes that are controllable by the print apparatus, for example, using a look-up table (LUT) with entries corresponding to appearance settings specific to a particular print apparatus. In this manner, non-color appearance attributes are calibrated so that images printed by different print apparatus are similar to or match desired appearance characteristics.
The attribute engine 104 represents any circuitry or combination of circuitry and executable instructions to identify an appearance attribute 102 corresponding to a printer setting 108. For example, the printer setting 108 may correspond to an orientation or speed of a printer component, such as orientation of a scan axis of a print carriage, and the attribute engine 104 may be a combination of circuitry and executable instructions that, when executed, identify that grain is an appearance attribute 102 that is affected by the orientation of the scan axis of the print carriage. A non-color appearance attribute is an appearance attribute that is not colormetric (e.g., is not a color, a tone, a hue, contrast, brightness, or other value used in a color model to define a color within a color space). A non-color appearance attribute may be color independent (i.e., the attribute can change without affecting the perceived color beyond a visible threshold to the human eye) or color dependent (i.e., the perceived color may change beyond the visible threshold of the human eye when the attribute changes.) Example color independent appearance attributes may include gloss, grain, sharpness, macro uniformity, micro uniformity, text quality, line quality, and line roughness. Example color dependent appearance attributes may include coalescence, mottle, haze, and bronzing (i.e., an affect of a change of the ink over time, such as in an aged treatment fluid). Some non-color attributes may or may not be affected by color or may or may not make an effect on color depending on operational conditions. For example, grain adjustments on cyan area, magenta, or yellow fill area may change LAB definition based on the grain changes, where grain adjustments of a black fill area may not change LAB definitions. In an example where the appearance attribute is color dependent, the printer setting may be adjusted differently based on the output color in order to generate a uniformity in the appearance attribute to be matched. In that example, the image source may be embedded with an additional plane of pixel color dependent change of the appearance attribute and/or an LUT to be used for matching may include additional entries according to the color dependency, as discussed with regards to example further herein.
The degree engine 106 represents any circuitry or combination of circuitry and executable instructions to identify a degree of the appearance attribute corresponding to the printer setting. For example, the degree engine 106 may be a combination of circuitry and executable instructions that correlate the angle of the scan axis of the print carriage with respect to the platen to a level of graininess, such as by performing a prediction calculation or looking up the value in a table of setting entries.
Referring to
The profile engine 214 represents any circuitry or combination of circuitry and executable instructions to identify a printer setting 208 corresponding to a non-color appearance attribute of an image source. For example, the profile engine 214 may be a combination of circuitry and executable instructions to identify a printer component and a printer setting 208 corresponding to a color-independent appearance attribute of an image source.
The setting engine 216 represents any circuitry or combination of circuitry and executable instructions to set the printer setting according to the non-color appearance attribute of the image source. For example, the setting engine 216 may be a combination of circuitry and executable instructions that, when executed, identify a degree of a color independent appearance attribute, identify a degree of a printer setting corresponding to the color independent appearance attribute, and set a printer component to a configuration (e.g., position, orientation, speed, etc.) corresponding to the printer setting at the identified degree.
In some examples, functionalities described herein in relation to any of
Referring to
The attribute modules, the degree modules, the profile modules, and the setting modules represent program instructions that when executed function as the attribute engine 104 of
Although these particular modules and various other modules are illustrated and discussed in relation to
A processor resource is any appropriate circuitry capable of processing (e.g., computing) instructions, such as one or multiple processing elements capable of retrieving instructions from a memory resource and executing those instructions. For example, the processor resource 522 may be a central processing unit (CPU) that enables appearance calibration by fetching, decoding, and executing modules 504, 506, 514, and 516. Example processor resources include at least one CPU, a semiconductor-based microprocessor, a programmable logic device (PLD), and the like. Example PLDs include an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a programmable array logic (PAL), a complex programmable logic device (CPLD), and an erasable programmable logic device (EPLD). A processor resource may include multiple processing elements that are integrated in a single device or distributed across devices. A processor resource may process the instructions serially, concurrently, or in partial concurrence.
A memory resource represents a medium to store data utilized and/or produced by the system 300, 400, and 500. The medium is any non-transitory medium or combination of non-transitory media able to electronically store data, such as modules of the system and/or data used by the system. For example, the medium may be a storage medium, which is distinct from a transitory transmission medium, such as a signal. The medium may be machine-readable, such as computer-readable. The medium may be an electronic, magnetic, optical, or other physical storage device that is capable of containing (i.e., storing) executable instructions. A memory resource may be said to store program instructions that when executed by a processor resource cause the processor resource to implement functionality of the system. A memory resource may be integrated in the same device as a processor resource or it may be separate but accessible to that device and the processor resource. A memory resource may be distributed across devices.
In the discussion herein, the engines 102, 104, 214, and 216 of
In some examples, the systems 300, 400, and 500 may include the executable instructions may be part of an installation package that when installed may be executed by a processor resource to perform operations of the systems 300, 400, and 500, such as methods described with regards to
The example environment 690 may include compute devices, such as print apparatus 640, developer devices 642, service devices 644, and user devices 646. A print apparatus 640 may be devices identified for output of a print job. An image source may be developed and/or modified on a developer device 642. For example, a graphic may be developed and modified on a developer device 642 and stored onto a web server, such as a service device 644. The service devices 644 represent generally any compute devices to respond to a network request received from a user device 646, whether virtual or real. For example, the service device 644 may operate a combination of circuitry and executable instructions to provide a network packet in response to a request for a page or functionality of an application. The user devices 646 represent generally any compute devices to communicate a network request and receive and/or process the corresponding responses. For example, a browser application may be installed on the user device 646 to receive the network packet from the service device 644 and utilize the payload of the packet to display an element of a page via the browser application.
The compute devices may be located on separate networks 630 or part of the same network 630. The example environment 690 may include any appropriate number of networks 630 and any number of the networks 630 may include a cloud compute environment. A cloud compute environment may include a virtual shared pool of compute resources. For example, networks 630 may be distributed networks comprising virtual computing resources. Any appropriate combination of the system 600 and compute devices may be a virtual instance of a resource of a virtual shared pool of resources. The engines and/or modules of the system 600 herein may reside and/or execute “on the cloud” (e.g., reside and/or execute on a virtual shared pool of resources).
A link 648 generally represents one or a combination of a cable, wireless connection, fiber optic connection, or remote connections via a telecommunications link, an infrared link, a radio frequency link, or any other connectors of systems that provide electronic communication. The link 648 may include, at least in part, intranet, the Internet, or a combination of both. The link 648 may also include intermediate proxies, routers, switches, load balancers, and the like.
The data store 632 is accessible engines of the appearance calibration system 600 and may contain information utilized by the engines 604, 606, 614, and 616. For example, the data store 632 may store a list 634 of printers and services on the network, LUTs 636 used by the appearance calibration system 600, and the information 638 of the print job, such as the image source file.
Referring to
In the example of
The image source 724 is provided to the target printer 712 as depicted by arrow 760. In other examples, the appearance information may be transferred in a separate electronic document and/or via a communication protocol useable between the devices 710 and 712. The target printer 712 uses the color content information 726 and the appearance content information 728 to replicate the image source 724 as would be printed on the source printer 710 by identifying a setting for the printer component 718 that corresponds to the appearance attribute 702 as defined by the appearance content information 728. The profile engine 714 may identify a LUT 756 corresponding to the non-color appearance attribute of the image source and identify a setting level to apply to the printer component 718 via an entry in the LUT 756 corresponding to the degree of the non-color appearance attribute of the image source. For example, an LUT 756 may be used to identify a degree of the setting for the printer component that corresponds to the appearance attribute 702 and the degree of the appearance attribute corresponding to the printer component 708 of the source printer 710. In this manner, the LUTs usable by each print apparatus may be different, yet compatible as long as at least one appearance attribute is available among the LUTs.
In some examples, the printer components 708 and 718 may be different types of printer components, such as changing a scan axis in a target printer 712 may be adjustable to substantially match the paper axis setting of the source printer 710. For example, the type of the printer component 708 of the source printer 710 may not be the same as the type of the printer component 718 of the target printer 712 (though both print components may effectively adjust the appearance attribute 702). For another example, a profile engine 714 may determine that the setting level corresponding to the degree of the non-color appearance attribute 702 of the image source 724 is beyond a configuration range of a first printer component corresponding to the non-color appearance attribute of the image source, identify that the setting level corresponding to the degree of the non-color appearance attribute of the image source is within a tolerance threshold of a second printer component, and select the second printer component and corresponding setting level as an alternative to the first printer component.
An example data structure including a look-up table may include information corresponding to classifications of the appearance attribute and/or print apparatus configurations. For example, the data structure may include a look-up table and appearance space information, a description (such as a print mode), color-dependency information, a list of printer settings and/or printer components that affect the appearance attribute, and a table of setting levels corresponding to each of the printer settings and/or printer components to replicate the appearance attribute at a particular number of degrees available for adjustment at the print apparatus. A LUT data structure may include a number of LUTs. For example, an LUT may include an operable characterization table and a default characterization table. In another example, the LUT data structure may include a table for each print mode offered by a print apparatus. In yet another example, LUTs for each controllable attribute may be stored in the same data structure or stored in multiple separate data structures. The LUT entries may include specific values or ranges corresponding to a degree of an appearance attribute capable by adjust the printer settings/printer components accordingly.
Some physical components directly affect appearance attributes and some indirectly affect appearance attributes. For example, paper advance accuracy and carriage advance may affect grain or dot placement/error generally. Example printer component settings that may be adjustable to affect non-color appearance attributes include physical component positioning (such as scan axis, a paper axis, media-to-printhead spacing), fluid ejection settings (including drop volume as affected by voltage and/or energy levels and treatment fluid amount, such as an amount of varnish, overcoat, optimizer, binder, and the like), and pipeline settings (such as drop layering order and masking).
A match request 878 is received by the attribute engine 804. The attribute engine 804 includes program instructions, such as a component module 860 and an association module 862, to assist identification of a printer component setting to replicate. The component module 860 represents program instructions that when executed cause a processor resource to identify a printer component. For example, a list 882 of controllable components may be used by the attribute engine to identify the components that are adjustable and may affect an appearance attribute. The association module 862 represents program instructions that when executed cause a processor resource to identify the appearance attributes the corresponds to the identified component. For example, a list 882 of controllable components may be used to identify which attributes are adjustable on a print apparatus based on the controllability of the printer components. For another example, the components/settings and the degrees of settings may be identified based on the print modes 880 available to a printer. For example, a print mode 880 may be selected and, by executing the attribute engine 604, a set of LUTs 884 may be identified that retrieve appearance attribute information corresponding to the print mode 880.
The degree engine 806 includes program instructions, such as a level module 864 and a layer module 866, to assist providing a degree of the appearance attribute to match. The level module 864 represents program instructions that when executed cause a processor resource to identify the setting level corresponding to the condition of the printer component (e.g., in the appropriate print mode). For example, the level module 864, when executed, may cause a processor resource to retrieve LUT 884 to identify a degree of the print setting corresponding to a print mode and desired output. The layer module 866 represents program instructions that when executed cause a processor resource to generate layer information corresponding to the degree of the appearance attribute with regards to the image source, such as the whole image source or a portion of the image source.
The match request 878 may include an operation to request a capability specification from a target printer. As used herein, a capability specification may be a data structure defining a profile of characteristics of a print apparatus. With respect to match request 878, the capability specification includes a range of an appearance attribute available on the target printer. For example, the source printer may only provide an appearance attribute within the range of a destination printer. In other examples, a measurement device may be used to measure the range of the appearance attribute available on the target printer using a calibration technique, such as to discover a default appearance attribute of a print apparatus. The degree engine 814 may determine the degree of the appearance attribute that is within the range of the appearance attribute available on the target printer using an appearance mapping technique. In this manner, the degree of the non-color appearance attribute of the image source is based on a target setting of a target printer component of a target print apparatus.
The degree engine 806 may provide appearance information 886 to another device to complete the matching (e.g., via providing a modified image source 888 with appearance information to a print apparatus with a profile engine and setting engine) or may continue onto further appearance calibration operations (e.g., perform the calibration operations as a web service and provide the printer-specific instructions to a target printer from the web server).
In either manner, a profile engine 814 receives the appearance information 886 to calibrate a settings match with a print apparatus using the setting engine 816. The profile engine 814 includes program instructions, such as an identification module 868, a range module 870, and a match module 872, to assist identification of a printer setting adjustable to replicate an appearance attribute. The identification module 868 represents program instructions that when executed cause a processor resource to identify appearance attribute information 886 corresponding to a print setting of a print apparatus. For example, layer information 890 may be parsed for compatible appearance attributes by a processor resource from the image source 888 by executing the identification module 866. The range module 870 represents program instructions that when executed cause a processor resource to identify a plurality of settings corresponding to an appearance attribute. For example, execution of the range module may produce an attribute list 894 including various components and/or settings may be alterable to modify an appearance attribute and each may have a varying degree of effect on the appearance attribute, where the match module 872 may be executed to retrieve the best settings match for replicating the appearance attribute. The match module 872 represent program instructions that when executed cause a processor resource to retrieve an entry in an LUT 892 corresponding to the printer setting and/or print component to be adjusted to achieve the appearance attribute level of the layer information 890. The entry may be retrieved based on a best match policy or other match policy.
The setting engine 816 includes program instructions, such as a LUT module 874 and an instruction module 876, to assist preparing instructions for a print apparatus to set a printer setting and/or printer component to produce an appearance attribute at the degree in accordance with the layer information 890. The LUT module 874 represents program instructions that when executed cause a processor resource to retrieve a setting level corresponding to a degree of the appearance attribute of the layer information 890 using a LUT 896. For example, a graininess level retrieved from the layer information 890 may correspond to a draft print mode setting level of a scan axis alignment according to the LUT 896. The LUT 896 may be the same as the LUT 892 or may be a different LUT. The instruction module 876 represents program instructions that when executed cause a processor resource to generate print instructions 898 to control a print apparatus to set a printer setting and/or printer component to a condition to produce the appearance attribute at the degree of the layer information 890, which in the example of
At block 902, a setting corresponding to a printer component that affects an appearance attribute is identified. At block 904, a degree of the appearance attribute is identified using a look-up table entry corresponding to the setting identified at block 902. At block 906, a layer of appearance information representing the degree of the appearance attribute is provided, such as to print apparatus.
At block 1002, a capability specification is requested from a target printer. The capability specification may include a plurality of the appearance attributes available on the target printer. In other examples, the capabilities of a printer may be measured by a measuring device. By retrieving information about a target printer (and/or a source printer) the degree of the appearance attribute may be limited to be within the capabilities of the printers being matched.
At block 1004, a processor resource determines whether an appearance attribute is categorized and whether the appearance attribute is controllable. At block 1008, a default value is provided when the appearance attribute is determined to be categorized and uncontrollable or the degree of the appearance attribute is identified in a look-up table using the setting of the printer component when the appearance attribute is determined to be categorized and controllable.
At block 1010, the appearance information may be provided in a number of ways. Examples are depicted by blocks 1012, 1014, and 1016. At block 1012, a plane of the appearance attribute is added to layers of color image data of an image source. At block 1014, an electronic document with data representing the layer of appearance information is generated in a format compatible with a target printer and then provided to the target printer by a compatible communications protocol. At block 1016, configuration information is caused to be presented on a display. The configuration information may correspond to adjustments to be made on the target printer to replicate the degree of the appearance attribute, which may be provided as textual instructions, audio instructions, animations, and/or an instructional video as examples. Example displays include a touchscreen control panel on a print apparatus, a mobile device such as telephone or tablet, and a computer monitor coupled to a desktop computer or a point of sale device.
Referring to
At block 1102, a number of appearance attributes are identified that are controllable between a first profile corresponding to a first printer of the plurality of printers and a second profile corresponding to a second printer of the plurality of printers. For example, a list of appearance attributes may be generated and/or retrieved by a profile engine, such as profile engine 214, where the list includes a non-color appearance attribute.
At block 1104, a degree of each attribute of the plurality of appearance attributes that is compatible with the first printer and the second printer is determined based on the first profile and the second profile. For example, a first printer profile may include gloss and grain between as a controllable appearance attribute and a second printer profile may include gloss as a controllable appearance attribute. In that example, gloss may be identified as a controllable appearance attribute among the profiles. Further, if a range of gloss for the first profile is 50 to 80 units (e.g., gloss units) and a range of gloss for a second profile is 60 to 100 units, then a degree determined to be compatible among the printers may be a range of 60 to 80 units. A unit of appearance attribute with respect to each printer profile may be standardized or otherwise uniform measurement across profiles for accurate translation using an appearance calibration system (e.g., a unit of measurement may be related to an ISO of measurement for a particular appearance attribute).
At block 1106, instructions are prepared for the first printer and the second printer to print a job using the degree of each attribute that is compatible with the first printer and the second printer. Instructions may be general print instructions according to a compatible printer description language (PDL) or may be printer-specific instructions.
Referring to
Referring to
Referring to
Although the flow diagrams of
All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the elements of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or elements are mutually exclusive.
The terms “include,” “have,” and variations thereof, as used herein, mean the same as the term “comprise” or appropriate variation thereof. Furthermore, the term “based on,” as used herein, means “based at least in part on.” Thus, a feature that is described as based on some stimulus may be based only on the stimulus or a combination of stimuli including the stimulus. “Substantial” and variations, as used herein, mean within a 10% threshold of a particularized amount. Furthermore, the use of the words “first,” “second,” or related terms in the claims are not used to limit the claim elements to an order or location, but are merely used to distinguish separate claim elements.
The present description has been shown and described with reference to the foregoing examples. It is understood, however, that other forms, details, and examples may be made without departing from the spirit and scope of the following claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2017/054257 | 9/29/2017 | WO | 00 |