Abstract:
What is disclosed is a system and method for improving vector half-toning in dot-on-dot printing devices. The method utilizes minimum spatial luminance variation to achieve a smooth color half-toning pattern transition. Red (M+Y), blue (C+M), and green (C+Y) dots in addition to CMY dots are utilized to achieve darker colors without black ink. As gray values to be printed get darker, green, red and blue pixels get introduced. Black is not introduced until the gray values are darker by approximately  30 %. Given a fixed half-toning step, the CMY to CMYKRGB conversion is controlled. The primary CMY color densities are used as high as possible before secondary color dots are used. With the maximum possible primary CMY color densities achieved, the secondary color densities are used as high as possible before using any black dots. This minimizes black dot density generation. Secondary color densities are minimized by maximizing primary color densities.

Description:
TECHNICAL FIELD 
       [0001]    The present invention is generally directed to method for color printer half-toning and, more particularly, to methods for improving the quality of vector half-toning in ink jet products capable of dot-on-dot printing. 
       BACKGROUND 
       [0002]    Raster type printers, which have been implemented with various print engines commonly found in the arts, such as electro-photographic print engines and ink jet print engines, employ half-toning to transform continuous tone image data to print data that can be printed as an array of dots that can be of substantially similar size. For example, 24 bit/pixel continuous tone image data can be half-toned to a plurality of single color one-bit per pixel bitmaps. 
         [0003]    Half-toning may employ a screen having a matrix of different threshold values. A screen can be a data set with different print density values equally represented (or with a controlled unequal distribution for gamma-compensated screens). For monochrome printing, the image data is then compared with the screen thresholds at each position. If the image data exceeds the threshold, a dot is printed. Otherwise, that particular location remains unprinted. 
         [0004]    Improved appearance can be provided using, for example, a pseudo-random stochastic screen having a “blue noise” characteristic. Such screens tend to have threshold values which are distributed so that adjacent values tend to be very different. Thus, any value or limited range of values will tend to be located at positions that are nicely spaced apart on the matrix. In this example, apparently even but random spacing can be emphasized at very low and high density values in a blue noise screen. 
         [0005]    For printing with multiple colors, half-toning presents a particular challenge. For dot-on-dot printing, in which printed locations are printed with one or more dots, a single half-toning screen can be used. For instance, a field of 10% blue would have 10% of locations printed with cyan and magenta ink, while 90% of locations remain unprinted. This has the disadvantage of reduced spatial frequency with respect to methods that distribute dots to different locations. This also tends to give the appearance of darker dots more widely spaced apart, producing a grainy image. The same can be said for clustered dot printing techniques in which different color dots may be printed adjacent to each other or otherwise clustered to create a multi-dot cluster that reads as an intermediate color. Accordingly, it is desirable to print the individual dots at closely spaced separate (non-overlapping) locations, relying on the viewer&#39;s eye to integrate the different color dots into the intended color. 
         [0006]    By using different screens having the threshold values arranged differently, the dots will tend not to align with each other. However, with uncorrelated screens, the printed patterns of different colors will tend to be randomly located with respect to each other. This can generate some graininess of an image as some dots happen to clump near others or overlap. To reduce this with two colors, an inverted screen can be used for one of the colors. An inverted screen often has values equal to the maximum screen value (less the screen value at the corresponding location on the other screen). Thus, 10% blue is printed by printing cyan dots at all locations where the threshold values of the original screen are 25 or less. Magenta dots are printed at locations of values of 230 and above on the original screen (25 or less on an inverted screen). Inverted screens can be limited in usefulness for several reasons. 
         [0007]    First, inverted screens may only be used for two colors. This can be inadequate for most multiple color printing systems. Where image quality is not critical in tri-color Cyan, Magenta, Yellow (CMY) systems, the darker C and M dots may be printed in this way while the less visible yellow dots may be distributed otherwise. For four-color systems employing black ink and for multi-level grayscale printing, the inverted screen may not provide desired image quality. 
         [0008]    Second, for two color systems where one color is printed at the lowest value range positions, and another is printed at the highest value range positions, those positions are not relatively well dispersed with respect to each other in a blue noise screen. Although it will not generate overlapping droplets at less than full coverage printing, a high frequency blue noise screen may lead to clumps of adjacent dots. Beyond the random effects leading to such clumping, widely different values are more likely to be adjacent to each other. 
         [0009]    For three and four color systems, a shifted screen approach has been employed to avoid pure dot-on-dot printing for some colors. This can lead to increased graininess of the image but often generates unwanted low frequency artifacts that are visible in the printed image. Moire patterns may also be generated. 
         [0010]    It can be difficult to achieve substantial uniformity or even distribution of the half-toned dots in dot-on-dot printing devices. Substantial uniformity can be computationally expensive. 
         [0011]    Another cause of half-tone pattern graininess is spatial luminance variation. A basic property of the color map which is advantageous to control is how the light level, or luminance, changes throughout the color map. Luminance is a photometric quantity which, in essence, is the effect of radiance on our eyes. Radiance is the physical quantity related to light intensity, i.e., the power of the light spreading out in some solid angle over an area. Luminance is a single scalar, (i.e., the integration of radiance weighted with a curve), which describes how efficiently different wavelengths of light trigger cone receptors in our eyes. Because luminance is a weighted integral of radiance, a linear relationship exists between the two. Brightness, on the other hand, is the subjective visual experience of luminance. Roughly, it is the effect of luminance on the brain. Because its a subjective quantity, the relationship of brightness to luminance is non-linear, approximately a cube root. 
         [0012]    In many cases, it is desirable that luminance increase monotonically. In other cases, it is desirable that it to remain fixed. One reason why luminance variation is important is because luminance plays a fundamental role in perceptual psychology, i.e., how we perceive details and shapes in images. Perceptual psychology tells us that in most circumstances, luminance is the dominant axis in color perception. But luminance is also how we determine shape from shading. So, if we want to indicate values on a surface of an object by color mapping it, but we also want to show the shape of the object by shading it, then the color map probably shouldn&#39;t have any luminance variations in itself, as these could be perceptually misleading. Therefore, it is important to minimize luminance variation for a given C/M/Y/K input. 
         [0013]    What is needed in this art is a method which maximizes the dot coverage and therefore leaves the least amount of white void, and which uses as many primary dots as possible before switching to secondary dots and finally the black dots. What is further needed is a method which achieves this while avoiding abrupt color and half-tone texture transitions for close CMYK inputs. 
       BRIEF SUMMARY 
       [0014]    What is presented are a novel system, method, and computer program product for improving the quality of vector half-toning in ink jet products capable of dot-on-dot printing. Minimum spatial luminance variation is utilized to achieve a smooth color half-toning pattern transition. Red (M+Y), blue (C+M), and green (C+Y) dots, in addition to CMY dots, are utilized to achieve darker colors without black ink. As gray values to be printed get darker, green, red and blue pixels get introduced. Black is not introduced until the gray values are darker by approximately 30%. Given a fixed half-toning step, the CMY to CMYKRGB conversion is controlled. The primary CMY color densities are used as high as possible before any secondary color dots are used. With the maximum possible primary CMY color densities achieved, the secondary color densities are used as high as possible before using any black dots. This minimizes black dot density generation. Secondary color densities are minimized by maximizing primary color densities. The computational load is effectively reduced. 
         [0015]    More specifically, what is presented is a method for improving the quality of vector half-toning in ink-jet printers capable of dot-on-dot printing. In one example embodiment, the present method involves receiving an input C i /M i /Y i  and a colorant K i . A determination is made whether any of the C i /M i /Y i  is greater than a predetermined threshold. If any of the C i /M i /Y i  is greater than the predetermined threshold, each of the C i /M i /Y i  is clipped such that no other colorant overlaps with k colorant. Any dot of overlapping C, M and Y is replaced by k colorant. A minimum extra black coverage K′ is determined as the amount of K to be replaced by k colorant. For each C i /M i /Y i  the amount of minimum extra black coverage K′ is removed. A minimum total coverage area of a secondary color RGB dot (rgb_area) required to achieve a remaining CMY coverage area is determined. If the minimum total coverage of a secondary color RGB dot area is zero then the input C i M i Y i  channels are all of the primary color coverage. The primary colors can be given by: C o =C 1 ; M o =M 1 ; and Y o =Y 1 . The values of the RBG are: R o =0; G o =0; and B o =0. Since the primary color coverage output comprises all of the primary color coverage, the process is complete. Otherwise, each primary output color which is greater than the minimum total coverage area must be part of a primary dot formation and is calculated as: C 0 =C 1 −rgb_area; M 0 =M 1 −rgb_area; and Y 0 =Y 1 −rgb_area. Each of C 2 /M 2 /Y 2  is to fit a remaining primary color area given by: cmy_area=100−K o −rgb_area−C o −M o −Y o , such that: C 2 =C 1 −C o , M 2 =M 1 −M o , and Y 2 =Y 1 −Y o . The total remaining toner coverage can then be given by: sum 2 =C 2 +M 2 +Y 2 . A resulting primary color coverage output C o /M o /Y o  can be scaled by the ratio of the remaining primary color area over the total remaining toner coverage (r=cmy_area/sum 2 ), such that: C o =C o +C 2 *r, M 0 =M 0 +M 2 *r, and Y 0 =Y 0 +Y 2 *r. The remaining C 3 /M 3 /Y 3  coverage which is dedicated to formation of the secondary color can be adjusted such that: C 3 =C 1 −C o , M 3 =M 1 −M o , and Y 3 =Y 1   31  Y o , to achieve a desired input CMY coverage. The remaining C 3 /M 3 /Y 3  coverage is sorted to produce sorted results {S 1 , S 2 , S 3 }. A secondary color coverage can be determined such that: p=S 1 +S 2 −rgb_area, q=S 1 −p, and m=rgb_area−S 1 . These results can be assigned to each of a secondary color output R o G o B o . 
         [0016]    The foregoing and other features and advantages will be apparent from the following more particular description of the preferred embodiments of the invention, as illustrated in the accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0017]    The foregoing and other features and advantages of the subject matter disclosed herein will be made apparent from the following detailed description taken in conjunction with the accompanying drawings, in which: 
           [0018]      FIG. 1  illustrates a flowchart of one embodiment of the present method for improving the quality of vector half-toning in dot-on-dot printing systems; 
           [0019]      FIG. 2  is a continuation of the flow diagram of  FIG. 1  with processing continuing with respect to node A; and 
           [0020]      FIG. 3  is a block diagram of a computer system useful for implementing one embodiment of the method illustrated in the flow diagram of  FIG. 4 . 
       
    
    
     DETAILED DESCRIPTION 
       [0021]    What is disclosed herein are a system and method for improving the quality of vector half-toning in ink jet products capable of dot-on-dot printing. 
         [0022]    It should also be understood that one of ordinary skill in this art would be readily familiar with color imaging processes and dot-on-dot printing as well as with luminance variations and half-toning techniques found in the art. One of ordinary skill would also be readily familiar with color imaging, and imaging systems, software, and programming sufficient to implement the following functionality and capabilities as described in detail herein in their own imaging environments without undue experimentation. 
         [0023]    In general, what is presented is a method for improving the quality of vector half-toning in ink-jet printers capable of dot-on-dot printing. The method involves receiving an input C i /M i /Y i  and a colorant K i . A determination is made whether any of the C i /M i /Y i  is greater than a predetermined threshold. If any of the C i /M i /Y i  is greater than the predetermined threshold, each of the C i /M i /Y i  is clipped such that no other colorant overlaps with k colorant. Any dot of overlapping C, M and Y is replaced by k colorant. A minimum extra black coverage K′ is determined as the amount of K to be replaced by k colorant. For each C i /M i /Y i  the amount of minimum extra black coverage K′ is removed. A minimum total coverage area of a secondary color RGB dot (rgb_area) required to achieve a remaining CMY coverage area is determined. If the minimum total coverage of a secondary color RGB dot area is zero then the input C i M i Y i  channels are all of the primary color coverage. The primary colors can be given by: C o =C 1 ; M o =M 1 ; and Y o =Y 1 . The values of the RBG are: R o =0; G o =0; and B o =0. Since the primary color coverage output comprises all of the primary color coverage, the process is complete. Otherwise, each primary output color which is greater than the minimum total coverage area must be part of a primary dot formation and is calculated as: C 0 =C 1 −rgb_area; M 0 =M 1 −rgb_area; and Y 0 =Y 1 −rgb_area. Each of C 2 /M 2 /Y 2  is to fit a remaining primary color area given by: cmy_area=100−K o −rgb_area−C o−M   o −Y o , such that: C 2 =C 1 −C o , M 2 =M 1 −M o , and Y 2 =Y 1 −Y o . The total remaining toner coverage can then be given by: sum 2 =C 2 +M 2 +Y 2 . A resulting primary color coverage output C o /M o /Y o  can be scaled by the ratio of the remaining primary color area over the total remaining toner coverage (r=cmy_area/sum 2 ), such that: C o =C o +C 2 *r, M 0 =M 0 +M 2 *r, and Y 0 =Y 0 +Y 2 *r. The remaining C 3 /M 3 /Y 3  coverage which is dedicated to formation of the secondary color can be adjusted such that: C 3 =C 1 −C o , M 3 =M 1 −M o , and Y 3 =Y 1 −Y o , to achieve a desired input CMY coverage. The remaining C 3 /M 3 /Y 3  coverage is sorted to produce sorted results {S 1 , S 2 , S 3 }. A secondary color coverage can be determined such that: p=S 1 +S 2 −rgb_area, q=S 1 −p, and m=rgb_area−S 1 . These results can be assigned to each of a secondary color output R o G o B o . 
         [0024]    Reference is now being made to  FIG. 1  illustrating one embodiment of the input CMYK to output CMYKRGB conversion. 
         [0025]    In order to simplify the discussion hereof, several assumptions are made. First, it is assumed that any C, M and Y overlapping is replaced by a k colorant. Second, no other colorant is allowed to overlap with colorant k. One skilled in this art would understand that these two assumptions are typical of solid ink printers. These assumptions should not be viewed as limiting. If necessary, these two constraints can be removed. It is also assumed that the ink coverage range of each colorant is scaled from 0 to 100. 
         [0026]    In the embodiment shown, at step  100 , the method receives C i /M i /Y i  and K i  channel inputs. At step  102 , a determination is made whether any of the input C i /M i /Y i  channels are greater than 100−K i . If these channels are greater than 100−K i , then they are clipped, at  104 , to meet the previous assumption that no other colorant be allowed to overlap with a dot of k colorant. 
         [0027]    At step  106 , the total remaining toner coverage is computed. The total toner coverage is determined as the values of C, M, and Y added together. The total remaining toner coverage is thus given by: sum i =C i +M i +Y i . 
         [0028]    At step  108 , the minimum extra black coverage K′ is determined. The minimum extra black coverage is the amount of the K to be replaced by k colorant required to achieve the desired input CMY coverage. The minimum extra black coverage is given by: K′=max(sum i −200+2*K i , 0). The value of K 0  is given by: K o =K i +K′. 
         [0029]    At step  110 , each of the remaining C i /M i /Y i  ink coverages is computed as the value of the color less the extra black coverage required. Thus the remaining ink coverages are given by: C 1 =C i −K′, M 1 =M i =K′, and Y 1 =Y i −K′. The total remaining toner coverage is: sum 1 =C 1 +M 1 +Y 1 . 
         [0030]    At step  112 , the values of C 0 , M 0  and Y 0  are set to zero, and the minimum total coverage of the secondary color dots RGB required to achieve the desired CMY coverage is computed. The minimum total coverage of the secondary color RGB is the total RGB area, and is given by: rgb_area=max(sum 1 −100+K o , 0). 
         [0031]    At step  114 , a determination is made whether the computed total coverage of the secondary color RGB (rgb_area) equals zero. 
         [0032]    At step  116 , if rgb_area is zero then there is no RGB dot coverage needed. Thus, the primary color coverages can be given by: C o =C 1 ; M o =M 1 ; and Y o =Y 1 . Since there is no RGB dot coverage needed, R o =0; G o =0; and B o =0. The process is complete. Otherwise, the flow continues with respect to node A of  FIG. 2 . 
         [0033]    Reference is now being made to  FIG. 2  which is a continuation of the flow diagram of  FIG. 1 . Next, a determination needs to be made as to how much CMY color coverage belongs to primary color coverage. 
         [0034]    At step  200 , a determination is made whether any C i /M i /Y i  coverage is greater than the total coverage of the secondary color RGB area (rgb_area). Any portion of C i /M i /Y i  coverage that is greater than the rgb_area belongs to the primary color coverage because the same colorant cannot overlap itself. 
         [0035]    At step  202 , each primary color channel, which is greater than the computed total coverage area, must be part of primary dot formation and is calculated as: C 0 =C 1 −rgb_area; M 0 =M 1 −rgb_area; and Y 0 =Y 1 −rgb_area. 
         [0036]    At step  204 , the color coverage, given by C 2 /M 2 /Y 2 , is scaled to fit a remaining primary color area (cmy_area) in order to enforce the continuity constraint to minimize the potential abrupt color and half-tone texture transition artifact for close CMYK input. The remaining C 3 /M 3 /Y 3  coverage which is dedicated to formation of the secondary color coverage can be adjusted such that: C 3 =C 1 −C o , M 3 =M 1 −M o , and Y 3 =Y 1 −Y o , to achieve a desired input CMY coverage. The total toner coverage is given by: sum 2 =C 2 +M 2 +Y 2 . And, the remaining primary color area becomes: cmy_area=100−K o −rgb_area−C o −M o −Y o . 
         [0037]    At step  206 , the resulting primary color coverage output C o /M o /Y o  and the remaining color coverage C 3 /M 3 /Y 3  are computed from the secondary color RGB dots to achieve the desired input CMY coverage. Thus, the primary color coverage is given by: C o =C o +C 2 *r; M 0 =M 0 +M 2 *r; and Y 0 =Y 0 +Y 2 *r and the remaining color coverage is given by: C 3 =C 1 −C o , M 3 =M 1 −M o , and Y 3 =Y 1 −Y o , where r=cmy_area/sum 2 . 
         [0038]    At step  208 , a descending sort of the remaining C 3 /M 3 /Y 3  coverage is performed. The resulting sorted order is given as {S 1 , S 2 , S 3 }. A sort order index (A) is obtained. 
         [0039]    At step  210 , the quantities of three secondary color coverages, p, q and m are given by: p=S 1 +S 2 −rgb_area; q=S 1 −p; and m=rgb_area−S 1 ; 
         [0040]    At step  212 , the assignment to secondary color output R o G o B o  can be determined through a lookup table (LUT) using the obtained sort order index A. Table 1 shows a secondary color output lookup-table indexed by sort order. 
         [0000]    
       
         
               
               
             
               
               
               
               
               
               
               
             
           
               
                   
                 TABLE 1 
               
             
             
               
                   
                   
               
               
                   
                 Sort Index 
               
             
          
           
               
                 Output 
                 [1 2 3] 
                 [1 3 2] 
                 [2 1 3] 
                 [2 3 1] 
                 [3 1 2] 
                 [3 2 1] 
               
               
                   
               
               
                 R o   
                 m 
                 m 
                 q 
                 p 
                 q 
                 p 
               
               
                 G o   
                 q 
                 p 
                 m 
                 m 
                 p 
                 q 
               
               
                 B o   
                 p 
                 q 
                 p 
                 q 
                 m 
                 m 
               
               
                   
               
             
          
         
       
     
         [0041]    One half-toning algorithm to be applied afterwards is disclosed in U.S. Pat. No. 6,250,773 entitled:  Color Printer Halftoning Method , to Yao et al, (June 2001), which is incorporated herein by reference in its entirety. 
         [0042]    Table 2 provides sample results. 
         [0000]    
       
         
               
               
             
               
               
               
               
               
               
               
               
             
               
               
               
               
               
               
               
               
             
           
               
                   
                 TABLE 2 
               
             
             
               
                   
                   
               
               
                   
                 Output 
               
             
          
           
               
                 CMYK Input 
                 C 
                 M 
                 Y 
                 K 
                 R 
                 G 
                 B 
               
               
                   
               
             
          
           
               
                 (40, 50, 0, 0) 
                 40 
                 50 
                 0 
                 0 
                 0 
                 0 
                 0 
               
               
                 (30, 50, 70, 0) 
                 6.9231 
                 11.5385 
                 31.5385 
                 0 
                 26.9231 
                 11.5385 
                 11.5385 
               
               
                 (50, 70, 90, 0) 
                 0 
                 0 
                 0 
                 10 
                 50 
                 30 
                 10 
               
               
                 (50, 20, 40, 40) 
                 4.5455 
                 1.8182 
                 3.6364 
                 40.0000 
                 4.5455 
                 31.8182 
                 13.6364 
               
               
                 (20, 60, 80, 50) 
                 0 
                 0 
                 0 
                 70 
                 30 
                 0 
                 0 
               
               
                 (100, 100, 100, 0) 
                 0 
                 0 
                 0 
                 100 
                 0 
                 0 
                 0 
               
               
                   
               
             
          
         
       
     
         [0043]    It should be understood that the flow diagrams depicted herein are illustrative. Other operations, for example, may be added, modified, enhanced, condensed, integrated, or consolidated. Variations thereof are envisioned and are intended to fall within the scope of the appended claims. 
         [0044]    Reference is now being made the system of  FIG. 3  illustrating one embodiment of a block diagram of a computer system useful for implementing the method illustrated in the flow diagrams of  FIGS. 1 and 2 . 
         [0045]    The computer system  300  can be, for example, a xerographic system, a photocopier, or printing device. The computer system includes one or more processors, such as processor  306  capable of executing machine executable program instructions. In the embodiment shown, the processor is in communication with bus  302  (e.g., a backplane interface bus, cross-over bar, or data network). The computer system also includes a main memory  304  that is used to store machine readable instructions. The main memory also being capable of storing data. Main memory may alternatively include random access memory (RAM) to support reprogramming and flexible data storage. Buffer  366  is used to temporarily store data for access by the processor. Program memory  364  includes, for example, executable programs that implement the embodiments of the methods described herein. The program memory storing at least a subset of the data contained in the buffer. 
         [0046]    Computer system  300  includes a display interface  308  that forwards data from communication bus  302  (or from a frame buffer not shown) to display  310 . 
         [0047]    Computer system  300  also includes a secondary memory  312  includes, for example, a hard disk drive  314  and/or a removable storage drive  316  which reads and writes to removable storage  318 , such as a floppy disk, magnetic tape, optical disk, etc., that stores computer software and/or data. The secondary memory alternatively includes other similar mechanisms for allowing computer programs or other instructions to be loaded into the computer system. Such mechanisms include, for example, a removable storage unit  322  adapted to exchange data through interface  320 . Examples of such mechanisms include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable units and interfaces which allow software and data to be transferred. 
         [0048]    The computer system  300  includes a communications interface  324  which acts as both an input and an output to allow software and data to be transferred between the computer system and external devices. Examples of a communications interface include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc. 
         [0049]    Computer programs (also called computer control logic) may be stored in main memory  304  and/or secondary memory  312 . Computer programs may also be received via communications interface  324 . Such computer programs, when executed, enable the computer system to perform the features and capabilities provided herein. Software and data transferred via the communications interface can be in the form of signals which may be, for example, electronic, electromagnetic, optical, or other signals capable of being received by a communications interface. These signals are provided to a communications interface via a communications path (i.e., channel) which carries signals and may be implemented using wire, cable, fiber optic, phone line, cellular link, RF, or other communications channels. 
       Other Variations 
       [0050]    Terms such as, computer program medium, computer executable medium, computer usable medium, and computer readable medium, are used herein to generally refer to media such as main memory and secondary memory, removable storage drive, a hard disk installed in a disk drive, and signals. These computer program products are means for providing instructions and/or data to the computer system. The computer readable medium stores data, instructions, messages packets, or other machine readable information. The computer readable medium, for example, may include non-volatile memory, such as a floppy, ROM, flash memory, disk memory, CD-ROM, and other permanent storage. It is useful, for example, for transporting information, such as data and computer instructions, between computer systems. Furthermore, the computer readable medium may comprise computer readable information in a transitory state medium such as a network link and/or a network interface, including a wired network or a wireless network, that allow a computer to read such computer readable information. 
         [0051]    It should also be understood that the method described in the flowcharts provided herewith can be implemented on a special purpose computer, a micro-processor or micro-controller, an ASIC or other integrated circuit, a DSP, an electronic circuit such as a discrete element circuit, a programmable device such as a PLD, PLA, FPGA, PAL, PDA, and the like. In general, any device capable of implementing a finite state machine that is in turn capable of implementing one or more elements of the flow diagrams provided herewith, or portions thereof, can be used. Portions of the flow diagrams may also be implemented partially or fully in hardware in conjunction with machine executable instructions. 
         [0052]    Furthermore, the flow diagrams hereof may be partially or fully implemented in software using object or object-oriented software development environments that provide portable source code that can be used on a variety of computer, workstation, server, network, or other hardware platforms. One or more of the capabilities hereof can be emulated in a virtual environment as provided by an operating system, specialized programs, or from a server. 
         [0053]    The teachings hereof can be implemented in hardware or software using any known or later developed systems, structures, devices, and/or software by those skilled in the applicable art without undue experimentation from the functional description provided herein with a general knowledge of the relevant arts. 
         [0054]    Moreover, the methods hereof may be readily implemented as software executed on a programmed general purpose computer, a special purpose computer, a microprocessor, or the like. In this case, the methods hereof can be implemented as a routine embedded on a personal computer or as a resource residing on a server or workstation, such as a routine embedded in a plug-in, a photocopier, a driver, a scanner, a photographic system, a xerographic device, or the like. The methods provided herein can also be implemented by physical incorporation into an image processing or color management system. 
         [0055]    One or more aspects of the methods described herein are intended to be incorporated in an article of manufacture, including one or more computer program products, having computer usable or machine readable media. For purposes hereof, a computer usable or machine readable media is, for example, a floppy disk, a hard-drive, memory, CD-ROM, DVD, tape, cassette, or other digital or analog media, or the like, which is capable of having embodied thereon a computer readable program, one or more logical instructions, or other machine executable codes or commands that implement and facilitate the function, capability, and methodologies described herein. 
         [0056]    Furthermore, the article of manufacture may be included on at least one storage device readable by a machine architecture or other xerographic or image processing system embodying executable program instructions capable of performing the methodology described in the flow diagrams. Additionally, the article of manufacture may be included as part of a xerographic system, an operating system, a plug-in, or may be shipped, sold, leased, or otherwise provided separately either alone or as part of an add-on, update, upgrade, or product suite. 
         [0057]    It will be appreciated that various of the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Various presently unforeseen or unanticipated alternatives, modifications, variations, or improvements therein may become apparent and/or subsequently made by those skilled in the art which are also intended to be encompassed by the following claims. Accordingly, the embodiments set forth above are considered to be illustrative and not limiting. Various changes to the above-described embodiments may be made without departing from the spirit and scope of the invention.