Abstract:
A method of constructing a halftone screen includes selecting a frequency and screen angle of interest. A subcell having spatial vectors which satisfy the selected frequency and screen angle of interest is identified. A supercell comprising an array of the subcells is formed. An integer relationship potentially having numerous solutions exists between the supercell and the subcell. The integer relationship is solved for values of the integers and then tested against the values for the subcell spatial vectors. Although the solution may in some cases be the null set, in many cases there will be numerous solutions. Each resulting solution, if any, is then tested according to any additional constraints or tolerances specified for the particular halftone screen. If any of the resulting supercell solutions satisfies the tests, that supercell may be used to create a halftone screen.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
       [0001]    This application is related to co-pending, co-assigned U.S. patent application Ser. No. 09/698,104 filed Oct. 30, 2000, U.S. patent application Ser. No. 09/909,319 filed Jul. 13, 2001 and U.S. patent application Ser. No. 09/905,556 filed Jul. 13, 2001, the disclosure of which applications are incorporated herein by reference. 
     
    
     
       FIELD OF THE INVENTION  
         [0002]    This invention relates to color printing, and more particularly, to a process for designing optimized halftone screens formed of combinations of non-orthogonal supercells.  
         BACKGROUND OF THE INVENTION  
         [0003]    Halftoning or screening is the reproduction of grayscale images using dots of a single shade but varying size to simulate the different shades of gray. The pattern of dots in a halftone screen may be coarse or fine. The frequency of a screen is usually known as its screen ruling and is generally defined in “lines per inch (lpi)”. A screen ruling of “60 lpi” means that sixty dots lie along a linear inch, measured along the axis which brings the dots closest together, its screen angle. When a digital marking engine is used to produce a screen pattern, the available grid of machine pixels is divided into tiles called “halftone cells”, each of which cell contains a number of machine pixels. A pattern of halftone dots is created by getting the marking engine to mark some of the machine pixels within each halftone cell, leaving others unmarked.  
           [0004]    Each halftone cell is typically a two dimensional array of predetermined threshold levels. The halftone cells are spatially replicated and tiled to form a halftone screen. Halftone screening compares the required continuous color tone level of each pixel for each color separation with one of the predetermined threshold levels. If the required color tone level is darker than the threshold halftone level, a color spot is printed at the specified pixel. Otherwise the color spot is not printed. Typically, the shape and tiling geometry of the halftone cell is a square, rectangle, parallelogram, line, or the like.  
           [0005]    Because of the constraints of the machine pixel grid, not all arbitrary rotations of halftone screens can be implemented digitally. There are many methods of generating rotated halftone screens. In the rational tangent method, each halftone cell is exactly the same size and shape as its neighbors and contains the same number of machine pixels. However, there are relatively few combinations of screen angles and frequency that work and the quantization errors of angle and frequency can be quite large.  
           [0006]    It is important to have a large number of possible screen angles to select from in full color printing using overlaid halftone screens for each of the cyan, magenta, yellow and black separations. In addition to quantization errors, in two, three and four color printing visible moire may result from the interference between overlapping dot patterns. Also, different types of images frequently require different types of halftone screens. Since a particular halftone screen may not work for all image types in a particular output job, much effort has gone into the design of optimized halftone screens. For example, various digital halftone screens having different shapes and angles are described in “An Optimum Algorithm for Halftone Generation for Displays and Hard Copies,” by T. M. Holladay, Proc. Soc. for Information Display, 21, p. 185 (1980).  
           [0007]    Supercells have been used to increase the angular accuracy of the halftone screen and to reduce the number of tone levels that the screen can produce. A supercell is generally an array of halftone cells, however not all of the individual halftone cells in the supercell need be the same size or shape. The supercell fits over the machine pixel grid using the rational tangent method.  
           [0008]    Halftone screens formed of supercells offer designers a greater number of screen angles from which to choose for finding a particular optimized solution. However, searching for supercells can be time consuming and current techniques are limited to searching orthogonal-shape supercells, therefore, do not provide a complete set of solutions. It is desirable to have more design techniques which provide an even greater number of screen angles. It is desirable to have a technique for finding supercells which can be in general parallelogram shape.  
         SUMMARY OF THE INVENTION  
         [0009]    Halftone screens formed of non-orthogonal supercells, where both the supercell and the subcells are defined by arbitrary spatial vectors, provide the halftone designer with a new source of optimized halftone screens. A method of constructing a halftone screen includes selecting a frequency and screen angle of interest. A subcell having spatial vectors which satisfy the selected frequency and screen angle of interest is identified. A supercell comprising an array of the subcells is formed. An integer relationship potentially having numerous solutions exists between the supercell and the subcells. The integer relationship is solved for values of the integers and then tested against the values for the subcell spatial vectors. Although the solution may in some cases be the null set, in many cases there will be numerous solutions. Each resulting solution, if any, is then tested according to any additional constraints or tolerances specified for the particular halftone screen. If any of the resulting supercell solutions satisfies the tests, that supercell may be used to create a halftone screen.  
           [0010]    Supercells may be generated for any desired frequency and screen angle constraints and for any other constraints that can be translated into a set of spatial vectors. If the desired constraints pertain to moiré-free color halftoning, for example, the number of solutions using non-orthogonal supercells is frequently an order of magnitude greater than the number of solutions using orthogonal supercells. 
       
    
    
     DESCRIPTION OF THE DRAWINGS  
       [0011]    [0011]FIG. 1 is two-dimensional spatial vector representation of a single-cell halftone cell;  
         [0012]    [0012]FIG. 2 is a frequency vector representation of the halftone cell of FIG. 1;  
         [0013]    [0013]FIG. 3 is a two-dimensional spatial representation of a supercell hafltone screen;  
         [0014]    [0014]FIG. 4 is a two-dimensional spatial representation of two tiled supercell halftone screens;  
         [0015]    FIGS.  5  is a flow chart outlining one exemplary embodiment of a method for constructing a supercell halftone screen;  
         [0016]    [0016]FIG. 6 is flow chart outlining a method of halftoning and rendering a color image; and  
         [0017]    [0017]FIG. 7 is a block diagram of an image processor operative to perform the method of FIG. 6. 
     
    
     DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS  
       [0018]    As shown in FIG. 1, a single-cell halftone screen can be an arbitrarily shaped parallelogram, which can be represented in the spatial domain by two vectors, V 1 =(x 1 , y 1 ) and V 2 =(x 2 , y 2 ). In other words, the two spatial vectors V 1  and V 2  are specified by spatial coordinate values x 1 , y 1 , x 2  and y 2 . If the given single-cell halftone screen represented by the graph shown in FIG. 1 is used by a halftone screening system, such as that shown in FIG. 7, the output will appear as a two-dimensional repeated or tiled pattern.  
         [0019]    It should be appreciated that, by using Fourier analysis, a two-dimensional repeated pattern can be represented in the frequency domain by two frequency vectors, F 1 =(f X1 , f Y1 ) and F 2 =(f X2 , f Y2 ). FIG. 2 illustrates, for example, the two frequency vectors, F 1  and F 2 , corresponding to the Fourier transforms of the two spatial vectors, V 1  and V 2 , respectively. It should also be appreciated that the two frequency vectors F 1  and F 2  are perpendicular to the two spatial vectors V 1  and V 2 , respectively, and that their vector lengths are given by:  
                      F   1          =     1            V   2        sin                 θ              ,     and             (1a)                        F   2          =     1            V   1        sin                 θ              ;           (1b)                               
 
         [0020]    where θ represents the angle between the vectors V 1  and V 2 , which is also equal to the angle between the frequency vectors F 1  and F 2 . In general, the moduli |F 1 | and |F 2 | are real numbers.  
         [0021]    Also, the area A of the parallelogram encompassed by V 2  and V 1  can be represented as: 
           A=|V   1   V   2  sin θ|  (2a) 
         [0022]    Alternately, the area A of the parallelogram can be written as a function of the spatial coordinates x 1 , y 1 , x 2  and y 2 ; i.e., as: 
           A=|x   1   y   2   −x   2   y   1 |  (2b) 
         [0023]    Correspondingly, using Eqs. (2a) and (2b), Eqs. (1a) and (1b) can be recast as:  
                      F   1          =            V   1          A       ,     and             (3a)                      F   2          =              V   2          A     .             (3b)                               
 
         [0024]    The vectors F 1  and F 2  can be decomposed into their scalar components as:  
                 f     x   1       =       -     y   1       A       ,           (4a)                   f     y   1       =       x   1     A       ,           (4b)                   f     x   2       =       -     y   2       A       ,     and             (4c)                 f     y   2       =         x   2     A     .             (4d)                               
 
         [0025]    Substitute x 1 , y 1 , x 2  and y 2  in Eq. (2b) by Eqs. (4a)-(4d), the area A of the parallelogram can be also written in terms of frequency components, i.e., 
           A =1/| f   x1   f   y2   −f   x2   f   y1 |  (4e) 
         [0026]    Therefore, Eqs. (4a)-(4d) express the frequency-to-spatial-component relationship for a cell defined by the spatial vectors V 1  and V 2 . The frequency components, f x1 , f y1 , f x2 , and f y2 , can be completely defined by the four coordinate values, x 1 , y 1 , x 2  and y 2 , and vice versa. Since Eqs. (4a)-(4d) describe a corresponding “mapping” of the frequency components to the spatial components, it should be appreciated that any analysis of the desired conditions in the frequency domain can be easily translated into a spatial domain specification. It should be appreciated that, while the above equations are developed in relation to a non-orthogonal single-cell halftone cell having a parallelogram-like shape, it is considered that orthogonal parallelograms, for example, squares, rectangles, etc, are special cases of general non-orthogonal parallelograms and above equations are certainly suitable to describe orthogonal parallelogram shaped cells.  
         [0027]    Referring to FIGS. 3 and 4, a supercell is defined by two arbitrary spatial vectors u 1 =(m 1 , n 1 ) and u 2 =(m 2 , n 2 ) that form a parallelogram, where m 1 , n 1 , m 2  and n 2  are integers. The supercell is an array of subcells, which are defined by two vectors v 1 =(x 1 , y 1 ) and v 2 =(x 2 , y 2 ) that form the parallelogram where x 1 , y 1 , x 2  and y 2  are real numbers. A method described herein finds all possible supercell parallelograms that have the property that when the supercell parallelogram is tiled, the subcell can also be tiled. FIG. 4 shows two supercells defined by vectors u 1  and u 2  which are tiled.  
         [0028]    Both the supercell and the subcell are generally represented by parallelograms. It should be noted, however, that both the supercell and the subcell can be any arbitrarily shaped polygon that is capable of being tiled in a periodic array. The arbitrarily shaped subcell can be fitted within the parallelogram.  
         [0029]    A method of constructing non-orthogonal supercells includes selecting a subcell based on a desired frequency and screen angle and then finding all the supercells that can be formed using the desired subcell. Finding all supercell solutions includes searching a generalized relationship between the supercell and subcell for integer solutions. Once a series of integer solutions are determined, the solutions are tested against the original requirements and any other specified constraints. Supercells can be designed for any desired properties that can be transformed into spatial vector relationship, including moiré-free conditions. The methods described herein may be used in combination with the methods described in co-pending, co-assigned U.S. patent application Ser. No. 09/698,104 filed Oct. 30, 2000, U.S. patent application Ser. No. 09/909,319 filed Jul. 13, 2001 and U.S. patent application Ser. No. 09/905,556 filed Jul. 13, 2001.  
         [0030]    The inventors found that a simple relationship exists between the subcell and the supercell: 
           k   1   v   1   +k   2   v   2   =u   1   5(a) 
           k   3   v   1   +k   4   v   2   =u   2   5(b) 
         [0031]    where k 1 , k 2 , k 3  and k4 are integers. Unfortunately, as of the time of the invention, equations 5(a) and 5(b) cannot be solved analytically. It is possible that, in the future, advanced computing and analytical resources may be developed that will enable an analytical solution to equations 5(a) and 5(b). Furthermore, equations 5(a) and 5(b) frequently do not have any solutions. Based on current analytical tools and computing power available, most solutions involve approximating v 1  and v 2 . Thus for most practical applications, based on the current state of technology, a tolerance level is usually given as part of the design parameters.  
         [0032]    For the supercell in FIGS. 3 and 4, the corresponding equations are: 
           u   1 =5 v   1 −2 v   2  and 
           u   2 =2 v   1 +3 v   2   
         [0033]    Equations 5(a) and 5(b) can be converted into scalar equations: 
           m   1   =k   1   x   1   +k 2 x   2   6(a) 
           n   1   =k   1   y   1   +k   2   y   2   6(b) 
           m   2   =k   3   x   1   +k   4   x   2   6(c) 
           n   2   =k   3   y   1   +k   4   y   2   6(d) 
         [0034]    Referring to FIG. 5, equations 5(a) and 5(b) can be (approximately) solved by a direct searching. Direct searching involves specifying values for certain parameters of the equations, then solving for the remaining parameters.  
         [0035]    In step  100  desired frequencies and screen angles are specified by two frequency vectors, F 1 =(f X1 , f Y1 ) and F 2 =(f X2 , f Y2 ). The corresponding spatial specification by vectors V 1  and v 2  is obtained by solving Eqs. (4a)-(4d) in step  110 .  
         [0036]    In step  120  we select a set of integer values, k 1 , k 2 , k 3  and k 4 , which will be incremented to the maximum value K, respectively. Note that k 1  to k 4  can be positive and negative integers and we loop through all possible k 1  to k 4  combinations. For a given set of k 1 , k 2 , k 3  and k 4 , we calculate Eqs. (5a) and (5b) in step  130  to find the exactly desired supercell solution, u 1  and u 2 , which in general are real-number specified. Next, in step  140 , an approximate integer solution of the supercell is found by rounding off the real-number vectors, u 1  and u 2 , to the closest integer vectors, u′ 1 (m 1 , n 1 ) and u′ 2 (m 2 , n 2 ), where m 1 , n 1 , m 2  and n 2  are integers. To check if the approximate solution, u′ 1  and u′ 2 , satisfies the tolerance requirement, in step  150 , the corresponding subcell, v′ 1  and v′ 2  is calculated by solving Eqs. (5a) and (5b) with integer vectors u′ 1  and u′ 2 . In step  160 , the approximate solution v′ 1  and v′ 2  is compared with the desired subcell v 1  and v 2 . If the difference is within the tolerance, the supercell solution, u′ 1 and u′ 2 , is saved (step  170 ), otherwise, the searching loop continues with another set of integers, k 1 , k 2 , k 3  and k 4  (step  180 ).  
         [0037]    The foregoing generated supercells can be used in a halftone screen in a method of halftoning and rendering. Referring to FIG. 6, in summary, a method  1910  of halftoning and rendering a color image, that solves a predetermined requirement, can begin with an analization step  1912 . In the analization step  1912  various requirements, such as process effects, characteristic of a target rendering device, particular image type requirements or other requirements, are considered. For example, process effects such as directions and frequency components of effects, such as, for example, development order effects, dual beam effects, photoreceptor velocity non-uniformity effects, mirror wobble effects, and/or raster start position jitter effects, may be determined.  
         [0038]    In a screen set selection step  1914  a search is carried out to find a set of halftone screens having fundamental screen frequencies and screen angles. The search may be carried out using the method described with reference to FIGS.  5 A- 5 D in order to find a set of halftone screens formed of supercells.  
         [0039]    Once a screen set has been selected, colorants or color separations are associated with individual screens from the selected set, in screen association step  1916 . When colorants have been associated with respective screens from the selected screen set, an image is received in a color image reception step  1918 . The image may be received from any image source. For example, the image may be received directly from an image authoring tool, via a computer network, from digital media, such as a magnetic or optical disk, or from the output of a document scanner. Whatever the source, the image is either in a raster format or a rasterized version is created through known rasterization processes. In the rasterization process or subsequent to the rasterization process, the image is separated into color planes related to the colorants previously associated with screens from the selected screen set.  
         [0040]    In a rendering step  1920 , each color separation is halftoned through the halftone screen of the related colorant and rendered in a rendering step  1922 . The image is rendered through the use of a rendering device, such as, for example, a xerographic printer, a lithographic printer, an inkjet printer or other printer or display device. For example, the method is beneficially applied to at least some image-on-image xerographic printers and in many lithographic environments.  
         [0041]    Referring to FIG. 7, an exemplary image processor  2010  operative to carry out a method  1910  of halftoning and rendering a color image in accordance with a predetermined set of optimization parameters, includes a screen set repository  2014 , a halftoner  2018 , an image input device  2022 , a temporary image storage device  2026 , a long term or bulk storage device  2030 , general image processor components and functions  2034 , a rendering device  2038  and a screen set searcher  2042 .  
         [0042]    The image input device  2022  can be any image data source. For example, the image input device  2022  can be a scanner, electronic media reader such as, a disk drive, cdrom drive, or computer communications network connection. Whatever the source, image data is stored in the temporary image storage device  2026 . The temporary image storage device  2026  is, for example, a computer memory.  
         [0043]    The screen set repository  2014  includes a non-volatile memory device. The screen set repository  2014  stores and provides access to a selected set of halftone screens, such as, a set of screens selected in the screen set selection step  1914 . The selected screens are predetermined and loaded into the screen set repository. The screen set selection may be based on characteristics and idiosyncrasies of, for example, the print engine  2038  or the screen selection may be based on predetermined optimization requirements, such as image type. Alternatively the screen set may be selected in real time by the screen set searcher  2042 . The screen set searcher  2042  selects a screen set based, for example, on rendering preferences determined, by a processor operator or other expert or agent (not shown). Again, the selection may be based on the characteristics of the print engine  2038  or some other defined criteria. The halftoner  2018  reviews the image data in the temporary storage device  2026  and communicates with the selected screen set repository  2014  in order to compare the image data with threshold information stored in the selected screen set. The results of that comparison are passed, for example, to the general image processor functions  2034  and form the basis for the generation of control signals for operating the print engine  2038 . Alternatively, the results of the comparison are stored in the bulk storage device  2030  for later processing.  
         [0044]    The general image processor functions  2034  are known in the art to include editing and image enhancement functions as well as print engine communication functions. The general image processor  2034  may modify the information delivered from the halftoner  2018  or simply pass it directly to the print engine  2038 .  
         [0045]    The print engine can be any image-rendering device. In a xerographic environment, the print engine is a xerographic printer, such as an image-on-image xerographic printer. In a lithographic environment the print engine may be a lithographic printer, including, for example, printing plates etched through the use of the selected screen set. Xerographic printers are known to include a fuser, a developer and an imaging member or photoreceptor. Alternatively, the print engine  2038  may be another device, such as an electronic display or an inkjet printer.  
         [0046]    Of course, image processors that are operative to carry out the method  1910  of halftoning can be implemented in a number of ways. In the exemplary image processor  2010 , halftoner  2018 , and the general document processor functions  2034  are implemented in software that is stored in a computer memory, and run on a microprocessor, digital signal processor or other computational device. Other components of the document processor are known in the art to include both hardware and software components. Obviously the functions of these modules can be distributed over other functional blocks and organized differently and still represent an embodiment of the invention.  
         [0047]    The invention has been described with reference to a particular embodiment. Modifications and alterations will occur to others upon reading and understanding this specification taken together with the drawings. The embodiments are but examples, and various alternatives, modifications, variations or improvements may be made by those skilled in the art from this teaching which are intended to be encompassed by the following claims.