RESOLUTION ENHANCEMENT SYSTEM FOR BINARY IMAGES

Abstract: An image processing system for providing edge enhancement of low resolution binary image files processes the low resolution bitmap data in windows to determine whether an edge transition or "kink site" occurs withing each window. The original bitmap data in the window is then replaced with edge enhanced gray scale data if a kink site is identified. The selection of the correct edge enhanced gray scale data to be used in place of the original bitmap data is based on whether the central pixel contained within the window is a black or white pixel, whether the central pixel is located on a single pixel line, and the location of the central pixel with respect to the kink site. The determination of the location of the central pixel is based on pixel values and gradient magnitudes of surrounding pixel locations. The system for performing edge enhancement of low resolution image files may employ a binarization and sorting unit (110) to sort data that is indicative of binary data from a mixed low resolution image input file. The sorted binary data is then supplied to a binary data edge enhancement processor (120) for edge enhancement processing. The output from the binary data edge enhancement processor unit is supplied to a data merger unit (130) along with the original image data. The data merger unit determines whether the original image data was part of a gray-scale image. If the data is part of a gray-scale image, the original data is supplied as the output of the processing system. Otherwise the output from the binary edge enhancement processing unit is supplied as the output of the processing system.

Description: RESOLUTION ENHANCEMENT SYSTEM FOR BINARY IMAGES Fielfl of the Invention The invention relates generally to digital image processing and, more specifically, to a digital image processing system for enhancing the edge characteristics of printed or displayed images that are generated from low resolution image files that include binary image data alone or a mixture of binary and gray-scale data. PecHqrpunfl Edge or line jaggedness is a common problem associated with the printing of low resolution binary image data. Efforts have been made to reduce or overcome line jaggedness using template matching methods that are applied to low resolution bitmaps as described in U.S. Patent 5,005,139 or, alternatively, through the use of an outline extraction method like that described in the article entitled "Image Makers", by Henry Bortman, MacUser, November 1991, pages 98-103. Both of the above-referenced methods use a low resolution bitmap as an input file and both methods perform digital processing operations on the low resolution bitmap to produce an enhanced image output file. The enhanced output file is supplied to the printhead or a printer to produce a hard copy of the image. There are disadvantages, however, to both of the template matching and outline extraction methods of edge enhancement discussed above. In the template matching method, the number of templates that can be employed must be limited in order to maintain acceptable processing speeds. If a pattern within the • bitmap data contained in the input file does not happen to match one of the available templates, an edge resolution enhancement operation cannot be performed regardless of the quality of the image that will be produced from the input data. In the outline extraction method, variable dot sizes are used to "fill in" and match a character's outline. The fill in process, however, can be difficult when small fonts are employed. In addition, the outline extraction method tends to broaden thin graph lines that are spaced close together which results in the merger of multiple lines and a perceivable reduction in the resolution of the printed image. Another drawback to the above-described processes is that they tend to have a negative impact on the gray scale halftone data. Thus, the processes are not particularly well suited for processing mixed image data files containing both binary image data and gray-scale halftone image data. Mixed data files, however, are becoming more and more common. Many imaging systems, for example, now combine text data with gray-scale halftoned image data and binary graphic data in a single image. It is an object of the invention to provide a method and apparatus for providing edge enhancement using a low resolution bitmap as an input file without suffering the resolution degradation associated with the outline extraction method and the drawbacks of the template matching outlined above. It is also an object of the invention to provide a system for providing edge enhancement of mixed image files containing both binary image data and gray-scale image data without adversely affecting the gray-scale image data. SUMMARY OF THE INVENTION In accordance with one aspect of the invention, there is provided an image processing system comprising: means for storing a binary bitmap image file including a plurality of pixel locations; means for determining a gradient magnitude corresponding to each pixel location of the binary bitmap image file; means for determining a gradient direction corresponding to each pixel location of the binary bitmap image file; decision matrix means for comparing a window of the binary bitmap image file and the gradient magnitudes and directions corresponding thereto to predetermined sets of criteria and means responsive to said decision matrix means for generating enhanced gray-scale image data. In accordance with another aspect of the invention, there is provided a method of providing edge enhancement of binary image data comprising the steps of storing a binary bitmap image file including a plurality of pixel locations; determining a gradient magnitude corresponding to each pixel location of the binary bitmap image file; determining a gradient direction corresponding to each pixel location of the binary bitmap image file; comparing a window of the binary bitmap image file and the gradient magnitudes and directions corresponding thereto to predetermined sets of criteria and in response to the comparing, generating enhanced gray-scale image data. In accordance with a third aspect of the invention, there is provided an image processing system comprising: means for storing mixed image data including binary image data and gray-scale image data; means for sorting the mixed image data to generate sorted binary image data; means for performing edge enhancement of the sorted binary image data to produce gray-scale enhanced binary image data; means for selecting the mixed image data as the output of the image processing system if the mixed image data includes gray-scale image data and for selecting the gray-scale enhanced binary image data if the mixed image data is binary image data. In accordance with a fourth aspect of the invention, there is provided an image processing method comprising the steps of storing mixed image data including binary image data and gray-scale image data, sorting the mixed image data to generate sorted binary image data; performing an edge enhancement operation on the sorted binary image data to produce gray-scale enhanced binary image data; selecting the mixed image data as a system output if the mixed image data includes gray-scale image data; and selecting the gray¬ scale enhanced binary image data as a system output if the mixed image data is binary image data. BRIEF DESCRIPTION OF THE DRAWINGS With the above as background, reference should now be made to the following description of the best mode for carrying out the invention and the accompanying drawings wherein: FIG. 1 is a functional block diagram of an edge enhancement processing system in accordance with a preferred embodiment of the invention and in accordance with the embodiment of FIG. 51; FIG. 2 is an example of binary bitmap data applied to the input of the edge enhancement processing system shown in FIG. 1; FIG. 3 is a gradient magnitude map of the binary bitmap data shown in FIG. 2; FIG. 4 is a gradient angle map of the binary bitmap data shown in FIG. 2; FIG. 5 is a functional flow diagram of the operation of the decision matrix employed in the edge enhancement processing system shown in FIG. 1; FIG. 6 illustrates an 8 x 8 window of binary data for a near vertical line; FIG. 7 illustrates the gradient directions corresponding to each pixel location of the window shown in FIG. 6; FIG. 8 illustrates the gradient magnitudes corresponding to each pixel location of the window shown in FIG. 6; FIG. 9 illustrates a 3 x 5 window of binary data for a near horizontal line; FIG. 10 illustrates the gradient directions corresponding to each pixel location of the window shown in FIG. 9; FIG. 11 illustrates the gradient magnitudes corresponding to each pixel location of the window shown in FIG. 9; FIGS. 12-14 respectively illustrate pixel values, gradient directions and gradient magnitudes for a 5 x 3 window of pixels surrounding a kink site located in the 8 x 8 window of FIG. 6; FIGS. 15-17 respectively illustrate the pixel values, gradient directions and gradient magnitudes shown in FIGS. 12-14 rotated to a preferred orientation; FIGS. 18-20 respectively illustrate the pixel values, gradient directions and gradient magnitudes shown in FIGS. 9-11 rotated to a preferred orientation; FIG. 21 illustrates a template that is utilized to identify a kink site; FIGS. 22-24 respectively illustrate the pixel value, gradient direction and gradient magnitude maps for a central pixel having a gradient direction of one; FIGS. 25-27 respectively illustrate the pixel value, gradient direction and gradient magnitude maps for a central pixel having a gradient direction of two; FIGS. 28-30 respectively illustrate the pixel value, gradient direction and gradient magnitude maps for a central pixel having a gradient direction of three; FIGS. 31-33 respectively illustrate the pixel value, gradient direction and gradient magnitude maps for a central pixel having a gradient direction of four; FIGS. 34-36 respectively illustrate the pixel value, gradient direction and gradient magnitude maps for a central pixel having a gradient direction of five; FIGS. 37-39 respectively illustrate the pixel value, gradient direction and gradient magnitude maps for a central pixel having a gradient direction of six; FIGS. 40-42 respectively illustrate the pixel value, gradient direction and gradient magnitude maps for a central pixel having a gradient direction of seven; FIGS. 43-45 respectively illustrate the pixel value, gradient direction and gradient magnitude maps for a central pixel having a gradient direction of eight; FIG. 46 is a window illustrating a one pixel wide horizontal line; FIG. 47 illustrates the gradient directions corresponding to the pixel locations shown in FIG 46; FIG. 48 is a window illustrating a one pixel wide vertical line; FIG. 49 illustrates the gradient directions corresponding to the pixel locations shown in FIG. 48; FIG. 50 is an example of enhanced gray-scale output data corresponding to the original binary image data illustrated in FIG. 12; FIG. 51 is a functional block diagram of an edge enhancement processing system in accordance with the present invention,- FIG. 52 is a 3 x 3 window of original image data containing gray-scale data that is supplied to the binarization and sorting unit shown in Fig. 51; FIG. 53 is a 3 x 3 window of sorted image data produced from the binarization and sorting unit shown in Fig. 51 when the mixed image data of Fig. 52 is applied thereto; FIG. 54 is a 3 x 3 window of original image data containing binary data that is supplied to the binarization and sorting unit shown in Fig. 51; and FIG. 55 is an 8 x 8 window illustrating a special case of a single pixel line in which the first pixel of a kink site overlaps an adjacent pixel. BEST MODE OF CARRYING OUT THE INVENTION The preferred embodiment to be described provides a system and method for performing edge enhancement of low resolution binary image files that is flexible and adaptable to high speed processing operations without causing a degradation in image resolution. Operations are performed by the system to obtain outline gradient magnitudes and directions which are used, in combination with the original bitmap data, to reduce the tangential gradient magnitude change (jaggedness) of lines or text within a printed image while preserving the gradient angle (shape of the line or text) without sacrificing the normal gradient magnitude (sharpness of the line or text) . Specifically, the system processes the low resolution bitmap data in sections or windows to determine whether an edge transition or "kink site" occurs within each window. The original bitmap data in the window is then replaced with edge enhanced gray scale data if a kink site is identified. The selection of the correct edge enhanced gray-scale data to be used in place of the original bitmap data is based on whether the central pixel contained within the window is a black or white pixel, whether the central pixel is located on a single pixel line and the location of the central pixel with respect to the kink site. The determination of whether the central pixel is a black or white pixel is based on the binary value assigned to the pixel, the determination of the location of the central pixel with respect to the kink site is based on pixel values and gradient magnitudes of surrounding pixel locations, and the determination of whether the central pixel is located on a single pixel line is based on the gradient magnitude of the central pixel and surrounding pixel locations. Preferably, the system determines the gradient angles of the pixels contained within the window prior to performing the operations described above. A limited number of gradient directions are then assigned to the pixels based on the gradient angles. The system uses the gradient directions to rotate the window to a selected reference direction in order to simplify the identification of kink sites within the window and the selection of the edge enhanced gray scale data as will be described in greater detail below. A further embodiment provides a system for performing edge enhancement of mixed low resolution image files that is flexible and adaptable to high speed processing operations without causing a degradation in image resolution.. The system employs a binarization and sorting unit to sort data that is indicative of binary data from the mixed low resolution image input file. The sorted binary data is then supplied to a binary data edge enhancement processor for edge enhancement processing. The output from the binary data edge enhancement processor unit is supplied to a data merger unit along with the original image data. The data merger unit determines whether the original image data included gray-scale image data. If the data merger determines the original data does include gray-scale image data, the original data is supplied as the output of the processing system. If the data merger determines that the original data is binary image data, the output from the binary edge enhancement processor unit is supplied as the output of the processing system. A functional block diagram of an edge enhancement processing system in accordance with the invention is illustrated in Fig. 1. A low resolution binary bitmap (300 dpi or 11.86 dots per mm) generated for example by using a commercially available software package such as PostScript, is stored in a band buffer 10, where n(i,j) is a pixel value within the bitmap at location (i,j). The term "binary" bitmap or image will be understood by those skilled in the art to refer to a bit map or image in which image pixels are either fully exposed or are unexposed, i.e. no gray-scale pixel data is present. The term "gray-scale" refers to image data wherein each pixel is represented by more than one bit of data to indicate one or more shades of gray between fully exposed and unexposed. Of course, the color of the pixel will be dependent upon the color toner or pigment used to develop same. An example of such a binary bitmap for a portion of the letter "R" is illustrated in FIG. 2 in which exposed areas of an image (in the illustrated embodiment) are identified in this example by the numeral 255 (i.e. pixel exposed) and non-exposed areas are identified by zero (i.e. pixel not exposed) . Sobel gradient masks 12, 14 for both the horizontal (sobelx) and vertical (sobely) directions operate on the binary bitmap data n(i,j) to produce a gradient x operator (gx) and a gradient y operator (gy) - Typical sobel gradient masks that can be employed include: sobelx = (-1 0 1, -2 0 2, -1 0 1) where gx (i, j) = sobelx*n(i,j) ; and sobely = (-1 -2 -1, 0 0 0, 1 2 1) where gy (i,j) = sobely*n(i,j) The gradient magnitude (gm) 16 is then calculated by taking the square root of the sum of the square of the gradient x operator (gx) and the square of the gradient y operator (gy) for each location in the bitmap to produce a gradient magnitude map, as shown in Fig. 3. The gradient magnitude map is then stored in the a buffer 18 for later use. I gm (i,j) = sqrt (gx(i,j)2+ gy(i,j)2) Similarly, the gradient angle (ga) 20 is determined for each location using the equation: ga(i,j) = tan-l(gy(i, j)/gx(i,j) ) to produce a gradient angle map as shown in Fig. 4. It should be noted that an arctangent calculation can also be employed to calculate ga if desired. For purposes of convenience, the gradient angle ga is preferably limited to a choice of gradient directions gd by a gradient direction sorter 24. For example, eight directions are preferably employed using the following sort criteria: gd = 2, if (68° >= ga > 23°) gd = 3, if (113° >= ga > 68°) gd = 4, if (158° >= ga > 113°) gd = 5, if (203° >= ga > 158°) gd = 6, if (248° >= ga > 203°) gd = 7, if (293° >= ga > 248°) gd = 8, if (338° >= ga > 293°) gd = 1, if ga is between 338 and 23 degrees and gm isn't zero gd = 0, if gm = 0 The gradient direction for each location is also stored in a buffer 26. It should be noted that the use of a finer separation criteria (i.e. more than eight directions) for gd can be employed if desired. The original bitmap data and the gradient magnitudes gm and ^ gradient directions gd corresponding thereto are supplied to a decision matrix 28, which uses this information to select edge enhanced gray- scale output data to replace the original binary bitmap data. In a preferred mode of operation, the decision matrix 28 determines whether the central pixel of a window of the original bitmap data is black or white pixel, whether the central pixel is contained in a single pixel line and the position of the pixel with respect to a kink site, by comparing the pixel data to a set of criteria represented by predetermined pixel values and gradient magnitudes. In accordance with rules establishing a set of criteria, the decision matrix generates an address that is supplied to a LUT 30. The LUT 30 generates edge enhanced gray-scale output data based on the address generated by the decision matrix 28. The enhanced gray scale output data replaces the original binary input data and produces a smoother image without jagged edges when applied to a gray scale printhead (for example a laser, LED thermal, inkjet or other type of printhead) of a printer or to a gray level display such as a CRT or other suitable display. It should be noted that the illustrated system can be implemented as a computer program executed on a general purpose computer in hardware as a pipelined processing system, preferably in the form of an application specific integrated circuit (ASIC) , or a combination thereof. Processing speeds can be improved by precalculating the gradient magnitudes and directions for all possible combinations of binary data within the window and storing the precalculated values within gradient magnitude and gradient direction LUTs. In operation, a window of binary data is supplied as an address to the gradient magnitude and gradient direction LUTs which then generate corresponding gradient magnitude and directions maps. The operation of the decision matrix can similarly be implemented with LUTs by supplying the original binary input data and corresponding gradient magnitude and direction information as an address thereto. A general flow diagram of the operation of a decision matrix as implemented in software is illustrated by the decision tree in Fig. 5. Fig. 6 illustrates an 8 x 8 window of data retrieved from the original binary bitmap data previously stored in the band buffer. While an 8 x8 window is shown, it is preferred to have larger windows such as 9 x 9 or greater. The pixel values illustrated in Fig. 6 are for a section of a near vertical line that is greater than one pixel in width. Figs. 7 and 8, respectively, illustrate the gradient directions and magnitudes corresponding to each of the pixel values illustrated in Fig. 6. In this example, exposed pixels are denoted by the numeral fifteen and non-exposed pixels are denoted by zero. The decision matrix first orients the pixel data via a rotation operation in order to decrease the number of template comparisons with the rules or sets of criteria that will be required to identify kink sites requiring edge correction. For example, a near vertical edge (see the circled second black pixel of a kink site shown in Fig. 6) can either be approached from the left (gd =1 ) or the right (gd = 5) while a near horizontal line can be approached either from the top (gd = 3) or the bottom (gd = 7). An example of a near horizontal line segment is shown in Figs. 9-11. In the case of the vertical line approached from the right, a 5 x 3 window of pixels surrounding the second black pixel of the kink site of the near vertical line as shown in Figs. 12-14 can be rotated to a position illustrated in Figs. 15-17 based on the direction of the second black pixel. Similarly, a 3 x 5 window of pixels surrounding the second black pixel (circled) of the kink site of the near horizontal line as shown in Figs. 9-11 can also be rotated to a position illustrated in Figs. 18-20. As the pixel values are identical for the rotated segments as shown in Figs. 15 and 18, a single template or substitute bit map pattern can be used to identify kink sites in both near vertical lines approached from the right and the near horizontal lines approached from the top and the same enhanced gray-scale data can therefore be employed to smooth the kink site in both cases. In fact, all of the near vertical and near horizontal lines (for all four possible directions of approach) can be sorted through the rotation operation into a template matching the pixel configuration of Figs. 15 and 18 or a template matching the configuration shown in Fig. 21, rather than the eight bit maps that would be required to be analyzed (two for each direction) if rotation were not employed. A similar procedure is utilized for near diagonal line segments (i.e. gd = 2, 4, 6 or δ) . The rotation of the pixels within the windows is accomplished by a simple remapping routine. Figs. 22-45 illustrate how the pixel values, gradient magnitudes and gradient direction correspond for each direction. For purposes of illustration, the pixel values for each pixel within the 9 x 9 window are denoted as V(x y) , where V is the pixel value, x is a row position within the 9 x 9 window and y is a pixel position within the row. For example, as shown in Fig. 22, the pixel value of the central pixel within the 9 x 9 window is denoted by V15. Similarly, the gradient direction and magnitude for each pixel within the window is respectively denoted by d(x y) and a(x y) . In addition to rotating the pixel window to a predetermined direction, the pixel value of the central pixel within the window is analyzed to determine whether the pixel is a black pixel or a white pixel, I A whether the central pixel is located within a single pixel line and the location of the central pixel with respect to the kink site, as each of these factors can influence the type of enhanced data utilized to smooth the kink site. The determination of whether the pixel is black or white is made by a simple comparison of the pixel value to the value assigned to an exposed pixel. For example, in the embodiment just discussed, the central pixel is a black pixel if the pixel value is fifteen (V15 = 15) and the central pixel is a white pixel if the pixel value is zero (V15 * = 0) . The determination of whether the central pixel is located within a single pixel line is made by comparing the gradient direction of the central pixel to the gradient directions of surrounding pixels. For example, -for the lower of the two horizontal single lines illustrated in Fig. 46, the second black pixel (circled) from the kink site has a direction of zero, while the pixel location above the second black pixel has a direction of three and the pixel location below the second black pixel has a direction of seven (see Fig..47). Similarly, the second black pixel (circled) from a kink site of a vertical single pixel line (left most of the two lines) shown in Fig. 48 has a direction of zero, while the pixel location to the left has. a direction of one and the pixel location to the right has a direction of five (see Fig. 49) . The determination of the location of the pixel with respect to the kink site is based on the gradient magnitude of the pixel location and adjacent pixel locations. For example, the gradient magnitude will always be the highest value for the first pixel location of a kink site at a non-single pixel line. Thus, the pixel values and gradient amplitudes can be compared with a template to determine whether the central pixel is the first, second, third or fourth pixel from the kink site. If desired, a backfill template can also be employed if a white pixel is not identified as the first through fourth pixel from a kink site. That is, one or more gray-scale pixels will be added to a location(s) that features a white pixel where the gradient magnitude of the pixels in the gradient direction of the current pixel is changing. As shown in Fig. 5, it is preferable to make the decision of whether the pixel is a white or black pixel and then proceed immediately with a determination of whether the pixel is the first pixel of a kink site, before making a determination of whether the pixel is the first pixel of a single line. If the pixel does not fall into one of these two latter categories, a general decision is made as to whether the pixel is in a single line. The determination of whether the pixel is the first pixel of a single line is made using a different criteria than the criteria used for the general decision in the subsequent step in order to cover a special case where the first pixel of the kink site in a single line overlaps an adjacent pixel as shown in Fig. 55. If a criteria were used in which a change in direction were required from both sides of the pixel in order to identify a single pixel line, the case of the overlapped first pixel would not be caught. The following are examples of comparisons that are preferably applied to the pixel values and gradient magnitudes to determine whether the central pixel is: a) the first black pixel of a kink site (not a single pixel line) if: al5 > al4, & al5 > al6, & V35 φ 0 & V25 = 0, & V26 = 0, & V45 = 0, & V36 φ 0, & V55 φ 0, & ( (V24 φ 0, V16 = 0, & V14 φ 0) or (V27 φ 0, & V14 = 0, & V16 φ 0)); b) the first black pixel of a kink site in a single pixel line if: (V15 φ 0, & (V14 φ 0, & V13 φ 0, & V16 = 0, & V17 = 0, & ((V26 φ 0, & V27 φ 0, & V24 = 0, & V23 = 0) or (V36 φ 0 &. V37 φ 0 & V34 = 0, & V33 = 0))) or (V16 φ 0, & V17H---0, & V13 = 0, V14 = 0, & ( (V23 φ 0 & V24 φ 0, & V26 = 0, & V27 = 0) or (V33 φ 0, & V34 φ 0, & V36 = 0., & V37 = 0)))); and c) the first white pixel of a kink site in a single pixel line if: (V15 = 0, & V35 φ 0, & ( (V13 = 0, & V14 **** 0, & V16 φ 0, & V17 0, & V34 φ 0) or (V13 φ 0, & vl4 φ 0, & V16 = 0, & V17 = 0, & V36 φ 0) ) & ( (al5 > al4, & al5 <= al6) or (al5 <= al4, & al5 > al6))). Similar criteria are used for each of the other decisions illustrated in Fig. 5. Once a match is established, an address is generated-and supplied to the LUT in order to generate corresponding enhanced gray-scale data which is subsequently supplied to the gray-scale printhead of a printer or to a display. See, for example, the enhanced gray-scale data shown in Fig. 50 which corresponds to the original data shown in Fig. 12. The actual values of the enhanced gray-scale data to be utilized in place of the binary input data depends on the characteristics of the printer or display to which the enhanced data is to be supplied and a subjective determination of what is considered acceptable to the end viewers of the printed images. The original binary bitmap data is used if no match occurs. Some basic rules, however, do apply in generating the enhanced data to be stored in the LUT. For example, looking at some kink sites in the downstroke of the letter R in the gradient magnitude map of Fig. 3 and the gradient angle map of Fig. 4, it is noted that the gradient magnitude is at a peak value right at the kink site with respect to the gradient magnitude of the pixels along the gradient direction (the gradient direction being along the tangential direction of the line) . Thus, for an exposed pixel, it is desirable to reduce the exposure at that kink site to reduce jaggedness. In contrast, it is desirable to increase the exposure of the white pixel at the kink site, which also has the gradient magnitude at its peak, to reduce line jaggedness, provided that one of the pixel values along the gradient direction is not zero which signifies that the white kink site is indeed a kink site. Similar sets of rules can be written to take care of black or white pixels at a certain distance to the kink site to have a gradual line width change to reduce tangential gradient magnitude changes. It should be noted that the exposure value of the exposed and non-exposed pixels is not changed on the upper portion of the letter R, since no kink site is defined (gradient change along the gradient direction of the search turns out a similar gradient magnitude) . Therefore, the normal gradient magnitude or sharpness of the letter is not reduced. Other rules can be written to take care of single pixels. The system preferably makes use of a variable window depending on the gradient angle (or direction) change of the pixels along the gradient angle. For example, the problem of line jaggedness usually occurs at near horizontal or near vertical lines. For the case of a near horizontal line, a larger window (preferably rectangular with a long axis in the direction of the line segment) along the direction of the gradient direction can be utilized. If the gradient direction of the pixels is not changing much, a longer window is used. For 400 dpi (15.81 dots per mm), a window of about 20 pixels length in one direction is about right or 10 pixels from the original position on both sides. Then if a kink site is hit, usually signifying a large change in gradient magnitude and direction --like from an angle of 180 to 153 degree change in a near vertical case --, the current pixel location with respect to the kink site will give the LUT necessary information for the modification. A functional block diagram of an edge enhancement processing system for processing mixed data in accordance with another embodiment of the invention is illustrated in Fig. 51. A mixed low resolution image file, in the form of a bitmap having a plurality of pixel locations containing either gray-scale image data or binary image data, is supplied to input buffer 100. The bitmap is subsequently supplied to a binarization and sorting unit 110, which passes only sorted data that is indicative of binary image data to a binary edge enhancement processor unit 120. The binary edge enhancement processor unit 120 performs edge enhancement processing operations on the sorted data to produce edge enhanced sorted data that is supplied to an output data merge unit 130. The output merge unit 130 analyzes the original bitmap data supplied to the binarization and sorting unit 110 to determine whether the original bitmap data was gray¬ scale image data or binary image data. If the original data was gray-scale image image data, the output data merger unit 130 supplies the original data from the input buffer 100 as the output of the system. If the original data, however, was binary image data, the output data merger unit 130 supplies the edge enhanced sorted data received from the binary edge enhancement processor unit 120 as the output of the system. An example of the operation of the system will be discussed with references to Figs. 52-54. Fig. 52 illustrates a 3 x 3 window of gray-scale image data supplied to the binarization and sorting unit 110. The binarization and sorting unit 110 passes only those pixel values that are indicative of binary image information, namely, a value of fifteen for an exposed pixel or a value of zero for a non-exposed pixel for the illustrated example (assuming a four bit 0-15 gray- scale) , to the binary edge enhancement processor unit 120. Those pixel locations containing a gray-scale data are filled with zeros as illustrated in Fig. 53. The binary edge enhancement processor unit 120 then performs an edge enhancement processing operation on the data shown in Fig. 53. The output data merge unit 130 analyzes the original data illustrated in Fig. 52 to determine whether gray-scale information is present. A simple comparison operation, for example, can be used to compare each pixel value within the window to either zero or fifteen. If the pixel value dues not fall within this criteria, as is the case for the data illustrated in Fig. 52, the output data merge unit 130 passes the original data to the output of the system, thereby avoiding any possible distortion of the gray¬ scale data. In the case where the original bitmap data is binary image data, for example as shown in Fig. 54, the sorted data supplied by the binarization and sorting unit 110 to the binary edge enhancement processor unit 120 will be identical to the original data. The output data merge unit 130 will then select the edge enhanced data produced by the binary edge enhancement processor unit 120 as the output of the system. It will be understood that the binary edge enhancement processor unit 120 can be implemented with any of the previously discussed conventional binary image edge enhancement systems. A preferred edge enhancement processor to be used in the binary edge enhancement processor unit 120, however, is that shown and described above in detail. An advantage of the edge enhancement system is that it is not necessary to provide a set of criteria for comparison with every possible bit map pattern. Rather, the bit map patterns can be rotated to form a template that can be compared to a set of criteria for analyzing the template. There is thereby provided a reduction in the set of criteria and no need to store a multitude of templates for which an exact match is required as is done in conventional template matching methods. In addition, the edge enhancement system reduces line jaggedness with little sharpness degradation, in contrast to conventional outline extraction methods in which the outline of the text is traced by linking the maximum gradient magnitude points together. The outline extraction method runs into problems when the fonts in the image to be printed become smaller or when there are multiple single pixel line segments that are closely spaced. A further advantage is that gray level data is left untouched and just binary data is enhanced. The invention has been described with reference to certain preferred embodiments thereof. It will be understood, however, that modifications and variations can be made within the scope of the appended claims. Industrial Utility The invention can be utilized to process any low resolution binary image file for printing on any type of gray-scale printer including those employing lasers, LEDs, thermal, ink-jet or other printing elements or for use on a gray-scale display such as a CRT.

Claims: WHAT IS CLAIMED IS: 1. An image processing system comprising: means (10) for storing a binary bitmap image file including a plurality of pixel locations; means (16) for determining a gradient magnitude corresponding to each pixel location of the binary bitmap image file; means (24) for determining a gradient direction corresponding to each pixel location of the binary bitmap image file; decision matrix means (28) for comparing a window of the binary bitmap image file and the gradient magnitudes and directions corresponding thereto to predetermined sets of criteria and means, responsive to said decision matrix means, for generating enhanced gray-scale image data. 2. A system as claimed in Claim 1, wherein said decision matrix means generates a look-up table address in response to said comparing and said means for generating enhanced gray-scale image data is a look-up table (30) . 3. A system as claimed in Claims 1 or 2, wherein the decision matrix means (28) includes means for rotating a window to a predetermined reference direction in response to the gradient direction information corresponding thereto. 4. A system as claimed in Claims 1, 2 or 3, wherein the decision matrix means determines whether a central pixel of a binary bitmap window is a black or white pixel, whether the central pixel is located in a single pixel width line, and the location of the central pixel with respect to a kink site. 5. A system as claimed in any of Claims 1 through 4, and including means for storing mixed image data including binary image data and gray-scale image data; means for sorting the mixed image data to generate sorted binary image data; and means for selecting the mixed image data as output of the image processing system if the mixed image data includes gray-scale image data and for selecting the gray-scale enhanced binary image data if the mixed image data is binary image data. 6. A method of providing edge enhancement of binary image data comprising the steps of storing a binary bitmap image file including a plurality of pixel locations; determining a gradient magnitude corresponding to each pixel location of the binary bitmap image file; determining a gradient direction corresponding to each pixel location of the binary bitmap image file, comparing a window of the binary bitmap image file and the gradient magnitudes and directions corresponding thereto to predetermined sets of criteria, and in response to the comparing, generating enhanced gray-scale image data. 7. A method of Claim 6 and including generating a look-up table address in response to said comparing and generating enhanced gray-scale image data from said look-up table. 8. A method as claimed in Claims 6 or 7 and including the step of rotating a window to a predetermined reference direction in response to gradient direction information corresponding thereto. 9. A method as claimed in Claims 6, 7 or 8 and wherein a determination is made of whether a central pixel of the bitmap window is a black or white pixel, whether the central pixel is located in a single pixel width line, and the location of the central pixel with respect to a kink site. 10. A method as claimed in any of Claims 6 through 9 and including the steps of storing mixed image data including binary image data and gray-scale image data; sorting the mixed image data to generate sorted binary image data; and selecting the mixed image data as an output if the mixed image data includes gray-scaϊe image data; and selecting the gray-scale enhanced binary image data as a system output if the mixed image data is binary image data. 11. An image processing system comprising: means for storing mixed image data including binary image data and gray-scale image data; means for sorting the mixed image data to generate sorted binary image data; means for performing edge enhancement of the sorted binary image data to produce gray-scale enhanced binary image data; means for selecting the mixed image data as the output of the image processing system if the mixed image data includes gray-scale image data and for selecting the gray-scale enhanced binary image data if the mixed image data is binary image data. 12. An image processing system as claimed in Claim 11, wherein said means for performing edge enhancement comprises means for storing a bitmap image file including a plurality of pixel locations; means for determining a gradient magnitude corresponding to each pixel location of the bitmap image file; means for determining a gradient direction corresponding to each pixel location of the bitmap image file; decision matrix means for comparing a window of the bitmap image file and the gradient magnitudes and directions corresponding thereto to predetermined sets of criteria and generating a look-up table address in response to the comparing and a look-up table for generating gray¬ scale enhanced binary image data in response to the look-up table address. 13. A system as claimed in Claims 11 or 12, wherein the decision matrix means includes means for rotating the window to a predetermined reference direction in response to the gradient direction information corresponding thereto. 14. A system as claimed in Claims 11, 12 or 13, wherein the decision matrix means determines a central pixel of the window is a black or white pixel, whether the central pixel is located in a single pixel 2A width line, and the location of the central pixel with respect to a kink site. 15. An image processing method comprising the steps of storing mixed image data including binary image data and gray-scale image data, sorting the mixed image data to generate sorted binary image data; performing an edge enhancement operation on the sorted binary image data to produce gray-scale enhanced binary image data; selecting the mixed image data as a system output if the mixed image data includes gray-scale image data; and selecting the gray-scale enhanced binary image data as a system output if the mixed image data is binary image data. 16. A system of any of Claims 1 through 5 and 11 through 14 in combination with a gray-scale printer. 17. A system of any of Claims 1 through 5 and 11 through 14 in combination with a gray-scale display. 18. A method as claimed in any of Claims 6 through 10 and 15 and including the step of printing the enhanced data with a gray-scale printer. 19. A method as claimed in any of Claims 6 through 10 and 15 and including the step of displaying - the enhanced data on a gray-scale display.

Inventors: NG YEE SEUNG, PICKUP MICHAEL ALAN, YEH HURJAY, NG, YEE, SEUNG, PICKUP, MICHAEL, ALAN, YEH, HURJAY
Applicants: EASTMAN KODAK CO, EASTMAN KODAK COMPANY
Application year: 1993
Main classification: H04N1
IPC codes: G06K15, G06T3, G06T5, H04N1