Variable angle electronic halftone screening
BACKGROUND OF THE INVENTION 
     This invention relates generally to image reproduction by electronic halftoning; and more particularly relates to such a system including a technique for producing halftone screens at variable angles with minimum memory requirements. 
     The process of reproducing a continuous toned image by a halftone representation is well known in the art. Generally, areas in the original continuous toned image are approximated by dots of differing sizes where the gradation in dot sizes of the reproduction is dependent on the gray scale level in the area of the original. For very low density values in the original, small dots are used and for darker areas, a larger dot size is provided. These areas of differing sizes of dots, when viewed from a distance, appear to represent a continuous tone image because of the integration by the human eye. Therefore, the dot area or halftone cells are necessarily small in order to create a continuous tone illusion. 
     Such halftoning processes typically utilize optical screening techniques to produce the halftone cells. A screen having opaque rulings separating transmissive halftone cells were normally added optically to an image in order to form a resulting halftoned image. The optical halftone screen adds or multiplies the image, cell by cell, by its transmittance function. The combined image is then thresholded onto an imaging member, such as a photographic film to produce the halftoned image having areas of differing dot size. The size and shape of the halftone cell forming the final image is dependent upon the screen used and differing optical effects that are apparent in the final image can be modified by choosing the screen carefully. 
     With the advent of video scanning and electronic representation of an image came the idea of electronic halftoning. If an image can be generated electronically as a video signal, then one should be able to generate an &#34;electronic screen&#34; or a signal representative of such to combine with the image signal. The combined signal, if thresholded against a reference similar to the photographic technique, would then be an electronic halftone image that could be outputted to a recording medium by a transducer. The electronic halftoning systems in the prior art have represented both analog techniques and digital procedures. However, the storage in combination of the screen functions in the previous systems have been generally inefficient and relatively expensive. With the resolution of a final image being dependent upon the number of pixels scanned, prohibitive amounts of time and memory have had to be used to provide a quality reproduced image. Furthermore, and particularly in the digital electronic halftoning area, prior techniques fail to teach a simplified method for generating an electronic halftone screen at non-orthogonal angles. With variable angle screens, it is possible to change the texture and final appearance of an image. Certain screen angles are more pleasing to the eye and combination screens at multiple angles can be used to create effects not presently available. Further, color reproductions usually require screens at various angles so that Moire patterns are not seen in the final image. 
     In one prior technique of electronic halftoning, a simulation of the photographic process is achieved by individually turning on or off a large number of sub-cells from which is generated the electronic halftone cell or dot. A separate sample of the original image to be reproduced, a &#34;pixel&#34;, is utilized in making a decision as to whether to turn on or off each sub-dot element, in the whole dot. In this method, there is combined typically be addition, a halftone screen function unrelated to original image intensity information with the electronic signal corresponding to the image information. This combined signal is then compared with a fixed threshold to determine how many partial dots within the halftone cell to turn on. Typically, levels above threshold are made white in the reproduction and levels below threshold are made black, although this is arbitrary and reverse may be true. Hence, the continuous tone original image becomes a binary image suitable for printing, display or viewing. In a digital implementation, signals for the screen and picture functions are sampled. Typically, there are twenty to thirty-two samples within the area corresponding to one period of the two dimensional screen function. Halftone dots of various sizes represent the gray levels. 
     Improvements over the usual technique are described by Klensch, R. J., &#34;Electronically Generated Halftone Pictures&#34;, RCA Review, September, 1970 and Bayer, B.E., &#34;An Optimum Method For Two-Level Rendition of Continuous-Tone Pictures&#34;, IEEE International Conference On Communications, Vol. 1, 1973. 
     The utilization of a rotated screen in other than a photographic system has previously been limited usually to zero degrees, or forty-five degrees. Forty-five degree screens are invariably based on patterns similar to those disclosed by B. E. Bayer, &#34;An Optimum Method For Two-Level Rendition Of Continuous-Tone Pictures&#34;, International Conference On Communications, Conference Record, page 26-11 (1973) or B. Lipel and M. Kurland, &#34;The Effects of Dither on Luminance Quantization Of Pictures&#34;, IEEE Transactions On Communication Technology, 6, page 879 (1971). A notable example can be found in C. N. Judice, et al, &#34;Using Ordered Dither To Displace Continuous Tone Pictures On An AC Plasma Panel&#34;, Proceeding Of The S.I.D., Vol. 15/4, Fourth Quarter, 1974. 
     Digital electronic halftoning employs, in general, horizontal and vertical screen angles. Examples of these are found in &#34;XCRIBL -- A Hard Copy Scan Line Graphics System For Document Generation&#34;, R. Reddy et al., Information Processing Letters (Netherlands), Vol. 1, No. 6, page 246 (1972). Analog systems have typically been limited to zero degree and/or forty-five degree screens. Typical analog systems are disclosed in R. J. Klensch et al., &#34;Electronically Generated Halftone Pictures&#34;, Proceedings TAGA, page 302, 1970 and in R. L. Hallows et al., &#34;Electronic Halftone&#34;, IEEE Spectrum, page 64, (October, 1968). 
     In new areas of technology it is often times desirable to provide improvements in systems which provide increased efficiency, greater capability and more variety than is presently obtainable. The present invention is such an improvement in that storage requirements for electronic half screening is reduced drastically; a great variety of halftone screen angles are permitted; and greater resolution is provided through the use of partial-dots of sub-dots within each halftone dot or cell. 
     SUMMARY OF THE INVENTION 
     It is, therefore, an object of the present invention to provide an apparatus and method useful in producing electronic halftone screens at various angles with respect to a scanned original image. 
     It is another object of the present invention to permit efficient storage of a halftone cell function used to generate screens at various angles. 
     Still another object of the invention is to provide an apparatus and method useful in producing electronic halftone screens at multiple angles. 
     A further object of the invention is to provide an apparatus and method useful in producing electronic halftone screens at non-perpendicular angles. 
     Yet, a still further object of the present invention is to provide an efficient method of electronically halftoning an image serially scanned in digital or analog applications. 
     The aforementioned objects and advantages, and others, are realized in accordance with the practice of the present invention by utilizing a repetitive rectangular matrix representative of a predetermined halftone cell approximating a parallelogram; incorporating a shifting parameter for the repetitive rectangular matrix; generating a pictorial signal representing the density of a continuous tone image and combining the pictorial signal with a signal representing the shifting, rectangular matrix of halftone screen values. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     For a better understanding of the invention as well as other objects and further features thereof, reference is made to the following detailed disclosure of the preferred embodiments of the invention taken in conjunction with the accompanying drawings thereof, wherein: 
     FIG. 1A-C are schematic illustrations of halftone screens comprising halftone cells, together with pertinent descriptors which define the halftone cells within the halftone screens. 
     FIG. 2 is a schematic flow chart of logic suitable for use in the practice of the present invention. 
     FIG. 3 is a schematic illustration of circuitry employed to provide the overall halftone reproduction system. 
     FIG. 4 is a schematic timing diagram of the system of FIG. 3. 
     FIG. 5 is a schematic illustration of common-shaft-mounting of the read and write scanning for real time reproduction. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Conversion of a Halftone Cell Approximating a Parallelogram Into a Rectangular Array 
     To see how such an angled screen can be produced and how the pertinent descriptors are calculated, consider the creation of a halftone screen in the manner of FIG. 1A. The unit cell is visualized as a piece of a puzzle, where the pieces can be laid side by side to cover all space. In assembling these pieces it will be found that the area inside the cell will approximate the area of a parallelogram which is described by the two vectors Z=Z (x,y) and W=W (u,v). For convenience, FIG. 1A has a left-handed coordinate system with the origin in the top left corner. This corresponds to the general positioning of most output images. Positive &#34;x&#34; is horizontal and to the right and positive &#34;y&#34; is vertical and down. 
     An individual halftone cell is considered to be composed of a number of subelements which can be individually blackened to produce one of the shades of grey from none to all black. In FIG. 1A, the halftone cell is outlined above the point B and has 19 subelements for a total of 20 different possible grey levels represented by this halftone dot. The subelements are numbered 1 through 19. 
     At the right of FIG. 1A, a parallelogram with the area of the halftone cell (A) is inscribed in a rectangle in which the corresponding X and Y components of the two vectors Z=Z (x,y), and W=W (u,v) are shown. The area of the halftone cell (A) is the magnitude of the cross product of the two vectors Z and W in which the components of the vectors, x,y,u, and v are signed quantities. For the coordinate system shown in FIG. 1A all of the components of Z and W except y are positive. The area inside one halftone cell is thus easily shown with this coordinate system chosen to be 
     
         A = x*v-u*y (*, a symbol for multiplication)               Eq. 1 
    
     This will be seen to be the sum of the product of the x component of the Z vector with the y component of the W vector and the corresponding reverses. This is valid because the y component of the Z vector as drawn will be negative. 
     Such a set of vectors will repeat along the X axis. If L is the distance along the X axis in which this parallelogram will recur, then clearly from triangle ABC in FIG. 1, this condition is satisfied when 
     
         k*Z + j*W = L                                              Eq. 2 
    
     Where k, j ≧ 0 are the smallest integer values to be solved to satisfy the equation. The vector Eq. 2 can be separated into two equations along the two coordinate axis to give 
     In X direction: 
     
         k*x + j*u = L                                              Eq. 3 
    
     In Y direction: 
     
         -k*y = j*v                                                 Eq. 4 
    
     If p is defined as the greatest common divisor (regardless of sign) of the two components y and v then Eq. 4 can be rewritten as 
     
         -y/j = v/k = p = GCD(y,v)≧ 1                        Eq. 5 
    
     Combining Eq. 5 with Eq. 3 and using the definition of Area from Eq. 1 gives 
     
         A = L*p                                                    Eq. 6 
    
     Since A and p can be calculated from the components of the vectors for Z and W this means L can be calculated. A similar set of conditions can be obtained to find the repeat length in the Y axis, K. In triangle AEO we must have 
     
         m*W - n*Z = K                                              Eq. 7 
    
     where m,n&gt;0 are integers which satisfy the equation and as before Eq. 7 can be separated into X and Y components to yield 
     
         m*v + n*y = K                                              Eq. 8 
    
     
         m*u = n*x                                                  Eq. 9 
    
     If an integer q is defined as the largest common divisor of the X components of the Z and W vectors which create the halftone cell, then Eq. 9 can be written as 
     
         u/n = x/m = q = GCD(x,u)≧ 1                         Eq. 10 
    
     Combining Eq. 10 with Eq. 8 and using the definition of the area of the unit cell, A, from Eq. 1, gives 
     
         A = K *q                                                   Eq. 11 
    
     and again K can be obtained because A and q can be calculated from the components of the Z and W vectors which characterize the unit halftone cell. 
     One interpretation of Eqs. 6 and 11 is that a number of the original halftone cells, each approximating a parallelogram, can be combined to form a large rectangular block of many halftone cells of dimension L by K which will cover all spaces if laid end-to-end. 
     This is precisely the type of representation required for fast indexing purposes for serial halftoning techniques. 
     A closer look at Eq. 6 moreover, shows that the total area (A) involved in a parallelogram (i.e. a halftone cell) is consumed in a rectangle L by p. Because p will not, in general, equal K (see Eq. 11) the area must be repeated again for a number of times until the areas cover the space inside the L by K rectangle. Thus, the area must repeat itself again in a distance p in the y direction but must be displaced from the origin by a distance D such that the halftone cell which was at the origin at starting has moved to the next location in the +y direction. The number of displacements to cover the L by K rectangle are clearly the number of intersection points inside the L by K rectangle when it is recalled that the four corners are each only one-quarter inside the whole cell. It is obvious from Eqs. 6 and 11 that the number of repetitions in the y direction is the GCD (L,K), i.e. L = p * GCD (L,K). From a graphical view point (see FIG. 1) the movement from the same position in one halftone cell to the next cell, can be accomplished by following along either the sides of the halftone cells (i.e. integer multiples of Z and W) or in a horizontal (i.e. D) and vertical (i.e. p) directions. Since the distance between halftone cells is the same in both of these paths their vector sums are equal. 
     Mathematically, this repeat distance is satisfied if (see FIG. 1) 
     
         d + p = r*W + t*Z                                          Eq. 12 
    
     where r, t ≧0 are integers to be determined and a constraint exists on the value of D. 
     
         0 &lt; |d| ≦ l                       eq. 13 
    
     writing the X and Y components of Eq. 12 gives 
     
         r*u + t*x = D                                              Eq. 14 
    
     
         r*v + t*y = p                                              Eq. 15 
    
     Eqs. 13-15 are a set of three equations for determining r,t,D. 
     Eqs. 14-15 are a set of simultaneous equations which can be solved for the integers r and t to yield 
     
         r = (p*x - D*y)/A                                          Eq. 16 
    
     
         t = (D*v - u*p)/A                                          Eq. 17 
    
     Solving Eq. 17 for D gives 
     
         D = (t*A + p*u)/v                                          Eq. 18 
    
     o&lt;D≦L. 
     In Eq. 18, t ≧0 is an integer which must be determined so that D satisfies Eq. 13. The other parameters are known quantities. Successive displacements of the amount D in the X direction and p in the Y direction will translate the original subelement of the halftone cell to the next corresponding position in the +Y direction. The parameter D is thus chosen from Eq. 18 to provide the correct angles on the halftone screen. 
     The Shifting Parameter 
     For indexing purposes and because of the coordinate axis chosen, it is convenient to define a shifting parameter S defined by 
     
         S = L - D                                                  Eq. 19 
    
     Defining The Rectangular Matrix By Three Parameters 
     Thus the required halftone cells can be replicated at any angle by knowing three parameters, such as L, p, and S. It is most convenient to use three parameters NLEV, p, and S. NLEV and p respectively correspond to the total number of partial dots in the halftone cell and the number of lines in the basic cell each of length L. The shifting parameter, S, gives the starting address of the next element block a distance p in the +Y direction, which will create the rectangular repeat block L * K. 
     Starting with a rectangular array of numbers representing the total area of an arbitrary halftone cell, L, along the X axis and p along the Y axis, a whole halftone screen can be generated by indexing first in X and then in Y through this rectangular array of dimension A. If the indices go outside the cell in indexing in the X direction a circular buffer back to the same row (i.e., subtract L from the index) can be used. If the indices go outside the rectangular cell in the Y direction (i.e. larger than multiples of p) the shifting parameter can be added to the X address, which in a circular buffer mode, returns to the first line of the rectangular array. 
     For clarification this technique will be applied to a few representative cases. Consider FIG. 1A and examine the column of parameters on the right which describe the particular halftone dot under consideration. The dot is characterized by the two vectors Z = (5,-2) and W = (2,3). The greatest common divisor of the Y and X components of these two vectors give respectively p = 1, q = 1, from Eqs. 5 and 10. The total area of the halftone cell from Eq. 1 is clearly A = (5) * (3) - (2) * (-2) = 19 and from Eqs. 6 and 11, L=K=19. From Eq. 18 it is easy to show that t=1 and D=7 and thus from Eq. 19 the shifting parameter S=19-7=12. 
     With an array of numbers 19 values along the halftone screen with the desired angles depicted in FIG. 1 can be generated by creating the next row of values down in Y (i.e. p=1, in a +Y direction) by sliding the previous line circularly in a negative direction a distance of S=12. 
     Such an analysis yields interesting results when Z and W form a square with an included angle of 90 degrees. We have for the case of these rotated squares, the following: If Z = Z (N,-M) then W = W(M,N) and p = q; A = N*N+M*M; and L=K. For example, if Z=Z(6,-2) then p=q=2, A=6*6+2*2=40 and L=K=20 which yields t = 2, D = 14 and S = 6. 
     It should be obvious from this analysis that the rectangular array L by K can also be indexed in the Y direction with corresponding shift parameters which can be calculated in a similar manner to the X indexing method described above. Moreover, a reflection of the basic rectangular cell about the y axis and the use of the parameter D=L-S as a shift parameter will reflect the screen angles about the y axis. Thus, this reflection creates an angle screen at 90 degrees minus the original halftone screen. 
     Since the shift parameter is obviously associated with the angle of the halftone screen in the W direction a shift parameter, S&#39;, other than that calculated by the above analysis will yield a different angular separation between the Z and W vectors and hence non-perpendicular screen angles could result. 
     In addition, with correct shaping of the subelements of the halftone dot and a proper choice of a shift parameter it is possible to obtain multiple halftone screen angles. 
     A similar analysis holds for the two patterns shown in FIGS. 1B and 1C. FIG. 1B is created from a pattern of 10 numbers (A=10) arranged 5 each (L=5) in 2 rows (p=2) where succeeding blocks of 2 down in Y are obtained by shifting the previous two lines in a negative direction by 2, (i.e. S=2). FIG. 1C is a similar chart for a square halftone cell which consists of 5 subelements in the halftone dot. This square halftone dot is tilted to give a screen angle of 26.6 degrees. 
     DESCRIPTION OF HALFTONE SCREEN ELEMENTS 
     Each of the halftone screen functions depicted in FIGS. 1A-C indicate that a halftone cell or halftone dot approximating a parallelogram in shape can be represented by a rectangular array of subelements or partial dots which are appropriately shifted during replication of the rectangular array in generating the whole electronic screen function. For the purposes of clarity of description, the halftone dots are herein referred to as halftone cells in order to avoid confusion with the subelements of the halftone dots which are herein referred to as partial dots. For the sake of convenience, in referring to FIG. 1B, the halftone cell shown to the right of the K*L block is shown to consist of ten partial dots. The numbers 1-10 refer to positions of the partial dots within the halftone cell. In the halftone reproduction of the original image to be copied, each of the partial dot positions numbered 1-10 is either occupied by marking material, such as ink, or left blank depending upon the density of the original image at a location thereon corresponding to the location of the partial dot position within the halftone cell. 
     In this regard, the present invention provides greater resolution and greater detail in the halftone reproduction than prior techniques. In prior techniques, an average gray scale value of a portion of the original image to be reproduced which corresponds to the halftone dot position on the halftone reproduction is obtained and thresholded against all of the halftone partial dots so as to cause the halftone dot area of the halftone reproduction to be either occupied by marking material or left blank. It is apparent that in prior techniques, the resolution and sensitivity to detail in the original image is quite attenuated. 
     In accordance with the present invention, with ten partial dot positions within the halftone cell, the original document intensity range detectable by the read scanner can be divided into ten ranges, each of which can be allocated to a partial dot position in the halftone cell. For example, if the read scanner provides a digital output of eight bits per pixel of original document, than there will be 256 intensity values detectable by the read scanner and which can be allocated to the partial dot positions in the halftone cell. For the ten partial dots in halftone cell of FIG. 1B, each partial dot is separated from the previous one by 25 intensity levels. The partial dot intensity value allocation can then be compared with the intensity value of the scanned original document pixel and appropriate circuitry provided to either cause occupation of the partial dot position with marking material or cause the partial dot position to be left blank. 
     By storing and utilizing a halftone screen function in a rectangular matrix together with a shifting parameter, the present invention provides another great advantage over prior techniques which attempt to provide partial dot halftone cells. These prior techniques, generally speaking, must store original document intensity value allocations for each partial dot value for each halftone cell together with information on the position of each cell. This requires a vast amount of data storage and handling, resulting in the consumption of time. On the other hand, the present invention, with its rectangular array of partial dot values consumes much less time in that in the rectangular array the partial dots are arranged in serial order. The only time delay is encountered in the present invention is that required for shifting during replication of the rectangular array. 
     In this connection, it is to be understood that the K*L blocks in FIGS. 1A-1C do not represent the whole screen function, but rather represent a basic block containing the minimum repeats in the x and y directions. A whole screen function contains a plurality of identical K*L blocks. This point should be kept in mind in order to appreciate the elegant simplicity of the present invention. Referring again to FIG. 1B, the rectangular array of partial dots is shown in the third and fourth lines of the K*L block. The first line has partial dots 6, 7, 8, 1, and 5; the second line in the array having partial dots 9, 10, 2, 3 and 4. Thus, within the third and fourth lines of FIG. 1B, all ten partial dot positions are arranged as indicated. The fifth line which includes partial dots 8, 1, 5, 6 and 7, is actually a replication of the first line with a shift of two partial dots. That is, the fifth line does not start with partial dots 6 and 7 but rather begins with partial dot 8 and includes partial dots 6 and 7, serially, after the serial inclusion of the sequence in the third line of partial dots 8, 1 and 5. Similarly, the sixth line is a replication of the fourth line with a similar two partial dot shift. 
     Generally speaking, in scanning an original document and outputting a reproduction, it is conventional to scan across the entire width of the original and reproduced documents before indexing down to the next line. Accordingly, it will be appreciated that the partial dot position in the third line continue in the indicated sequence until the terminal margin has been reached. Then, the next line of the rectangular array of partial dots is outputted repetitively until the terminal margin is reached. It will be appreciated that in FIG. 1B, since there are two lines in the rectangular array (p=2) that there is an alternation in the outputting of these lines across the width of the halftone reproduction. On the other hand, p=1 in FIGS. 1A and 1C indicating that the rectangular array of partial dots comprises a single line. Thus, in these two cases, there is no alternation. The single line, rectangular array of partial dots can be circularly buffered continuously across the width of the output scan until the terminal margin is reached. At this point, the shifting parameter indexes the rectangular array by the appropriate amount. Thus, the output scanner can literally zip across the width of the halftone reproduction without time delays inherent in prior techniques. By conversion of angular screens into rectangular screens, the rectangular screen function provides an ease of indexing with a concurrent reduction in the amount of information needed to be stored and manipulated. This provides orders of magnitude improvement over prior techniques which store a whole electronic halftone screen function or an output buffer, and compare the image pixel by pixel to each of the halftone cells or even partial dots of the stored halftone screen function. 
     DESCRIPTION OF LOGIC CONTROL AND COMPLETE REPRODUCTION SYSTEM 
     The logic control for the complete reproduction system can be either hardware or firmware circuitry or soft-ware programing of a computer. FIG. 2 is a schematic flow diagram illustration of the overall logic operation. The top of FIG. 3 shows a schematic illustration of a more complete electronic circuit version of FIG. 2. FIG. 3 schematically illustrates a commercially available micro-processor suitable for use in providing logic control for the system by way of a computer together with hardware and addition circuit elements comprising a preferred embodiment of the invention. FIG. 5 is a schematic illustration of the common shaft-mounting of the read and write scanning. While this is preferred for real time imaging, it will be appreciated that read and write scanning need not occur on a common shaft, but can be synchronized in any other suitable manner. Further, the output could be a recordation of values to be used later in generating the halftone reproduction. Magnetic recording is suitable for this purpose. 
     Referring momentarily to FIG. 5, there is seen a schematic block diagram of an electronic halftone image reproduction system according to the invention. A read scanner 10 sequentially illuminates an original image which is attached to the periphery of drum 12 which rotates about shaft 13. The original image may be a transparency as well as an opaque document and the intensity levels obtained by scanner 10 can represent either transmission intensity or reflection intensity, as appropriate. Scanner 10 operates at speeds of a millisecond or less per partial dot time period covered, though the actual speeds will depend upon the characteristics of the particular optical and electronic components used in any embodiment of the invention. Each partial dot time period of the original image, illuminated by scanner 10, is sequentially imaged by imaging lens 14 onto a light sensitive element 16 such as, for example, a photodiode. The various intensities of light striking the light sensitive element 16 are dependent upon the densities of the tone in the original image. The light is transduced by photodiode 16 into analog electronic signals. The analog electronic signal from photodiode 16 is then processed in either analog or digital format, as desired. Intentionally overlooking the electronic circuitry of FIG. 3, which will be discussed later, the output signal from the electronics is used to control the operation of a write scanner. The write scanner can comprise any scanner suitable for the imaging member to be utilized in forming the halftone reproduction of the original document to be reproduced. In FIG. 5, the imaging member 42 is a photoreceptor. Thus, a light emitting diode 38 is utilized. The output signal from the electronics will cause the light emitting diode 38 to either turn on or to remain off. If light emitting diode 38 is turned on, then the light emitted therefrom is focused by lens 44 upon photoreceptor 42. The photoreceptor 42 may be any suitable light sensitive recording medium such as a photographic film or a charged xerographic member. In a preferred embodiment, as illustrated, the photoreceptor comprises a charged xerographic drum which rotates about shaft 13 and is matched to the movement of drum 12 which carries the original image. Alternatively, photoreceptor 42 could be moved by another scanner, similar to 10 and matched to it. This sequence occurs for each partial dot time period of the running system until the terminal margin of the reproduced image is reached. At this point in time, the next line of scan is initiated. When all scan lines of the rectangular matrix are used, then the light shaft parameter is applied. It will also be appreciated that drums 12 and 42 can be moved relative to the read and write scanners; or, the read and write scanners can be moved relative to rotating drums 12 and 42. 
     Referring now to FIGS. 2 and 3, there is seen respectively schematic illustrations of the logic flow and system control circuitry. In each of these figures, the following notations have the meanings indicated in the legend below. 
     LEGEND 
     A. For Figures 2 and 3 
     Nxc -- the number of partial-dot positions in the &#34;X&#34; direction within the rectangularly arrayed screen function 
     Nlev -- the total number of partial-dot positions in the halftone cell screen function 
     Nshift -- the shifting parameter &#34;s&#34; (previously described) 
     Npl -- the number of &#34;pixels&#34; (area of original scanned within one partial-dot time period) in the input scan line (pixel area = partial-dot position area) 
     Nlp -- the number of lines in the original document 
     Ci -- cell identifier 
     B. For FIG. 2 
     Celltotal -- an address &#34;one&#34; past end of cells, equals the value of &#34;NLEV + 1&#34; 
     Cellbeg -- equals CELLTOTAL for first address of cell; value changes after first entry of cell values 
     Shp -- the current shift parameter; equals NXC --NSHIFT for first address of cell; thereafter, 
     Cella -- current address in cell (contents of which are supplied to the comparator) 
     Cellend -- current address of the end of the block of address of the cell presently being indexed. At start = NXC 
     Kxp -- current pointer to the corresponding pixel position in the input array; for determination of scan line completion 
     Nl -- current line number 
     The logic of FIGS. 2 and 3 is such that it expects as input into the program information about a halftone cell consisting of three distinct parts. A typical example is shown below and corresponds to a 32 element or partial dot halftone cell angled at 45 degrees from the vertical and which stimulates the photographic case in which the halftone cell grows from the center of the halftone cell outward towards the periphery of the cell. The first part contains the control information of this halftone cell and is: NLEV (32), NXC (8) and NSHIFT (4). The second part contains arrangements of partial dots and are: 
     
         ______________________________________                                    
32  27    11    2    1   6   18  30    Rectangular array of               
28  24    15    13   5   9   22  20    32 partial-dot positions           
8   16    14    21   25  17  23  12                                       
4   2     10    26   29  31  19  7                                        
______________________________________                                    
 
    
     The third distinct part contains specific level values in increasing order; and, for this example are 
     
         __________________________________________________________________________
4   12  20  28  36  44  52  60  Intensity values to be                    
68  76  84  92  100 108 116 124 inserted in the halftone                  
131 139 147 155 163 171 179 187 cell of 32 partial-dot                    
195 203 211 219 227 235 243 251 positions                                 
__________________________________________________________________________
 
    
     The numbers in the rectangular array give the order in which each partial dot in the halftone cell is switched to the other bilevel state. For example, in a uniform grey area, if three of the halftone cell partial-dots should be black in the halftone cell then the halftone positions numbered 1, 2 and 3 should all be one of the two halftone levels (black or white) and all of the other cell elements the other halftone level. 
     It is also possible to blacken multiple elements in the halftone cell arrangements and that numerous arrangements could be created to produce different effects and halftone dot shapes. 
     The logic of FIGS. 2 and 3 compares one image level with one of the elements of the halftone cell (a partial dot) and makes a binary decision. The levels to be inserted into the halftone cell can stretch across the full range of allowed values of the incoming signal. It is convenient and versatile to separate the arrangement of the halftone cell from the actual selection of the level value which will be used in the decision to blacken that element of the halftone dot. In the example cited above it is assumed that the incoming intensity signal covers a range of 256 different intensity values (0-255). Digitally, this corresponds to 1 bytes of information or 8 bits. In an analog mode this corresponds to 256 resolvable voltage levels. It should be obvious from the discussion below that 256 levels are not a necessity of the logic and that a smaller or larger range of grey levels can be used and selected to enhance the output image and/or lower hardware implementation cost. The logic requires only that the levels span the range of values expected from the scanned image. While the logic still works if the incoming signal and the halftone cells don&#39;t cover comparable values, the output image could be degraded. 
     In the example cited above, the actual levels have been selected as 32 uniformly spaced levels from 0 to 255 starting initially at a half step interval and listed successively from low values to high values. 
     Before the logic starts comparing partial-dot values with incoming picture values it replaces the actual level values into the halftone cell elements. This is accomplished by taking the position labeled by a 1 in the halftone cell arrangement and putting the first (or lowest) level into that element of the cell. This process is continued until all of the halftone cell elements have been filled. In the typical example cited above the halftone cell using 32 uniform spaces out of a possible 256 different values would look like the following 
     
         ______________________________________                                    
251   211     84      20    4     44    139   235                         
219   187     116     100   36    68    171   155                         
60    124     108     163   195   131   179   92                          
28    12      76      203   227   243   147   52                          
______________________________________                                    
 
    
     The separation of the arrangement of the elements of the halftone cell from the level values inserted into it has at least two interesting advantages: (1) the same halftone cell arrangement can be used with a different set of levels to compensate for scanner problems; and (2) this technique can also be used to help normalize the output from various scanners and especially so when the images are stored. 
     The logic to generate a halftone cell at some screen angle is independent of the order in which the elements of the halftone cell are arranged or on what level values are substituted into the halftone cell. The angle of the screen and the high speed halftoning is accomplished by the three numbers in the control information part of the halftone. It can be seen that these three numbers control the overall shape of the halftone cell but not the arrangements of the elements within the cell. These three parameters are all that must be stored besides the number of elements in a halftone cell in order to create a halftone at a variable angle. 
     The first of these parameters is the total number of levels, or elements, or partial dot positions, in the halftone (e.g. 32 in the example above). The second parameter states the number of vertical rows in the halftone cell (i.e. 4 in the above example), and the third parameter is a shifting parameter which allows the generation of an angled screen by indexing through a rectangular array representing elements of the halftone cell (e.g. the 8 by 4 array of values in the above example). 
     The logic allows almost any halftone screen which is rotated to some angle to be created by using a small rectangular array of values equal in number to the elements in a halftone cell and by indexing through this array to get neighboring halftone cells by using a shift parameter. The shift parameter, the total number of elements in the halftone cell and the arrangement of the dimensions of this rectangular array can be calculated from a description of the halftone cell in the manner described earlier. 
     Referring now to FIG. 2 which schematically illustrates a flow chart for logic suitable for use in the practice of the present invention, we begin at the &#34;start&#34; where the current line number, NL, is equal to 0. Upon activation, the logic advances to the first line number and determines that the current line number is not greater than the number of lines in the picture, NLP. Accordingly, the beginning address of the cell, CELLBEG, is set at the first partial dot position within the rectangular matrix of partial-dot positions, the current address of the end of the block of address of the cell being indexed is set equal to the number of partial-dot positions in the X direction of the rectangular matrix of partial-dot positions, and the current shift to parameter SHP, is set equal to the number of partial-dot positions in the X direction of the rectangular matrix, NXC, less the shifting parameter, NSHIFT. The logic then determines whether the current shifting parameter is greater than the total number of partial-dot positions in the X direction of the rectangular array. If it is, it is then decreased by the total number of partial-dots in the X direction. For the first scan line, the current shifting parameter will be equal to the number of partial dots in the X direction of the rectangular matrix and the current shift parameter will be adjusted to zero. However, as seen from FIG. 2, in either case, the current address in the rectangular array, CELLA, is the partial-dot position located by adding the current shifting parameter to the beginning address of the cell and the contents of this partial-dot position is outputted since the current pointer to the corresponding pixel position in the input array, KXP, is less than or equal to the number of pixels in the input scan line, NPL. The output of the contents of the partial-dot position causes the current address in the rectangular array, CELLA, to advance to the next partial-dot position in the rectangular array and the contents of this next position is outputted upon receipt of a pixel burst pulse. If the current cell address (CELLA) gets larger than CELLBEG + NXC (CELLEND), it is reset back to CELLBEG. This outputting of contents of partial-dot positions within the rectangular matrix continues until the current pointer to the corresponding pixels position in the input array is at the end of the first scan line. At this point, KXP is greater than NPL and the cycle is repeated for the next scan line. If the rectangular matrix of partial dot positions involves more than a single line, the logic operates on each line, in turn, during scanning of the original. Thus, if there are two lines in the rectangular array of partial dot positions, during the scanning of the first line of the original document, the logic operates on the first line of the rectangular matrix; during scanning of the second line of the original document, the logic operates on the second line of the rectangular matrix of partial-dot positions; during scanning of the third line of the original document, the logic once again operates upon the first line in the rectangular array of partial-dot positions beginning at an address index by the shifting parameter. Thus, the cycles are repeated until the current line number being scanned is greater than the number of scan lines in the original document, at which time the process is halted. As seen from FIG. 2, the logic takes care of the successive lines in the rectangular matrix as the scanning of the original occurs because at the end of one scan line, the beginning address of the rectangular matrix is advanced by the number of partial-dot positions in the X direction in the rectangular array. 
     Referring now to FIG. 3, like numerals refer to like components depicted in FIG. 5 previously discussed. As can be seen from FIG. 3, the amount of memory required by the practice of the present invention is quite small. The invention can be successfully practiced with a relatively inexpensive microprocessor available for Motorola Corporation, under Model No. MEK6800D2. This microprocessor comprises only two circuit boards: one being a keyboard and display module and the other being a microcomputer module having a 1K PROM storage. The bus between the keyboard/display module and the microcomputer module is a straightforward connection and the only one provided by the microprocessor construction. There are two ports on the microcomputer module and the input/output port designated J1 in the schematic diagrams presently commercially supplied with the microprocessor are utilized to practice the present invention. An 8 bit output bus is connected to input/output port J1 on the microcomputer module and is connected to the 8 bit input port of a digital to analog converter, such as Model DAC-8QM, commercially available from Analog Devices Corporation. Pin 47 of the digital to analog converter 23, commercially available from Analog Devices Corporation under Item No. DAC-8QM. Pin 47 of converter 23 is electrically connected to pin 10 of comparator 24. Comparator 24 is commercially available from Analog Devices Corporation under Item No. AD351. Pin 10 is one input to comparator 24. Pin 1 of comparator 24 is utilized as the second input to that device; and, pin 7 of comparator 24 is utilized as the output of that device. The current generated by photodetector 16 and its associated voltage state is amplified by amplifier 20 which is electrically connected to pin 1. The output of comparator 24 taken from pin 7 is electrically connected to one input of AND gate 21 and a write synchronization pulse generated by the scanner electronics comprises the second input into AND gate 21. 
     The output of AND gate 21 is amplified by amplifier 22 and turns on light emitting diode 38. The light emitted from light emitting diode 38 is focused by lens 44 upon a pixel area of photoreceptor drum 42. The characteristics of comparator 24 are such that there is no output from pin 7 until the signal on pin 1 is equal to or exceeds the signal on pin 10. Thus, the signal on pin 1 which represents the reflection density of the original document on drum 12 must be equal to or greater than the signal on pin 10 which represents the intensity level of the partial-dot position being outputted by the microprocessor, before there is an output from pin 7. This occurs at the digitizing rate set by the scanner electronic. 
     Virtually all commercially available scanners have associated electronics built in which provide synchronization signals for synchronizing the reproducing or write scanner with the read scanner. Such a signal from the scanner electronics can be employed to provide both pixel burst pulses which output the contents of the partial dot position currently addressed by the microprocessor as well as to provide write synchronization pulses to the second input of AND gate 21. In this regard, the pixel burst pulse electrical connection and the write pulse electrical connection are connected to a common point within the scanner electronics wherever the scanner synchronization signal is found. The pixel burst pulses and the write pulses are of the same frequency and can be in phase or out of phase with the write pulses lagging the pixel burst pulses. As can be seen from FIG. 4, the write pulses can be in any phased relation to the pixel burst pulses except for that which would place the write pulses at the digital to analog converter update times. The microprocessor depicted in FIG. 3 requires only about 90 micro-seconds to cycle through each partial-dot position in its storage, and, accordingly, the rate of read and write scans are adjusted to accommodate this time period. 
     In operation, the user enters three values: the total number of scan lines in the original document, NLP; the total number of pixels or areas equal to the partial-dot area per scan line, NPL; and, an identification for the rectangular array of partial-dot positions to be utilized. It should be noted at this point that the microprocessor has storage capability sufficient to store several rectangular array patterns of partial-dot positions, each array representing a different angled halftone cell function, and that, therefore, identification for the halftone cell desired, CI, is utilized. 
     Once the user enters these three parameters into the microprocessor, the microprocessor operates on the identified halftone cell in accordance with the logic flow of FIG. 2. The binary output at the J1 port is converted by the digital to analog converter 23 into an analog voltage signal appearing at pins 47 of converter 23 and pin 10 of comparator 24. This signal represents the value contents of the partial-dot position being addressed by the microprocessor. The voltage level appearing on pin 1 of comparator 24 represents the light intensity with the pixel area being scanned by photodetector 16. When the voltage level on pin 1 is less than that representing the contents of the partial-dot value addressed by the microprocessor, there is no output from pin 7 of comparator 24 and consequently light emitting diode 38 remains cut-off. When the voltage level at pin 1 is equal to or greater than the voltage level at pin 10 the output at pin 7 is gated through AND gate 21 when a write pulse is also present at the second input to AND gate 21. This causes light emitting diode 38 to turn on; its light being focused by lens 44 upon photoreceptor 42. 
     Operationally, it will be appreciated that scanning read photodetector 16 constitutes means for providing a first electronic signal representing the density of the scanned original image; the program microprocessor constitutes means for providing an indexed second electronic signal representing a halftone cell screen function comprising a rectangular array of partial-dot values indexed under the supervision of a shifting parameter to cause replication of the rectangular array of partial-dot values into a pattern representing a screen function of halftone cells approximating a parallelogram and of pre-determined angularity defined by the shifting parameter; digital to analog converter 23 and comparator 24 constituting means for comparing the first electronic signal with the index second electronic signal to provide a control signal; and gate 21, amplifier 22, light emitting diode 38, lens 44 and photoreceptor 42 constituting means for printing partial-dots upon a surface in response to the control signal to create a halftone reproduction of the original document having halftone cells at the predetermined angularity and approximating a parallelogram in shape. 
     It will be appreciated, of course, that the program microprocessor can be easily substituted for by an electrical or electronic circuit of any type commonly referred to as hardwire or firmware. The function performed by either of these methods is equivalent for purposes of practicing the present invention. 
     It will become apparent to one skilled in the art upon a reading of the present disclosure that modifications and variations other than expressly described herein can be employed in the practice of the present invention. These are intended to be included within the scope of the present invention. 
     For example, the imaging member technique or system used in producing the halftone reproduction is not limited to photoreceptors, xerography or copiers. Other systems and technologies applicable to displays and printers can be employed which will take, or can be modified to accept binary information. 
     Furthermore, it will be appreciated that the circuitry of FIG. 3 can be appropriately modified so that comparison can be done digitally rather than the analog comparison depicted. 
     As an example of a typical suitable program for a general purpose computer when such is used to practice the present invention, set forth below is a program which is in METASYMBOL, a computer language commonly known in the programming art and suitable for use in a sixteen bit per byte computer. ##SPC1##