Abstract:
A method and apparatus are provided for compensating for spatial non-uniformities in a printer by deriving a true spatial non-uniformity tone response curve (TRC) that characterizes the printer in terms of color output variation for each addressable pixel location in a spatial range. The “true average” tone response curve is determined for a color channel. A prediction of the true response as a function of the spatial location is derived by printing and scanning a specially designed halftone-independent target of binary patterns. The predicted tone response curve for each color channel and halftone is predicted using a binary printer model, wherein the “predicted tone response curve” provides a model based approximation of the actual response for each addressable pixel location in the spatial range. Also stored is an “average predicted tone response” by averaging the “predicted tone response curve” over the spatial range of the printer.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is a continuation of prior U.S. application Ser. No. 11/881,263 filed Jul. 26, 2007, now U.S. Pat. No. 8,072,648, and the entire disclosure of said prior application is hereby expressly incorporated by reference into the present specification. 
    
    
     BACKGROUND 
     Spatial non-uniformity in digitally printed images is a commonly observed phenomenon exhibited by almost all printers. As illustrated in  FIG. 1 , for a given color channel digital input level to the printer, the printed color at first and second horizontal locations x 1 , x 2  is not the same, and/or the printed color at first and second vertical locations y 1 , y 2  is not the same. This color non-uniformity or “color drift” as a function of space on the paper or other recording medium often appears as serious image quality defects. These defects include, e.g., one-dimensional defects such as banding or streaks or two-dimensional defects such as mottle. It has been observed that the appearance of most non-uniformity defects depends on image content and color and intensity levels. Because the rendered color is a function of the halftoning method employed, spatial non-uniformity is also halftone dependent. Additionally, many high-end printers are equipped with multiple halftone screens which necessitates that any halftone dependent spatial correction method be repeated for each halftoning method. 
     To maintain consistent color reproduction, it is necessary to characterize the non-uniformity of each printer device so that corresponding color adjustments can be applied at the time of printing to compensate. Previous methods require printing and measuring test patches that are halftone dependent, which requires that patches be printed and measured for each available halftone method. For a xerographic engine equipped with multiple halftone screens, this method can be very time consuming to characterize each color channel for each halftone screen, as these measurements increase linearly with the number of halftone screens. Often, the design of printed test patches also varies depending upon the halftone screen, which leads to still more complexity. As such, it has been deemed desirable to develop a halftone independent apparatus and method for correction of spatial non-uniformities. 
     Co-pending U.S. patent application Ser. No. 11/343,656 filed Jan. 31, 2006 assigned to Xerox Corporation and entitled “Halftone Independent Color Drift Correction” is hereby expressly incorporated by reference into this specification. This prior application discloses one or more halftone independent methods and apparatus for compensating for temporal or media color drift in a printer. In particular, a first true tone response curve (TRC) for a color channel is determined when the printer is in a first state (first time or first media). A first predicted tone response curve for the color channel is also determined when the printer is in the first state. A second predicted tone response curve for the color channel is determined when the printer is in a second, color-drifted state relative to the first state, i.e., at a later time or using a different paper or other recording medium. A second true tone response curve for the color channel is then mathematically estimated using the first true tone response curve, the first predicted tone response curve, and the second predicted tone response curve. The first and second predicted tone response curves are generated using a 2×2 printer model as disclosed below. 
     The use of the 2×2 printer model provides a reliable and efficient proxy for full color characterization such as described, e.g., in S. Wang, K. Knox and C. Hains, “Digital Color Halftones” Digital Color Handbook, Chapter 6, CRC Press. Full color characterization is a time consuming operation that is preferably avoided in most xerographic printing environments. Simpler color correction methods based on 1-dimensional (1-D) TRC calibration for each of the individual color channels are usually sufficient and are easier to implement. The 1-D TRC calibration approach is also well-suited for use of in-line color measurement sensors, but is typically halftone dependent. In general, for each color channel C and for each halftone method H, a series of test patches are printed in response to N different digital input levels which requires C×H×N test patches, because the test patches must be printed for each halftone method. It has been found in practice that N must not be too small (e.g., N=16 is usually too small) because the TRC for each halftone method is typically not a smooth curve, due to dot overlapping and other microscopic geometries of the printer physical output. Existing methods for 1-D calibration, being halftone dependent, are measurement-intensive, and are not practical for in-line calibration, especially in print engines equipped with multiple halftone screens. 
     Previously, Wang and others have proposed a halftone independent printer model for calibrating black-and-white and color printers. This halftone independent printer model is referred to as the two-by-two (2×2) printer model and is described, e.g., in the following U.S. patents, all of which are hereby expressly incorporated by reference into this specification: U.S. Pat. No. 5,469,267, U.S. Pat. No. 5,748,330, U.S. Pat. No. 5,854,882, U.S. Pat. No. 6,266,157 and U.S. Pat. No. 6,435,654. The 2×2 printer model is also described in the following document that is also hereby expressly incorporated by reference into this specification: S. Wang, “Two-by-Two Centering Printer Model with Yule-Nielsen Equation,” Proc. IS&amp;T NIP14, 1998. 
     The monochrome 2×2 printer model is explained briefly with reference to  FIGS. 2A ,  2 B and  2 C (note that in  FIGS. 2A ,  2 B,  2 C the grid pattern is shown for reference only).  FIG. 2A  illustrates an example of an ideal halftone printer output pattern IHP (which can represent, e.g., a single pixel P of an image), where none of the solid color ink/toner dots ID overlap each other (any halftone pattern can be used and the one shown is a single example only); practical printers are incapable of generating non-overlapping square dots as shown in  FIG. 2A . A more realistic dot overlap model is the circular dot model shown in  FIG. 2B  for the pattern HP (the halftone pattern HP of  FIG. 2B  corresponds to the halftone pattern IHP of  FIG. 2A ). These overlapping dots D in combination with optical scattering in the paper medium create many difficulties in modeling a black-and-white printer (or a monochromatic channel of a color printer). The dots ID, D are shown by shaded regions to comply with Patent Office drawing rules, but those of ordinary skill in the art will recognize that the dots ID, D are solid color (black or other color) regions. 
     In a conventional approach such as shown in  FIG. 2B , the location for each dot D is defined by a rectangular space L of the conceptual grid pattern G, and each location L is deemed to have a center coincident with the center of the dot D output (or not output) by the printer. Because the grid G is conceptual only, according to the 2×2 printer model, the grid G can be shifted as shown in  FIG. 2C  as indicated at G′ so that the printer output dots D of the pattern HP are then centered at a cross-point of the grid G′ rather than in the spaces (the spaces are labeled L′ in the shifted grid G′). Although the halftone dot pattern HP for  FIGS. 2B and 2C  is identical, overlapping details within each of the rectangular spaces L′ of the grid G′ of  FIG. 2C  are completely different as compared to the spaces L of the grid G of  FIG. 2B . More particularly, there are only 2 4 =16 possible different overlapping dot patterns for the 2×2 model shown in  FIG. 2C , while there are 2 9=512  different overlapping dot patterns in a conventional circular dot model as shown in  FIG. 2B . 
     The 16 possible different overlapping dot patterns of  FIG. 2C  can be grouped into seven categories G 0 -G 6  as shown in  FIG. 2D , i.e., each of the 16 possible different overlapping dot patterns of a pixel location L′ associated with the model of  FIG. 2C  can be represented by one of the seven patterns G 0 -G 6  of  FIG. 2D . The patterns G 0  and G 6  represent solid white and solid black (or other monochrome color), respectively. The pattern G 1  is one of four different equivalent overlapping patterns that are mirror image of each other, as is the pattern G 5 . Each of the patterns G 2 , G 3 , G 4  represents one of two different mirror-image overlapping patterns. Therefore, in terms of ink/toner color coverage (gray level), all pixels (located in the rectangular spaces L′ of the conceptual grid pattern G′) of each of the seven patterns G 0 -G 6  are identical within a particular pattern G 0 -G 6 . In other words, each pattern G 0 -G 6  consists of only one gray level and this gray level can be measured exactly. 
     The 2×2 printer model as just described can be used to predict the gray level of any binary (halftone) pattern, because any binary pattern such as the halftone pattern of  FIG. 2C  can be mathematically modeled as a combination of the seven patterns G 0 -G 6 , each of which has a measurable gray level as just described. In other words, after the seven test patches G 0 -G 6  are printed and the gray (color) level of each is measured once, the gray level of any binary halftone pattern can be predicted mathematically and without any additional color measurements. 
     For example, the halftone pattern HP of  FIG. 2C  is shown in  FIG. 3 , along with its corresponding 2×2 based model M, wherein the gray level of each space L′ of the grid G′ is represented by one of the seven 2×2 patterns G 0 -G 6  that has a corresponding color output pattern/coverage for its dots D′. Thus, for example, for the location L′ 00  of the binary pattern HP, the 2×2 pattern G 1  has dots D′ with corresponding color coverage as indicated at M′ 00 , while for the location L′ 50  of the pattern HP the 2×2 pattern G 3  has dots D′ with corresponding color coverage as shown at M′ 50 , and for the location L′ 66  of halftone pattern HP there is no color (blank coverage) which corresponds to the 2×2 test patch G 0  as indicated at M′ 66  of the model M, etc. As such, any binary pattern of ink/toner dots can be modeled as a combination of the 2×2 patterns G 0 -G 6  by selecting, for each dot D′ of the binary pattern, the one of the 2×2 patterns G 0 -G 6  that is defined by dots D′ having color coverage in the locations L′ that equals the color coverage of the corresponding halftone pattern location L′. 
     When a binary pattern HP is represented by a model M comprising a plurality of the patterns G 0 -G 6 , the gray level output of the binary pattern HP can be estimated mathematically, e.g., using the Neugebauer equation with the Yule-Nielsen modification, as follows: 
               G   AVG     y   γ       =       ∑     i   =   0     6     ⁢       n   i     ⁢     G   i     y   γ                 
where G i , i=0 to 6 is the measured gray level of the respective 2×2 patterns G 0 -G 6 , n i  is the number of dots of the corresponding 2×2 pattern occurring in the binary pattern, and γ is the Yule-Nielsen factor, a parameter which is often chosen to optimize the fit of the model to selected measurements of halftone patches. Details of such an optimization are given in S. Wang, K. Knox and C. Hains, “Digital Color Halftones” Digital Color Imaging Handbook, Chapter 6, CRC Press, 2003.
 
     For example, the average gray level of the binary pattern of FIG.  2 B/ FIG. 2C  can be estimated as:
 
 G   AVG =(7 G   0   1/γ +25 G   1   1/γ +7 G   2   1/γ +3 G   3   1/γ +3 G   4   1/γ +3 G   5   1/γ   +G   6   1/γ ) γ 
 
     The color 2×2 printer model can be described in a similar manner. The color 2×2 printer model can predict the color appearance of binary patterns for a given color printer and the color accuracy of the prediction is high for printers with relatively uniform dot shapes, such as inkjet printers. However, xerographic printers usually do not generate uniform round-shape dots for isolated single pixels and the dot overlapping is more complicated as compared to inkjet dot output. As such, the color 2×2 printer model applied to a xerographic printer will typically yield larger prediction errors. 
     The 2×2 test patches G 0 -G 6  shown in  FIG. 2D  are theoretical. For real-world use, each of the test patches G 0 -G 6  can be printed in a variety of different ways. The test patches G 0 ′-G 6 ′ shown in  FIG. 4  illustrate an example of one possible real-world embodiment for printing the seven patterns G 0 -G 6 , respectively. The present development is described hereinbelow with reference to printing and measuring the color of the real-world 2×2 test patches G 0 ′-G 6 ′, and those of ordinary skill in the art will recognize that this is intended to encompass printing and measuring the color of any other test patches that respectively represent and correspond to the patterns G 0 -G 6  in order to satisfy the 2×2 printer model as described herein. It is not intended that the present development, as disclosed below, be limited to use of the particular style of test patches G 0 ′-G 6 ′ or any other particular embodiment of the 2×2 patterns G 0 -G 6 . In general, for the 2×2 printer model to hold, the shape of the printer output dots D′ must be symmetric in the x (width) and y (height) directions, and each dot D′ should be no larger than the size of two output pixel locations L′ in both the x and y directions. The dots D′ need not be circular as shown. It should be noted that the 2×2 test patches G 0 -G 6  and G 0 ′-G 6 ′ as shown in  FIGS. 2D and 4 , are binary in the sense that the “shaded” regions as shown in the patent drawings are “solid” color (black or other color channel) but to comply with Patent Office rules, solid black regions are not used in the patent drawings. 
     SUMMARY 
     In accordance with a first aspect of the present development, a method for compensating for spatial non-uniformities in a printer includes: generating a true average tone response curve for a color channel, wherein the true average tone response curve defines an average true response for the printer across a printed output spatial range; generating a predicted average tone response curve for the color channel, wherein the predicted average tone response curve defines an average predicted response for the printer across the spatial range; generating a predicted true tone response curve for the color channel, wherein the predicted true tone response curve defines an predicted actual response for the printer for each print location in the spatial range; generating an estimated true tone response curve for the color channel using the true average tone response curve, the predicted average tone response curve, and the predicted true tone response curve, wherein the estimated true tone response curve defines an estimated actual response for the printer as a function of each print location in the spatial range and as a function of each possible digital input color level to the printer; using the estimated true tone response curve to correct a digital color level of each pixel of an image for the color channel before printing based upon the print location of each pixel of the image and based upon the digital color level of the pixel. 
     In accordance with another aspect of the present development, a xerographic printing apparatus includes an image processing unit adapted to receive image data from a source, a printing unit comprising a print engine for printing the image data using a color channel to define a printed image, and a color sensor for detecting color values of the printed image printed by the print engine, the color sensor operably connected to the image processing unit to input said color values to the image processing unit. A printed output station for output of the printed image is provided. The image processing unit includes: means for determining a true average tone response curve for the color channel, wherein the true average tone response curve defines an average true response for the printer across a printed output spatial range; means for generating a predicted average tone response curve for the color channel, wherein the predicted average tone response curve defines an average predicted response for the printer across the spatial range; means for generating a predicted true tone response curve for the color channel, wherein the predicted true tone response curve defines a predicted actual response for the printer for each print location in the spatial range; and, means for generating an estimated true tone response curve for the color channel from the true average tone response curve, the predicted average tone response curve, and the predicted true tone response curve, wherein the estimated true tone response curve defines an estimated actual response for the printer for each print location in the spatial range; and means for using the estimated true tone response curve to adjust a digital input level of each pixel of an image before printing based upon the print location of each pixel of the image. 
     In accordance with another aspect of the present development, a method of characterizing the output response of a printer across a spatial range includes: determining a true average tone response curve for the printer across the spatial range by printing a measuring test patches across the spatial range for a plurality of digital input values; printing a plurality of halftone independent binary 2×2 test patches at each location in the spatial range and measuring the gray level of each 2×2 test patch at each location in the spatial range to obtain a measured gray level of each 2×2 test patch at each location in the spatial range; averaging the measured gray level of each 2×2 test patch across the spatial range to obtain an average gray level for each 2×2 test patch; using the measured gray level of each 2×2 test patch at each location in the spatial range in a 2×2 printer model to generate a predicted true tone response curve; using the average gray level of each 2×2 test patch in a 2×2 printer model to generate a predicted average tone response curve; generating an estimated true tone response curve describing a true response of the printer at each location in the spatial range by adjusting true average tone response curve for each location in the spatial range according to the ratio of the predicted true tone response curve to the predicted average tone response curve at said location. 
     In accordance with another aspect of the present development, a method for compensating for spatial non-uniformities in a printer, includes: pre-identifying a plurality of halftones for which said compensation is to be supported; pre-generating a true average tone response for each of the plurality of halftones and for each color channel, wherein the true average tone response curve defines an average across a range of spatial locations on the printed page; receiving a specific halftone from said plurality of supported halftones; printing and measuring a set of halftone-independent binary color patterns; deriving predicted true tone response curve for the halftone and for a given color channel using pre-generated true average tone response for the halftone, and measurements of halftone-independent color patterns. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The development comprises various processes and/or structures and arrangements of same, preferred embodiments of which are illustrated in the accompanying drawings wherein: 
         FIG. 1  diagrammatically illustrates the problem of spatial color drift for printed output; 
         FIG. 2A  illustrates an ideal non-overlapping printer model for halftone patterns; 
         FIG. 2B  corresponds to  FIG. 2A  but illustrates a conventional overlapping circular dot printer model for halftone patterns; 
         FIG. 2C  corresponds to  FIG. 2B  but illustrates a 2×2 printer model for halftone patterns; 
         FIG. 2D  illustrates seven 2×2 patterns that account for all of the 16 possible overlapping printer output dots in the 2×2 printer model; 
         FIG. 3  illustrates an example of modeling a binary (halftone) pattern using a select plurality of the seven 2×2 patterns of  FIG. 2D ; 
         FIG. 4  illustrates one example of real-world representations or “test patches” for the seven 2×2 patterns of  FIG. 2D ; 
         FIG. 5  is a high-level flow chart that discloses a method for halftone independent correction of spatial color non-uniformities in accordance with the present development; 
         FIG. 6  discloses a one-time offline process of the method of  FIG. 5 ; 
         FIG. 7  discloses a 2×2 printing measuring process to obtain 2×2 data to be used in steps C and D of  FIG. 5 ; 
         FIG. 8  (including  FIGS. 8A and 8B ) discloses method for deriving 2×2 predictions for a “true” and a “true average” tone response curve; 
         FIG. 9  shows one example of a 2×2 test pattern for used in correction of horizontal non-uniformities; 
         FIG. 10  shows one example of a 2×2 test pattern for used in correction of vertical non-uniformities; 
         FIG. 11  shows one example of a 2×2 test pattern for used in correction of two-dimensional non-uniformities; 
         FIG. 12  illustrates one example of an apparatus for implementing a system in accordance with the present development. 
     
    
    
     DETAILED DESCRIPTION 
     In accordance with the present development, the monochrome 2×2 printer model ( FIG. 3 ) is used to compensate for or correct spatial non-uniformities in the color of printed output. Because the 2×2 test patches are binary, i.e., not tied to any particular halftone method, this property can be exploited to provide a halftone independent color drift correction method. In accordance with the present development, the monochrome 2×2 model is used to model color output in each individual color channel of the printer. 
       FIG. 5  discloses a method for halftone independent correction of spatial non-uniformities in accordance with the present development. In general, the object is to derive an estimate of the true printer response tone reproduction curve TRC true (x) for each halftone screen H and for each color channel i, i.e., the printer color response as a function of every possible addressable horizontal location x on a printed page, and correspondingly as a function of every possible addressable vertical location y on a printed page, without ever having to perform a full spatial non-uniformity color characterization of the printer. To facilitate describing and understanding the present development based upon the following disclosure, the present disclosure primarily refers to the horizontal spatial locations x, but those of ordinary skill in the art will understand that the development applies equally to the vertical spatial locations y. 
     As shown in  FIG. 5 , the method is implemented for each halftone screen, and within that selection, also for each color channel. In a step A, the true average TRC (TRC true   avg ) is obtained from previous one-time offline process (disclosed in detail in  FIG. 6 ). In a step B, a 2×2 target in accordance with the present development is printed and scanned to obtain scanner gray values as a function of spatial location x, which values are also then averaged across the spatial range to obtain an average 2×2 value. In a step C, the 2×2 scanner values are used to generate a 2×2 prediction of the TRC as a function of spatial location x, i.e., TRC 2×2 (x). In a step D, the average 2×2 scanner values across the spatial range are used to generate a 2×2 prediction of the average TRC, i.e., TRC 2×2   avg . The quantities obtained from steps A, C, and D are used in a step E to estimate the true printer response as a function of spatial location x, i.e., TRC true (x). In a step F, the estimated true printer response TRC true (X) for each halftone screen H and each color channel i is used to adjust the digital input level of the respective image pixels of a digital image at each pixel location x so that the printer outputs a spatially uniform rendition. 
     As described in more detail below, the step E of estimating the true printer response TRC true (x) using the quantities obtained in steps A, C, and D is accomplished by exploiting the following relationship: 
                   TRC   true     ⁡     (     x   ,   i   ,   H     )           TRC   true   avg     ⁡     (     i   ,   H     )         =         TRC     2   ×   2       ⁡     (     x   ,   i   ,   H     )           TRC     2   ×   2     avg     ⁡     (     i   ,   H     )               
where x is a particular location in the spatial range, i is a color channel, and H is a halftone screen. In other words, the relationship of the 2×2 estimated response vs. the true response of the printer can be thought of as being statistically stable or invariant with respect to spatial location. In the following disclosure we will use the terms “stable” and “invariant” in a statistical sense, rather than in a strict deterministic sense.
 
     As noted above, the present development requires that a one-time “offline” process be performed for a printer to obtain the “true average” tone response curve TRC true   avg  for the printer. This “true average” tone response curve TRC true   avg  is stored for later use and is determined using any known test patch printing and measuring step using a variety of digital input color levels to print and measure color test regions or patches (sometimes referred to herein as “true average test patches”) at a variety of spatial locations x across the spatial range. This step can be completed in a relatively efficient manner because only an “average” TRC across the spatial range is derived (not the “true” TRC for each location of the spatial range), so every possible digital input color level need not be used and every possible spatial location in the spatial range need not be printed and measured (keeping in mind that the object of the present development is to avoid having to perform a full characterization wherein every digital input level is used and every possible spatial location is printed and measured to obtain a the “true” TRC for the printer). In one example, for a range of digital input color values, a continuous or discontinuous band comprising the true average test patches of a digital input color value is printed across the spatial range and then measured at a plurality of different spatial locations with a scanner that is part of or separate from the printer. The scanner color measurements are averaged to determine the average printer response across the spatial range for each given digital input value. The data are interpolated to derive the true average tone response curve TRC true   avg  for the subject color channel and halftone screen for all possible digital input levels. This true average tone response curve TRC true   avg  (or more completely expressed as TRC true   avg  (i, H)) is stored for later use, in particular as input to step A of the online process shown in  FIG. 5 . 
     The one-time offline process A is disclosed in more detail with reference to  FIG. 6 . The process is repeated for each halftone screen H (as shown at A 1 ), and for each halftone screen the process is repeated for each color channel i (as shown at A 2 ), e.g., cyan, magenta, yellow, black. For a plurality of different digital input color values or levels (as shown at A 3 ) the printer prints a test patch across the spatial range of the paper (step A 4 ), e.g., horizontally across all pixel locations. The test patch can be a continuous or discontinuous band or other configuration. As part of the step A 4 , a scanner or other device is used to measure the color value of the test patch at multiple locations across the spatial range. The color measurements from step A 4  are used in a step A 5  to derive an average color response value for the subject digital input color level. This process is repeated for a sufficient number of digital input color levels (as indicated at A 6 ), after which a step A 7  is implemented to derive an store the “true average” tone response curve TRC true   avg  for a color channel under a particular halftone screen, and the process is repeated for the next color channel (as indicated at A 8 ) and for the next halftone screen (as indicated at A 9 ) after all color channels are completed for a given halftone screen. In one embodiment, at least 25% of all possible digital input color levels should be used in this process and be distributed evenly throughout the range of possible digital input color levels in order to obtain sufficient data to derive the true average tone response curve TRC true   avg  for the printer (100% of all possible digital input color levels can be used if desired, but this greatly increases the number of test patches and measurements required). As is typically the case, if less than all possible digital input color values are used, the true average tone response curve TRC true   avg  can be derived by smoothly interpolating the measured color values to fill in the missing data points. 
     As noted above, the above offline process of  FIG. 6  is performed only once and the resulting tone response curves TRC true   avg  (i, H) are stored for later use. In contrast, the online processes of  FIG. 5  are implemented each time a need to characterize the spatial color response of the printer arises, e.g., upon initial customer setup or after a repair or upgrade. As noted, these online processes require 2×2 data which is derived by printing and measuring the 2×2 test patches G 0 ′-G 6 ′ for each color channel as disclosed in a 2×2 printing/measuring process T as set forth in  FIG. 7 . Referring to  FIG. 7 , for each color channel (as shown at T 1 ), a step T 2  is performed to print the 2×2 test patches G 0 ′-G 6 ′ across all possible spatial locations x. In a step T 3 , a scanner or other device is used to measure and store the color value of each printed 2×2 test patch at every possible pixel location in the spatial range x. In a step T 4 , the measured color values for each the 2×2 test patch are then averaged across the spatial range, using some or preferably all of the measurements. These processes are repeated for all color channels as indicated at T 5  to obtain all required 2×2 measurements for use as described below. It should be noted that the 2×2 test patch representing no color (test patch G 0 ′ in the present application) need only be printed and measured once and not for each color channel, given that it will have the same measured color value for each color channel. 
       FIG. 8  (including  FIG. 8A  and  FIG. 8B ) discloses an example of the on-line processes C and D of  FIG. 5 , wherein the 2×2 measurement data are used to derive a 2×2 estimate of the true tone response curve TRC 2x2  (i.e., TRC 2×2 (x, i, H)) and a 2×2 estimate of the true average tone response curve TRC 2×2   avg (i.e., TRC 2×2 (i, H)). The processes C and D are carried out for each halftone screen H of the printer (as shown at CD 1 ), for each color channel i within each halftone screen selection (as shown at CD 2 ), and for all possible digital input color levels within the color channel selection (as shown at CD 3 ). A step CD 4  derives the binary output pattern associated with the digital input color level and the subject halftone screen (in other words, for a given digital input level to the halftone screen algorithm, the binary printer output pattern is generated but not printed). The step CD 5  mathematically models the generated binary pattern as a 2×2 image as described above with reference to  FIG. 3 . In a step CD 6 , the average of the measured 2×2 color values (obtained in step T 4  above) are used in the 2×2 model to predict a 2×2 average color for the binary pattern. For each location x in the spatial range (as indicated at CD 7 ), a step CD 8  is carried out to use the corresponding 2×2 color value (the measured 2×2 color value for the same spatial location obtained in step T 3  above) in the 2×2 model to predict a 2×2 color value for the binary pattern at the subject spatial location. As noted at CD 9 , step CD 8  is repeated for each spatial location in the spatial range (e.g., for all horizontal locations x or vertical location y on the printed page), after which as noted at CD 10  the process returns to CD 3  for processing the next digital input color level. As indicated at CD 11 , after all possible digital input color levels are processed, processing returns to CD 2  for the next color channel. As indicated at CD 12 , when all color channels are processed for a halftone screen, processing returns to CD 1  to begin the process anew for the next halftone screen. 
     Those of ordinary skill in the art will recognize that the stored values resulting from step CD 6  define the 2×2 estimate of the true average tone response curve TRC 2×2   avg  (a 2×2 estimate of the average printer response across the spatial range) and that the stored values from step CD 8  define the 2×2 estimate of the true tone response curve TRC 2×2 (x) (a 2×2 estimate of the printer response at each location x in the spatial range) for each color channel and halftone screen H. 
     In the online process E of  FIG. 5 , the desired end result of an estimated true spatial tone response curve TRC true (x, i, H) for the printer is derived using TRC true   avg (i, H), TRC 2×2 (x, i, H), and TRC 2×2   avg (i, H) based upon the following relationship for a given color channel i and halftone screen H: 
                   TRC   true     ⁡     (     x   ,   i   ,   H     )           TRC   true   avg     ⁡     (     i   ,   H     )         =         TRC     2   ×   2       ⁡     (     x   ,   i   ,   H     )           TRC     2   ×   2     avg     ⁡     (     i   ,   H     )               
where x is a particular spatial pixel location in the spatial range. Solving for the desired estimated TRC true (x, i, H) leads to the equation:
 
                 TRC   true     ⁡     (     x   ,   i   ,   H     )       =         TRC   true   avg     ⁡     (     i   ,   H     )       ⁢         TRC     2   ×   2       ⁡     (     x   ,   i   ,   H     )           TRC     2   ×   2     avg     ⁡     (     i   ,   H     )                 
for each spatial location x in the spatial range.
 
     As noted, in the online step F of  FIG. 5 , the estimated true TRC as a function of spatial location x TRC true (x, i, H) is used to generate an appropriate correction to the relevant correspondingly located image pixel data (e.g., ΔE from paper) as a function of the spatial location x (note that the correction can be 0 or no adjustment) and also based upon the particular starting digital input level for the pixel data in the corresponding location of the image to be printed. According to the present development, each pixel of the input image is adjusted as a function of its digital input level and its location x using the estimated TRC true (x, i, H) before printing to ensure a spatially uniform output image. It can thus be seen that the ratio 
                 TRC     2   ×   2       ⁡     (     x   ,   i   ,   H     )           TRC     2   ×   2     avg     ⁡     (     i   ,   H     )             
defines a halftone correction factor HCF that is applied to the true average TRC TRC true   avg (i, H) to obtain the desired end result TRC true (x, i, H) which provides the correction values to be applied to each digital input level as a function of location x for each color channel i and halftone screen H.
 
     It should be noted that the above exploits the fact that: 
                     TRC   true     ⁡     (       x   a     ,   i   ,   H     )           TRC   true     ⁡     (       x   b     ,   i   ,   H     )         =           TRC     2   ×   2       ⁡     (       x   a     ,   i   ,   H     )           TRC     2   ×   2       ⁡     (       x   b     ,   i   ,   H     )         ⁢     ∀   a         ,     b   ∈   X           
where X represents the set of all spatial locations in the spatial range. In other words, there is a spatial invariance, in a statistical sense, between the 2×2 predicted response and the true response of the printer. Equivalently this means that:
 
                   TRC   true     ⁡     (     x   ,   i   ,   H     )           TRC     2   ×   2       ⁡     (     x   ,   i   ,   H     )         =     c   ⁢     ∀     x   ∈   X               
which implies:
 
                   TRC   true   avg     ⁡     (     i   ,   H     )           TRC     2   ×   2     avg     ⁡     (     i   ,   H     )         =           ∫   x     ⁢         TRC   true     ⁡     (     x   ,   i   ,   H     )       ⁢     ⅆ   x             ∫   x     ⁢         TRC     2   ×   2       ⁡     (     x   ,   i   ,   H     )       ⁢     ⅆ   x           =   c           
This means that the ratio of true and 2×2 responses can be replaced by a summed up or averaged ratio. In practice, averaging significantly enhances the robustness of the correction scheme because it reduces the effect of noise
 
       FIG. 9  illustrates one example of test page on which the 2×2 test patches G 0 ′-G 6 ′ are printed. In particular, 4 sets S 1 ,S 2 ,S 3 ,S 4  of seven horizontal rows are repeated on the page, which the rows R 0 -R 6  corresponding respectively to the test patches G 0 ′-G 6 ′, i.e., each row R 0 -R 6  is defined by one of the test patches G 0 ′-G 6 ′ printed across the horizontal spatial range x of the page. Although only one of the sets S 1 -S 4  is required, using the test page as shown in  FIG. 8 , the measured color values for each pixel location can be averaged across the sets S 1 -S 4  to minimize the effect of noise on the printed page or measurement variations. 
     If correction of vertical spatial non-uniformities is of interest, a test page such as shown in  FIG. 10  can be used for printing and measuring the 2×2 test patches G 0 ′-G 6 ′ are printed. In particular, 4 sets S 1 ′,S 2 ′,S 3 ′,S 4 ′ of seven vertical rows are repeated on the page, which the rows R 0 ′-R 6 ′ corresponding respectively to the test patches G 0 ′-G 6 ′, i.e., each row R 0 ′-R 6 ′ is defined by one of the test patches G 0 ′-G 6 ′ printed vertically throughout for the spatial range y of the page. As noted with respect to  FIG. 8 , only one of the sets S 1 ′-S 4 ′ is required, but using multiple sets S 1 -S 4 ′ as shown in  FIG. 9  allows for the measured color values for each pixel location to be averaged across the sets S 1 ′-S 4 ′ to minimize the effect of noise on the printed page or measurement variations. 
       FIG. 11  illustrates one example of a test page on which the 2×2 test patches G 0 ′-G 6 ′ are printed in a pattern that allows for two-dimensional spatial non-uniformity correction, i.e., correction of horizontal and vertical non-uniformities by printing and measuring a single 2×2 test page. This results in sets S 1 ″-S 8 ″ of diagonal rows R 0 ″-R 6 ″, wherein the rows R 0 ″-R 6 ″ correspond respectively to and are defined by a succession of test patches G 0 ′-G 6 ′. 
     The system and/or method of the present development is/are preferably implemented in a printing system such as any commercially available printer, which can be provided as part of a printing and/or reproduction apparatus. Typically, the printer is a xerographic printer although the present development is applicable to other printing methods such as inkjet.  FIG. 12  illustrates one example of an apparatus that is suitable for implementing a method and apparatus in accordance with the present development. The apparatus  10  comprises an image processing unit IPU  14  for carrying out the above-described image processing operations. The IPU  14  is defined by electronic circuitry and/or software that is dedicated to image processing or can comprise a general purpose computer programmed to implement the image processing operations disclosed herein. The IPU  14  is adapted to receive image data from a source such as a scanner  16   a , computer  16   b , and/or data storage  16   c  or another source that is part of the apparatus  10  and/or that is operably connected to the IPU  14 . The apparatus comprises a printing unit  20  comprising a print engine  22  for printing the image data on paper or another printing medium using ink and/or toner as is known in the art, using the CMYK or other color space. The print unit also comprises one or more in-line (i.e., located along the paper travel path) color sensors  24  provided as part of a color scanner or other device such as a colorimeter for detecting the color of the image printed by the print engine. The one or more color sensors are operably connected to the IPU  14  for providing the sensed color data to the IPU as required to implement the above described color drift correction operations. The printer unit  20  further comprises a printed output station  26  for output of the final printed product. 
     While particular embodiments have been described, alternatives, modifications, variations, improvements, and substantial equivalents that are or may be presently unforeseen may arise to applicants or others skilled in the art. Accordingly, the claims as filed and as they may be amended are intended to embrace all such alternatives, modifications variations, improvements, and substantial equivalents.