Screenless conversion of continuous tone images with alterable dot spacing patterns

0Associated
Cases 
0Associated
Defendants 
0Accused
Products 
3Forward
Citations 
0
Petitions 
3
Assignments
First Claim
1. A method of converting continuous tone values to output values comprising the following steps:
 a) applying a first filter to a continuous tone value if the continuous tone value has a magnitude greater than a criterion;
b) applying a second filter to the continuous tone value if the continuous tone value has a magnitude smaller than the criterion, wherein the first and second filters are different; and
c) setting the continuous tone value to an output value depending upon the results from steps a) and b);
wherein step a) comprises the steps of generating, if the continuous tone value has a magnitude grcater than the criterion, a first error based upon a difference between the continuous tone value and a value derived by applying the first filter to an assumed output value of zero for the continuous tone value, and a second error based upon a difference between the continuous tone value and a value derived by applying the first filter to an assumed output value of one for the continuous tone value, wherein step b) comprises the steps of generating, if the continuous tone value has a magnitude smaller than the criterion, a third error based upon a difference between the continuous tone value and a value derived from the second filter dependent upon the continuous tone value, and a fourth error based upon a difference between the continuous tone value and a value derived from the second filter dependent upon the continuous tone value, and wherein step c) comprises the steps of setting the continuous tone value to an output value of zero if the first error is less than the second error, setting the continuous tone value to an output value of one if the first error is oreater than the second error, setting the continuous tone value to an output value of zero if the third error is less than the fourth error, and setting the continuous tone value to an output value to an output value of one if the third error is greater than the fourth error, as appropriate.
3 Assignments
0 Petitions
Accused Products
Abstract
A system, which converts a continuous tone value undergoing conversion to an output value, generates first and second errors and an output. The first error is based upon (i) the continuous tone value undergoing conversion, (ii) output values corresponding to previously converted continuous tone values, output values predicted for continuous tone values yet to be converted, and an output value having an assumed first level for the continuous cone value undergoing conversion, and (iii) a matrix value based upon the continuous tone value undergoing conversion. The second error is based upon (i) the continuous tone value undergoing conversion, (ii) the output values corresponding to the previously converted continuous tone values, the output values predicted for the continuous tone values yet to be converted, and an output value having an assumed second level for the continuous tone value undergoing conversion, and (iii) the matrix value based upon the continuous tone value undergoing conversion. The continuous tone value undergoing conversion is set to an output value having the first level if the first error is less than the second error and to an output value having the second level if the first error is greater than the second error. Parts (ii) and (iii), in each instance, are conversely related so that the matrix value has greater influence at lower end continuous tone values and less influence at higher end continuous tone values.
11 Citations
View as Search Results
Position sensing sensor, method and system  
Patent #
US 7,049,594 B2
Filed 03/28/2003

Current Assignee
Stryker Corporation

Sponsoring Entity
HOWMEDICA LEIBINGER INC. DBA STRYKER LEIBINGER

Method of and system for representing unscheduled events in a service plan  
Patent #
US 20060111871A1
Filed 11/19/2004

Current Assignee
United Technologies Corporation

Sponsoring Entity
United Technologies Corporation

Position sensing sensor, method and system  
Patent #
US 20040188616A1
Filed 03/28/2003

Current Assignee
Stryker Corporation

Sponsoring Entity
Stryker Corporation

System and method for implementing fast high addressability error diffusion process  
Patent #
US 5,528,384 A
Filed 08/03/1994

Current Assignee
Xerox Corporation

Sponsoring Entity
Xerox Corporation

Method and apparatus for implementing accurate angle screens  
Patent #
US 5,426,519 A
Filed 08/25/1994

Current Assignee
Xerox Corporation

Sponsoring Entity
Xerox Corporation

Electronic highfidelity screenless conversion system  
Patent #
US 5,331,430 A
Filed 10/11/1991

Current Assignee
GRAPHIC ARTS TECHNICAL FOUNDATION INC. A NOTFORPROFIT CORPORATION OF THE STATE OF DELAWARE

Sponsoring Entity
RR Donnelley Sons Company

Method and apparatus for halftone rendering of a gray scale image using a blue noise mask  
Patent #
US 5,341,228 A
Filed 12/03/1991

Current Assignee
Research Corporation Technologies

Sponsoring Entity
Research Corporation Technologies

Electronic highfidelity screenless conversion system and method using a separable filter  
Patent #
US 5,335,089 A
Filed 07/29/1992

Current Assignee
GRAPHIC ARTS TECHNICAL FOUNDATION INC. A NOTFORPROFIT CORPORATION OF THE STATE OF DELAWARE

Sponsoring Entity
RR Donnelley Sons Company

Image processing with noise enhancing operators for moire reduction and/or random dot generation  
Patent #
US 5,225,915 A
Filed 06/09/1989

Current Assignee
Xerox Corporation

Sponsoring Entity
Xerox Corporation

Halftoning with error feedback and image dependent enhancement  
Patent #
US 5,243,443 A
Filed 12/06/1991

Current Assignee
Xerox Corporation

Sponsoring Entity
Xerox Corporation

Method and apparatus for halftone rendering of a gray scale image using a blue noise mask  
Patent #
US 5,111,310 A
Filed 12/04/1990

Current Assignee
RESEARCH CORPORATION TECHNOLOGIES INC. A NOTFORPROFIT NONSTOCK CORPORATION OF DE

Sponsoring Entity
RESEARCH CORPORATION TECHNOLOGIES INC. A NOTFORPROFIT NONSTOCK CORPORATION OF DE

77 Claims
 1. A method of converting continuous tone values to output values comprising the following steps:
a) applying a first filter to a continuous tone value if the continuous tone value has a magnitude greater than a criterion; b) applying a second filter to the continuous tone value if the continuous tone value has a magnitude smaller than the criterion, wherein the first and second filters are different; and c) setting the continuous tone value to an output value depending upon the results from steps a) and b); wherein step a) comprises the steps of generating, if the continuous tone value has a magnitude grcater than the criterion, a first error based upon a difference between the continuous tone value and a value derived by applying the first filter to an assumed output value of zero for the continuous tone value, and a second error based upon a difference between the continuous tone value and a value derived by applying the first filter to an assumed output value of one for the continuous tone value, wherein step b) comprises the steps of generating, if the continuous tone value has a magnitude smaller than the criterion, a third error based upon a difference between the continuous tone value and a value derived from the second filter dependent upon the continuous tone value, and a fourth error based upon a difference between the continuous tone value and a value derived from the second filter dependent upon the continuous tone value, and wherein step c) comprises the steps of setting the continuous tone value to an output value of zero if the first error is less than the second error, setting the continuous tone value to an output value of one if the first error is oreater than the second error, setting the continuous tone value to an output value of zero if the third error is less than the fourth error, and setting the continuous tone value to an output value to an output value of one if the third error is greater than the fourth error, as appropriate.  View Dependent Claims (2, 3)
 4. A method of converting continuous tone values to output values comprising the following steps:
a) applying a first filter to a continuous tone value if the continuous tone value has a magnitude greater than a criterion; b) applying a second filter to the continuous tone value if the continuous tone value has a magnitude smaller than the criterion, wherein the first and second filters are different; and c) setting the continuous tone value to an output value depending upon the results from steps a) and b); Wherein step a) comprises the steps of generating a first error based upon a difference between (I) the continuous tone value, (ii) a value derived from the second filter dependent upon the continuous tone value, and (iii) a value derived by applying the first filter to an assumed output value of zero for the continuous tone value, and generating a second error based upon a difference between (I) the continuous tone value, (ii) a value derived from the second filter dependent upon the continuous tone value, and (iii) a value derived by applying the first filter to an assumed output value of one for the continuous tone value, and wherein step c) comprises the steps of setting the continuous tone value to an output value of zero if the first error is less than the second error, and setting the continuous tone value to an output value of one if the first error is greater than the second error.  View Dependent Claims (5, 6, 7)
 8. A method of converting continuous tone values to output values for rendering in the same reproduction comprising the following steps:
a) converting a group of continuous tone values to a first group of output values if the continuous tone values of the group of continuous tone values are greater than a predetermined level, wherein the output values of the first group of output values, when rendered, produces dots in a substantially random pattern; and b) converting the group of continuous tone values to a second group of output values if the continuous tone values of the group of continuous tone values are less than the predetermined level, wherein the output values of the second group of output values, when rendered, produces dots in a substantially even pattern; wherein the steps a) and b) comprises the following steps; generating first errors based upon first, second, and third parts, wherein the first part is based upon the continuous tone values of the group of continuous tone values, wherein the second part is based upon (I) previously converted continuous tone values neighboring corresponding continuous tone values of the group of continuous tone values, (ii) yet to be converted continuous tone values neighboring corresponding continuous tone values of the group continuous tone values, and (iii) output values having an assumed first level for the corresponding continuous tone values of the group of continuous tone values, and wherein the third part is based upon values selected from a filter dependent upon corresponding continuous tone values of the group of continuous tone values; generating second errors based upon the first part, the third part, and a fourth part, wherein the fourth part is based upon (I) previously converted continuous tone values neighboring corresponding continuous tone values of the group of continuous tone values, (ii) yet to converted continuous tone values neighboring corresponding continuous tone values of the group of continuous tone values, and (iii) output values having an assumed second level for the corresponding continuous tone values of the group of continuous tone values; setting those continuous tone values of the group of continuous tone values to output values having the first level if corresponding ones of the first errors are less than corresponding ones of the second errors and setting those continuous tone values of the group of continuous tone values to output values having the second level if corresponding ones of the first errors are greater than corresponding ones of the second errors.  View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
 16. A system for converting an input value undergoing conversion to an output value, the system comprising:
first error generating means for generating a first error for the input value undergoing conversion, wherein the first error is based upon first and second parts, wherein the second part is based upon an output value having an assumed first level for the input value undergoing conversion, and wherein the first and second parts are conversely related; second error generating means for generating a second error for the input value undergoing conversion, wherein the second error is based upon the first part and a third part, wherein the third part is based upon an output value having an assumed second level for the input value undergoing conversion, and wherein the first and third parts are conversely related; and
,output value setting means for setting the input value undergoing conversion to an output value having the first level if the first error is less than the second error and to an output value having the second level if the first error is greater than the second error.  View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
 31. A system for converting an input value undergoing conversion to an output value, the system comprising:
first error generating means for generating a first error for the input value undergoing conversion, wherein the first error is based upon first and second parts, wherein the first part is based upon a filter, wherein the second part is based upon an output value having an assumed first level for the input value undergoing conversion, and wherein the first and second parts are conversely related; second error generating means for generating a second error for the input value undergoing conversion, wherein the second error is based upon third and fourth parts, wherein the third part is based upon the filter, wherein the fourth part is based upon an output value having an assumed second level for the input value undergoing conversion, and wherein the third and fourth parts are conversely related; and
,output value setting means for setting the input value undergoing conversion to an output value having the first level if the first error is less than the second error and to an output value having the second level if the first error is greater than the second error.  View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49)
 50. A screenless conversion method for converting continuous tone values to output values representing dots to be rendered by a marking device, wherein the continuous tone values range between values of M and N, and wherein the screenless conversion method comprises the following steps:
a) determining first errors corresponding to the continuous tone values so that the first errors produce generally evenly distributed dots for continuous tones values between about M and about Cut and so that the first errors produce generally randomly distributed dots for continuous tones values between about Cut and about N, wherein Cut is a value between M and N, and wherein the first errors are based upon an output value having an assumed first level for the continuous tone values; b) determining second errors corresponding to the continuous tone values so that the second errors produce generally evenly distributed dots for continuous tones values between about M and about Cut and so that the second errors produce generally randomly distributed dots for continuous tones values between about Cut and about N, wherein the second errors are based upon an output value having an assumed second level for the continuous tone values; c) setting those continuous tone values whose corresponding first errors are less than their corresponding second errors to output values having the first level; and
,d) setting those continuous tone values whose corresponding first errors are greater than their corresponding second errors to output values having the second level.  View Dependent Claims (51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67)
 68. A system for converting one input value of a series of input values to an output value wherein previous input values have been converted to previous output values and subsequent input values are to be converted to output values, the system comprising:
first error generating means for generating a first error for the one input value, wherein the first error is based upon (i) the one input value, (ii) a selected number of previous output values, output values predicted for a selected number of subsequent input values, and an output value having an assumed first level for the one input value, and (iii) an output value having an assumed second level for the one input value; and
,second error generating means for generating a second error for the one input value, wherein. the second error is based upon (i) the one input value, (iv) the selected number of previous output values, the output values predicted for the selected number of subsequent input values, and an output value having an assumed third level for the one input value, and (iii) the output value having the assumed second level for the one input value; and
,output value setting means for setting the one input value to an output value having the first level if the first error is less than the second error and to an output value having the third level if the first error is greater than the second error.  View Dependent Claims (69, 70, 71, 72, 73, 74, 75, 76, 77)
1 Specification
The present invention relates to the conversion of input values, which are derived from an original image, into output values, which are to be rendered by a marking device. More particularly, the present invention relates to the screenless conversion of continuous tone values to output values so as to produce alterable dot spacing patterns when the output values are rendered.
In lithographic printing systems, an original image to be reproduced is scanned by a scanner on a pixelbypixel basis, and the resulting scanned values are used to create one or more printing plates. When a monochrome (e.g., black and white) reproduction is to be printed, a single printing plate is produced. On the other hand, when a color reproduction is to be printed, a set of four plates are typically produced, one for each of the subtractive primary colors of magenta, cyan, and yellow, and one for black. The colored inks reproduce the hues of the original image, and the black ink produces a desired neutral density that cannot be attained by color inks alone. In addition, because black ink is less expensive than color inks, gray replacement (a form of undercolor removal) may be effected to replace quantities of the color inks with black ink. Such a process reduces the cost to produce the reproduction without significantly affecting the appearance thereof.
In traditional prior art lithographic halftone reproduction systems, each printing plate includes a number of contiguous cells of equal size wherein each cell contains zero, one, or more elementary marks (or "microdots") clustered together to form a single large "dot" in the cell. More recently, systems have been devised wherein microdots are dispersed in a regular pattern in each cell. In other systems, microdots are dispersed in a random pattern on a medium. In each system, the number of elementary marks used to create a clustered dot, or a dispersed dot, depends upon the amount of ink to be applied to the substrate at the cell location. The amount of ink to be applied to the substrate at the cell location is, in turn, dependent upon the scanned value of the original image at a corresponding location thereof.
In the past, dots were formed within cells on a regular spacing or grid using a screen in a photochemical etching process. More recently, halftone reproduction systems have utilized data processing equipment that electronically produces data representing a halftone image. This data can be used to plot film or to directly form a printing plate without the use of an actual screen. However, the terms "screen" and "screening" are still used to define the dot pattern produced in a halftone reproduction. For example, the term "screen ruling" specifies the distance between centers of adjacent cells of the plate. When the cells are all of the same size and regularly spaced, the plate is said to have a "regular screening." In such a case, a cell contains one period of the "screen."
Systems that reproduce halftone images with regular screening (i.e., a regular dot pattern) have several drawbacks. For example, resolution is limited by screen ruling. Screen ruling is limited, in turn, by the minimum dot size and spacing that can be reliably and consistently printed. Moreover, regular dot patterns produced by regular screening in color reproduction result in moire effects and color shifts caused by interference between the superimposed dot patterns. Such undesirable artifacts have been reduced in the past by superimposing the screens at angles with respect to one another. However, this technique is not entirely satisfactory because undesired effects are only minimized, not eliminated completely.
The prior art has reduced the effects of moire and color shifts while at the same time enhancing the quality of the reproduction by eliminating the use of regular screens. Instead, a process known as "screenless" lithography (also referred to as random screening or random dot lithography) has been used to produce irregular (i.e., random) dot patterns on the printed page. The use of irregular dot patterns can eliminate visual interference caused by superimposition of the dot patterns, and hence moire effects are substantially reduced or eliminated.
In one prior art system, a printing plate having an irregular grain structure is photographically exposed and chemically developed in a photolithographic process to produce an irregular dot structure. Such systems, however, cannot create consistent dot patterns from plate to plate.
Random screening has been electronically achieved using, for example, an error diffusion technique, such as the error diffusion technique described by Floyd and Steinberg in their paper "An Adaptive Algorithm for Spatial Greyscale," Proceeding of the S.I.D., Vol. 17/2, Second Quarter, 1976. This paper discloses a reproduction system that compares each continuous tone value, which is sometimes referred to as a contone and which is obtained by scanning an original image, with a threshold to obtain a binary approximation of the continuous tone value. When a continuous tone value is less than the threshold, the continuous tone value is converted to a binary zero. On the other hand, if the continuous tone value is greater than the threshold, the continuous tone value is converted to a binary one. After conversion, the error resulting from the approximation of the continuous tone value is subdivided into error portions, and the error portions are summed in a prescribed pattern with neighboring continuous tone values yet to be converted so that such error is diffused. Each continuous tone value to be converted is thus a combination of its original continuous tone value plus any error portions diffused to it by the conversion of neighboring, previously converted continuous tone values. This process is repeated for each continuous tone value until all continuous tone values resulting from scanning of the original image have been converted to binary values. The result of this conversion of the continuous tone values produced by scanning an original image is typically a bit map. The bit map thus derived is used to produce a reproduction of the original image where the reproduction has dots at locations defined by the binary values in the bit map.
While the foregoing process is effective to reproduce halftone images with random dots, it has been found that the dots still create artifacts in the reproduction. These artifacts detract from the visual appearance of the reproduction The conversion systems disclosed in Xie, et al. U.S. Pat. No. 5,331,430 and in Xie, et al. U.S. Pat. No. 5,335,089, which are assigned to the assignee of the instant application, further reduce such visible artifacts and perception errors by using a filter in order to remove noise which arises in the conversion process. In these conversion systems, a first error is produced by applying the filter (i) to the binary values resulting from the previous conversion of a selected number of continuous tone values which neighbor a continuous tone value undergoing conversion, (ii) to the binary values which result from a predicted conversion of a selected number of continuous tone values which are yet to be converted and which neighbor the continuous tone value undergoing conversion, and (iii) to a binary value having an assumed value of zero for the continuous tone value undergoing conversion. A second error is produced by applying the filter (i) to the binary values resulting from the previous conversion of the selected number of continuous tone values which neighbor the continuous tone value undergoing conversion, (ii) to the binary values which result from the predicted conversion of the selected number of continuous tone values which are yet to be converted and which neighbor the continuous tone value undergoing conversion, and (iii) to a binary value having an assumed value of one for the continuous tone value undergoing conversion. (Note that the binary values in both instances of (i) above are typically the same, and that the binary values in both instances of (ii) above are also typically the same.)
Once the first and second errors have been calculated, the continuous tone value undergoing conversion is set to a value of zero if the first error is less than the second error, and to a value of one if the first error is greater than the second error. If the continuous tone value undergoing conversion is set to a value of zero, the first error is diffused in a manner similar to that described by Floyd and Steinberg. On the other hand, if the continuous tone value undergoing conversion is set to a value of one, the second error is so diffused. Each continuous tone value is thus converted to a corresponding binary value which is typically stored in a bit map for rendering by a marking device.
Systems which produce random dot patterns, such as those described in the aforementioned Xie, et al. patents, produce greatly improved reproductions. However, certain regions, such as high tone regions having fewer dots per unit of area, are visually more pleasing if the spacing between dots in those regions is more regular than random. The present invention is directed to an arrangement and method which is capable of varying the dot spacing patterns between regions of a reproduction.
Therefore, in accordance with one aspect of the present invention, a method of converting continuous tone values to output values comprises the following steps: a) applying a first filter to a first continuous tone value which has a magnitude greater than a criterion; b) applying a second filter to a second continuous tone value which has a magnitude smaller than the criterion, wherein the first and second filters are different; and, c) setting the first and second continuous tone values to output values depending upon the results from steps a) and b).
In accordance with another aspect of the present invention, a method of converting continuous tone values to output values for rendering in the same reproduction comprises the following steps: a) converting a first group of continuous tone values to a first group of output values so that the output values of the first group of output values, when rendered, produce dots in a substantially random pattern; and, b) converting a second group of continuous tone values to a second group of output values so that the output values of the second group of output values, when rendered, produce dots in a substantially even pattern.
In accordance with yet another aspect of the invention, a system, which converts an input value undergoing conversion to an output value, includes first and second error generating means and an output value setting means. The first error generating means generates a first error for the input value undergoing conversion, wherein the first error is based upon first and second parts, wherein the second part is based upon an output value having an assumed first level for the input value undergoing conversion, and wherein the first and second parts are conversely related. The second error generating means generates a second error for the input value undergoing conversion, wherein the second error is based upon the first part and a third part, wherein the third part is based upon an output value having an assumed second level for the input value undergoing conversion, and wherein the first and third parts are conversely related. The output value setting means sets the input value undergoing conversion to an output value having the first level if the first error is less than the second error and to an output value having the second level if the first error is greater than the second error.
In accordance with still another aspect of the invention, a system, which converts an input value undergoing conversion to an output value, includes first and second error generating means and an output value setting means. The first error generating means generates a first error for the input value undergoing conversion, wherein the first error is based upon first and second parts, wherein the first part is based upon a filter, wherein the second part is based upon an output value having an assumed first level for the input value undergoing conversion, and wherein the first and second parts are conversely related. The second error generating means generates a second error for the input value undergoing conversion, wherein the second error is based upon third and fourth parts, wherein the third part is based upon the filter, wherein the fourth part is based upon an output value having an assumed second level for the input value undergoing conversion, and wherein the third and fourth parts are conversely related. The output value setting means sets the input value undergoing conversion to an output value having the first level if the first error is less than the second error and to an output value having the second level if the first error is greater than the second error.
In accordance with a further aspect of the invention, a screenless conversion method converts continuous tone values to output values representing dots to be rendered by a marking device, wherein the continuous tone values range between values of M and N. The screenless conversion method comprises the following steps: a) determining first errors corresponding to the continuous tone values so that the first errors produce generally evenly distributed dots for continuous tones values between about M and about Cut and so that the first errors produce generally randomly distributed dots for continuous tones values between Cut and N, wherein Cut is a value between M and N, and wherein the first errors are based upon an output value having an assumed first level for the continuous tone values; b) determining second errors corresponding to the continuous tone values so that the second errors produce generally evenly distributed dots for continuous tones values between about M and about Cut and so that the second errors produce generally randomly distributed dots for continuous tones values between Cut and N, wherein the second errors are based upon an output value having an assumed second level for the continuous tone values; c) setting those continuous tone values whose corresponding first errors are less than their corresponding second errors to output values having the first level; and, d) setting those continuous tone values whose corresponding first errors are greater than their corresponding second errors to output values having the second level.
In accordance with a still further aspect of the invention, a system converts one input value of a series of input values to an output value, wherein previous input values have been converted to previous output values and subsequent input values are to be converted to output values. The system includes first and second error generating means and an output value setting means. The first error generating means generates a first error for the one input value wherein the first error is based upon (i) the one input value, (ii) a selected number of previous output values, output values predicted for a selected number of subsequent input values, and an output value having an assumed first level for the one input value, and (iii) an output value having an assumed second level for the one input value. The second error generating means generates a second error for the one input value wherein the second error is based upon (i) the one input value, (iv) the selected number of previous output values, the output values predicted for the selected number of subsequent input values, and an output value having an assumed third level for the one input value, and (iii) the output value having the assumed second level for the one input value. The output value setting means sets the one input value to an output value having the first level if the first error is less than the second error and to an output value having the third level if the first error is greater than the second error.
These and other features and advantages will become more apparent from a detailed consideration of the invention when taken in conjunction with the drawings in which:
FIGS. 1A, 1B, and 1C comprise block diagrams illustrating three exemplary environments in which the present invention may be used;
FIG. 2 illustrates an example of an input continuous tone value array useful in explaining the present invention;
FIG. 3 illustrates an example of an output binary value array useful in explaining the present invention;
FIG. 4 illustrates a flow chart of a program which may be executed in accordance with the present invention;
FIG. 5 illustrates a flow chart of a program which may be executed in order to produce a filter useful in implementing the present invention;
FIG. 6 illustrates a plot of γ which is a function useful in implementing the present invention;
FIG. 7 illustrates the curve of a filter which is employed in implementing the present invention; and,
FIG. 8 illustrates an example of a matrix useful in explaining the present invention.
FIGS. 1A and 1B, which are similar to FIGS. 1A and 1B of Xie, et al. U.S. Pat. No. 5,331,430 and Xie, et al. U.S. Pat. No. 5,335,089, illustrate two environments in which the present invention may be used. The disclosures in Xie, et al. U.S. Pat. No. 5,331,430 and Xie, et al. U.S. Pat. No. 5,335,089 are incorporated herein by reference. As shown in FIG. 1A, the present invention is particularly useful as part of an image reproduction system 10A. The reproduction system 10A includes a scanner 11 which scans or samples each pixel, such as a pixel 16, of an original 12. Each pixel of the original 12 is converted by the scanner 11 into typically an eightbit digitized continuous tone value which is supplied to a processor 13 and which is stored in a memory 14. (This eight bit digitized continuous tone value may also be referred to as a contone or may be referred to more generally as an input value.)
Because eight bits are used, each continuous tone value has an amplitude resolution of 256 different levels which may be supplied by the scanner 11. Thus, the scanner 11 supplies one of 256 possible continuous tone values for each pixel.
The processor 13, which may be in the form of a general purpose computer, converts the continuous tone values into output values which, in one embodiment of the present invention, have only two levels, and hence are referred to as halftone binary values or more simply as binary values. (However, it should be understood that the output values may have more than two levels.) These binary values are stored in the memory 14 and are used by a film plotter 15 to plot a film which in turn is used by a block 16 to create a printing plate.
Alternatively, as shown in FIG. 1B, the binary values can be used directly in the formation of printing plates without the necessity of first creating a film.
The printing plate, whether created directly or by film, can then be used in a printer, such as an offset printer, for reproducing the original 12.
In still other alternatives, the binary values can be used directly by printers such as those used in conjunction with personal computers. For example, as shown in FIG. 1C, the present invention is useful in order to directly control a printer 17. A reproduction system 10C includes the scanner 11 which scans or samples each pixel, such as the pixel 16, of the original 12. Each pixel of the original 12 is converted by the scanner 11 into an eightbit digitized continuous tone value which is supplied to the processor 13 and which is stored in the memory 14. Each eightbit digitized continuous tone value is converted by the processor 13 into one or more binary values. All such binary values are stored in the memory 14 and are directly used by the printer 17 to reproduce the original 12.
For ease in understanding the present invention, it is useful to envision the continuous tone values, and the binary values to which the continuous tone values are converted, as being stored in corresponding first and second arrays in the memory 14, although the data need not be physically stored as such. For example, the continuous tone values, which result from scanning the original 12, which are stored in the memory 14, and which are converted to binary values by the processor 13, may be envisioned as shown in FIG. 2. As shown in FIG. 2, the continuous tone values resulting from scanning a first line of the original 12 are stored as a first row of continuous tone values. That is, the first continuous tone value resulting from scanning the first line of the original 12 is stored as a continuous tone value C_{1},1, the second continuous tone value resulting from scanning the first line of the original 12 is stored as a continuous tone value C_{1},2, and so on until scanning of the first line of the original 12 is completed. The continuous tone values resulting from scanning the second line of the original 12 are stored as a second row of continuous tone values. That is, the first continuous tone value resulting from scanning the second line of the original 12 is stored as a continuous tone value C_{2},1, the second continuous tone value resulting from scanning the second line of the original 12 is stored as a continuous tone value C_{2},2, and so on until scanning of the second line of the original 12 is completed. The remaining lines of the original 12 are scanned to similarly fill the remaining rows of the array of continuous tone values shown in FIG. 2.
Similarly, the binary values, which result from the conversion of the continuous tone values shown in FIG. 2, which are stored in the memory 14, and which are supplied as a bit map by the processor 13 to a marking device, may be envisioned as shown in FIG. 3. That is, the first binary value is stored in a first row as a binary value B_{1},1, the second binary value is stored in the first row as a binary value B_{1},2, and so on for the first row. The next binary value is stored in a second row as a binary value B_{2},1, the next binary value is stored in the second row as a binary value B_{2},2, and so on for the second row. The remaining rows of the array of binary values as shown in FIG. 3 contain similar binary values.
It should be noted that, depending upon the particular implementation of the present invention, there may not necessarily be a onetoone correspondence between the continuous tone values of FIG. 2 and the binary values of FIG. 3. However, if the present invention is implemented as a modification of the aforementioned Xie, et al. patents, there will be a onetoone correspondence between the continuous tone values of FIG. 2 and the binary values of FIG. 3.
It should also be noted that, as is known, the ratio of the size of the original to the size of the reproduction may be controlled as desired. For example, if each continuous tone value is converted to n corresponding binary values and the size of the reproduction is to be the same as the size of the original, the scanner should be configured to scan at 1/n resolution. Known publishing software may be alternatively used to produce the desired ratio.
The location of each binary value in the output bit map provided by the processor 13 is used to determine the location of a dot, and the specific value of the binary value determines whether or not a dot is marked. Whether a binary zero or a binary one results in the marking of a dot depends upon the type of printing to be performed. The array of binary values as a whole, however, defines a pattern of dots to be marked, and this pattern will result in reproduction of the original when printed.
If the original 12 is to be reproduced using only one ink, e.g. black, the processor 13 stores and supplies only one set of binary values such as those shown in FIG. 3. The number of dots in a given area controls the amount of grayness in that area of the reproduced image, and the pattern of dots represents the image of the original. In the event the system is used for color reproduction, the scanner 11 uses color filters to produce three arrays or sets of continuous tone values, one for each of the three primary additive colors red, green and blue. Alternatively, the scanner 11 may use color filters to produce three arrays or sets of continuous tone values, one for each of the three primary subtractive colors yellow, magenta and cyan. If the three arrays representing the three primary colors are to be translated to four arrays representing the four printing colors of cyan, magenta, yellow and black, the processor 13 will do so. The processor 13 converts each array of continuous tone values to a corresponding array (i.e., bit map) of binary values. The film plotter 15 then uses each array of binary values to plot a separate film for each of the colors to be printed, or each array is used directly to form a separate printing plate for each of the printing colors. During printing, as is well known, each printing plate separately lays down its associated color on the paper or other substrate on which the original is being reproduced. Alternatively, each array is used by a printer to lay down a different color on paper or other substrate. The colors are combined by the human visual system to reproduce the colors of the original 12.
The processor 13 may execute the program disclosed in either of the aforementioned Xie, et al. patents when such program is modified in accordance with the description below. The programs shown in these Xie patents are reproduced in summary form in FIG. 4 as a program 20. Generally, the screenless conversion system disclosed in the aforementioned Xie, et al. patents is an error diffusion system in which (1) an error e_{0} is determined by applying a filter (i) to an assumed value of zero for a continuous tone value undergoing conversion, (ii) to binary values corresponding to continuous tone values which have already been converted and which neighbor the continuous tone value undergoing conversion, and (iii) to predicted binary values corresponding to continuous tone values which are yet to be converted and which neighbor the continuous tone value undergoing conversion, and (2) an error e_{1} is determined by applying the filter (i) to an assumed value of one for the continuous tone value undergoing conversion, (ii) to the binary values corresponding to the continuous tone values which have already been converted and which neighbor the continuous tone value undergoing conversion, and (iii) to the predicted binary values corresponding to the continuous tone values which are yet to be converted and which neighbor the continuous tone value undergoing conversion.
Then, the continuous tone value undergoing conversion is set to a one if the error e_{0} is larger than the error e_{1}, and otherwise the continuous tone value undergoing conversion is set to a zero. If the continuous tone value undergoing conversion is set to a zero, the error e_{0} is diffused. On the other hand, if the continuous tone value undergoing conversion is set to a one, the error e_{1} is diffused.
More specifically, as illustrated in FIG. 4 herein, a block 22 of the program 20 duplicates continuous tone values and predicts binary values from these continuous tone values, as necessary. For example, during conversion of a continuous tone value to a binary value, the conversion systems of the aforementioned Xie, et al. patents apply a filter to fortynine binary values. These fortynine binary values include (i) one binary value which is assumed for the continuous tone value undergoing conversion, (ii) twentyfour binary values corresponding to twentyfour continuous tone values which have yet to be converted and which are close in neighborhood to the continuous tone value undergoing conversion, and (iii) twentyfour binary values corresponding to twentyfour continuous tone values which have been previously converted and which are close in neighborhood to the continuous tone values undergoing conversion. However, when the first input continuous tone value C_{1},1 shown in FIG. 2 is converted to a binary value, no other continuous tone values have been previously converted.
Therefore, twentyfour binary values corresponding to twentyfour continuous tone values which have already been converted and which are close in neighborhood to the continuous tone value undergoing conversion do not yet exist.
In order to provide these twentyfour binary values, the block 22, as taught by the aforementioned Xie, et al. patents, duplicates the first row and first column of the input continuous tone values three times. Binary values are then predicted for the original first row and the three duplicated rows of continuous tone values. This prediction may be made by comparing each of these continuous tone values to a threshold. If a continuous tone value is above the threshold, that continuous tone value is set to a binary value of one. On the other hand, if the continuous tone value is below the threshold, that continuous tone value is set to a binary value of zero. Consequently, twentyfour binary values are provided for each of the continuous tone values in the first three rows and columns of the input continuous tone values.
Furthermore, as discussed above, during conversion of a continuous tone value to a binary value, the conversion system of the aforementioned Xie, et al. patents also applies the filter to twentyfour binary values corresponding to twentyfour continuous tone values which have yet to be converted and which are close in neighborhood to the continuous tone value undergoing conversion. However, because there can be no binary values resulting from the conversion of continuous tone values which have yet to be converted, the block 22, again as taught by the aforementioned Xie, et al. patents, predicts binary values for twentyfour continuous tone values which have yet to be converted and which are close in neighborhood to the continuous tone value undergoing conversion. This prediction may also be made by comparing each of these twentyfour continuous tone values to a threshold. If a continuous tone value is above the threshold, that continuous tone value is set to a binary value of one. On the other hand, if the continuous tone value is below the threshold, that continuous tone value is set to a binary value of zero. Consequently, twentyfour binary values corresponding to twentyfour continuous tone values which have yet to be converted and which are close in neighborhood to the continuous tone value undergoing conversion are provided.
After the continuous tone values have been duplicated and binary values have been predicted, as necessary, the errors e_{0} and e_{1} are determined by blocks 24 and 26 in accordance with a modified version of the equations disclosed in the Xie, et al patents. If the conversion system disclosed in the Xie, et al., U.S. Pat. No. 5,331,430 is used for the present invention, the errors e_{0} and e_{1} are determined as follows: ##EQU1## where C_{i},j represents the continuous tone value undergoing conversion, where b_{19a} represents the binary values corresponding to the continuous tone values which have already been converted (or which represent the binary values resulting from the duplication and prediction of continuous tone values) and which are close in neighborhood to the continuous tone value C_{i},j, where b_{19b} represents the binary values predicted from those continuous tone values yet to be converted which are close in neighborhood to the continuous tone value C_{i},j, where "0" represents an assumed binary value of zero for the continuous tone value C_{i},j, where "1" represents an assumed binary value of one for the continuous tone value C_{i},j, where W_{20a} represents those elements of a filter which are applied to the b_{19a} binary values, where W_{20b} represents those elements of the filter which are applied to the b_{19b} binary values, where W_{4},4 represents the element of the filter which is applied to the assumed binary value of zero or one, as appropriate, where γ represents a value determined as a function of C_{i},j and will be described hereinafter in more detail, and where Mat ! is a value selected from a matrix Mat on the basis of C_{i},j and will be described hereinafter in more detail. The matrix Mat may be stored in the memory 14.
Accordingly, equations (1) and (2) have three parts. The first part of equations (1) and (2) is the continuous tone value undergoing conversion, Ci,j. The second part of equations (1) and (2) is the neighborhood calculation as influenced by γ. The third part of equations (1) and (2) is a value Mat ! of the matrix Mat as influenced by the complement of γ. Accordingly, the second and third parts of equation (1) are conversely related, and the second and third parts of equation (2) are conversely related.
The value of γ is a function of the continuous tone value undergoing conversion, C_{i},j, and may be given by the following equation: ##EQU2## where α is a constant (which, for example, may be set equal to four), where Cut is a constant (which, for example, may be set equal to twelve), and where C_{i},j is the continuous tone value undergoing conversion.
FIG. 6 illustrates a plot of γ versus C_{i},j in accordance with equation (3). As shown in FIG. 6, γ varies from a value of zero to a value of one as the magnitude of C_{i},j varies from a value zero to a value somewhat larger than Cut. Thereafter,γ remains at a value of one for the remaining values of C_{i},j. If Cut is chosen to have a value of twelve, any continuous tone values, C_{i},j, having a magnitude between a value of zero and a value of about twenty will produce a corresponding value for γ between a value of zero and a value of one. For continuous tone values having a magnitude above the value of about twenty, γ approaches a value of one.
Accordingly, for continuous tone values having a magnitude greater than about twenty, the second parts of the equations (1) and (2) involving the neighborhood calculation have a substantially unreduced influence on the values of the errors e_{0} and e_{1} relative to the third parts of these equations, and the third parts of the equations (1) and (2) involving the matrix MAT have substantially no influence on the values of the errors e_{0} and e_{1}. However, for continuous tone values having a magnitude of between zero and about twenty, the second parts of the equations (1) and (2) involving the neighborhood calculation and the third parts of the equations (1) and (2) involving the matrix MAT have a relative influence on the values of the errors e_{0} and e_{1} dependent upon the magnitude of the continuous tone value C_{i},j.
For example, if the continuous tone value C_{i},j has a magnitude of zero, the second parts of the equations (1) and (2) involving the neighborhood calculation contribute nothing to the determination of the errors e_{0} and e_{1} because γ is zero when the magnitude of the continuous tone value C_{i},j is zero. On the other hand, the third parts of the equations (1) and (2) involving the matrix MAT have unreduced influence on the determination of the errors e_{0} and e_{1} because 1γ is one when the magnitude of the continuous tone value C_{i},j is zero.
As another example, if the continuous tone value C_{i},j has a magnitude of twenty, the second parts of the equations (1) and (2) involving the neighborhood calculation have a substantially unreduced influence on the determination of the errors e_{0} and e_{1} because γ is essentially one when the magnitude of the continuous tone value C_{i},j is twenty. On the other hand, the third parts of the equations (1) and (2) involving the matrix MAT contribute essentially nothing to the determination of the errors e_{0} and e_{1} because 1γ is essentially zero when the magnitude of the continuous tone value C_{i},j is twenty. As yet another example, if the continuous tone value C_{i},j has a magnitude of ten, the second parts of the equations (1) and (2) involving the neighborhood calculation have only about twenty per cent of the influence on the determination of the errors e_{0}. and e_{1} that they would have had but for γ because γ is about 0.2 when the magnitude of the continuous tone value C_{i},j is ten. On the other hand, the third parts of the equations (1) and (2) involving the matrix MAT have about eighty per cent of the influence on the determination of the errors e_{0} and e_{1} that they would have had but for γ because 1γ is about 0.8 when the magnitude of the continuous tone value C_{i},j is ten.
The matrix MAT and γ are arranged in equations (1) and (2) to even out the spacing between the dots, which are marked as a result of the binary values to which continuous tone values are converted, in the high tone regions of a reproduction corresponding to regions in the original from which continuous tone values having small magnitudes are produced. Thus, for magnitudes of continuous tone values less than about twenty, the third parts of the equations (1) and (2) involving the matrix MAT have sufficient influence on the determination of the errors e_{0} and e_{1} that the dots resulting from converting continuous tone values having these small magnitudes are more evenly spaced in the reproduction than in other regions of the reproduction.
On the other hand, when the magnitudes of continuous tone values produced from regions of the original are greater than about twenty, the influence from the third parts of the equations (1) and (2) involving the matrix MAT is substantially removed from the determination of the errors e_{0} and e_{1}, and the second parts of the equations (1) and (2) involving the neighborhood calculation have a substantially unreduced influence on the determination of the errors e_{0} and e_{1}. Accordingly, the dots which are marked in corresponding regions of the reproduction are more randomlv spaced than in the high tone regions.
Thus, the dots in the high tone regions of a reproduction are more evenly spaced than the dots in the other regions of the reproduction, whereas the dots in the other regions of the reproduction are more randomly spaced than the dots in the high tone regions of the reproduction, so as to produce a more pleasing reproduction.
Alternatively, the equations disclosed in the Xie, et al. U.S. Pat. No. 5,335,089 for calculating the errors e_{0} and e_{1} may be modified according to the following equations: ##EQU3## where C_{i3},n represents the continuous tone value undergoing conversion, where u is a filtered quantity calculated in accordance with the teachings of this Xie, et al. patent, where "0" represents an assumed binary value of zero for the continuous tone value C_{i3},n, where "1" represents an assumed binary value of one for the continuous tone value C_{i3},n, where γ represents a value determined as a function of C_{i3},n as described hereinabove, where W_{4} represents the center element of a filter and is applied to the assumed binary value of zero or one, as appropriate, and where Mat ! is a value selected from the matrix Mat on the basis of C_{i3},n and will be described hereinafter in more detail.
Once the errors e_{0} and e_{1} are determined according to the blocks 22 and 24 of FIG. 4, a block 28 determines whether the error e_{0}. is larger than the error e_{1}. If the error e_{0} is larger than the error e_{1}, a block 30 sets the continuous tone value undergoing conversion to a binary value of one. On the other hand, if the error e_{0} is not larger than the error e_{1} a block 32 sets the continuous tone value undergoing conversion to a binary value of zero. After the block 30 sets the continuous tone value undergoing conversion to a binary value of one, or after the block 32 sets the continuous tone value undergoing conversion to a binary value of zero, a block 34 diffuses the error e_{0}. or the error e_{1}, as appropriate.
That is, if the continuous tone value undergoing conversion is set to a binary value of zero, the block 34 diffuses the error e_{0} . On the other hand, if the continuous tone value undergoing conversion is set to a binary value of one, the block 34 diffuses the error e_{1}. The diffusion pattern for the diffusion of these errors may be similar, for example, to that taught by Floyd and Steinberg.
After diffusion of the appropriate error, a block 36 determines whether all continuous tone values have been converted to binary values. If not, the program 20 returns to the block 22 to convert the next continuous tone value. When the block 36 determines that all continuous tone values have been converted to binary values, the conversion process is terminated.
The value Mat !, which is selected from the matrix MAT and which is used in equations (1) and (2) or in equations (4) and (5), is selected dependent upon the position of the continuous tone value undergoing conversion in the input continuous tone value array, such as that shown in FIG. 2. For ease of discussion hereinafter, the continuous tone value undergoing conversion is designated C_{i},j for both the equation (1) and (2) implementation and the equation (4) and (5) implementation; even though the continuous tone value undergoinq conversion is designated C_{i3},n for the equation (4) and (5) implementation.
An exemplary input continuous tone value array is shown in FIG. 2. When the continuous tone value undergoing conversion is the first continuous tone value to undergo conversion, the continuous tone value at the C_{1},1 position of the array of FIG. 2 is substituted for C_{i},j in the appropriate set of equations (1) and (2) or (4) and (5). Also, the continuous tone value at the C_{1},1 position in the array of FIG. 2 is inserted into equation (3) for the quantity C_{i},j in order to determine the value of γ. Accordingly, both γ and 1γ may be determined and substituted into the appropriate set of equations. Moreover, the C_{1},1 position in the array of FIG. 2 determines the position from which the matrix value M_{i},j is selected from the matrix Mat. In this case, the matrix value at the position M_{1},1 is selected for substitution into the appropriate set of equations because the position M_{1},1 in the matrix Mat corresponds to the position C_{1},1 in the input continuous tone value array. Thus, the matrix value M_{1},1 is substituted into the appropriate set of equations for Mat imod256, jmod256!.
Similarly, when the continuous tone value undergoing conversion is the continuous tone value at the C_{1},2 position, the matrix value at the position M_{1},2 is selected for substitution into the appropriate set of equations, when the continuous tone value undergoing conversion is the continuous tone value at the C_{1},3 position, the matrix value at the position M_{1},3 is selected for substitution into the appropriate set of equations, . . . and when the continuous tone value undergoing conversion is the continuous tone value at the C_{1},256 position, the matrix value at the position M_{1},256 is selected for substitution into the appropriate set of equations. However, when the continuous tone value undergoing conversion is the continuous tone value at the C_{1257} position the matrix value at the position M_{1},1 is again selected for substitution into the appropriate set of equations, because the matrix Mat is only 256×256 in extent, which is typically smaller than the input continuous tone array. This operation is indicated by the module 256 function in the third parts of equations (1), (2), (4), and (5).
The matrix MAT may be assembled by use of a program 50 which is shown in FIG. 5. A block 52 of the program 50 generates a random number 256×256 initial matrix. In generating the random number 256×256 initial matrix, the block 52 operates according to predetermined constraints. The random number 256×256 initial matrix is divided into 256 16×16 nonoverlapping submatrices. The random numbers generated by the block 52 are confined to a range of zero to 255. Each 16×16 submatrix of the initial matrix must contain each number from zero to 255. Accordingly, the block 52 randomly distributes the numbers between zero and 255 in each 16×16 submatrix within the 256×256 initial matrix. Finally, the random distribution of numbers within each 16×16 submatrix of the 256×256 initial matrix is independent of the random distribution of numbers in any of the other 16×16 submatrices.
After the 256×256 initial matrix is generated by the block 52, a block 54 sets a variable n to zero, and a block 56 sets a variable k to zero. A block 58 then compares each element in the 256×256 initial matrix with the value of n. A block 60 constructs a 256×256 temporary matrix by setting to zero those elements in the 256×256 temporary matrix which correspond to those elements in the 256×256 initial matrix that are greater than n, where currently n=zero. The block 60 sets the remaining elements in the temporary matrix to one.
A block 62 then convolves the elements of the temporary matrix with a filter f(x,y) which is defined by the following equation: ##EQU4## where x represents the row number of an element in the temporary matrix, where y represents the column number of the element in the temporary matrix, where c represents a constant (which, for example, may have a value of √2π), where dv represents the digital value of the current value of n as set initially by the block 54 and as incremented by the block 74, and where B is a constant (which, for example, may have a value of √2π/10). The constant B in equation (7) prevents δ from being indeterminate when the digital value dv is zero (i.e., when n=0).
FIG. 7 generally illustrates the shape of the curve of the filter f(x,y). This filter f(x,y) is a function of the coordinates x and y.
The result of this convolution is a 256×256 convolution matrix. The position of each element in the 256×256 convolution matrix corresponds to a position of a value in the 256×256 initial matrix. The elements in each of the 256 nonoverlapping 16×16 submatrices of the 256×256 convolution matrix are sorted from highest to lowest by a block 64. A block 66 switches the value in the first 16×16 submatrix of the 256×256 initial matrix corresponding to the highest value in the first 16×16 submatrix of the 256×256 convolution matrix with the value in the first 16 ×16 submatrix of the 256×256 initial matrix corresponding to the lowest value in the first 16×16 submatrix of the 256×256 convolution matrix.
Similarly, the block 66 switches the value in the second 16×16 submatrix of the 256×256 initial matrix corresponding to the highest value in the second 16×16 submatrix of the 256×256 convolution matrix with the value in the second 16×16 submatrix of the 256×256 initial matrix corresponding to the lowest value in the second 16×16 submatrix of the 256×256 convolution matrix. The remaining 16×16 submatrices of the 256×256 initial matrix are similarly processed by the block 66.
Thereafter, a block 68 determines whether the variable k is equal to one. If the variable k is not equal to one, a block 70 increments the variable k by one, and the program 50 returns to the block 58 where the functions performed by the blocks 58 through 66 are again executed with the variable n still currently set to zero. Accordlngly, the block 58 then compares each element in the new 256×256 initial matrix with the value of n, where currently n=zero. The block 60 constructs a new 256×256 temporary matrix by setting to zero those elements in the new 256×256 temporary matrix which correspond to those elements in the new 256×256 initial matrix that are greater than n, where currently n=zero. The block 60 sets the remaining elements in the new 256×256 temporary matrix to one.
The block 62 then convolves the elements of the new temporary matrix with the filter f(x,y). The result of this convolution is a new 256×256 convolution matrix. The elements in each of the 256 nonoverlapping 16×16 submatrices of the new 256×256 convolution matrix are sorted from highest to lowest by the block 64. The block 66 then switches the values in each 16×16 submatrix of the new 256 ×256 initial matrix as before. The block 68 then determines that the variable k is now equal to one and flow passes to a block 72.
The block 72 determines whether the variable n is equal to n_{max} (which, for example, may be set at 255 because continuous tone values are represented by eight bit diqital quantities). At this point, the variable n is equal to zero and, therefore, the variable n is not equal to n_{max}. Accordingly, a block 74 increments the variable n by one, and the program 50 returns to the block 56 to process the new initial matrix with the variable n now set to one. The program 50 is repeated for each increment of the variable n. A further constraint on the program 50 is that, if an element in the initial matrix has been switched during a previous pass through the program 50, that element cannot be switched again. Thus, if the block 66 would otherwise switch a previously switched element, it must instead switch the next larger smallest element and/or the next smaller largest element, as appropriate. When the variable n is equal to n_{max} as determined by the block 74, the program 50 is ended. The result is the matrix MAT which acts as a filter having its low frequency components suppressed.
It should also be noted that the second parts of equations (1) and (2) involve the application of a first filter W, whereas the third parts of equations (1) and (2) involve the application of a second filter in the form of the matrix Mat.
Certain modifications of the present invention have been discussed above. Other modifications of the present invention will occur to those skilled in the art. For example, while the errors e_{0} and e_{1} are described above as being diffused in the pattern similar to that taught by Floyd and Steinberg, any other appropriate diffusion pattern may be used.
Also, the errors e_{0} and e_{1} are described above as being determined in accordance with equations (1), (2), (4), and (5). However, any other suitable methods may be used to determine the errors e_{0} and e_{1}.
Moreover, instead of calculating the value of γ using equation (3) or any other suitable equation at the time that a continuous tone value is converted, a look up table may be generated beforehand which contains a value of γ for each of the 256 possible continuous tone values. Thus, when a continuous tone value undergoes conversion, the magnitude of that continuous tone value is used to address the look up table to select a corresponding value of γ. This look up table may be stored in the memory 14
Furthermore, as shown in FIG. 6, γ varies only in the region where C_{i},j is less than about twenty, i.e, at the lower end of the range of C_{i},j However, equation (3) may be arranged to provide a similar region at the upper end of the range of C_{i},j. Additionally, the block 64 in FIG. 5 may be omitted because the function of determining which elements in the convolution matrix are largest and smallest may be performed by the block 66 without sorting.
Also, there are known marking devices which respond to output values having more than two levels. Therefore, while the present invention has been particularly described in relation to the conversion of continuous tone values to output values having one of two levels, i.e. to binary values, the present invention is also applicable to the conversion of continuous tone values to output values having more than two levels. For example, the present invention is applicable to the conversion of continuous tone values to output values having three levels which, for convenience, may be denoted as r, s, and t. In the case of converting continuous tone values to output values having these three levels, the program 20 shown in FIG. 4 should be modified to determine three errors, i.e. e_{r}, e_{s}, and e_{t}. The error e_{r} is determined as in the case of equations (1), (2), (3), and (4) but with an assumed output value of r, the error e_{s} is determined as in the case of equations (1), (2), (3), and (4) but with an assumed output value of s, and the error e_{t} is determined as in the case of equations (1), (2), (3), and (4) but with an assumed output value of t. The continuous tone value undergoing conversion is set to an output value of r if the error e_{r} is smaller than the error e_{s} and the error e_{t}, the continuous tone value undergoing conversion is set to an output value of s if the error e_{s} is smaller than the error e_{r} and the error e_{t}, and the continuous tone value undergoing conversion is set to an output value of t if the error e_{t} is smaller than the error e_{r} and the error e_{s}. If the continuous tone value undergoing conversion is set to an output value of r, the error e_{r} is diffused; if the continuous tone value undergoing conversion is set to an output value of s, the error e_{s} is diffused; and, if the continuous tone value undergoing conversion is set to an output value of t, the error e_{t} is diffused.
Additionally, with respect to the program 20 shown in FIG. 4, binary values are predicted as they are needed to convert a continuous tone value to a binary value. Instead, all binary values that are necessary to convert all continuous tone values to binary values may be predicted initially. In this case, when the block 36 determines that not all continuous tone values have been converted, the program 20 returns to the block 24 instead of to the block 22.
All such modifications are intended to be within the scope of the present invention.