# Patent

## Title
Method for prepress-time color match verification and correction

## Abstract

A method of matching color elements for objects within a print job prior to printing, includes for each page in the print job, identifying all objects and their associated object properties within the page; for each object, identifying, according to predetermined object property criteria, if the object is a candidate for a color matching task; for each of the identified candidates, filtering the object properties using a predetermined visual relevance metric, such that objects having less than the predetermined visual relevance metric are removed from consideration; defining each candidate object satisfying the predetermined visual relevance metric as a color matching object with respect to at least a second color matching object thus defining a color matching object group; for each such color matching object group, either alerting a user to a problem or resolving the problem by assigning common rendering across the color matching object group.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority from provisional Application No. 60/697,650 filed Jul. 8, 2005, the contents of which are incorporated herein by reference. This application is related to co-pending, co-assigned U.S. patent application Ser. No. 11/178,129 filed Jul. 8, 2005 to Thomas C. Rich et al. for “Method for Prepress-time Color Match Verification and Correction, application Ser. No. 11/178,106 filed Jul. 8, 2005 to David E. Rumph et al. for “Method for Prepress-time Color Match Verification and Correction”, and application Ser. No. 11/178,017 filed Jul. 8, 2005 to Patrick Harrington et al. for “Method for Remote Proofing of DFE Color Architecture”, the contents of all of the foregoing are incorporated herein by reference.


BACKGROUND
This disclosure relates to methods for pre-press color match verification and correction, with special emphasis on limiting the user involvement in said process by incorporating an intelligent pre-filtering to judge color match relevance. Color management provides the tools to reconcile the different color capabilities of monitors, scanners, printers and printing presses to ensure consistent color throughout the production process. Color management also allows digital proofing, which is especially important now that the average run-length of print jobs is continuously declining. Color management is based on defined and standardized color spaces. The range of colors, or gamut, that can be captured on film, displayed on a computer monitor, or rendered by a printer vary significantly. Additionally, the range of colors that can normally be perceived by the human eye in general exceeds the colors that can be presented by the different devices.
The different attributes of the different color devices also have led to different mathematical descriptions of the individual color spaces, with two major color space classes being additive and subtractive color spaces. RGB is an additive color space that combines red, green and blue light to create all other colors. RGB color spaces are used by monitors, digital camera and scanners. CMY and CMYK color spaces as are used in most printing processes, on the other hand, and are subtractive color spaces using cyan, magenta, yellow and optionally black inks on paper to absorb red, green and blue light. The remaining reflected light is the color perceived by the viewer.
When transferring color descriptions from one device to another, ICC (International Color Consortium) profiles are frequently used. An ICC profile is a computer file that describes the mathematical transformation of one color space to another. For efficiency reasons, this is generally done through an intermediate connection space (named a Profile Connection Space PCS), resulting in ICC profiles for input devices giving the mathematical description of the input device color to the connection space and ICC profiles for output devices giving the mathematical description of the connection space to the output device. A color engine (also called a color matching module or CMM), reads the ICC profiles and converts the colors between the different devices. Multiple input descriptions, when converted to a single output device, can result in the identical color, i.e., one color might be described in a multitude of mathematically different color spaces on the input side. After correct mapping to the single output color space these different color descriptions will again describe the same color, as seen by a human.
Most electronic documents to be printed or output on a particular device include multiple elements, such as text, photos, graphics and the like. Many electronic documents are also a composite of other smaller documents and elements. For example, photos may be pasted into a largely text document at different locations. Color graphics and monochrome images may occur on the same page. The individual elements of an electronic document that are intended to match in color may be represented in a variety of color spaces, a situation which for example may arise because those elements are derived from prior documents of differing origins. This situation may not be immediately apparent to the user, because the colors of the objects appear to match on the display or when printed using a straightforward color transformation process, such as is typical in ICC-based color management.
One problem arises when more sophisticated object optimized color transformation is involved, such that different source color definitions take different color transformation paths. For example, two different objects of identical color—potentially described in different forms and different color spaces—might be transformed by the CMM to optimally use the device capability, incorporating typical device compromises as the well known compromise between color and detail preservation, or the well known compromise between color precision and color representation texture. Additionally, if one object's color is specified in sRGB for instance, and another object's color specified in SWOP CMYK (Specifications for Web Offset Publications CMYK), the color processing needed to produce the device CMYK for the specific marking process may produce a different device CMYK quadruplet for the two objects. This can be understood because all 3-to-4 transformations, such as the one from sRGB to CMYK, are underdetermined and additional degrees of freedom can be incorporated. Examples are differing black generation/black preservation strategies, even if the two objects would have matched exactly on a SWOP press using the standard SWOP assumptions.
Another problem arises when more sophisticated color transformation is involved, such that non-color differences in the source (e.g., differing object type) that cause the objects to take different color transformation paths. One instance of this is that the Xerox Corporation DocuSP® printer color DFE (digital front end) can assign different ICC rendering intents to different object types. For example, by default text is assigned a “Saturation” rendering intent, while graphics are assigned a “Relative Colorimetric” rendering intent. Especially for colors near the edge or outside the printer's color gamut, the processing of the source color may produce visibly different results. This type of processing is commonly referred to as Object Optimized Rendering (OOR) and is intended to optimally utilize the machine capabilities and trade-offs. Consider, for example, a print job consisting of three characters printed in a first color on a white background adjacent to three characters printed in white on a background of the first color. Using a program such as Adobe® Acrobat® software, the first color would be displayed on a monitor for a user to view. When the job is printed using the DocuSP® printer's color processing, the first color is slightly different.
These situations are difficult to find prior to printing without a very detailed and precise understanding of the DFE's color processing, which the typical user does not have. Consequently, color matching differences of these types have typically been discovered only upon printing, when resolution is costly and time-consuming. What is needed is a method which alerts a user to color mismatch problems prior to printing and allows the user to correct any mismatches. In some cases it may be appropriate to change the “problem” criteria described above to better reflect human perceived relevance thereby reducing the number of objects examined and to add additional relevance criteria that are based on other object properties than the described and measured color properties. Also, what is needed is a way to prioritize the visual importance of the color mismatches along with a resolution approach that can resolve the different cases in the respectively appropriate manner.
Proofing is a convenient means of providing a user, especially a remote user of a preview of how a particular print job will appear when printed on the selected printer. Currently, there are no color transformation utilities that mimic a DFE's color architecture remotely, i.e., independently of the production rip. Proofing color transforms are typically performed via an output ICC profile for a target printer used as a CMYK source profile on the DFE driving a proofer. Unfortunately, the target ICC profile can only characterize one print condition for CMYK image objects, and fails to correctly model any sophistication in the color processing of the target printer beyond the simple ICC workflow. What is needed is a remote proofing method for displaying a proof of a print job that reflects the remote printer's architecture.
SUMMARY
Disclosed in embodiments herein is a method of color match verification, which may be implemented as a software tool operating on a computer or microprocessor, applied prior to printing, that identifies color match problems arising from different color processing for different source color representations, filters the problems by visual relevance and provides a way to either automatically correct these color match problems, or in the alternative, provides a way for a user to correct them with minimal interaction. The method accomplishes this by a combination of generating color mismatch metrics, along with a visual relevance metric based on additional properties, such as object type, object size, object proximity, or the like. These two criteria might be generated sequentially or in parallel, depending on the more efficient implementation on a specific device. For the purpose of simplicity of description we will use a logical order of first generating the pure color mismatch metric, followed by the additional object-based metric.
Disclosed in other embodiments herein is a method of color match verification, which may be implemented as a software tool operating on a computer or microprocessor, applied prior to printing that identifies color match problems arising from different color processing for different source color representations and provides a way to either automatically correct these color match problems, or in the alternative, provides a way for a user to correct them. The method accomplishes this by transforming each object's source color using a prototypical color transformation, identifying sets of objects having colors that match using the prototypical process, and then reconverting the source colors using the actual color transformation processing of the selected output device, and ensuring that the objects' colors still match. If they do not, in one embodiment, color matching may be performed automatically using a predetermined criterion. Alternatively, the mismatching colors may be displayed in a user interface that can be used to enable a user to manually update the source color definitions of the various objects so that they are specified in the same way, and therefore will match when printed.
A computer-implemented method of matching color elements for objects having different source color definitions within a print job prior to printing, according to one embodiment includes identifying all source colors to be printed within the print job and object type associated with each instance of a source color; identifying any source colors having at least two different source color definitions; for each source color having at least two different source color definitions, selecting one of the source color definitions in accordance with a predetermined criterion; and assigning the selected source color definition to at least one other instance of the source color for that object type. The predetermined criterion may include the following relationship: for each source color having at least two different source color definitions for the same object type, assigning the selected source color definition to all other instances of the source color for that object type. Alternatively, in the method, selecting one of the source color definitions may be accomplished by displaying the source colors having at least two different source color definitions and associated object types in a user interface; and responsive to input from a user, assigning a user-selected source color definition to all user-selected instances of the user-selected source color. Identifying any source colors having at least two different source color definitions may be accomplished by: for each object in the print job, transforming each object of the same object type using a prototypical color transformation; identifying sets of objects having source colors that match within a first tolerance level after the prototypical transformation process; for each set of objects having source colors that match, transforming each matching object's original source colors using a target printer's color space; and identifying any of the transformed colors of the matching objects within the set that do not match within a second tolerance level. The prototypical color transformation comprises an ICC-based profile.
A computer-implemented method of matching color elements for objects having different source color definitions within a print job prior to printing, in accordance with another embodiment, includes converting each object's source colors to a common color space; identifying groups of objects having source colors in the common color space that match within a first tolerance level; within each group of objects having matching source colors: transforming each object's original source color into a target printer's color space using the target printer's color transformation path; identifying any of the transformed colors of the matching objects within the group that do not match within a second tolerance level; if at least one of the transformed colors does not match the other transformed colors in the group, correcting mismatches within the group.
The method may further include displaying any groups of mismatched objects within a user interface; and responsive to user input for each group of mismatched objects displayed in the user interface, assigning a user-selected source color definition of the user-selected transformed color to all objects within the group. The method may also include modifying the target printer's color transformation path according to any relevant printer settings and print job parameters. In the method, converting each object's source colors to a common color space may be accomplished by converting each object's source color into a profile connection space (PCS) representation using a source ICC profile. Transforming each object's original source color into a target printer's color space using the target printer's color transformation path may be accomplished by converting the PCS representation to the common color space using an output profile. Correcting mismatches within the group may be accomplished by an algorithm (or by user input) which examines the objects within the group; determines if the objects in the group are intended to match one another in accordance with a predetermined criterion; and if not, removes those objects not intended to match from the group. Examining the objects within the group may be accomplished, for each object in the group, by examining that object's source colors, colors as expressed in the common color space and colors as expressed in the target printer's color space. The predetermined criterion used by the algorithm may be determining which objects in the group of are of the same object type. The method may be performed on a complete document, or alternatively, on a page-by-page basis.
In some cases two objects may have the same source color space and same color value, but transform into colors in the target printer space because of different rendering intents (which control, for example, the formulation of CMY vs. K and the mapping of out-of-gamut colors into the printable gamut). In the case of DocuSP® printer, the job or queue settings can cause different object types to be color converted using different rendering intents. This yields a possibly unexpected mismatch even though the document creator assigned two objects, say color text and a bar of a bar chart, the same source color. In some cases, even when a document is “fixed” by making all the source colors the same (as in the foregoing method), this does not fix the color mismatch when the job is printed using settings that assign different rendering intents to different object types. For example if the source colors were in fact already the same and the object type cannot be changed readily, the problem can be fixed by changing the chosen printer settings. In this case the method either: warns the users of the unfixable condition and instructs the user to change the printer settings, or in the alternative, automatically changes the printer's job settings in accordance with some predetermined criterion.
Disclosed in another embodiment herein is a method of color match verification, which may be implemented as a software tool operating on a computer or microprocessor, applied prior to printing that identifies color match problems arising from different color processing to be performed in the DFE/printer. The method in this embodiment accomplishes this by transforming each object's source color using a prototypical color transformation, identifying sets of objects whose colors match using the prototypical process, and then reconverting the source colors using the actual color transformation processing of the selected DFE/printer, and ensuring that the objects' colors still match. If they do not, they are included in a list on the user's display, including information that indicates why the items will not match when printed.
A computer-implemented method of identifying color mismatches for objects having different rendering intents within a print job prior to printing, may include identifying all objects within the print job, each object's type, each object's rendering intent and all source colors associated with each object; for each object in the print job, transforming each object's source colors using a prototypical color transformation; identifying sets of transformed objects having source colors that match within a first tolerance level after the prototypical transformation process; transforming all transformed objects using a target printer's color space; identifying any of the transformed objects in each set that do not match within a second tolerance level to form a group of mismatched objects; and displaying the group of mismatched objects in a user interface, wherein the display includes each object in the second set, all source colors and rendering intents associated with each object and information indicating which objects will not match when printed on the target printer.
A computer-implemented method of matching color elements for objects having different rendering intents within a print job prior to printing, may include identifying all objects within the print job, each object's type, each object's rendering intent and all source colors associated with each object; for each object in the print job, transforming each object's source colors using a prototypical color transformation; identifying sets of transformed objects having source colors that match within a first tolerance level after the prototypical transformation process; transforming all transformed objects using a target printer's color space; identifying any of the transformed objects in each set that do not match within a second tolerance level to form a group of mismatched objects; identifying any object types within the group of mismatched objects having at least two different rendering intents; for each object type having at least two different rendering intents, selecting one of the rendering intents in accordance with a predetermined criterion; and assigning the selected rendering intent to at least one other instance of that object type.
Some print jobs may be so complex that color mismatches may occur for multiple reasons. The foregoing methods can be combined. The method of matching color elements for objects having different source color definitions can be performed and selected source color definitions assigned to mismatching source colors for the same object type. Once objects of the same type have the same source color definitions, the method of identifying color mismatches for objects having different rendering intents can be applied. Objects with the same source color but different rendering intents can be identified and then either corrected automatically or displayed in a user interface for a user to correct.
Disclosed in other embodiments herein is a method for remote proofing a digital press by performing the color rendering of a specific DFE and printer, including taking into account job and printer settings, while maintaining vector objects. In one exemplary embodiment, this method color renders a file to a PDF/X-1 a format to enable a portable proof-ready file, independent of the target print system. The PDF/X-1a's output intent tag identifies the intended print condition within the file. Adobe® Acrobat® software can use this tag to convert colors from the print condition to the monitor space for soft proofing. Additionally, the rendered PDF/X-1 a file can be sent to any device that supports the PDF/X standard and automatically convert colors from the output intent color space to the proofer color space for an accurate hard copy proof. This functionality automates and streamlines the proofing task of the end user because there is no need to find and load the correct ICC profile on the proofing system.
A method of proofing a print job to be printed on a remote printer, may include providing an input print job comprising a plurality of objects and remote printer settings; identifying all objects within the print job, each object's type, each object's rendering intents and all source colors associated with each object; for each object in the input file, transforming each object's source colors using the remote printer's color space; creating an output proof print job comprising the translated objects and an ICC profile corresponding to the remote printer; and outputting the output proof print job on a proofing device. The input print job may be formatted as a PDF file. The output print job may be output on a monitor or other printer. The color match methods described above may be applied during the transforming steps.
A method of proofing a print job to be printed on a remote printer, may include providing an input print job comprising a plurality of objects and remote printer settings; identifying all objects within the print job, each object's type, each object's rendering intents and all source colors associated with each object; for each object in the input print job, transforming the object's color to the target printer's color space, using the target printer's actual color conversion process, taking into account printer settings, job ticket, and media to produce a document having colors that are represented in the target printer's device CMYK color space; converting the document to PDF/X-1a format, including tagging the document with an output profile corresponding to the target printer; sending the resulting PDF/X-1a file to a PDF/X-1a compliant output device.
In the foregoing method for matching color elements for objects having different source color definitions and method for matching color elements for objects having different rendering intents, matching is done by computing color distance and clustering. This may be accomplished by calculating the difference between color objects in a document, where the difference is defined by rendering the objects through a “standard” SWOP path and contrasting that data with the rendering through an Object Optimized Rendering (OOR) path. These methods generate a large amount of data in both the automatic mode and for the user interaction mode. In some instances, it may be useful to filter the data generated using the foregoing methods. It may be useful to redefine the color match problem used in the foregoing method in order to reduce the number of returned mismatched objects. It may also be useful in the user interaction embodiment to provide additional relevance criteria that are based on other object properties than the described and measured color properties.
In the foregoing method for matching color elements for objects having different source color definitions and method for matching color elements for objects having different rendering intents, matching is done by computing color distance and clustering. This may be accomplished by calculating the difference between color objects in a document, where the difference is defined by rendering the objects through a “standard” SWOP path and contrasting that data with the rendering through an Object Optimized Rendering (OOR) path. These methods generate a large amount of data in both the automatic mode and for the user interaction mode. There is a possibility that in this method in an automatic mode, too many objects may be rendered in a sub-optimal way (with no OOR) and that in the user interactive mode, too many potential problems may be displayed to the user, resulting in excessive labor cost or user frustration. It is thus highly desired to filter the data generated using the foregoing methods. It may be useful to redefine the color match problem used in the foregoing method in order to reduce the number of returned mismatched objects. It may also be useful in the user interaction embodiment to provide additional relevance criteria that are based on other object properties than the described and measured color properties.
Disclosed herein in yet other embodiments is a computer-implemented method of matching color elements for objects having different source color definitions within a print job prior to printing, including: for each page in the print job, identifying all objects within the page, each object's type, each object's color space, each object's rendering intent and all source colors associated with each object; identifying, according to a predetermined problem criterion, any potential problem objects within the page possibly requiring color matching; for each potential problem object, identifying any source colors having at least two different source color definitions; for each source color having at least two different source color definitions that would match or very nearly match. For the actual problem objects, an automated correction can be chosen, for example by using standard SWOP assumptions for the problem objects and by using standard OOR assumptions for all other objects. A user-interactive system needs only to alert the user to the actual problem objects, allowing the user to select the appropriate rendering. At this point, it should be understood that the actual definition of the problem objects includes user or job settings with respect to color difference in say Lab ΔE, with respect to object types, object sizes and the like.
Disclosed herein in yet other embodiment is a computer-implemented method of matching color elements for objects within a print job prior to printing, comprising: for each page in the print job, identifying all objects and their associated object properties within the page; for each object, identifying, according to predetermined object property criteria, if the object is a candidate for a color matching task; for each of the identified candidates, filtering the object properties using a predetermined visual relevance metric, such that objects having less than the predetermined visual relevance metric are removed from consideration; defining each candidate object satisfying the predetermined visual relevance metric as a color matching object with respect to at least a second color matching object thus defining a color matching object group; for each such color matching object group, either alerting the user to a problem or automatically resolving the problem by assigning common rendering across the color matching object group. The object properties may include at least two of color attributes, object attributes, object location attributes and object size attributes. The predetermined object properties include at least two of color attributes, object attributes, object location attributes and object size attributes and wherein identifying, according to predetermined object property criteria, comprise examining color properties prior to examining object attributes, object location attributes and object size attributes. Alternatively, the predetermined object properties include at least two of color attributes, object attributes, object location attributes and object size attributes and wherein identifying, according to predetermined object property criteria, comprise examining color properties after examining object attributes, object location attributes and object size attributes.



BRIEF DESCRIPTION OF THE DRAWINGS
The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.
FIG. 1 illustrates a user interface displaying groups of color mismatches.
FIG. 2 illustrates a user interface displaying groups of color mismatches with one item deselected.
FIG. 3 illustrates a user interface displaying results after analysis of mismatches based on rendering intents.
FIG. 4 illustrates another user interface displaying an additional window for editing source color definition.
FIG. 5 illustrates a large fill area adjacent to small object.
FIG. 6 illustrates non-touch objects having a stroke or outline.



DETAILED DESCRIPTION
Various methods will be described for ensuring that the individual elements of a document to be printed that match in color will match in the printed document. In the following description, these methods will be described as implemented in software tools operating on a computer system, which sends print jobs to an output or target printer. Some of these tools can be configured to automatically make mismatching colors match in accordance with some predetermined criterion. Others of the methods will provide the mismatching colors in a user interface for the user to select which, if any, colors to match. Indeed, even in the user interface implementation, some users may elect to have the method automatically match colors.
A first method can be used to correct for color mismatch problems arising from different color processing for different source color representations. In this method, colors of objects in the document are analyzed for mismatches, then corrected. For each object in the document (excluding sampled images), the object's colors are converted to a common color space using a simple, ICC-based approach. That is, the source color is converted into a profile connection space (PCS) using a source ICC profile, and then the PCS representation is converted to the common color space using an output profile, e.g., a printer profile. Objects in the document may be then clustered into groups or sets that have matching colors in the common space. Matching is determined according to some first tolerance range by comparing the color values generated as a result of the transformation for the particular objects. If the numeric values are within the first tolerance range, the colors are deemed to match.
In one embodiment, matching is done by computing color distance and clustering. Color distance is computed as Euclidean distance (square root of the sum of squares of the component differences) in the common color space. An alternative would be to further convert the color from the common space to a visually uniform space such as CIE L*a*b*, and then compute Euclidean distances in the visually uniform space. Distance is computed between cluster centroids. A cluster's centroid is the average of the member objects' components, with each object weighted equally. An alternative would be to weight each object by an attribute such as area of ink coverage. Clustering is done as follows: Initially each object is the sole member of a cluster. For every cluster the distance to its nearest neighbor is computed. Repetitively the two nearest clusters are merged into one, the new cluster's centroid determined, and all affected nearest neighbor distances updated. Repetition terminates when the nearest cluster distance exceeds a specified threshold. The clustering does not involve interaction with the user.
Within each group, each object's original source color is transformed into the target printer's color space using the actual color transformation path of the DFE for that printer, taking into account any relevant printer settings and job ticket parameters. If the colors of the objects within a group, as expressed in the target DFE/printer's color space, do not all match within a second tolerance range (i.e., their output color values after the second transformation are not within the second tolerance range), the method will either correct the mismatch automatically using a predetermined criterion or display all of those objects in a list of mismatches in a user interface for the user to correct manually. The method can be applied to the entire document or on a page-by-page basis.
One example of a predetermined criterion for matching mismatching colors is for each source color having at least two different source color definitions for the same object type, assigning a selected source color definition to all other instances of the source color for that object type. This criterion ensures that all objects of a particular type will have the same source color definition and be processed the same.
Not all users will want to have source color definitions set by default for all objects of a particular type. In this case, the method will display mismatches in a user interface. FIG. 1 illustrates a user interface which shows various groups of objects that have been analyzed using this method. A document on the left shows a series of six groups of source colors, each having four instances. Results of analysis according to the method are displayed on right, showing four groups of color mismatches. Each line describing each mismatched object includes a representation of the object's color as expressed in the target space, the page in the document on which the object was found, the object type, source color, common color (SWOP CMYK in this case) and target color (DocuSP® printer CMYK in this case). Note that in FIG. 1, each object's color has a different color value.
For each mismatch group, the user examines the objects listed, including their source colors, colors as expressed in the common color space, and colors as expressed in the DFE/printer's native color space, and determines if the objects in the group were intended to match each other. Objects that were not intended to match are deselected. The user then selects one of the objects in the group whose source color representation is what all of the objects in the group should have been, and clicks a “unify” button. The tool writes the source color of the selected object into the color property for all of the objects. (Alternatively, some other source color chosen by another means may be used for the unification process.)
FIG. 2 shows a group of objects with one member deselected, and one member highlighted as the exemplar for unification. Color group with DeviceCMYK object deselected (second from bottom in list; note unchecked checkbox) and PANTONE object highlighted for unify. The highlighted object is also indicated by a dashed line in the document view at left. When the user clicks the “Unify” button the three checked-marked lime green objects will all have their color definitions changed to the same PANTONE color as the highlighted object.
A software tool implementing the above-described method was implemented in a plug-in which may be installed in Adobe®® Acrobat® software. The following illustrates the installation and operation of this tool. Operation: Correct installation of the tool results in a new “XeroxTools” menu appearing on the main menu bar in Acrobat. Two tools are provided: ColorMatch and Remote Proof. Although either of the plug-in tools may be opened before opening any document, a document must be opened in Acrobat before either of these tools may be run.
Color Match. The purpose of the Color Match tool is to help a user find and fix problems with color matching within a document. It goes through a two-step process analyzing the user's document. If the user has installed the printer data files at the default location, then the tool will open immediately. Otherwise, the user will be prompted to locate the DocuSP® printer directory on the disk, which contains the printer data files.
Finding problems. In the first step, all objects in a document are translated into Acrobat's Working CMYK space (e.g., SWOP Coated), and grouped into sets of objects that match within the specified variance. In the second step, all of the objects in each matching group are translated into DocuSP® printer CMYK using the printer and queue settings selected by the user. Objects that matched in the first step (i.e., in the default CMYK space), but do not match in the second step (i.e., in the DocuSP® printer color) are shown in the tool. For each object, the object type, source color (both stroke and fill), and corresponding standard and DocuSP® printer CMYK colors are shown in a mismatch list in the large box in the center of the plug-in tool. When the user selects the list entry, the corresponding object in the document is centered in the document window, and the object is highlighted in the manner selected by the “highlight” menu (one of Outline, Invert or Flash). This makes it easy to determine which object the tool has flagged.
Example of Clustering Algorithm. Consider a test file which consists of 4×4-bluegrey-0+4+8+12.pdf with variances 16, 18, 20, 40 in a PDF format document. The PDF document content is enumerated by the facilities of the Adobe PDF Library package. The items under examination are instances of the abstract superclass PDEElement, which encompasses many types of object including PDEPath, PDEText and PDEShading, the only types of interest to ColorMatch, as well as many others such as PDEImage and PDEXObject, which are ignored.
In each instance of PDEPath encountered, as many as two color values are possible, the stroke color and the fill color. Each instance of PDEText may contain one or more text runs; each text run may specify a stroke color value and/or a fill color value. Each PDEShading is treated as specifying two color values, if it is an Axial or Radial shading, or four color values, if it is a Function-Based shading; the other types of shading are not supported. Each non-null color value is added to ColorMatch's data base of document color values.
A color value, called a PDEColorSpec by Adobe, consists of a color space and its requisite tint values. In Adobe® Acrobat® software's formulation there are eleven color spaces: three device spaces DeviceGray, DeviceRGB and DeviceCMYK; four CIE-Based spaces CalGray, CalRGB, Lab and ICCBased; and four special color spaces Pattern, Indexed, Separation and DeviceN. The device spaces are simple uncalibrated spaces of one, three and four components respectively. The calibrated CIE-Based spaces CalGray, CalRGB and Lab consist of one, three and three components respectively; an ICCBased space may require one, three or four component values. A Separation space is a spot colorant and a tint, or amount of colorant; a DeviceN space is a blend of one or more spot colorants and their tints. An Indexed color space uses a small integer component value to index a table of arbitrary color values specified in another color space. A Pattern space is either a Tiling, which replicates a fixed bounded image over a grid, or a Shading, which sweeps a varying color value across a region of the document; Pattern space values do not fit the model (space & component values) applicable to other color spaces. ColorMatch currently supports all possible cases except Tiling Pattern spaces and the four Mesh Type Shading Pattern spaces.
ColorMatch's data base of document color values is organized as a collection of sets of objects. Each set, called a Color SpecSet, is distinguished by a specific PDEColor Spec and a specific rendering intent, which can be either Graphic, used for paths and shadings, or Text. The objects in a particular set are instances of PDEElement which share the set's distinguishing PDEColor Spec and intent. Usually each Color SpecSet will have unique distinguishing values and contain all elements matching those values, but, if the PDF document is not structured optimally, it is possible for two or more sets to have identical distinguishing values, in which case the sets will be disjoint, that is each object will be a member of one set only. Most further processing is focused upon the Color SpecSets acting as proxy for the contained elements.
The next step of the analysis begins with the transformation of each ColorSpecSet's color value to Acrobat® software's CMYK Working Space, which is specified in Acrobat's Color Management Preferences dialog and which defaults to “U.S. Web Coated (SWOP) v2”. Hereafter in this document that transformed value will be referred to as the SWOP value although the actual Working Space might be another CMYK space. Then the database is further organized into a collection of sets of ColorSpecSets. Each set, called a SWOPcolorSet, is distinguished by a unique SWOP value and, at this stage of the analysis; each set contains all ColorSpecSets exactly matching its SWOP value, and no others.
Next, if the user has specified a nonzero SWOP Variance, SWOPcolor Sets with sufficiently similar SWOP values are merged. Initially each SWOPcolor Set contains Color SpecSets with one identical SWOP value. The clustering algorithm iteratively merges the nearest two SWOPcolor Sets. The separation between SWOPcolor Sets is a simple Euclidean distance in CMYK space. The location of each SWOPcolor Set is its centroid, a weighted average of the individual Color SpecSet SWOP values, weighted by the number of PDF elements in each Color SpecSet. (A more ambitious calculation might weight elements by a more complex criteria such as amount of ink coverage.) The clustering algorithm terminates when the nearest two SWOPcolor Sets are more distant than the user-specified SWOP Variance.
Upon completion of this clustering process, each SWOPcolor Set is distinguished by a SWOP value at the centroid of the set's members, and each set contains all Color SpecSets whose SWOP values fall within a spherical region of radius specified by the SWOP Variance and centered at the centroid.
Fixing Problems. The ColorMatch plug-in provides a way to alter the PDF file so that all objects within a color group have the same source color. This feature is called unify. To use Unify, the user selects one of the objects in a color group, and clicks the Unify button at the bottom of the tool. The source color from the selected object becomes the source color for all the checked objects in that group. Since the objects now match in color, they are removed from the mismatch list. If the user does not want the new source color to be applied to certain of the objects in the set, simply uncheck the checkbox at the left end of the list entry for that object. The PDF document will be updated when the user clicks the tool's “Unify” button. Even after the user has “Closed” the tool, the altered document has not been saved back to the disk. The user can save the document, overwriting the original source colors, or the user can “Save As” to a new name, if the user wishes to preserve the original document.
Color Editor. If none of the original objects has the desired color, this version of ColorMatch now supplies a color editor. Select the object whose color is to be modified and click the “Edit” button beneath the list of objects. A color editor will appear, which allows the user to modify the components of the source color (or select from a list of spot colors known to the selected target printer, in the case of a source spot color) as shown in FIG. 4. The user can also convert the source color to either SWOP CMYK or the target printer's CMYK. The user can also revert to the source color by selecting “Original” from the color space drop-down menu. Clicking “OK” updates the color of the “inkwell” on the main ColorMatch window. The user can now select any object and click “Paste” to update that object's color. If the user merely wants to copy the color of an object from one group into another group, the “Copy” button beneath the object list will copy the color of the selected object into the “inkwell” without opening the color editor.
Remote Proofing. The Remote Proofing tool color converts the text and graphic objects in a PDF document to DocuSP® printer CMYK and produces a PDF/X-1a file with an embedded printer-specific ICC profile. The ICC profiles currently embedded are for the iGen3® printer, DC 2060 printer, or DC 6060 printer. There is currently only one ICC profile per IOT available. To produce a remote proof PDF document: Choose Xerox Tools>Remote Proof. Select a Printer. Select a Queue. Click the Create Proof button. A new PDF/X-1a document will be created. “x1a” will be appended to the new document's file name. The file can then be sent to a PDF/X-1a compliant proof printer. Note: If the document has security features enabled, the Remote Proof tool will prompt for a password before it can produce the proof document. The new proof document will not inherit the security features of the original.
Note: If the fonts in the original document are not embedded or if the original document has actions, transparency, or separated pages, the file that will be produced will not be PDF/X-1a compliant. The tool currently detects these cases and alerts the user. Other requirements for PDF/X-1a compliance that the tool does not currently check for are: No LZW compression; Page boxes must be nested properly; Halftone must be Type1 or Type5; No Halftone Name key; No HTP key within an ExtGState resource; No embedded PostScript; Alternate image not default for printing; Annotation and Acrobat form elements must be outside of Trimbox and Bleedbox; No Javascript; No operators not defined in PDF 1.3; No File Specifications—typically used for OPI comments as well as external streams; and No OPI in Form Xobject or Image Object.
A second method can be used to correct for color mismatch problems arising from non-color differences in the source (e.g., differing object type) causing objects to take different color transformation paths. One example of is when the DocuSP® printer color DFE assigns different ICC rendering intents to different object types. In the method, for each object in the document (excluding sampled images), the object's colors are converted to a common color space using a simple, ICC-based approach. That is, each source color is converted into a profile connection space (PCS) using a source ICC profile, and then the PCS representation is converted to the common color space using an output profile, e.g., a printer profile. All objects are then clustered into groups or sets having colors that match in the common space to within some tolerance range. Within each group or set, each object's original source color is then transformed into the target printer's color space using the actual color transformation path of the DFE for that printer, taking into account all relevant printer settings and job ticket parameters. If the colors of the objects within a group, as expressed in the target DFE/printer's color space, do not all match within a second tolerance range, display all of those objects in a list of mismatches. Color matching is determined by comparing output color values generated by the particular transformation. Alternatively, the first transformation may be eliminated and clustering can be performed independently in each represented color space.
FIG. 3 illustrates a user interface that shows various groups of objects that have been analyzed as described. Document to be analyzed is shown at left. Results of analysis on right, showing one group of color mismatches, consisting of two objects. The line describing each mismatched object includes a representation of the object's color as expressed in the target space, page on which the object was found, the object type, source color, common color (SWOP CMYK in this case) and target color (DocuSP® printer CMYK in this case). A line of warning text beneath the line for each object shows in red the reason for the mismatch, in this case a difference in rendering intent. Note that in FIG. 3, each object has the same color value.
For each mismatch group, the user examines the objects listed, including any warnings, and determines if the objects in the group were intended to match each other. The user then corrects the problem causing the mismatch, e.g., by changing the printing settings (the DocuSP® printer queue in this example). As workflow systems become more tightly integrated, e.g., with JDF, the tool may provide a means to directly change the printer settings via the job ticket.
Remote proofing enables a user to view locally a print job that will be submitted to a remote printer, such as a production printer like Xerox Corporation's iGen3® printer, DocuSP® printer, DC 2060 printer and DC 6060 printer. This is similar to the process used by photographers: a proof set of photographs is sent to a customer for selection before printing the photographs in final form using the best quality paper and processes. A method for remote proofing a digital press performs the color rendering of a specific DFE and printer, taking into account job and printer settings, while maintaining vector objects. In one exemplary embodiment, this method color renders a file to a PDF/X-1a format to enable a portable proof-ready file, independent of the target print system. The PDF/X-1a's output intent tag identifies the intended print condition within the file. Adobe® Acrobat® software can use this tag to convert colors from the print condition to the monitor space for soft proofing. Additionally, the rendered PDF/X-1a file can be sent to any device that supports the PDF/X standard and automatically convert colors from the output intent color space to the proofer color space for an accurate hard copy proof. This functionality automates and streamlines the proofing task of the end user because there is no need to find and load the correct ICC profile on the proofing system.
PDF/X-1a is a new file format, intended for the reliable exchange of graphic arts data. PDF/X-1a offers additional security for files that are submitted remotely. Fonts and images must be embedded, eliminating the possibility of font substitution or missing elements. Color must be CMYK. Mechanical specifications (media, trim etc.), trapping and print conditions (such as SWOP) must be defined, so there is far less margin for error. The PDF/X-1a standard addresses blind exchanges where all files should be delivered in CMYK (and/or spot colors), with no RGB or device independent (color-managed) data. This is a common requirement in many areas around the world and in many print sectors—usually tied to an environment where the file supplier wants to retain maximum control of the print job. It's very hard to transmit data as RGB or Lab and still to include custom trap definitions, for instance. The first PDF/X-1a standard, better referred to as PDF/X-1a:2001 is published as ISO standard 15930-1:2001.
For each object in the document, convert the object's color to the target DFE/printer's color space, using the actual DFE/printer's actual color conversion process, taking into account printer settings, job ticket, and media. This conversion produces a document whose colors are all represented in the target printer's device CMYK color space. Convert the document to PDF/X-1a, which includes tagging the file with the output profile corresponding to the target printer. Send the resulting PDF/X-1a file to a PDF/X-1a compliant soft proofing system or hard proofing device.
Structurally, “RemoteProof” may be implemented as a separate tool, but sharing many of the same software components as the “ColorMatch” Acrobat plug-in described above. In particular, the color conversion extracted from the DocuSP® printer DFE is used heavily by both RemoteProof and ColorMatch. Likewise, the same code may be used to access each object in the PDF file, although what is done with each object differs between the two tools.
Functionally, a user would interact with RemoteProof as follows. In the method of remote proofing, an input PDF file is opened. The file is checked for compatibility with the PDF/X-1a standard, and warnings for non-compliant features are generated. For each object in the file: the source color is translated to the specified device output color space using the full sophistication of the DFE's color conversion. This conversion may include automatic selection of different rendering intents based on object type, custom spot color dictionaries (e.g., for best Pantone compliance), etc. The object that has been color-translated is reinserted into the PDF file in place of the original object. For objects of compound color, for example smooth shading and sampled images, each source color involved in specifying or defining the compound color is translated. An ICC profile corresponding to the targeted output color space is attached to the PDF file. The file is marked as a PDF/X-1a file, unless there are compliance issues. RemoteProof may be implemented as an element of an automated workflow, although an Acrobat Plug-in version implemented is invoked manually by a user.
A purpose of Remote Proofing is to enable proofing of the effects of the full DFE conversion on a proofing device (either monitor or proof printer) other than the targeted printer. For example, a graphical design house may be targeting a document to an iGen3® printer, but the design house does not have one at their design house so they outsource the printing to a commercial printer who has the iGen3. How do the designers see what the output is going to look like? RemoteProof can be used to convert the document to iGen3 CMYK, and use an ICC “device link” profile of a CMYK proof printer, along with the profile specifying iGen3® printer CMYK that RemoteProof embedded in the PDF/X-1a file it generated, to produce a proof print that mimics the iGen3, including the DocuSP® printer color conversion, to the limits of the proof printer's gamut.
Referring again to FIG. 1, there is shown a typical information screen for a method of color matching based on different source color definition. In essence, all document objects are listed and the corresponding color values are given in various color spaces. This method is essential to a color expert who wants to assure that everything in the document is in order. At the same time, a novice user, or a less skilled user is overwhelmed by the amount of information. Also, any user intervention to the print data will inherently include associated cost in terms of time, device utilization and the like. It is thus desirable to have an additional method to the above-described expert system. This additional method will filter all problem cases based on a relevance scheme and either resolving only these limited number of cases (not altering the other cases) and/or displaying only said cases to a user with a simple resolution option attached.
Simple user tools will—in essentially all cases—result in a potentially lower quality than expert tools used by expert users given sufficient time. However, cost, available time, etc. often limit the actual modifications an expert is capable of doing for a given job, given those boundary conditions. Consequently, an expert tool may be augmented by a simple intervention tool. This allows a trade-off between “perfect quality using expert intervention” and “good quality with simple intervention”. This trade-off is often application dependent. It is important to note that even experts use automatic systems in cases where the cost of expert time would outweigh the quality benefit of expert intervention. For example, the time spent on a publication that has a run of 200,000 can be much larger than the time spent on a run of 20. Disclosed herein in embodiments is a method for color matching that can be used by non-experts and in scenarios of short runs.
Color problems in offset transfer result predominantly from Object Oriented Rendering (OOR) and thus can all be eliminated by avoiding OOR and using SWOP emulation, i.e., switch OOR off. However, this is not a good approach, since it might lower image quality by a large amount (improved image quality is one of the main attributes of OOR). In those cases where the cost of expert time outweighs the quality benefit of using the expert user methods described above, the number of objects analyzed can be reduced; i.e., the method filters the objects on a page-by-page bases to leave a smaller group of problem objects. Color analysis is then limited to those problem cases either automatically or via display and user intervention. For purposes of this method, all pages of the print job are considered separately. Thus no comparison is made across page boundaries, reducing the number of mismatched objects to be displayed to a user considerably. There are generally only a few cases where this restriction should be eliminated, but they can easily be handled as described below.
Problem cases can easily be identified from a small number of different parameters, such as for example, size, object type, color space and spatial proximity. Assuming a filtering process in the same order as described, first eliminate all small objects inside the document from analysis. Small object might include all text (unless the text is well above normal reading font size of e.g., 12 pt), all isolated lines (not overlapping or touching), etc. For simplicity a size less than about 1 cm (0.5 inch) can be used, as the threshold for small, but it is understood that this can be a user configuration setting. Object size can be, for example, either directly calculated from the current transform matrix or by rendering the data in a low resolution buffer using z-order indication, or some other methodology. Object proximity can be calculated in the same manner. It should be understood that the foregoing filtering process may proceed based on a single parameter or on a combination of parameter efficiencies and the ease in which the parameter may be obtained from the data file. Filtering may occur in any order, the foregoing order being only for illustration.
A simple example can be seen in FIG. 5. In FIG. 5, a solid fill rectangle is in close proximity to several lines of small text (12 pt). All text lines have a different color and only one of the lines matches the color of the rectangle. For an observer, however, it is nearly impossible to identify the “correct” line unless slow and close examination is performed. From FIG. 5, it is can be seen that small objects do not need to be considered for an automatic color matching method version (they still might be important in the expert methods described above). Filtering or eliminating small text objects from the analysis dramatically reduces the number of objects that are maintained for further color matching.
In the next filtering step, the document page is filtered by object type and color space. Here all pictorial (image data) objects are ignored except those that touch graphics objects. Also, all graphics objects are eliminated if outline (stroke) and fill color are different unless they touch other objects. An example of this is shown in FIG. 6, in which five smaller graphic objects having a stroke or outline are shown in proximity to, but not touching, the larger fill graphic.
In the next step, all graphics objects that have a common color space are eliminated (i.e., if all graphics objects on a page have the identical color space, only objects touching other object classes are not eliminated). For the purpose of this method, color spaces can be considered identical if they can uniquely be transformed into one another (e.g., Lab is thus equal to XYZ, but not to CMYK).
In the next step, all graphics objects that are separated by more than a specific distance (e.g., 1 inch) are eliminated.
At this stage, only very few objects are left for examination. Touching objects of different object class or color space (e.g., Lab, SWOP, Pantone) remain. At least one object is of a non-image class (graphics, large text). Non-image objects of a minimum size with a minimum separation of differing object class or color space also remain. These objects may now be analyzed using the method of matching color elements for objects having different source color definitions and/or the method of matching color elements for different object types having different rendering intents described above.
The foregoing filtering process can be used to define a fully automatic color match tool. First all filtering is done as described above, resulting in a small number of possible conflicts. It is important to understand that the possible problem objects are a small subset of all objects of the document. This in turn means that all un-marked objects can be rendered using OOR and thus with highest possible quality. It has to be remembered that only objects within a certain color accuracy of each other will be flagged, so a red square (graphics object) on a blue circle (graphics object) will not be flagged. Also, black/white objects can be identified as “blank space” between objects. Secondly, in fully automatic mode, all objects are rendered in the non-OOR mode. Normally SWOP emulation and no differing rendering intents avoid conflicts. A fully automatic system can solve the vast majority of color adjustment problems. At the same time, it also can be used to indicate the problems to a “average user” by concentrating on a few visually obvious cases.
There are only a few cases, where an inter-page match is relevant for an automatic or semi-automatic process (these cases still might be relevant in the expert mode or for specific applications). The first case is a recurring element on every page, e.g., a Company Logo. However, this case is easily handled. If no individual page flags the Logo as a problem, then the Logo is simply rendered as is, since inclusion is either by data replication or by reference and thus Logo color consistency is achieved automatically. If one of the pages indicates the Logo as a potential problem due to proximity with a different object some simple rules can be applied. In modifying one of the objects (in order to achieve the match either rendering or color have to be modified) always modify the un-referenced/not-reused object. The second case is that of a multi-page spread where different objects cover multiple pages that—after binding—appear attached. This problem is simply remedied by using a modified page definition in the analysis. Assuming that imposition is known (meaning that the page numbers are a reflection of actual page order), facing pages can be re-defined to be a single page for the purpose of the analysis and all previously described methods simply apply.
It should be understood that the system optionally might reverse the order of examining color properties, object properties, etc., of the different objects. If evaluating the color characteristics of an object is computationally more costly in a given environment, a filtering based on size, object type, etc might be performed first. If proximity characteristics are computationally more costly, filtering based on object color might be performed first, etc.
The claims, as originally presented and as they may be amended, encompass variations, alternatives, modifications, improvements, equivalents, and substantial equivalents of the embodiments and teachings disclosed herein, including those that are presently unforeseen or unappreciated, and that, for example, may arise from applicants/patentees and others.

## Claims

1. A method of matching color elements for objects within a print job for a document prior to printing, the method comprising executing the following acts with a microprocessor:
for each page in the print job, identifying all objects and their associated object properties within the page, wherein the objects have different source color representations and/or different rendering intents;
translating all identified objects' color to a common color space;
for each object, identifying, according to predetermined object property criteria, if the object in the common color space is a candidate for a color matching task;
for each of the identified candidate objects, filtering the candidate object properties using a predetermined visual relevance metric in the common color space, such that candidate objects having less than the predetermined visual relevance metric are removed from consideration, reducing the number of candidate objects to be color matched;
translating the remaining candidate objects' color into a target color space of the printer;
defining each candidate object satisfying the predetermined visual relevance metric as a color matching object with respect to at least a second color matching object thus defining a color matching object group; and
for each such color matching object group, either alerting a user to a problem or automatically resolving the problem by assigning common rendering across the color matching object group if an object's color matches in the common color space but not in the target color space,
wherein the objects' colors are transformed to each color space using a different mathematical transformation, and
wherein the predetermined object property criteria comprises removing from consideration objects satisfying selected object properties of size and spatial proximity so as to reduce the number of candidate objects to be color matched.

2. The method of claim 1, wherein the object properties include at least two of color attributes, object attributes, object location attributes and object size attributes.

3. The method of claim 2, wherein at least one of the object properties comprises object location such that the objects must be located within a predetermined distance from one another.

4. The method of claim 1, wherein the predetermined object property criteria comprises eliminating objects satisfying selected object properties of type and color space.

5. The method of claim 1, wherein the predetermined object property criteria comprises eliminating objects smaller than a predetermined size.

6. The method of claim 5, wherein eliminating objects smaller than a predetermined size comprises eliminating all text having a font size 12 pt or less, all isolated lines and all objects having a size less than 1 cm2.

7. The method of claim 5, further comprising eliminating objects of the same type having a common color space.

8. The method of claim 7, wherein two objects have the same color space if one color space can be uniquely transformed into the other color space.

9. The method of claim 7, further comprising eliminating objects that are separated by more than a specified distance.

10. A method of matching color elements for objects within a print job for a document prior to printing, the method comprising executing the following acts with a microprocessor:
for each page in the print job, identifying all objects and their associated object properties within the page, wherein the objects have different source color representations and/or different rendering intents;
translating all identified objects' color to a common color space;
for each object, identifying, according to predetermined object property criteria, if the object in the common color space is a candidate for a color matching task;
for each of the identified candidate objects, filtering the candidate-object properties using a predetermined visual relevance metric in the common color space, such that candidate objects having less than the predetermined visual relevance metric are removed from consideration, reducing the number of candidate objects to be color matched;
translating the remaining candidate objects' color into a target color space of the printer;
defining each candidate object satisfying the predetermined visual relevance metric as a color matching object with respect to at least a second color matching object thus defining a color matching object group; and
for each such color matching object group, automatically resolving any color mismatch by assigning common rendering across the color matching object group if an object's color matches in the common color space but not in the target color space,
wherein the objects' colors are transformed to each color space using a different mathematical transformation, and
wherein the predetermined object property criteria comprises removing from consideration objects satisfying selected object properties of size and spatial proximity so as to reduce the number of candidate objects to be color matched.

11. The method of claim 10, wherein the object properties include at least two of color attributes, object attributes, object location attributes and object size attributes.

12. The method of claim 10, further comprising rendering all objects not in a color matching object group according to their originally assigned rendering technique.

13. The method of claim 10, further comprising: identifying any objects occurring on multiple pages; assigning the same rendering technique to such objects.

14. The method of claim 10, further comprising prior to identifying all objects and their associated object properties within a page, defining facing pages as a single page.

15. The method of claim 10, wherein the predetermined object properties include at least two of color attributes, object attributes, object location attributes and object size attributes and wherein identifying, according to predetermined object property criteria, comprises examining color properties prior to examining object attributes, object location attributes and object size attributes.

16. The method of claim 10, wherein the predetermined object properties include at least two of color attributes, object attributes, object location attributes and object size attributes and wherein identifying, according to predetermined object property criteria, comprises examining color properties after examining object attributes, object location attributes and object size attributes.