Image processing apparatus

Abstract: An image processing apparatus (30), which can solve the problems of delay in dot generating in beginning portions of areas of low or high density and/or tailing after finishing areas of low or high density and carry out speedy binary coding image processing without accompanying side effects of quality depletion and without the need to utilise a complicated processing circuit. It includes error correction means (34) which corrects multigradation image data (200) and outputs it, threshold error setting means (32) which sets a binary coding threshold value based on the gradation value of said target pixel multigradation image data (200) and binary coding means (36) which, based on the set threshold value, converts the previously mentioned corrected pixel data into the previously mentioned bigradation image data and outputs it; the gradation value of the previously mentioned target pixel multigradation image data being data, the median value of the previously mentioned first gradation value and second gradation value being m and the previously mentioned threshold value being slsh, the previously mentioned threshold setting means (36), when the gradation value of the previously mentioned target pixel multigradation image data is in the neighbourhood of the previously mentioned first and second gradation values, the binary coding threshold value is set within the tolerance range shown in the following equations: when data < m, data ≦ slsh ≦ (m + data) / 2, when data > m, (m + data) / 2 ≦ slsh ≦ data.

Description: The invention relates to an image processing apparatus. In the past, multigradation image data read using image input from a scanner or multigradation graphic image data computed using a computer was reproductively displayed by, for example, a display or printer etc.; or such as a facsimile machine or copier. At this time, as an image output apparatus, in the case of being used to reproductively display multigradation image data there was no problem, but, for example, in the case of using a printer apparatus or a display apparatus which did not control the gradation of dot units, it was necessary to perform binary coding processing to reduce the number of gradations of each pixel to 2 gradations. Furthermore, in the case where the volume of the afore-mentioned multigradation image data was reduced in order to store or transfer it, binary coding processing was performed in the same way to reduce the number of gradations of each pixel to 2. There are many types of techniques of binary coding, but among them, one with an error diffusion method or an equivalent minimum average error method is widely used as the one with superior picture quality. An error diffusion method or a minimum average error method, having high resolution, has the superior characteristic of the possibility of continuous gradation reproduction. In the above-mentioned error diffusion method, a quantization error occurring during binary coding of a pixel is diffused and added to the adjacent non binary-coded pixels. On the other hand, the minimum average error method is a method whereby the weighted average value of a quantization error occurring in already binary-coded pixels amends the pixel data value of the following target pixel. The error diffusion method and the minimum average error method are different only with respect to when the error diffusion operation is carried out, so logically they are the same. Unexamined Japanese Patent Publication No. Hei. 1-284173 is an example employing the error diffusion method. However, in the previous image processing apparatus utilizing the error diffusion method and the minimum average error method, when converting multigradation image data to bigradation image data there were the following problems: First, black dot generation in the initial part of an area of low density (an area with few black dots), and white dot generation in the initial part of an area of high density (an area with few white dots), was substantially delayed, with the result that, in the worst case, the image was transformed. Further, even after an area of low density and an area of high density were finished, there was the problem that a phenomenon (tailing) developed, in which image data following the finishing of an area of low density was deflected towards the high density side, and image data following the finishing of an area of high density was deflected towards the low density side. Considering the case of the first problem in a bigradational printer apparatus printing black ink dots on white paper, because the black dots got bigger due to ink blurring, the white dots were difficult to distinguish because of blurring from the surrounding black dots, and the result was that former problem was especially noticeable in the low density portion. The afore-mentioned problems will be discussed in detail using the drawings. Fig. 13 is an original image 100 displayed utilizing multiple gradations. Inside a high-density square area 110 with a density gradation value of e.g. 252 (highest value- 255), there is a low density square area 120 with a density gradation value of e.g. 3 (lowest density - 0). Further, at the bottom right of the low density square area 120 a 45 degree inclined straight line with a density gradation value of e.g. 231 (slightly lower density than the 252 background density) is drawn. In Fig.14 (A), in a previous technology utilizing an error diffusion method, the original image 100 (shown in Fig.13.) multigradation image data binary-coded image is shown. Further, in Fig.14 (B), an outline diagram shows the position of 14 (A). This binary-coded image was obtained by a repeated binary coding process, with the upper left-hand corner pixel of original image 100 as the binary coding starting point; after one line having been binary coded in a rightwards direction, it is moved to one pixel lower at the left-hand end and the process is continued. In contrast to this, Fig. 12 is an example of the output in the case of ideal binary coding of the same original image 100 by the image processing apparatus of the present invention. If we compare the two, in Fig.14 in the upper and left-hand portions of the high density square area 140 (Please refer to Fig.14 (B)) the generation of white dots was delayed; further, in the upper and left-hand portions of the low density square area 120 delay in the generation of black dots occurred. That is, the above-mentioned first problem occurred in the portions 140 and 142. Further, due to the influence of tailing from the square-shaped low density area 120, one portion (132) of straight line 130 in the bottom right-hand area 150 disappeared. In this way, the above-mentioned later problem occurred in area 150. Unexamined Japanese Patent Application No. Hei. 1-130945 (=DE 3 838 730 A1) proposed a solution to these problems. In the first embodiment mentioned in this proposal, in the case of managing from 0-255 256 gradation input density data, where the input density data was between 1 and 29, the threshold value changed randomly. Where the input data was between 1-4, the threshold value was between 20-230, where the input data was between 5-14, the threshold value was between 50-200 and where the input data was between 15-29, the threshold value was between 100-150; this is the range within which the threshold value changed randomly. The random noise range was ± 105 when the data was from 1 - 4, ± 75 when the data was from 5 - 14 and ± 25 when the data was from 15 - 29; the result was that a large noise was added in a low density area close to 0. However, the expected values of the threshold values were all uniformally at 125. In such a way the delay in dot generation was improved, because the case developed wherein when the density was low the threshold value became exceptionally small due to a large threshold value noise, and even in the transitional portion of an area of low gradation density, pixels binary coded to 255 developed. Therefore, in the case of improving the first problem by this method, because there was exceptionally high noise in the area of low density, a low quality image resulted. Further, in this previous example a special structure called a determining circuit was provided. Using this determining circuit, in the case wherein, if upon examination of the binary coding result of binary-coded pixels surrounding the target pixel there were already dots adjacent, a determining process wherein the target pixels were not binary coded to the present dots was carried out. It is considered that this improves the above-mentioned problems a little. However, for that purpose, to refer to the binary coding result of the surrounding 12 pixels, complicated determining processing became necessary, there were the problems of increased processing time and still unsatisfactory picture quality. In addition to this, in this related art the improvement in the second problem was insufficient. Still further, in the 'Other Embodiments 1' mentioned in this related art, there are discrepancies in the way of defining signal 410 and in Fig.1 which shows the example, thus it is difficult to correctly understand it.However, as it is stated in the related art, 'it has a threshold value setting function in the same way as in the above-mentioned embodiment, moreover the scale of the hardware is small' it is considered that in the same way as in the first embodiment a large volume of noise was added to the threshold value in the area of low density. Accordingly, the 'Other Embodiments 1' mentioned in this related art had the same problems as 'First Embodiment'. EP 0 414 505 A2 describes an edge enhanced error diffusion algorithm. In this method, the threshold level is changed during image encoding. An analysis of the value of each pixel is done to determine if the threshold level should be changed. The threshold value is set as a function of the pixel value, the pixel position and an enhancement factor. EP 0 544 511 A2 further improves on EP 0 414 505 A2 in providing an additional dither matrix containing threshold values having a dynamic range that is greater than that of the original image to be processed. These threshold values are used to determine a threshold level for a particular pixel of the image. Further, as other methods of improving the afore-mentioned first and second problems there are proposals such as the 'Image Processing Apparatus' of Unexamined Japanese Patent Application No. Hei.3-112269, and the 'Image Forming Apparatus' of Unexamined Japanese Patent Application No. Hei.4-126464 etc. In this related art, an average density value was inferred by referencing the result of binary coding of a plurality of pixels surrounding the target pixels, and binary coding of the target pixels was carried out with that as a threshold value. However, in this method there were problems which are: (1) It was necessary to reference the result of binary coding of more than 10 surrounding pixels, so there was the problem that it took a long time for processing and a complicated processing circuit was necessary and/or (2) In the edge portions where the data changed suddenly it was inappropriate to use an average density value from the surrounding pixels, the result was the problem of incorrect binary coding being performed and noise being created. The present invention takes into account this kind of previous problem and provides an image processing apparatus according to independent claim 1. Further advantageous features, aspects and details of the invention are evident from the dependent claims, the description and the drawings. The claims are intended to be understood as a first non-limiting approach of defining the invention in general terms. The invention provides an image processing apparatus outputting multigradation image data changed into bigradation image data capable of displaying half tones. In particular it relates)according to a specific aspect) to an improvement of an image processing apparatus outputting multigradation image data changed into bigradation image data capable of displaying half tones using an error diffusion method or a minimum average error method. The invention provides for that purpose according to a preferred aspect of the invention an image processing apparatus, which can process multigradation image data into binary-coded image data at high-speed without using a complicated processing circuit and having no side effects involving picture deterioration, to solve problems such as delayed generation of dots in the initial portion of a low density area and high density area, and tailing after finishing an area of low / high density. The present invention according to a preferred aspect provides an image processing apparatus for converting multigradation image data into bigradation image data made from only 2 gradations: First gradation value and Second gradation value (First gradation value < Second gradation value); the apparatus preferably also includes an error correction means outputting corrected pixel data (corrected e.g. by adding an error diffused from the adjacent already binary-coded pixels to the target pixel multigradation image data); a advantageously the apparatus also comprises threshold value setting means which sets a binary threshold value based on the gradation value of the multigradation image data of said target pixels; the apparatus further may contain a binary coding means, outputting said bigradation image data changed from said corrected pixel data based on a set threshold value; wherein, with said target pixel multigradation image data gradation value data, the median of the above-mentioned first gradation value and second gradation value m and said threshold value slsh, whereby preferably by said threshold value setting means, said binary coding threshold value slsh is set, corresponding to said target pixel multigradation image data gradation value data, and satisfying at least one of the tolerance ranges shown in the following equations is satisfied: in the case where the value of data is close to first gradation value, data ≤ slsh ≤ (m+data)/2. in the case where the value of data is close to second gradation value, (m+data)/2 ≤ slsh ≤ data. Here, when said target pixel multigradation image data gradation value data is in the neighborhood of said first gradation value and second gradation value, said threshold setting means can set said binary coding threshold value slsh within said tolerance range. Further, when said target pixel multigradation image data gradation value data is in the neighborhood of said first gradation value or second gradation value, said threshold setting means can set said binary coding threshold value slsh within said tolerance range. According to a still further aspect of the invention(see especially claim 2), threshold value setting means based on said target pixel multigradation image data gradation value data, sets said binary coding threshold value slsh according to the following equation: slsh = (data*(K-1)+m)/K, provided that K is a constant expressed by an integer greater than 2. According to a still further aspect of the invention (see e.g. claim 3) threshold value setting means corresponding to said target pixel multigradation image data gradation value data, sets said binary coding threshold value slsh step by step. Yet according to a further aspect of the invention (see e.g. claim 4), threshold value setting means based on said target pixel multigradation image data gradation value data, sets said binary coding threshold value slsh according to the following equations: when data < m-L1, slsh = data+L1, when m-L1 < data < m+L2, slsh = m, when m+L2 < data, slsh = data-L2 provided that L1, L2 are constants expressed by integers between 0 to m. Yet according to a further aspect of the invention (see e.g. claim 5), the binary coding means of Claims 1 - 4 adds random noise to the set threshold value or said corrected pixel data and performs said binary coding processing on said corrected pixel data. As per a further aspect of the invention (see e.g. claim 6), the error correction means may include one or more of the following features: a diffused error storage portion to store the diffused error total value of each pixel; an error diffusion portion which calculates the binary coding error of the corrected pixel data and binary coding result, diffuses that binary coding error to the non binary-coded pixels adjacent to the target pixels using an error diffusion method, finds a new diffused error total value for each pixel by adding the diffusion error from said target pixels to the diffused error total value of each pixel stored in said diffused error storage portion and updates the diffused error total value of each pixel stored in said diffused error storage portion; and preferably a data correction portion which calculates said corrected pixel data by adding the target pixel multigradation image data and the target pixel diffused error total value stored in said diffused error storage portion; and/or which corrects the multigradation image data of the target pixels using an error diffusion method and outputs it as corrected pixel data. According to a further aspect of the invention (see e.g. claim 7) said error correction means may include: an error storage portion which stores each pixel error; an error diffusion portion which calculates the binary coding error of the corrected pixel data and binary coding result and stores that binary coding error in said error storage portion; whereby preferably a data correction portion calculates said corrected pixel data e.g. by finding an average error by reading the binary coding error of the adjacent pixels to the target pixels stored in said error storage portion and applying a predetermined weighting and adding this average error to the target pixel multigradation data; and corrects target pixel multigradation image data using e.g. a minimum average error method and outputs it as corrected pixel data. According to a specific preferred embodiment of the invention multigradation image data is input into the error correction means and the threshold value setting means. The error correction means corrects the target pixel data by adding the error diffused from the adjacent already binary-coded pixels and outputs this as corrected pixel data. Said threshold value setting means sets the binary coding threshold value based on the target pixel multigradation image data gradations. At this time, when the gradation value data of the target pixel multigradation image data takes a value at least close to the first gradation value and second gradation value of the image after binary coding, the binary coding threshold value slsh is set within the range shown in the following equations: when data is a value close to the first gradation value, then data ≤ slsh ≤ (m+data)/2, when data is a value close to the second gradation value, (m+data)/2 ≤ slsh ≤ data, further, the threshold value setting means, based on the set threshold value, changes said corrected pixel data into bigradation image data capable of displaying half tones composed of only the first gradation value and the second gradation value, and outputs that data. In this way, in the present invention, when the multigradation image data value is small, the threshold value is small, when the image data value is large, the threshold value is also large: in this way, by optimizing the binary coding threshold value corresponding to the gradation value of the target pixel multigradation image data, the accumulation of errors accompanying binary coding can be eliminated and generation of target pixel dots can be satisfactorily performed. Further, in an embodiment of the present invention, in the case of binary coding processing utilizing an error diffusion method or a minimum average error method being performed, even if the binary coding threshold value was changed, it was confirmed that the overall output density generally did not fluctuate. As explained above, in the present invention, the phenomenon of accumulation of a large number of errors in areas of low density and areas of high density is eliminated and the problems of delay in the generation of dots in the beginning portion of an area of low density and high density and tailing etc.after finishing an area of low density and an area of high density (the development of which was caused by these errors) is essentially solved without any accompanying side effects of quality depletion. Figure 1 is an outline explanatory diagram of the image processing system applied to the present invention; Figure 2 is a function block diagram of an image processing apparatus in which the image processing system shown in Fig.1 is utilized; Figure 3 is an explanatory diagram of an actual example of a diffusion weighting matrix used in the embodiment; Figure 4 is an explanatory diagram showing the original image data used to find the average binary coding error and the relationship with the average binary coding error discovery area; Figure 5 is a diagram showing the relationship between the gradation values of the original image data and the average binary coding error; Figure 6 is a diagram explaining how the average binary coding error is generated in the first embodiment of the present invention; Figure 7 is an explanatory diagram of the binary coding threshold value with the average binary coding error continuously at 0. Figure 8 is an explanatory diagram of another embodiment of the threshold setting means utilized in the present invention; Figure 9 is an explanatory diagram of another embodiment of the threshold setting means utilized in the present invention; Figure 10 is an explanatory diagram of another embodiment of the threshold setting means utilized in the present invention; Figure 11 is an explanatory diagram of the hardware construction of an example of the threshold setting means utilized in the present invention; Figure 12 is an explanatory diagram of the binary coding result used in the image processing apparatus of the present invention; Figure 13 is an explanatory diagram of the original image used to obtain the binary coding image showed in Figs.12 and 13; Figures 14(A) and 14(B) are an explanatory diagram of a binary coding result obtained by a related art error diffusion method; Figure 15 is a complete outline explanatory diagram of the image processing system incorporated within the image processing apparatus of the present invention; Figure 16 is an explanatory diagram of another embodiment of the system in Fig.15; Figure 17 is an explanatory diagram of another embodiment of the system in Fig.15; and Figure 18 is a block diagram of an embodiment of an image processing apparatus using a minimum average error method in correcting multigradation image data. The preferred embodiments will be described with reference accompanying the drawings. Overall Explanation of the System In Fig.1 the outline of a system utilizing an example of the image processing apparatus of the present invention is shown. Original image multigradation image data 200, output from image gradation data output apparatus 10 is input to image processing apparatus 30. Image processing apparatus 30 changes the gradient value of the input original image multigradation image data 200 into 2 gradations outputtable by the binary image output apparatus 20 and outputs it. That is, the multigradation image data 200 is corrected utilizing an error diffusion method or a minimum average error method, it is changed into bigradation image data 230 capable of displaying half tones composed of only the first gradation value and second gradation value and it is output. Binary image output apparatus 20 reproduces and outputs the original image from the bigradation image data output from image processing apparatus 30. In the present embodiment said image gradation data output apparatus 10 is formed utilizing a computer, and this computer is constructed in such a way that the multigradation image data 200 stored in a hard disk or the like is output to image processing apparatus 30. Said multigradation image data 200 is represented as 256 gradation density data from 0 - 255. Still further, this image gradation data output apparatus 10 apart from this is good for outputting, for example, computer graphic multigradation image data, and further, apart from computers, various means- for example scanners and video cameras- can also be utilized. In addition, the image processing apparatus 30 in this embodiment changes the input 256 gradation image data by error diffusion into bigradation image data 230 composed of only 0 (white) and 255 (black), and outputs it. Further, binary image output apparatus 20 in the present embodiment is constructed utilizing a printer which does not control the gradation of pixel units and, based on the input bigradation image data 230, it reproduces and outputs original image data capable of displaying half tones. Still further, said binary image output apparatus 20 apart from printers, may utilize displays, facsimile apparatus or digital copiers depending on the situation. Actual System Example Said image processing apparatus 30 in the present invention can be constructed equally effectively with the image gradation data output apparatus 10 and binary image output apparatus 20 in separate units or integrated in one body if necessary. For example, as shown in Fig.15, in the case of utilizing a host computer 12 as the image gradation data output apparatus 10 and utilizing a printer 22 as the binary image output apparatus 20, it is suitable for the image processing apparatus 30 of the present invention to be integrally constructed within printer 22. Further, as shown in Fig.16, it is also suitable for the image processing apparatus 30 of the present invention to be integrally constructed within host computer 12. In this case, host computer 12 is constructed including image gradation file reading means 14, printer driver 16 and data output means 18. Still further, said printer driver 16 (including image processing apparatus 30 of the present invention which receives multigradation image data 200 from image gradation file reading means 14 and printer control command generating means 16a which generates printer control commands based on the output of image processing apparatus 30) is constructed in such a way as to control printer 22 based on the printer control commands. Yet further, as shown in Fig.17, in the case where scanner 50 is utilized as image gradation data output apparatus 10 and multigradation image data read by this scanner 50 is output as binary coded data to host computer 60, it is suitable for the image processing apparatus 30 of the present invention to be integrally constructed within scanner 50. In this case, scanner 50 is constructed including image gradation data reading portion 52 which reads images optically, the image processing apparatus 30 of the present invention which outputs the read multigradation image data 200 as bigradation image data 230 and binary coded data output portion 54 which outputs the output bigradation image data 230 to the host computer. Still further, if necessary the image processing apparatus 30 of the present invention can be integrally constructed within apparatus other than those mentioned above. Furthermore, for the sake of ease of explanation, in the following explanation the construction wherein the image processing apparatus 30 of the present invention is constructed with image gradation data output apparatus 10 and binary image output apparatus 20 as separate units, as shown in Fig.1, is explained. Image Processing Apparatus In Fig.2 the function block diagram of said image processing apparatus 30 is shown. The image processing apparatus of the embodiment is constructed including optimum threshold value setting means 32, error correction means 34 and binary coding means 36. The data (i, j) of pixel P [i, j] in line i, row j is input to said optimum threshold value setting means 32 and error correction means 34 as the target pixel multigradation data 200. Said optimum threshold value setting means 32 sets slsh (i, j), used to binary-code the multigradation image data 200 of target pixel P [i, j], corresponding to the multigradation image data (i, j), based on the following equation: slsh (i,j) = (data (i,j) * (K-1) + 128) / K here, K is a constant represented by an integer larger than 2. Said error correction means 34 corrects the multigradation image data 200 of target pixel P [i, j] utilizing an error diffusion method based on the binary coding error generated by the binary coding of the adjacent pixels and outputs it as corrected pixel data c (i, j) to the binary coding means 36. Binary coding means 36 compares the input corrected pixel data c (i, j) of target pixel P [i, j] with the threshold value slsh (i, j) and binary codes it, outputting the result of this binary coding, result (i, j) as bigradation pixel data 230. That is, the corrected pixel data is binary-coded and output in the following way: if data_c (i,j) ≥ slsh (i,j), then result (i,j) = 255 if data_c (i,j) < slsh (i,j), then result (i,j) = 0 The error correction means of said embodiment are constructed including data correction means 38, error diffusion means 40 and error diffusion storage means 42. Said error diffusion storage means 42 stores the total error diffusion value total err (n, m) of each pixel of the original image. The error diffusion means 40 first finds the binary coding error err (i, j) from the binary coding result (i, j) and the corrected data c (i, j) in the following way: err (i,j) = data c (i,j) - result (i,j) Next, this binary coding error err (i, j) is diffused to and divided among the adjacent non binary coded pixels P [m, n] (P [i, j +1], P [i + 1, j] etc.). Concretely speaking, the diffused part from the present target pixel P [i, j] is added to the total error diffusion value total err (n, m) of each pixel stored in the error diffusion storage means 42. Now, an error diffusion weighted matrix as in Fig.3 (a) is used. The asterisk * in Fig.3 shows the target pixel. The total value of the weighting is 16, and the binary coding error in the present pixel (as a fraction of 16), corresponding to the position of the pixel which is the object of the distribution, is added to total_err (m, n) after multiplication by the weighted value in the fashion shown below: total err(i,j+1)=total err(i,j+1)+err(i,j)*3/16 total err(i,j+2)=total err(i,j+2)+err(i,j)/16 total err(i+1,j-2)=total err(i+1,j-2)+err(i,j)/16 total err(i+1,j-1)=total err(i+1,j-1)+err(i,j)*2/16 total err(i+1,j)=total err(i+1,j)+err(i,j)*3/16 total err(i+1,j+1)=total err(i+1,j+1)+err(i,j)*2/16 total err(i+1,j+2)=total err(i+1,j+2)+err(i,j)/16 total err(i+2,j-1)=total err(i+2,j-1)+err(i,j)/16 total err(i+2,j)=total err(i+2,j)+err(i,j)/16 total err(i+2,j+1)=total err(i+2,j+1)+err(i,j)/16 By the above process the error diffusion involved in binary coding of the target pixel is finished. The above process is repeated with each binary coding result output from binary coding means 36. If necessary, apart from this, Figs. 3 (b) and (c) can be utilized as examples of each type of such error diffusion weighted matrices. Next, the multigradation image data (i, j) of target pixel P (i, j) is input by data storage means 38, and the total error diffusion value total err (i, j) corresponding to target pixel P (i, j) is read from diffusion error storage means 42, using this as a basis the target pixel P (i, j) multigradation image data (i, j) is added and storage image data c (i, j) is found. Binary coding of the whole image is carried out by performing the following operation on all the pixels: data c (i,j = data (i,j) + total_err (i,j) Solution of First and Second Problems In this way, the image processing apparatus 30 of the embodiment, using an error diffusion method, translates the input target pixel multigradation image data 200 into bigradation image data 230 capable of displaying half tones, comprising gradation values 0 and 255, and outputs it. The special characteristic of the image processing apparatus 30 of the present embodiment is that the problem of a large volume of binary coding errors accumulating in areas of low density and areas of high density is solved by utilizing the optimum threshold value setting means 32, and the problems of delay in the generation of dots in the beginning portions of low and high density areas and tailing after low and high density areas are finished caused by such an accumulation are also solved. The following is an explanation of the reason why both the above-mentioned first problem (delay in dot generation) and second problem (tailing) in the image processing apparatus of the present invention are solved. The inventor of the present invention first determined the cause of the above-mentioned first and second problems. In order to do this, in the image processing apparatus shown in Fig.2, the optimum threshold value setting means 32 set the binary coding threshold value at 128. Furthermore, as image data 200, image data was input with all pixels having a uniform gradation value. Then the average value of the binary coding error err (i, j) added to the original image data by the above-mentioned Equation 5 was checked. To be precise, the optimum threshold value setting means 32 was removed from the image processing apparatus of the embodiment shown in Fig.2 and the binary coding threshold value was fixed at roughly 128. Next, as shown in Fig.4, an original image 160, 600 x 400 pixels in size- with all pixels of a uniform gradation- was binary coded starting from the top left-hand corner. Then, when the dot formation was considered to have reached a stable condition, the average binary coding error (the average value of the binary coding error err (i, j) added to the original image data by Equation 5) of the 200 x 100 pixel area 170 in the bottom right-hand corner was found. However, the threshold value was not completely fixed at 128; with the object of avoiding the generation of a specific, regular pattern, a small amount of random noise was added in the range plus / minus 6. This noise was added to avoid the regular generation of a pattern as the original data in the case of the present example was computer-generated artificial data. Fig.5 shows the results of the above experiment conducted on original image 160 with different gradation values. From the experiment results we can clearly see that in the original image 160, in the low density areas with a gradation value 1 - 4, also high density areas with a value of 251 - 254, the average binary coding error didn't become 0; on the contrary the absolute value even reached as high as 100, The average binary coding error corresponded to the expected values of error diffusion / accumulation volume in a stable state. Because the error diffusion method was thought to be a method of lowering the localized average value of the binary coding error, the large size of the absolute value obtained in this way was a deeply interesting discovery. From the experimental data shown in Fig.5 it is possible to analyze the generation mechanism of the previously-mentioned first and second problems in the following way: 1. In the case where the gradation values of the original image 160 are 1 - 8 and 247 - 254; close to 0 or 255, with the threshold value fixed at around 128, before settling in a condition where dots are stably formed, a large volume error accumulation (with the absolute value of the average binary coding error reaching over 80) is necessary. Especially with original image data with gradation values of 1 - 4 and 251-254, it is necessary to accumulate a volume of errors over 100 before settling in a condition where dots can be formed stably. When the density values of the multigradation image data 200 are close to binary density values 0 and 100, this error accumulation volume becomes large. 2. Error Accumulation Period. Further, in the case where the image data density is around 0, even with 0 binary coded only a few binary coding errors develop. Due to this, a considerable amount of accumulation time with diffusion and accumulation is necessary to reach a value of around 80 - 100. Yet further, in the case where the image data density is around 255, in the same way, a considerable amount of accumulation time with diffusion and accumulation is necessary to reach a value of around 80 - 100. Moreover, the accumulation speed becomes slow when the image data density values as binary coded density values are close to 0 and 255. 3. First Problem Dots are not formed during the period of error accumulation up to when the accumulation volume has reached a stable state. For this reason, as a large error accumulation volume is necessary in order to form dots, moreover a considerable amount of time becomes necessary to reach the necessary error accumulation volume, delay in dot generation develops. This is the cause of the first problem. 4. Second Problem As a large error accumulation volume is necessary in order to form dots, the surrounding image data is distorted by the large volume of accumulated errors being diffused as far as the exterior area. This is the cause of the second problem; the previously-mentioned problem of 'tailing' occurs. As stated in the above 1 - 4, in the case where the image data density values as binary coded density values are close to 0 and 255, the average binary coding error takes an unusually high absolute value and the 'error accumulation' phenomenon develops.This 'error accumulation' phenomenon is the cause of the development of the first and second problems. The optimum threshold value setting means 32 of the present invention gets rid of this 'error accumulation' primary cause and is an essential solution to the first and second problems. That is, it is a means wherein when the original image data 200 is low density, the threshold value is small; when it is high density the threshold value is large; optimizing the binary coding threshold value corresponding to the original image data 200 gets rid of the 'error accumulation' itself, dot formation is possible with no "error accumulation'. Here, the question "Don't the 255 (black dot) binary coded pixels increase, and doesn't the density rise substantially if the threshold value of the low density area is made small without regard to the result?" probably arises. Certainly, in an ordinary dither method where error diffusion is not performed, a change in the threshold value leads to an immediate change in the density. However, when the inventor of the present invention checked this, even if the threshold value was changed in the error diffusion method, the total output density hardly changed. That is, in the case where binary coding was carried out with the threshold value fixed at 128, and the cases where binary coding was carried out with it fixed at 64 and 192, the output density hardly changed. In the error diffusion method the binary coding error is not discarded, because it is diffused to the adjacent non binary-coded pixels. For example, even if the situation develops whereby a pixel previously binary coded to 0 is binary coded to 255 because of the threshold value being made small, a greater negative binary coding error than the absolute value is created in the pixel. This is diffused to the adjacent non binary-coded pixels and it works in a lowering direction to balance the adjacent pixel gradation level. In Fig.6 the result of removing the 'error accumulation' in the present embodiment is shown. That is, Fig.6 is a figure clarifying what became of the average binary coding error found in the same way as in Fig.5, in the case where the optimum threshold value setting means 32 of the present embodiment was used; in addition to the case shown in Fig.2, wherein the threshold value was fixed at 128, the result of the case wherein value K in Equation (1) of the present embodiment was 2, 4, 8 and ∞ was plotted. In the case wherein K = ∞, slsh = data. However, in Fig. 6, in the same way as in Fig. 5, a maximum ± 6 small volume of random noise was added to the threshhold value determined by Equation (1). From Fig. 6 we can understand that , if K=2, that is slsh = (data + 128) / 2, the average bindary coding error is reduced to less than half (at the maximum less than 50), with the result that the accumulated error volume is greatly reduced, Furthermore, if K=4, the average binary coding error is generally close to 0; when K=8, even in the case with image data gradations of 1, 2 and 253, 254 (gradation values extremely close to 0 or 255), it almost becomes zero. Based on bi-gradation data output from image processing apparatus 30 shown in Fig.1, actual printing using a printer was performed, and an evaluation of the influence of the previously-mentioned second problem 'tailing' was conducted. The result of this evaluation experiment was that it was possible to confirm that if the absolute value of the average binary coding error is kept below 50, the effect of the 'tailing' of problem B is substantially alleviated. From this, the value of K from the previously-mentioned Equation 1 is set in a range of K=2 - ∞; that is, the threshold value corresponds to the image data gradation value, when data <128, data ≤ slsh ≤ (128+data) / 2, when data >128, (128+data) / 2 ≤ slsh ≤ data by setting this range the absolute value of the average binary coding error can be reinstated below 50, and the second problem can be solved. Next, an experiment was conducted to evaluate the influence of the previously- mentioned first problem, dot generation delay. The result of the evaluation experiment was that it was possible to confirm that solving the slowness in dot generation of the first problem also followed the reduction of the average binary coding error. If K from the previously-mentioned Equation 1 is made too large, the average binary coding error exceeds 0, the signal is reversed, and an 'over-correction condition' develops. However in a subjective evaluation of actual print results, there were signs of the speed of dot generation accelerating up to a condition of slight over-correction, and an intensified printing effect developed, giving a desirable print quality. In the result of the subjective examination seriously considering .the reproducibility of the slow dot-generating largest data area with the data values at 1, 2 and 253, 254, a level range K = 8 - 24 was especially good, with K = 16 being the optimum level. In Fig.7, the binary coding threshold value with the average binary coding error continuously at 0 is shown. The estimated value of this binary coding threshold value was found by interpolative computation based on Fig.6. If the optimum threshold value setting means of the present embodiment are constructed by deciding the threshold value from the original image data based on Fig.7, the expected value of the 'tailing' of the previously-mentioned second problem becomes 0, and the best optimum threshold value setting means is realized. In Fig.7, the characteristics diagrams for lines for the cases whereby the value of K (in Equation 1) is 2, 8 and ∞, are simultaneously depicted. We can understand from the characteristic curve that in the case whereby the value of K is set around K = 8, this gives an ideal approximate value for making the average binary coding error 0. Further, in the manner previously stated, from the point of improvement of the delay in generation of dots in the previously-mentioned first problem, there was the case wherein when there was the tendency for reversal of the signal (over-correction condition) where the average binary coding error exceeded 0, a good subjective evaluation was obtained, the optimum result was obtained when the approximation K = 16 was used. Up to K = ∞ there is a considerable edge intensifying result in the data changing portion, this is also sufficiently valuable for the objective of using an image. Further, in Fig.7, even though one made the optimum threshold value 128 when the data values were 0 or 255, no matter how we made the threshold value, the great difference in the result (when the data gradation value and binary coding result values were equal) disappeared. Accordingly, even in the optimum threshold value setting means of this embodiment, where the data values are 0 or 255, it is satisfactory whichever way the threshold value is set. In this way, in the present embodiment, using an error diffusion method, multigradation image data 200 was converted into bigradation image data 230 (capable of displaying half tones) and output. Also, the previously mentioned first and second problems could be fundamentally solved without any accompanying side effects of quality depletion by the binary coding threshold value used in the binary coding processing being set within the range of the previously mentioned Equation 6, based on the gradation values of multigradation image data 200. Moreover, in the present embodiment, through the setting method of the constant K in Equation 1 it was possible to obtain a binary-coded output image with desirable characteristics. Further, in the corrected data shown in Figs. 6 and 7, there is an example of the case of error diffusion using the error diffusion weighting matrix shown in Fig.3. In the case of using different weighting matrices, quantitatively speaking a slightly different result is obtained, but the qualitative tendency generally doesn't change. In this way, the present invention is effective even in the case of utilizing a different error diffusion weighting matrix. Comparison between the Present Invention and the Related Art In the same way as the present invention, the 'Image Processing Apparatus and Method of Same' of Unexamined Japanese Patent Application No. Hei. 4-154370 changes the'binary coding threshold value corresponding to the gradation values of the original image data 200. However, as the primary object of this method was control of noise in character and line image portions, by employing the process of 'if the original image density data is large, the corresponding binary coding threshold value is made small' this changes the threshold value in a way exactly opposite to that of the present invention, and there was generally no effect of improving the first and second problems. Further, for an example of a binary coding method utilizing a minimum average error method it would also be useful to refer to Unexamined Japanese Patent Application No. Hei. 4-154370 (=EP 0 481 808 A2). Fig.12 is a diagram showing an output example of original picture image 100 of Fig.3 utilizing the image processing apparatus 30 of the present invention as shown in Fig.2. The complete solution of the dot generation delay problem of Fig.14 and such problems as the disappearance of the central portion of straight line 130 due to tailing from low density area 120 can be understood. In this way, the ideal solution of the first and second problems by the present invention is confirmed. Furthermore, the ability of the present invention to solve the first and second problems without any damaging side effects is also confirmed. Other Embodiments of the Optimum Threshold Value Setting Means In the previously mentioned embodiment the optimum threshold value setting means 32 set the binary coding threshold value based on Equation 1. The present invention is not limited to this, depending on the situation it is also possible to employ other methods to set the binary coding threshold value. In Fig.8 another embodiment of optimum threshold value setting means 32 is shown. The optimum threshold value setting means 32 of this embodiment is constructed setting the threshold value based on output data (i, j) as target pixel multigradation data 200, as shown in the following equations : if 0 ≤ data (i,j) < 128-L1, slsh (i,j) = data (i,j)+L1, if 128-L1 ≤ data (i,j) ≤ 128 + L2, slsh (i,j) = 128, if 128+L2 < data(i,j) ≤ 255, slsh (i,j) = data (i,j)-L2 An appropriate value for L1, L2 is 0 - 64, but a range between 8 - 16 is optimum. Further, it is acceptable to set L1 and L2 at the same value. In this embodiment, the case wherein the data value is around 128, it deviates from the range shown in Equation 6: when data < 128, data ≤ slsh ≤ (128+data) / 2, when data > 128, (128+data) / 2 ≤ slsh ≤ data but the first and second problems to be solved by the present invention became especially conspicuous in the case wherein data is of a value in the neighborhood of 0 and 255 (not including 0 and 255). Consequently, Equation 6 does not need to be satisfied in all the data areas, it is enough if it is satisfied in the case whereby data is of a value in the neighborhood of 0 and 255. Therefore, according to the setting of the binary coding threshold value as shown in the previously mentioned Equation 7, it is possible to solve the first and second problems and to obtain a satisfactory binary-coded image in the same way as in the previously mentioned the embodiment. In Fig. 9 a further separate embodiment of the optimum threshold value setting means 32 is shown. In the optimum threshold value setting means 32 of the embodiment a binary coding threshold value is set corresponding to the gradation value of original image data 200 not continuously, but step by step. Even this way, it is possible to solve the first and second problems and to obtain a satisfactory binary-coded image in the same way as the previously mentioned embodiment. Still further, in Fig.10 yet another separate embodiment of the optimum threshold value setting means 32 is shown. The optimum threshold value setting means 32 of the embodiment is constructed such that the optimum threshold value setting operation, which is a characteristic of the present invention, operates only in the low density area. That is, it is constructed in such a fashion that in the case wherein the threshold value of image data 200 is in the high density area, the binary coding threshold value is fixed at 128; when the image data 200 is at a value close to 0 on the low density area side, the optimum threshold value is set to satisfy the previously mentioned Equation 6. For example, in a printing apparatus with a large volume of dot blurring, because isolated white dots in high density portions are generally lost, in high density portions the first problem does not appear to be so conspicuous from the beginning. For that reason the present invention only improves the low density portions where the first problem is easily noticeable. Further, in response to the special characteristics of image output apparatus, it is acceptable to construct it in the opposite way such that the optimum threshold value setting operation of the present invention works only in the high density area. In this way, in response to this output apparatus, it is enough to construct the optimum threshold value setting means 32 of the present invention to set the optimum threshold value only in the necessary original image high density portions. Actual Example of the Threshold Value Setting Means In the optimum threshold value setting means 32 in each of the previously mentioned embodiments, in order to set the threshold value from the original image data, a construction wherein calculation according to the previously mentioned Equation 1 is carried out each time is acceptable, also acceptable is a construction wherein a conversion table in which the relationship between the original image data gradation values and threshold values has previously been stored is referenced. In Fig.11 an actual example is shown of optimum threshold value setting means 32 constructed using a ROM. 8-bit original image data is input to the ROM address buses A0 - A7, 8-bit threshold values corresponding to these are output from data buses D0 - D7. Further, among the embodiments there is the example wherein a small amount of random noise is added to the binary coding threshold value set by the optimum threshold value setting means 32. In the case wherein the original image data is exceptionally systematic data drawn by a computer etc., this is to protect against a specific regular pattern being formed by the binary coding of the error diffusion method. Consequently, in the case of a natural image wherein the original image data contains moderate unevenness, adding random noise in this way is unnecessary. As a result of the addition of random noise it is possible that the threshold value may deviate from the range shown in Equation 6, however it is good if the threshold value lies within the range of Equation 6. Further, even if the noise is added to the original image, not to the threshold value, the same result is obtained. Other Embodiments The present invention is still not limited to each of the previously mentioned embodiments, within the scope of the present invention all types of different embodiments are possible. For example, in a previously mentioned embodiment the case of density data wherein original image data became white by 0, black by 255 was taken as an example and explained, but needless to say the present invention can be applied in the same way in the case where there is brightness data wherein the original image data becomes black by 0 and white by 255. Further, where the original image data takes values in the range A - B (A > B), in the case where this is binary coded into a or b (a < b), Equation 1 in the first Embodiment changes thus: slsh (i,j) = (data (i,j)*(K-1)+(a+b)/2) / K and it is desirable if Equation 2 changes in this fashion: if data C(i,j) ≥ slsh (i,j), then result (i,j) = a if data C(i,j) < slsh (i,j), then result (i,j) = b Generally A = a and B = b, but in the case whereby the possible outputtable density of the output apparatus differs greatly from the range of the original image data, there is an example where A and a, B and b do not match. In this case, with the conditional expression m = (a + b) / 2 to set the threshold value of Equation 6, it becomes : when data < m, data ≤ slsh ≤ (m+data)/2, when data > m, (m+data)/2 ≤ slsh ≤ data Further, in a previously mentioned embodiment the case of original image data 200 being corrected utilizing an error diffusion method was taken as an example and explained, but the present invention is not limited to that; a case wherein correction is done utilizing a minimum average error method can also be applied. In Fig.18, an ideal embodiment of image processing apparatus 30 utilizing an minimum average error method is shown. Further, as the same reference marks are attached to the parts corresponding to those in the embodiment shown in Fig.2, that explanation has been omitted. In this embodiment error correction means 34 is constructed including data correction means 38, error calculation means 44 and error storage means 46. Said error calculation means 44 is constructed in such a way that it calculates the target pixel binary coding error err(i,j) based on the previously mentioned Equation 3, and writes the value to the address in error storage means 46 corresponding to the target pixel. The result of this is that the binary coding errors of binary-coded pixels are written and stored one by one in the storage area corresponding to each pixel address of error storage means 46. The multigradation image data (i, j) of target pixel P [i, j] is input to data correction means 38 and the errors of the already binary-coded pixels adjacent to this target pixel P [i, j] are read from error storage means 46. Next, the prescribed weighting is applied to the read error data and the average error is found, this average error is added to the target pixel multigradation image data (i, j), and this is output to the binary coding means 36 as corrected pixel data c (i, j). Further, apart from this, as the construction is the same as the previously mentioned first embodiment, that explanation is omitted here. Also in this case, utilizing an minimum average error method, the same effect as that in the previously mentioned first embodiment can be achieved. Advantages of The Invention As explained above, in the present invention multigradation image data is corrected by an error diffusion method or a minimum average error method. Moreover, the image processing apparatus, by the provision of the threshold value setting means which optimizes the threshold value based on the gradation value of the target pixel image gradation value data, has the advantage of being able to fundamentally solve the development of the phenomenon of a large error volume accumulating in low density and high density areas, and the problems of delay in dot generation in beginning portions of areas of low and high density and tailing after finishing areas of low and high density which are caused by the previously mentioned error accumulation, without accompanying side effects of quality depletion. Furthermore, because the threshold value setting means of the present invention is realized by a simple construction wherein just a simple calculation is performed or a comparison table is referenced, both speedy and satisfactory image processing can be carried out without the need for a complicated processing circuit. Still further, by varying the threshold value set by the threshold value setting means of the present invention, adjustment of the speed of dot generation is possible and, depending on the situation, by setting an over-correction condition, a secondary advantage, for example an edge intensification effect, can be obtained.

Claims: An image processing apparatus for converting multigradation image data into bigradation image data, the bigradation data being made from only two gradations, namely a first gradation value and a second, different gradation value, comprising an error correction means (34) for outputting corrected pixel data which are corrected by adding an error diffused from the adjacent already binary-coded pixels to the gradation value of the multigradation image data of a target pixel; a threshold value setting means (32) for setting a binary threshold value slsh based on the gradation value of the multigradation image data of said target pixel; and a binary coding means (36) for comparing said corrected pixel data and said value slsh and for outputting said bigradation image data as the result of said comparison; characterized in that said value slsh is set in such a manner that the average binary coding error is generally close to zero. The image processing apparatus according to claim 1, wherein said first gradation value is smaller than said second gradation value, said value slsh is set to satisfy the tolerance range shown in the following equation, when the gradation value of the multigradation image data is close to the first gradation value: data ≤ slsh ≤ (m + data)/2 wherein m is the median of the first and second gradation values. The image processing apparatus according to claim 1 or 2, wherein said first gradation value is smaller than said second gradation value, said value slsh is set to satisfy the tolerance range shown in the following equation, when the gradation value of the multigradation image data is close to the second gradation value: (m + data)/2 ≤ slsh ≤ data wherein m is the median of the first and second gradation values. An image processing apparatus according to any of claims 1 to 3, wherein said threshold value setting means (32), based on said target pixel multigradation image data gradation value data, sets said binary coding threshold value slsh according to the following equation: slsh = (data· (K - 1) + m) / K, wherein m is the median of the first and second gradation values, and K is a constant expressed by an integer greater than 2. An image processing apparatus according to any of claims 1 to 3, wherein said threshold value setting means (32), corresponding to said target pixel multigradation image data gradation value data, sets said binary coding threshold value slsh step by step. An image processing apparatus according to any of claims 1 to 3, wherein said threshold value setting means (32), based on said target pixel multigradation image data gradation value data, sets said binary coding threshold value slsh according to the following equations: when data < m-L1, slsh = data + L1, when m - L1 < data < m + L2, slsh = m, when m + L2 < data, slsh = data - L2 provided that L1, L2 are constants expressed by integers between 0 - m. An image processing apparatus according to any one of claims 1 to 6, wherein said binary coding means (36) adds random noise to the set threshold value of said corrected pixel data and performs said binary coding processing on said corrected pixel data. An image processing apparatus according to any one of claims 1 to 7, further comprising: a diffused error storage portion (42) to store the diffused error total value of each pixel; an error diffusion portion (40) which calculates the binary coding error of the corrected pixel data and binary coding result, diffuses that binary coding error to the non binary-coded pixels adjacent to the target pixels using an error diffusion method, finds a new diffused error total value for each pixel by adding the diffusion error from said target pixels to the diffused error total value of each pixel stored in said diffused error storage portion and updates the diffused error total value of each pixel stored in said diffused error storage portion; and a data correction portion (38) which calculates said corrected pixel data by adding the target pixel multigradation image data and the target pixel diffused error total value stored in said diffused error storage portion, corrects the multigradation image data of the target pixels using an error diffusion method and outputs it as corrected pixel data. An image processing apparatus according to any one of claims 1 to 7, further comprising: an error storage portion (46) which stores each pixel error; an error diffusion portion which calculates the binary coding error of the corrected pixel data and binary coding result and stores that binary coding error in said error storage portion; and a data correction portion (38) which calculates said corrected pixel data by finding an average error by reading the binary coding error of the adjacent pixels to the target pixels stored in said error storage portion and applying a predetermined weighting and adding this average error to the target pixel multigradation data, corrects target pixel multigradation image data using a minimum average error method and outputs it as corrected pixel data.

Inventors: KAKUTANI TOSHIAKI, KAKUTANI, TOSHIAKI, KAKUTANI, TOSHIAKI, C/O SEIKO EPSON CORPORATION
Applicants: SEIKO EPSON CORP, SEIKO EPSON CORPORATION
Application year: 1994
Main classification: H04N1
IPC codes: G09G5, H04N1, G06T5