Method and apparatus for producing a digital half-tone representation of an image

Abstract: A method of producing a digital half-tone representation of an original image. The representation comprises an array of output cell values representing the colour content of pixels of the original image. The method comprises determining cell values for successive output cells, for which cell values have not previously been determined, by: (1) generating an output cell value with reference to an input cell value related to the colour content of a corresponding pixel in the original image, and any error values propagated from previous performances of step (3); (2) where the output cell value satisfies a predetermined condition, determining the effective colour content of a neighbourhood of previously determined output cell values by addressing a look-up table containing a single value for each neighbourhood; and (3) determining an error value comprising the difference between the effective colour content and the corresponding input cell value, and propagating the difference for use in subsequent performances of step (1).

Description: The invention relates to methods and apparatus for producing a digital half-tone representation of an image. A digital half-tone representation of a continuous tone image may be printed with amplitude modulated dots whose sizes vary with the required colour density in the corresponding region of the original image. Alternatively, the half-tone dots may be frequency modulated by varying the spatial density of identical dots in a particular area to obtain an effective colour density which varies as required. Conventionally, the effective colour density of an array of frequency modulated half-tone dots is determined strictly in accordance with the number density of dots. This does not take into account dot overlap, i.e. the effect of the overlap of a dot printed in one dot cell area with neighbouring dot cell areas or Yule-Neilsen effects because the paper is not opaque over distances of the order of the dot widths. Figure 3 illustrates the effect of dot overlap on effective colour density. A and B contain the same number of dots/cm 2 but arranged on a square lattice in different ways. We can see they have different effective % dot values. Any FM screening algorithm that takes no account of neighbourhood will not distinguish between them. Their half-tones will have regions of both patterns and so will appear either mottled or noisy because they have injected noise to break up the patterns. Ulichney (IEEE Proceedings 76, p56-79 (1988)) has avoided effects of this kind by introducing a random element into the error diffusion process. Conventional dot overlap models, as shown for example in "Model Based Half-Toning" (Pappas and Neuhoff - SPIE, Volume 1453, Human Vision, Visual Processing, and Digital Display II (1991)), involve measurements of the grey level value due to various dot patterns within a finite window around the element, e.g. a 3 x 3 window. The effective grey level for each dot pattern is used in the half-tone screening algorithm to calculate the error values which are propagated from the current element and its nearest neighbours to the neighbours yet to be calculated. However, the dot overlap compensation model used in this paper does not consider the fact that each measured pattern contains a number of "neighbourhoods". Therefore, it is assumed that for a particular dot neighbourhood the effective dot value corresponds with the measured grey level of a periodic array of identical neighbourhoods with the uncalculated elements being set to zero. The binary values of the uncalculated neighbours in the 3 x 3 window are assumed to be zero, and therefore as the content of each new cell is calculated, the effective dot value of each of the previously calculated neighbouring cells will change if the new cell is designated as "black", since their neighbourhood pattern will change. This requires further processing power since the corresponding error values must be re-calculated. In WO-A-90/09075 a half-toning method for creating a binary image from a continuous tone image is improved by including the human visual blur function in a recursive error propagation algorithm so that perceived error rather than binary error is propagated. In accordance with one aspect of the present invention, we provide a method of producing a digital half-tone representation of an original image, the representation comprising an array of output cell values representing the colour content of pixels of the original image, comprising determining cell values for successive output cells, for which cell values have not previously been determined, by: (1) generating an output cell value with reference to an input cell value related to the colour content of a corresponding pixel in the original image, and any error values propagated from previous performances of step (3); (2) where the output cell value satisfies a predetermined condition, determining the effective colour content of a neighbourhood of previously determined output cell values by addressing a look-up table containing a single value for each neighbourhood; and (3) determining the difference between the effective colour content and the corresponding input cell value, and propagating the difference for use in subsequent performances of step (1). In accordance with a second aspect of the present invention, we provide apparatus for producing a digital half-tone representation of an original image, the representation comprising an array of output cell values, representing the colour content of pixels of the original image, comprising means for determining cell values for successive output cells, for which cell values have not previously been determined, by: (1) means for generating an output cell value with reference to an input cell value related to the colour content of a corresponding pixel in the original image, and any error values propagated from previous performances of step (3); (2) means for determining the effective colour content of a neighbourhood of previously determined output cell values by means for addressing a look-up table containing a single value for each neighbourhood where the output cell value satisfies a predetermined condition; and (3) means for determining the difference between the effective colour content and the corresponding input cell value, and means for propagating the difference for subsequent use of said generating means. The dot overlap model in Pappas is employed for the current cell regardless of its output value. In the present invention, step (2) is only carried out when the output cell value satisfies a predetermined condition. This invention provides a more faithful image with less artifacts than the prior art by providing a more accurate effective dot value for each cell, which takes into account dot overlap and the neighbourhood pattern provided by the current cell and its nearest neighbours for which values have previously been determined. Preferably, the output cell values are binary values, i.e. the output cell value determines whether or not a dot is printed in the cell area when the image is printed, and the effective colour content is only calculated when the current cell is black. Typically, step (2) is only carried out when the current output value is black, and the effective colour content is set to zero if the current cell is white. The dot overlap compensation model used in Pappas does not take into account the important much longer range effects due to light diffusion within the paper, nor does it attempt to break up the regular patterns when the form. The first effect can cause errors in the tone, particularly for very low or very high dot percentages where the effective period for the pattern are very large. This problem is typically overcome in the present invention by using a separate input LUT (tone curve) with its own calibration stage. The second effect can give sharp contrasts in texture and visible artifacts at boundaries between different patterns or similar patterns with different phase. Random noise is typically added to the error value to ensure that there is always some randomizing process at work. However, unchecked, this would introduce dots into regions of 0% and 100% tint. While the actual error in the tone would be very small. The dots are very visible against the clear background. Therefore, in a preferable embodiment of the present invention these problems are overcome by combining the dot overlap error generation (for the short range effects) with a filtered random signal (to break up the patterns). Also, a binary mask may be used (to ensure the black and white limits stay solid). The neighbourhood of previously determined cells may comprise four of the nearest cells in a square array or three of the nearest cells in an hexagonal array. Alternatively, the neighbourhood may extend further than the nearest neighbours. There are five calculated points in the square neighbourhood if we include the current point. We may, however, assume the overlap of all neighbourhoods where the current point is light is zero without introducing any errors, provided the effective values for the other neighbourhoods where the current point is dark is calculated accordingly. This reduces the total number of independent patterns to be measured down to 16. See the section "Calculation of effective neighbourhood % dot" for more details. Preferably, the values in the look-up table are determined with reference to a set of calibration patterns, each calibration pattern containing one or more neighbourhoods. The colour density of each calibration pattern is determined (for example by measurement). Each neighbourhood's effective colour content is determined by adding a predetermined fraction of the measurements from one or more calibration patterns. The predetermined fraction is determined by calculating a matrix which converts from neighbourhood patterns to calibration patterns, and inverting it. Typically at least some of the neighbourhoods are calculated using more than one calibration pattern. Typically, each cell's error value is calculated by comparing the cell's effective neighbourhood colour density with the required density in the original image as represented by an input pixel value which may vary typically from 0 to 255. A two dimensional filtered noise signal may also be added to the error values in order to prevent periodic artifacts in the final image. Typically, the effective neighbourhood colour density is set to 0 if the output cell value is 0, and if the input pixel value is 0% (white) or 100% (black) the effective neighbourhood colour density is set to 0% or 100%. This prevents black or white "holes" being printed in what should be entirely black or white areas. The cell values may be determined sequentially according to a conventional raster pattern, alternatively they may be scanned using a serpentine raster (i.e. each scan line scanning in alternate directions). Preferably, the image is scanned with a double serpentine raster (i.e. the scan direction reversing every other line) with adjacent lines being calculated in parallel. An example of method and apparatus according to the present invention will now be described with reference to the accompanying drawings, in which:- Figure 1 is a schematic diagram of the apparatus; Figure 2 illustrates an input pixel and the corresponding output cell and textel areas; Figure 3 is a diagram illustrating the effect of dot overlap on effective neighbourhood colour density; Figure 4 is a flow diagram illustrating the method of the invention; Figure 4A is a schematic diagram of the algorithm moving across an image; Figure 5A illustrates the effect of the 2-bit LUT which determines the class of the input cell value; Figure 5B illustrates the full range of the corrected input cell value; Figure 6A is a diagram illustrating the filter which is used to add noise to a 2 x 2 region; Figure 6B illustrates the effect of convolution of two 1D filters; Figure 7 is a 3 x 3 cell window centred on the current cell; Figure 8A illustrates a serpentine raster; Figure 8B illustrates a double serpentine raster; Figure 9 illustrates the 17 calibration patterns; Figure 10 is the matrix of the fraction of each neighbourhood in each calibration pattern; Figure 11 illustrates the relationship between neighbourhood patterns and calibration patterns; Figure 12 is the inverse of the matrix in Figure 10 which is used to convert from neighbourhood to patterns; Figure 13 is an example of the measured colour content of each calibration pattern; and Figure 14 shows the entries in the LUT for each neighbourhood. Initially, an original image 1 (shown in Figure 1) which may comprise a continuous tone image, is rasterized by an image processor 21 yielding input pixel data which is stored in an input store 2. This step may include replication or interpolation of the image data. The input pixel data may comprise an 8 bit word for each pixel, i.e. the colour density of each element of the original image corresponding to an input pixel is represented by a digital number from 0-255. The input pixel data is then processed under the control of a microprocessor 3 to produce an output binary cell value at 4. The input pixel data addresses input LUT 22 whose output is added to the store 23. Errors from previously calculated cells are added from an error store 24, along with a random signal from a noise generator 25. The total stored in 23 is then thresholded at 27 to produce an output cell value at 4, which is either stored at 26, or printed by a printer 20. Figure 2 illustrates typical regions of the input and output images. 5 represents the area of a pixel of the original image. This pixel is scanned to produce a pixel data value from 0 to 255. 6 represents the corresponding area of the output which is stored at 26 or printed at 20. This area is made up of a 3 x 3 array of cells 7. Each cell 7 is represented in the image store 26 by a binary value. Depending on the printer, the dots may be made up of a number of textel dots 8 shown in Figure 2. A textel dot is the smallest element that may be printed by the output printer 20. Typical frequencies are 12 pixels/mm, which produce an FM half-tone bit map at 36 cells/mm, which is then output at 72 textels/mm. The method will be described as though the final image has only one colour separation. If the image has more than one separation a similar process is carried out on each separation. Figure 4 illustrates the various stages of the screening process. This will be described with reference to the apparatus shown in Figure 1. At 31 an original image pixel is scanned by scanner 21 to produce input pixel data 32. The pixel data is converted into input cell values 33. Each input cell value needs to be sorted into three classes... (1) cells that must be printed white ( ≤ 0% dot ); (2) cells that must be half-toned ( 0 < %dot < 100 ); and (3) cells that must be printed black (≥ 100% dot). This is necessary because noise and propagating errors in the FM half-toning algorithm can otherwise put dots into regions that ought to be solid white or black. This may be achieved using a 2-bit look-up table. The 0-255 input cell value is centred on 0, and the white and black input values are offset to +/-768, as shown in Figure 5A. For (1) and (3) we have all the data we need. For (2) a tone corrected measure of the effective %dot is required for the cell. In software where precision is not usually a problem this would be provided by a simple look-up table 22. In hardware, where it may be necessary to restrict the number of bits to keep the process rapid and compact, the input values are looked up in a table with random dithering, e.g. by adding a 2-bit random integer. The effective value for cases (1) and (3) is zero. The input LUT table 22 is useful for making smooth corrections to the tone curve of the process, and for stretching the 0-100% dot printable range to fit the digital range of the processors. The input cell value is then modified by adding errors from the neighbouring cells which are stored in error store 24. This is necessary since only two levels - black or white - may be printed in any one cell so it is unlikely that the value will be matched precisely (unless it is 0 or 100%). It will probably be necessary to carry over some error signal to the calculation of the next cell. This shall be described with reference to Figure 7. Figure 7 shows the current cell X, surrounded by four previously calculated nearest neighbours a-d, and four nearest neighbours A-D which have not been calculated yet. The screening process runs down the lines from d to D, and successive lines are processed from left to right. In general, in a square array there will be 4 neighbouring cells that have been calculated which propagate their errors to the current cell. The error values are added to the current effective cell %dot. A noise signal is added at 37 from noise generator 25 to break up some of the patterns which may result from error propagation and overprinting, and to provide a random "seed" for the error propagation after a large block or solid tint. After this step, assuming the total errors are ranged from -255 to 255, the signed 11-bit range may be filled as shown in Figure 5B. This represents the total which is stored at 23 in Figure 1. Instead of adding a random value separately to each cell, it is preferable to add/subtract random values ranged between -NOISE and NOISE to each 2*2 region of cells, shown in Figure 6A. This is just as effective in breaking up the patterns, but because the signal sums to zero in either direction, there should be no long-period visible components to this signal. In effect we have generated a 2-D random signal then applied a 2-D high-pass filter. This filter can be viewed as the convolution of two 1-D filters, shown in Figure 6B. This can be used to generate the random signals in neater and more compact ways. Typical values for NOISE as a fraction of the 0-100% range are... 40% - best for single separations 60% - best for overprints The method of generating final output cell values and corresponding error values is shown in Figure 4 at 38-43. In these steps the process determines the bit value for the current cell and the errors to be propagated to the neighbouring cells that have not been calculated yet. There are four of these (A-D), shown in Figure 7. The algorithm runs vertically in the direction --d--x--D--> The printed values and errors are generated as follows... (1) First at 38 the binary print value for the cell is determined. If the input tables set the print value (ie. the input value is black or white) then the algorithm skips straight to step 40. Otherwise the bit value is set to white if the corrected input cell value (ie. with the errors and noise signal added) is negative, and black if it is not. (2) If the cell is white, then the process jumps straight from 41 to step 40. If the cell is black then it will have an effective %dot value that must be subtracted from the corrected input cell value before propagating the remaining error to the neighbours. This %dot value will be affected by overlap from the previous cells a-d. A 4 bit number is made at 42 from the 4 binary values for cells in the neighbourhood, then the effective neighbourhood %dot value is looked up at 43, and subtracted from the corrected input cell value. (3) The resulting error value is divided up at 44 between the neighbours A,B,C,D in the ratio 1:2:1:4 respectively. The division must be done in such a way that the total of the propagated errors comes to the original value. So far the description might imply the algorithm always runs the same way along the line. In fact many troublesome patterns may be avoided by periodically reversing the direction of the scan. Many authors have used the "Serpentine raster" where alternate lines are processed in the opposite direction, shown in Figure 8A. This is a nuisance for parallel architectures because you do not calculate the first cell on the next line until the previous line is finished. An alternative is the "Double Serpentine Raster". Here pairs of lines are reversed, as shown in Figure 8B. The calculation on the second line can start when the second cell on the first line is complete. We have also found this is better at breaking up long range patterns. Higher order serpentine rasters are possible, but you can sometimes see their repeat. Figure 4A is a schematic diagram of how the screening algorithm moves across the image. In this Figure, the lines have been rotated by 90° and the algorithm runs along the lines from left to right. Calculation of effective neighbourhood % dot When the centre spot of the 5-cell neighbourhood (x) is white, then the effective %dot for that cell is taken to be 0%. Therefore the white cells are not compensated for dot overlap. However, this does not affect the method's accuracy: it only affects which cell we choose to say the overlap "belongs" to. It is assumed that the effective %dot of the centre cell includes all the dark overlap of the centre cell with the ones yet to be calculated. A number of similar assumptions could have been made, but this is one of the simplest. It is necessary to measure the effective %dot for the 16 neighbourhoods with x dark, and all the combinations of light and dark at a-d. Let us number these 16 neighbourhoods from 0 to 15 using the binary values in the order abcd. Some of these values can be measured from a single calibration pattern, but most patterns contain more than one neighbourhood. The set of calibration patterns should not have two patterns with the same ratio of neighbourhoods in. This would mean we had not got 16 independent measurements, so we could not solve for all our 16 variables. Similarly no combination of patterns should be equivalent to another. What we are trying to do is to construct a 16*16 matrix that transforms a pattern vector to a neighbourhood vector, then invert it to transform our %dots from patterns to neighbourhoods. To be invertible this matrix must have a determinant that is not zero, and ideally is well away from zero. We need another set of 16 patterns for doing an identical calibration when the scan is running in the other direction assuming the spot is not symmetric. In fact we can use 15 of the previous 16 patches, so we only needed to add one extra patch. The 17 patterns are illustrated in Figure 9, with 0 representing white, and 1 black. Measurements are made of a periodic array of the calibration patterns 0-15 to generate the %dot table for the scans running down the page as the unit cells are drawn. If we then swap the measurements for the last 4 pairs of patches (9 & 10, 11 & 12, 13 & 14, 15 & 16) we then have the equivalent set of measurements for scans running up the page. These patterns were the subset of all the 5*5 and smaller patterns that gave the 16*16 normalized matrix with the greatest determinant. The matrix M of the fraction of each neighbourhood in each pattern is shown in Figure 10. Each row corresponds to a particular pattern and each column corresponds to a particular neighbourhood represented by the binary number abcd. Figure 11A shows how matrix M is related to the calibration pattern colour content P and the effective neighbourhood colour density N. Most rows do not sum to 1. We have left out all the white cells, so the sum of any row will be the fraction of black cells in the calibration pattern. The first line of this matrix shows that the pattern 0 (solid black) is composed of 100% of neighbourhood 15 (abcd = 1111) as one would expect. This is illustrated in Figure 11B. Clearly pattern (0) contains neighbourhood (15) as indicated in dotted lines. Similarly, Figure 11C shows that pattern 4 (a "chess-board" pattern) is composed of 50% of neighbourhood 10 (as read off by the matrix entry indicated at 50). In contrast, pattern 6 is composed of 1 / 3 of neighbourhoods 7 and 11. Pattern 6 contains both neighbourhoods, as indicated in dotted lines. The inverse M' of this matrix is shown in Figure 12. This matrix converts from pattern numbers to neighbourhoods. The bottom line of M' shows the composition of neighbourhood 15 (1111). Any linear property such as %dot of neighbourhood 15 is 1 times the pattern 0 (solid black value) + 0 x all the others as we might expect. Similarly, neighbourhood 0 is calculated as 4 times the %dot of pattern 3, because 1 cell in 4 of pattern 3 is dark with the surrounding neighbourhood 0, and the rest are light. The formulae for neighbourhoods like 3,7 or 12 are more complex. To calibrate, we print 0 and 100% patches and the 16 patterns, then measure their %dots on a densitometer. The test pattern we use also has a white square at the beginning. White and black should be 0% and 100%. A typical list of measurements is shown in Figure 14. These values were obtained for a 6 x 6 expose machine at 36 1/mm. Multiplying any row in the matrix by values 0-15 gives you the effective %dot for that neighbourhood with the FM algorithm running down the lines. Note that the symmetrical pairs of patterns (11,12), (13,14) and (15,16) have different measurements since the printed dots are not perfectly circular. The values for each of the neighbourhoods is shown in Figure 15 which corresponds with the LUT which is addressed at 43 in Figure 4. These were calculated with reference to the measured values in Figure 14. Swapping the last four pairs of values and repeating gives the values with the FM algorithm running up the lines. The effective %dot for neighbourhood 0 (A,B,C,D = 0) is 136%. This makes sense if the isolated dot is spreading significantly into its blank neighbours, and the blank neighbours are not assigned with any of the overlap. Once this calibration is complete, the FM screener can screen another test image with a series of patches with nominal % dot values. This can be used to set up the tone correction in the input LUTS to correct for Yule-Neilson and other long-range effects.

Claims: A method of producing a digital half-tone representation of an original image, the representation comprising an array of output cell values representing the colour content of pixels of the original image, comprising determining cell values for successive output cells, for which cell values have not previously been determined, by: (1) generating an output cell value with reference to an input cell value related to the colour content of a corresponding pixel in the original image, and any error values propagated from previous performances of step (3); (2) where the output cell value satisfies a predetermined condition, determining the effective colour content of a neighbourhood of previously determined output cell values by addressing a look-up table containing a single value for each neighbourhood; and (3) determining an error value comprising the difference between the effective colour content and the corresponding input cell value, and propagating the difference for use in subsequent performances of step (1). A method according to claim 1, further comprising adding a random value to the error value calculated in step (3) for propagation with the error value. A method according to claim 2, wherein the random value comprises part of a 2D filtered noise signal. A method according to any of the preceding claims, wherein the output cell value comprises a binary value which determines whether or not the current cell is to be assigned with a half-tone dot. A method according to claim 4, wherein the output cell value satisfies the predetermined condition in step (2) if it assigns the current cell with a half-tone dot. A method according to claim 4 or claim 5, wherein the effective neighbourhood colour density is set to "0" without reference to the neighbourhood of previously determined output cell values, if the output cell value does not assign a half-tone dot to the current cell. A method according to any of the preceding claims, wherein the output cell value does not assign a half-tone dot (i.e. is set to "0") if the input cell value is "0" (corresponding to a colour content of 0%), and assigns a half-tone dot (i.e. is set to "1") if the input cell value is "1" (corresponding to a colour content of 100%). A method according to any of the preceding claims, wherein the input cell values are obtained from the input pixel data related to the colour content of a corresponding pixel in the original image by addressing an input look-up table with random dithering. A method according to any of the preceding claims, wherein successive pixels are scanned from the original image using a serpentine raster. A method according to any of claims 1 to 8, wherein the pixels of the original image are scanned using a double serpentine raster, in which the scanning direction is reversed every other line. A method according to claim 10, wherein output cell values are calculated for two successive lines in parallel. A method according to any of the preceding claims, wherein the values in the look-up table containing a single value for each neighbourhood are determined in accordance with measured values from a set of periodic calibration patterns. A method according to claim 12, wherein the values are determined by adding a predetermined function of the measured values from one or more calibration patterns. A method according to claim 12 or 13, wherein the set of periodic calibration patterns form a complete orthogonal set. A method according to any of claims 12 to 14, wherein at least some of the effective neighbourhood values are determined with reference to more than one calibration pattern. Apparatus for producing a digital half-tone representation of an original image, the representation comprising an array of output cell values, representing the colour content of pixels of the original image, comprising means for determining cell values for successive output cells, for which cell values have not previously been determined, by: (1) means for generating an output cell value with reference to an input cell value related to the colour content of a corresponding pixel in the original image, and any error values propagated from previous performances of step; (2) means for determining the effective colour content of a neighbourhood of previously determined output cell values by means for addressing a look-up table containing a single value for each neighbourhoods where the output cell value satisfies a predetermined condition; and (3) means for determining an error value comprising the difference between the effective colour content and the corresponding input cell value, and propagating the difference for subsequent use by said generating means.

Inventors: KIRK RICHARD ANTONY, KIRK, RICHARD ANTONY
Applicants: FUJIFILM ELECTRONIC IMAGING LI, FUJIFILM ELECTRONIC IMAGING LIMITED
Application year: 1995
Main classification: H04N1
IPC codes: G06T5, H04N1