Patent Description:
Entities with substantial printing demands typically implement a high-speed production printer for volume printing (e.g., one hundred pages per minute or more). Production printers may include continuous-forms printers that print on a web of print media (or paper) stored on a large roll. A production printer typically includes a localized print controller that controls the overall operation of the printing system, and a print engine that includes one or more printhead assemblies, where each assembly includes a printhead controller and a printhead (or array of printheads). Each printhead contains many nozzles for the ejection of ink or any colorant suitable for printing on a medium. The ink in any one of the nozzles may be one of a plurality of types (e.g. dye, pigment, Cyan, Magenta, BlacK or Yellow).

The type of print medium implemented at the printing system effects print quality (e.g., optical density, color fidelity, rub off, smearing, etc.). Thus, it is often necessary to apply a paper setting to the printing system, which is used to select the calibration for the printing system prior to the production of a print job. The calibration for the printing system sets various printing system operational parameters to values that control the print quality of the production of the print job onto the print medium. The paper setting may include multiple (e.g., <NUM>) settings that correspond to categories of paper.

Typically a paper setting is entered into the printing system by a system operator, who often selects the setting based on a personal judgement of the paper type. Such a selection method is susceptible to human error. Another method of categorizing paper type for the paper setting is to perform physical and chemical tests on the paper. However, this method is time consuming and requires extensive lab analysis.

Accordingly, a mechanism to classify a medium for print production is desired. <CIT> discloses classifying incoming media entering a printing device.

In one embodiment, a method is disclosed. The method includes receiving optical density (OD) measurement data corresponding to application of a halftone pattern using ink on a print medium in a printing system, receiving ink deposition measurement data corresponding to application of the halftone pattern using the inks in a printing system, determining a set of distribution function parameters based on the OD measurement data and the ink deposition measurement data, applying the set of distribution function parameters to machine learning logic trained to classify the print medium and classifying the print medium as a first of a plurality of print medium categories based on the machine learning logic.

A mechanism to classify a medium for print production is described. In the following description, for the purposes of explanation, numerous specific details are set forth to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form to avoid obscuring the underlying principles of the present invention.

Reference in the specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention.

<FIG> is a block diagram illustrating one embodiment of a printing system <NUM>. A host system <NUM> is in communication with the printing system <NUM> to print a sheet image <NUM> onto a print medium <NUM> (e.g., paper, plastic, metal, glass, textile, fabric or other tangible mediums suitable for printing) via a printer <NUM>. The resulting print medium <NUM> may be printed in color and/or in any number of gray shades, including black and white (e.g., Cyan, Magenta, Yellow, and blacK, (CMYK)). The host system <NUM> may include any computing device, such as a personal computer, a server, or even a digital imaging device, such as a digital camera or a scanner.

The sheet image <NUM> may be any file or data that describes how an image on a sheet of print medium <NUM> should be printed. For example, the sheet image <NUM> may include PostScript data, Printer Command Language (PCL) data, and/or any other printer language data. The print controller <NUM> processes the sheet image to generate a bitmap <NUM> for printing to the print medium <NUM> via the printer <NUM>. The printing system <NUM> may be a high-speed printer operable to print relatively high volumes (e.g., greater than <NUM> pages per minute). The print medium <NUM> may be continuous form paper, cut sheet paper, and/or any other tangible medium suitable for printing. The printing system <NUM>, in one generalized form, includes the printer <NUM> that presents the bitmap <NUM> onto the print medium <NUM> (e.g., ink, etc.) based on the sheet image <NUM>. The printer <NUM> may be a stand-alone device communicably coupled to the printing system <NUM> or integrated in the printing system <NUM>.

The print controller <NUM> may be any system, device, software, circuitry and/or other suitable component operable to transform the sheet image <NUM> for generating the bitmap <NUM>, in accordance with printing onto the print medium <NUM>. In this regard, the print controller <NUM> (e.g. Digital Front End, DFE) may include processing and data storage capabilities. In one embodiment, measurement module <NUM> (e.g. spectrodensitomer, spectrophotometer, etc.) is implemented as part of a medium classification system to obtain OD measurement data <NUM> of a halftone pattern applied to print medium <NUM>. The OD measurement data <NUM> is communicated (e.g., received) to print controller <NUM> to be used in the medium classification process. The measurement system may be a stand-alone process or be integrated into the printing system <NUM>.

Ink deposition data <NUM> may also be communicated (e.g. received) to print controller <NUM> to be used in the medium classification as will be explained below. Though ink deposition data <NUM> is shown as received from outside print controller <NUM>, other embodiments may feature ink deposition data <NUM> being be received from within print controller <NUM> (e.g. from a module or memory).

<FIG> is a block diagram illustrating an exemplary print controller <NUM>. The print controller <NUM>, in its generalized form, includes an interpreter module <NUM>, a halftoning module <NUM>, and medium classification module <NUM>. These separate components may represent hardware used to implement the print controller <NUM>. Alternatively or additionally, the separate components may represent logical blocks implemented by executing software instructions in a processor of the printer controller <NUM>.

The interpreter module <NUM> is operable to interpret, render, rasterize, or otherwise convert images (e.g., raw sheetside images such as sheet image <NUM>) of a print job into sheetside bitmaps. The sheetside bitmaps generated by the interpreter module <NUM> are each a <NUM>-dimensional array of pixels representing an image of the print job (i.e., a Continuous Tone Image (CTI)), also referred to as full sheetside bitmaps. The <NUM>-dimensional pixel arrays are considered "full" sheetside bitmaps because the bitmaps include the entire set of pixels for the image. The interpreter module <NUM> is operable to interpret or render multiple raw sheetsides concurrently so that the rate of rendering substantially matches the rate of imaging of production print engines.

The halftoning module <NUM> is operable to represent the sheetside bitmaps as halftone patterns of ink. For example, the halftoning module <NUM> may convert the pixels to halftone patterns of CMYK ink for application to the paper. Thus, halftoning module <NUM> converts a contone image to a binary/ multi-bit level image at the same dots per inch (dpi) as the full sheetside bitmap. This is due to halftoning, which is typically implemented as a point operation creating a one to one correspondence of the contone pixels and the halftoned image pixels. The resulting halftoned image is used to drive a printhead mechanism of the printer <NUM>.

In one embodiment, this halftoning path may be employed to interpret image data representing all of the possible gray levels that can be printed by all colors to determine the relationship between ink deposition and digital count, which may be used to determine the ink model <NUM>. In this embodiment the halftoned image data is converted into deposition (ink per unit area) data (e.g. ink deposition data <NUM>) by converting the halftoned image to ink volumes using drop sizes for the case of an ink jet printer. Alternately, the halftone design itself can be used to establish this deposition vs digital count relationship.

Print controller <NUM> also includes a medium classification module <NUM> that is implemented to classify a paper type for print production and apply a corresponding setting used to select the calibration for the printing system <NUM> to optimize (e.g., improve) print quality during an application of the sheet image <NUM> to the medium (e.g., paper) at printer <NUM>. The selected calibration of the printing system <NUM> may be one of a plurality of calibrations that are stored in the printing system <NUM> and/or printer <NUM>. According to one embodiment, medium classification module <NUM> classifies paper according to one of three print medium categories: Plain (or Untreated); Ink Jet Coated, or Ink Jet Treated. However, other embodiments may include additional or different categories.

Although shown as a component of print controller <NUM>, other embodiments may feature medium classification module <NUM> included within an independent device, or combination of devices, communicably coupled to print controller <NUM>. For instance, <FIG> illustrates one embodiment of a medium classification module <NUM> implemented in a network <NUM>. In such an embodiment, medium classification module <NUM> is included within a computing device <NUM> to perform medium classification and transmit results to print controller <NUM> via a cloud network <NUM>.

Referring back to <FIG>, medium classification module <NUM> performs medium classification via ink model <NUM> and machine learning engine <NUM> (or machine learning logic). Ink model <NUM> determines optical density (OD) vs ink deposition (e.g., magnitude of ink per unit area) for the paper that is to be classified. According to one embodiment, ink model <NUM> provides an accurate description as to how an ink interacts with a particular paper type.

In such an embodiment, the description is obtained by receiving OD measurement data <NUM> from measurement module <NUM> that provides the OD of ink applied to samples of the paper, as well as information regarding the halftone design used to apply the ink to the paper. From the halftone design, the quantity of ink actually deposited in an area (e.g., ink deposition data <NUM>) may be determined based on knowing the drop sizes and how many drops that were printed at each level. In the case of point operation halftoning, the deposition vs digital count information may be obtained by analyzing the threshold array.

<FIG> illustrates graphs of functions implemented to generate an ink model <NUM>. As shown in <FIG>, having the measured OD vs digital count function (first graph) and the ink deposition vs digital count function (second graph) results in a plot of OD vs ink deposition function (third graph). In one embodiment, the OD vs digital count (DC) data matches the Ink deposition vs DC case (e.g., both representing uncalibrated responses). In the preferred embodiment, uncalibrated data should be used because the OD values and ink deposition will be the largest. This allows one to use interpolated rather than extrapolated data to create an accurate ink model <NUM>.

In another embodiment, the measured OD vs digital count function may be derived from the OD measurement data <NUM>, the OD vs ink deposition function may be derived from the ink deposition data <NUM> and the OD vs ink deposition function (e.g. ink model <NUM>) may be created based on the OD measurement data <NUM> and the ink deposition data <NUM>.

In one embodiment, the OD vs ink deposition relationship is used as inputs to a regression to provide parameters that describe the relationship. In a further embodiment, a regression employing a modified version of the Weibull CDF is used for the ink model <NUM>. The modified Weibull CDF incorporates paper white and the solid area maximum optical density. This modified Weibull CDF will herein be described as "Weibull CDF" to avoid confusion.

The forward Weibull CDF ink model relates ink deposition to OD, while the inverse Weibull CDF ink model relates OD to ink deposition. The classical version of a Weibull cumulative distribution function (CDF) describes the probability that a real-valued random variable X with a given probability will be found at a value less than or equal to x (where x is a one possible value of the random variable X). Accordingly, the classical Weibull CDF provides the "area under the curve" function of the Weibull probability density function (PDF).

In one embodiment, ink deposition is represented by: <MAT> Thus, ink deposition is defined as the total ink mass applied to a unit area. In a preferred embodiment the area over which the drop sizes are summed is the printed area associated with the multidrop or binary threshold array (e.g., each pel of the threshold array occupies an area defined by the printer dpi). The drop sizes are the determined by converting the halftone threshold array to an array of drop sizes, where for each DC level the respective drop sizes have been determined. In one embodiment, a four parameter Weibull model is implemented using OD = (p(<NUM>) *(<NUM>-exp((-(x/p(<NUM>))^p(<NUM>))))+p(<NUM>).

In such an embodiment, a two-parameter classical Weibull CDF function has been extended to four parameters to create an ink model for the paper. The two additional parameters allow the model to account for paper white and absolute paper referenced OD, where OD = Optical Density, x = ink deposition mass per area, p(<NUM>) = ink mass per area scale factor, which is similar to the classical Weibull scale factor in the way it influences the shape of the function, p(<NUM>) = slope factor, p(<NUM>) + p(<NUM>) = maximum predicted OD at infinite ink deposition and p(<NUM>) = paper OD. As a result, ink model <NUM> derives the <NUM> Weibull distribution function parameters that are forwarded to machine learning engine <NUM>, which searches and selects a category of the paper.

Machine learning engine <NUM> receives the <NUM> parameters for each color channel supported by printing system <NUM> for a medium. Thus, machine learning engine <NUM> receives <NUM> parameters (e.g., for a CMYK embodiment) as input features. In one embodiment, the machine learning engine <NUM> may receive <NUM> parameters for at least one of the color channels supported by printing system for a medium. In a further embodiment, machine learning engine <NUM> implements a k-nearest neighbor algorithm to classify an unknown medium, in this case, it is used to predict the medium (e.g., paper) type (or category).

The engine has been trained using features representative of medium characteristics, in this case, the Weibull ink model parameters to accurately determine the paper type. The training can be determined using a set of known paper types and parameters, however it can also be refined and improved by adding data from known paper types which have been measured. In this way the learning is adaptive to new information from media that customers use.

In a further embodiment, the k-nearest neighbor algorithm may be implemented via a Ball Tree space partitioning data structure in order to organize points in a multi-dimensional space though other suitable multi-dimensional spaces may also be used. In such an embodiment, nearest neighbor search queries are expedited, such that the objective is to find the k points in the tree that are closest to a given test point by some distance metric (e.g. Euclidean distance in the space). Moreover, the k-nearest neighbor implementation, being an instance-based learning method, may train the model without memorizing a previous model once the dataset is updated. However, other embodiments may implement other machine learning algorithms (e.g., Random Forests).

According to one embodiment, machine learning engine <NUM> inserts the input features into a data structure as raw sparse data prior to normalization. In such an embodiment, the data is normalized via a scaling between <NUM>-<NUM>. <FIG> illustrates one embodiment of a graph showing sparse vs scaled input features. As shown in <FIG>, the scaled input features are clustered approximately around the (<NUM>,<NUM>) coordinates in the black color plane scale vs black plane slope Weibull parameter plot, while the raw sparse features are relatively scattered.

Once the input features are normalized, one or more k-points are inserted into the structure. In one embodiment, the k points are user defined constants that are each associated with a paper category. In such an embodiment, <NUM>-points are implemented, and are associated with the Plain; Ink Jet Coated, or Ink Jet Treated paper categories supported by printing system <NUM>. As shown in model accuracy graphs (e.g., calculated using a confusion matrix) in <FIG>, <FIG> and <FIG> are optimum numbers for nearest neighbors for the current data set.

Subsequently, the k-nearest neighbor algorithm is performed to determine a k-point to which the input features are closest.

Next, the algorithm finds the K training examples in D "nearest" to X (e.g., Nk(X, D)), and assigns ŷ the majority label of Nk, such that: <MAT>.

Based on a Ball Tree searching, the data is recursively divided into hyper-spheres with nodes defined by a centroid (C) and radius (r). In one embodiment, the number of candidate points for a neighbor search is reduced through: <MAT>.

As mentioned above, the result of the k-nearest neighbor algorithm results in machine learning engine <NUM> providing a category in which the paper type is most closely related.

<FIG> is a flow diagram illustrating one embodiment of a process for implementing a medium classification process at a printing system. At processing block <NUM>, medium classification is performed on paper representing a type to which sheet images (or print data) is to be applied. <FIG> is a flow diagram illustrating one embodiment of a process for categorizing a print medium.

At processing blocks <NUM> and <NUM>, OD measurement data <NUM> and/or ink deposition data <NUM>, respectively, may be received. At processing block <NUM>, the set of distribution function parameters are determined based on the OD measurement data <NUM> and the ink deposition data <NUM>. At processing block <NUM>, the distribution function parameters are provided as input features to a machine learning engine <NUM> that implements a k-nearest neighbor algorithm to search for and select a category for the paper type. At processing block <NUM>, the paper type is classified as being associated with a particular category. At processing block <NUM>, a setting indicating the category of the paper is transmitted.

In an embodiment featuring network <NUM> shown in <FIG>, the OD measurement data <NUM> and/or ink deposition data <NUM> is transmitted from print controller <NUM> to computing system <NUM>, where the above-described medium classification is performed. Subsequently, print controller <NUM> receives the setting indicating the paper category via cloud network <NUM>. The setting provided represents a suggested paper type, which can be overridden in the case where the operator knows that the actual media type is different than the recommended one. This provides a quality check to prevent cases where the actual paper based on measurements is not the same as the paper type the operator believes they have installed for the print run.

Referring to <FIG>, the category selected during the medium classification process is applied as a medium setting at the printing system, processing block <NUM>, and is used to select the calibration for the printing system to produce one or more print jobs using the paper. At processing block <NUM>, one or more print jobs are received. At processing block <NUM>, print data included in the one or more print jobs is applied to the paper.

<FIG> illustrates a computer system <NUM> on which print controller <NUM> and/or halftone calibration module <NUM> may be implemented. Computer system <NUM> includes a system bus <NUM> for communicating information, and a processor <NUM> coupled to bus <NUM> for processing information.

Computer system <NUM> further comprises a random access memory (RAM) or other dynamic storage device <NUM> (referred to herein as main memory), coupled to bus <NUM> for storing information and instructions to be executed by processor <NUM>. Main memory <NUM> also may be used for storing temporary variables or other intermediate information during execution of instructions by processor <NUM>. Computer system <NUM> also may include a read only memory (ROM) and or other static storage device <NUM> coupled to bus <NUM> for storing static information and instructions used by processor <NUM>.

A data storage device <NUM> such as a magnetic disk or optical disc and its corresponding drive may also be coupled to computer system <NUM> for storing information and instructions. Computer system <NUM> can also be coupled to a second I/O bus <NUM> via an I/O interface <NUM>. A plurality of I/O devices may be coupled to I/O bus <NUM>, including a display device <NUM>, an input device (e.g., a cursor control device <NUM> and/or an alphanumeric input device <NUM>). The communication device <NUM> is for accessing other computers (servers or clients). The communication device <NUM> may comprise a modem, a network interface card, or other well-known interface device, such as those used for coupling to Ethernet, token ring, or other types of networks.

Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions. The instructions can be used to cause a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.

Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media or other type of media/machine-readable medium suitable for storing electronic instructions. For example, the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).

Claim 1:
A system comprising:
at least one physical memory device to store medium classification logic; and one or more processors coupled with the at least one physical memory device to execute the medium classification logic (<NUM>) for classifying a type of print medium,
the medium classification logic (<NUM>) is configured to receive (<NUM>) optical density, OD, measurement data corresponding to application of a halftone pattern using ink on the print medium in a printing system, receive (<NUM>) ink deposition data corresponding to application of the halftone pattern using the ink in a printing system, determine (<NUM>) a set of distribution function parameters based on the OD measurement data and the ink deposition data, the distribution function parameters describing a relationship between OD and ink deposition, apply (<NUM>) the set of distribution function parameters to machine learning logic (<NUM>) trained to classify (<NUM>) the print medium and classify the print medium as a first of a plurality of print medium categories based on the machine learning logic.