US 7079687 B2
A method for segmenting a compound document initiates with receiving image data, followed by processing the image data at both a first scale and a second scale. Next, region types of the compound document are determined according to a combination of processing output at the first scale and processing output at the second scale. Methods for labeling digital image data and labeling and enhancing documents defined through digital data, as well as associated computer readable medium embodiments are provided. An image replication device and a microprocessor configured to segment and enhance image data associated with a compound document are also provided.
1. A method of labeling digital image data, comprising:
a) detecting edges defined by image data having a first resolution;
b) detecting edges defined by the image data having a second resolution;
c) combining results from a) with results from b) to define intermediate image data;
d) subtracting the intermediate image data from corresponding results from b); and
e) associating a label with each pixel of the image data based on results from d).
2. The method of
filtering the image data through a low pass filter.
3. The method of
suppressing halftone dots.
4. The method of
performing a logical AND operation with the results from a) and the results from b).
5. The method of
selecting halftone dots from data resulting from the logical AND operation.
6. The method of
defining a neighborhood around each pixel of the intermediate image data;
counting values in the neighborhood; and
determining a region type associated with the neighborhood a value count.
7. The method of
8. A method for labeling and enhancing documents defined through digital data, comprising:
detecting, at multiple frequencies, edge data defined in a portion of the document;
logically combining corresponding edge data detected at multiple frequencies;
subtracting the combined edge data from edge data associated with one of the multiple frequencies;
identifying a region type associated with the portion of the document based on results from the subtracting; and
labeling a pixel associated with the edge data based upon both the region type and a pixel neighborhood value.
9. The method of
10. The method of
detecting the edge data at multiple resolutions in a single pass.
11. The method of
suppressing halftone dots prior to detecting the edge data.
12. The method of
defining a neighborhood around the pixel;
counting values of the neighborhood; and
comparing the values to a threshold value.
13. The method of
14. The method of
substantially eliminating bleed-through.
15. The method of
identifying a non-halftone region;
defining a neighborhood in a non-halftone regions;
calculating a variance associated with pixels in the neighborhood, wherein a value of the variance determines whether the neighborhood is a constant tone neighborhood.
16. A computer readable medium having program instructions for labeling digital image data, comprising:
program instructions for detecting edges defined by image data having a first resolution;
program instructions for detecting edges defined by the image data having a second resolution;
program instructions for combining data defined by the first resolution with data defined by the second resolution to define intermediate image data;
program instructions for subtracting the intermediate image data from corresponding results from detecting edges having the second resolution;
program instructions for associating a label with a portion of the image data.
17. The computer readable medium of
program instructions for filtering the image data through a low pass filter.
18. The computer readable medium of
program instructions for suppressing halftone dots.
19. The computer readable medium of
program instructions for defining a neighborhood around each pixel of the intermediate image data;
program instructions for counting values in the neighborhood; and
program instructions for determining a region type associated with the neighborhood a value count.
20. A computer readable medium having program instructions for labeling and enhancing documents defined through digital data, comprising:
program instructions for detecting edge data defined in a portion of the document;
program instructions for logically combining corresponding edge data detected at multiple frequencies;
program instructions for subtracting the combined edge data from edge data associated with one of the multiple frequencies;
program instructions for identifying a region type associated with the portion of the document based on results from the subtracting; and
program instructions for labeling a pixel associated with the edge data based upon both the region type and a pixel neighborhood value.
21. The method computer readable medium of
program instructions for detecting the edge data at multiple resolutions in a single pass.
22. The computer readable medium of
program instructions for suppressing halftone dots prior to detecting the edge data.
23. The computer readable medium of
program instructions for defining a neighborhood around the pixel;
program instructions for counting values of the neighborhood; and
program instructions for comparing the values to a threshold value.
24. A method for segmenting a compound document, comprising:
receiving image data;
processing the image data at both a first scale and a second scale, the processing including subtracting a logical combination of the image data at the first and second scale from corresponding image data at the second scale; and
determining region types of the compound document according to a combination of processing output at the first scale and processing output at the second scale.
25. The method of
26. The method of
filtering the image data for the first scale;
performing edge detection on the filtered image data; and
performing edge detection on the image data at the second scale, wherein the processing occurs in a single pass.
27. The method of
processing the image data in one of a banded fashion and a blocked based fashion.
28. The method of
29. The method of
defining a neighborhood around a point of the compound document;
determining a density value for the neighborhood;
comparing the density value to a threshold density in order to identify a region type associated with the neighborhood.
30. A microprocessor configured to segment and enhance image data associated with a compound document, comprising:
circuitry for separately filtering the image data at multiple resolutions;
circuitry for combining corresponding separately filtered image data and subtracting the combined image data from image filtered at one of the multiple resolutions;
circuitry for labeling each pixel of the image data;
circuitry for descreening halftone regions of the image data; and
circuitry for enhancing each identified segment of the image data.
31. The microprocessor of
circuitry for low pass filtering the image data;
circuitry for detecting edges of both low pass filtered image data and non-low pass filtered image data; and
circuitry for combining data corresponding to detected edges associated with low pass filtering and detected edges associated with non-low pass filtering.
32. The microprocessor of
circuitry for establishing a neighborhood around a pixel of the image data;
circuitry for counting pixel values in the neighborhood; and
circuitry for comparing a counted pixel value in the neighborhood to a threshold value.
33. The microprocessor of
circuitry for substantially eliminating bleed-through artifacts.
34. The microprocessor of
circuitry for calculating a variance associated with pixels representing a portion of the image data.
35. An image replication device, comprising:
a labeling module configured to segment image data associated with a document, the image data having a halftone portion and a non-halftone portion, the labeling module including a first branch and a second branch, the first branch configured to suppress halftone dots of the halftone portion prior to detecting edge data of the document, the labeling module further including logic for combining an output of the first branch with an output of the second branch and for subtracting the combined output from corresponding output of the second branch.
36. The image replication device of
37. The image replication device of
38. The image replication device of
39. The image replication device of
40. The image replication device of
a descreening module configured to output low pass filtered values associated with halftone pixels; and
an enhancement module configured to compute a sharpening term to be applied to both fine edges and coarse edges.
41. The image replication device of
a scanner in communication with a copier pipeline, the copier pipeline including the labeling module; and
a printer in communication with the copier pipeline.
This application claims priority from U.S. Provisional Patent Application No. 60/453,077 filed Mar. 6, 2003, and entitled “LOW COMPLEXITY COMPREHENSIVE LABELING AND ENHANCEMENT ALGORITHM FOR COMPOUND DOCUMENTS.” This provisional application is incorporated by reference herein for all purposes.
1. Field of the Invention
This invention relates generally to document replication systems and more particularly to a method and apparatus for segmenting and enhancing compound documents for image replication applications.
2. Description of the Related Art
The quest for high quality in everyday copying applications has led to increased sophistication in scanners and printers. In particular, the desire for high quality text and graphics output has forced modern scanners and printers to operate at 600 dots per inch (dpi) or higher dpi resolutions even on basic document applications. However, the associated increases in the costs of these devices leaves little room for the expense of signal processing algorithms which must still accomplish high quality output in an automated mode of operation. The result is a direct need for compound document processing techniques of very low computational and memory complexity.
The constraint for very low cost algorithms is in part alleviated by the high resolution devices that make up a copier. Modem scanners with low noise sensors and printers with precision dot placement no longer necessitate very high performance signal processing for noise removal, deblurring, etc. However, halftone dots in the input become much more pronounced in high resolutions, thereby resulting in possible Moiré artifacts that are introduced if such regions are printed unprocessed.
Attempts to segment a compound document to halftone and non-halftone regions have met with limited success. For example, some techniques require pre-segmentation of the document into blocks or other rectangular regions. Additionally, some segmentation techniques look at the document at a single resolution, which inevitably leads to erroneous decisions and may restrict the technique to detecting a particular class of halftones. Furthermore, these techniques are not applicable to general document types, such as scanned documents, and are associated with a high computational complexity and excessive consumption of memory resources.
Additionally, previous attempts mainly concentrate on region classification on documents that have been pre-segmented to their constituent regions. Each one of the pre-segmented regions are classified into various classes and the segmentation is typically delegated to sophisticated and computationally complex document analysis algorithms. Furthermore, irrespective of how simple the region classification is, such approaches demand at least two passes on the data resulting in significant memory and memory-bandwidth requirements. Moreover, the overall operation of pre-segmentation and classification may still require considerable computation. These pre-segmentation requiring methods range from simple techniques which use an “α-crossing” technique for detecting halftone regions, and techniques which operate on binary only documents and detect halftone regions using predefined masks, to the more elaborate and computationally complex techniques, which utilize Fourier transforms and tuned directional bandpass filters for texture analysis and halftone detection. The previous techniques effectively pit halftone and text regions against one another by basing the identification decision on complex statistics (the alternative hypothesis are text, halftone, non-halftone, etc.) By subtracting most of the influence of real document edges, the segmentation and identification decisions in this work are based on simple statistics (the alternative hypothesis are halftone and non-halftone).
Other work that tries to identify halftones by detecting periodicities is limited to input documents containing certain types of halftones. Moreover, one must be assured that periodicities in the original halftone are sufficiently preserved after the color space change due to the scan of the original printed halftone (for e.g., CMYK to RGB). Techniques that try to detect real document edges that are not due to halftone dots by using edge continuity analysis are severely sensitive to thresholds since disconnected halftone dots may appear connected depending on the threshold used in edge detection.
As a result, there is a need to solve the problems of the prior art to provide a technique that segments a document irrespective of the document characteristics and minimizes the computational cost as well as memory consumption.
Broadly speaking, the present invention fills these needs by defining a multi-resolutional scheme for labeling and decomposing a broad range of documents followed by the selective enhancement of the document, while consuming minimal computational and memory resources. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, a system, or a device. Several inventive embodiments of the present invention are described below.
In one embodiment, a method of labeling digital image data is provided. The method initiates with a) detecting edges defined by image data having a first resolution. Then b) edges defined by the image data having a second resolution are detected. Next, c) the results from a) are combined with the results from b) to define intermediate image data. Next, d) a label is associated with each pixel of the image data.
In another embodiment, a method for labeling and enhancing documents defined through digital data is provided. The method initiates with detecting edge data defined in a portion of the document. Then, a region type associated with the portion of the document is identified. Next, a pixel associated with the edge data is labeled based upon both the region type and a pixel neighborhood value.
In yet another embodiment, a computer readable medium having program instructions for labeling digital image data is provided. The computer readable medium includes program instructions for detecting edges defined by image data having a first resolution. Program instructions for detecting edges defined by the image data having a second resolution and program instructions for combining data defined by the first resolution with data defined by the second resolution to define intermediate image data are included. Program instructions for associating a label with a portion of the image data are also provided.
In still yet another embodiment, a computer readable medium having program instructions for labeling and enhancing documents defined through digital data is provided. The computer readable medium includes program instructions for detecting edge data defined in a portion of the document. Program instructions for identifying a region type associated with the portion of the document are provided. Program instructions for labeling a pixel associated with the edge data based upon both the region type and a pixel neighborhood value are included.
In another embodiment, a method for segmenting a compound document is provided. The method initiates with receiving image data. Then, the image data is processed at both a first scale and a second scale. Next, region types of the compound document are determined according to a combination of processing output at the first scale and processing output at the second scale.
In yet another embodiment, a microprocessor configured to segment and enhance image data associated with a compound document is provided. The microprocessor includes circuitry for labeling each pixel of the image data and circuitry for descreening halftone regions of the image data. Circuitry for enhancing each identified segment of the image data is also included.
In still yet another embodiment, an image replication device is provided. The image replication device includes a labeling module configured to segment image data associated with a document. The image data has a halftone portion and a non-halftone portion. The labeling module includes a first branch and a second branch. The first branch is configured to suppress halftone dots of the halftone portion prior to detecting edge data of the document.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, and like reference numerals designate like structural elements.
FIGS. 4B1 through 4B4 illustratively represent the logical AND operation and the subtracting operation discussed above with reference to
An invention is described for an apparatus and method for providing a stable output while minimizing moire patterns and visible structures when printing images from a printing device. It will be apparent, however, to one skilled in the art in light of the following disclosure, that the present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
The embodiments of the present invention provide an apparatus and method for segmenting, labeling and then enhancing an image consisting of various regions of pixels, e.g., text/graphics, images halftones, text/graphics on halftones, constant tones, etc. The image is decomposed into various types of regions so that enhancement techniques optimized for a particular region may be applied to that region. It should be appreciated that the enhanced image may be halftoned and printed, displayed on a monitor, compressed and stored, etc. That is, the results of embodiments described herein may be sent to a multitude of devices and converted into a multitude of formats. The scheme enabling the embodiments described is multi-resolutional in nature, i.e., the scheme looks at the document in more than one resolution to more accurately segment the document. In one embodiment, the scheme defined herein performs processing on the input (fine scale) and the low pass filtered version of the input (coarse scale). Edge detection is done at the two resolutions to mark “coarse edges” on the low pass filtered image and “fine edges” on the original image. With the low pass filter chosen to suppress most of the halftone, the edge detection on the low pass filtered image marks most of the real edges (due to image edges, text, graphics, etc.), while fine edge detection marks the real edges and halftone dots. All locations that are marked as fine edges but not as coarse edges serve as initial estimates of halftone dots. Such locations are counted around each pixel and the result thresholded in order to determine halftone pixels. Coarse edges on detected halftone regions and fine edges on non-halftone regions make up two of the labels in the X field. In another embodiment, a variance is calculated around each non-halftone pixel to determine if that pixel is over a constant-tone region. As a result of this process we have the five possible labels in Table 1.
Once labeling is done, edge enhancement is carried out on detected coarse and fine edge pixels and descreening is accomplished by low pass filtering the halftone pixels. Descreening involves low pass filtering, therefore the scanned document is segmented or decomposed to its constituent halftone and non-halftone regions in order not to corrupt high resolution text and graphics with low pass filtering. The embodiments described below accomplish this segmentation and combining it with error tolerant descreening and enhancement in a very low complexity environment. In one embodiment, bleed-through removal is applied to the enhanced data. As will be explained in more detail below computations may be reused in the enhancement stage, which in turn share some of the computational results of the labeling stage.
It should be appreciated that the technique described herein, also referred to as an algorithm, makes no attempt at distinguishing among edges due to text, graphics, images, etc. While the primary application of the functionality is the accomplishment of the labeling and enhancement for a copier pipeline, the results of the algorithm may be used in conjunction with more sophisticated algorithms, e.g., optical character recognition, etc., to enable further document processing and segmentation. Similarly, the labeling results may be used to derive other applications such as the compression of compound documents, etc.
It will be apparent to one skilled in the art that there are many other operations that may be performed on the output stream as it progresses in the printing pipeline of printing module 120. For example, in some modular copying applications, where the scanner and printer are well separated, it may be desirable that the deployment of the labeling, descreening, and enhancement algorithm not require any changes in the printing pipeline. On the other hand in applications where scanner-side and printer-side algorithms are jointly designed, the technique must be flexible enough not to curtail the possible savings introduced by the joint design. This flexibility is provided through the embodiments described herein. For example, the technique may operate on raw scanner output without requiring extra color correction, thereby allowing separate scanner and printer color correction to be combined for computational savings. Furthermore, the output X channel may be suppressed in modular applications. The technique may thus be incorporated in the scanner-side or the printer-side in order to give a system designer freedom to best take advantage of cost, complexity, and performance tradeoffs.
As is generally known, printers use screens to generate an image to be printed. Therefore, if text regions and graphics/image regions are identified, the printer may apply a lower frequency screen to an image region in order to get better color production. On the other hand, the text regions may use high frequency screens in order to make the text appear sharp. Thus, by providing the optional X field to a printer module, the printer module could then execute functionality on top of the enhanced image data provided by the embodiments described herein to further enhance the image for printing.
It should be appreciated that the technique described herein is configured to perform a single pass on the input and once the band reaches the bottom of the input page, the output page (which includes the enhanced input and the optional X field) is ready up to a few rows of delay. Accordingly, the operation of this algorithm may be analogized to a very thin line that rapidly scans an input page while simultaneously producing an output page. The memory requirements and memory-bandwidth requirements of the algorithm are minimal due to the banded operation with small active memory. This architecture, in conjunction with the utilized low complexity algorithms, allows very fast processing at a very low cost.
In one embodiment, the algorithm maintains three main buffers that store information corresponding to pixels that are within the band of
The technique is designed around the observation that the main information in documents is meant to be visible to human observers viewing the documents from a certain distance. Accordingly, the coarse resolution image should contain the bulk of this information and it can be used to identify the information bearing portions at the fine resolution. Therefore, most of the influence of real document edges may be subtracted, through the coarse resolution, and segmentation and identification decisions may be based on relatively simple statistics where the alternative hypothesis are halftone and non-halftone. In contrast, traditional techniques have to base statistical decisions on complex statistics where they have to distinguish among real document edges, non-halftone areas, and halftone areas. Depending on the language, characters, fonts, etc., text and halftone regions can have remarkably similar statistics which limits the robustness of these traditional techniques. Consequently, the algorithm is much more robust and it is applicable over a variety of text and graphics regions, since most of the visual information that is meant to be seen in the input document never enters the statistical decision process to cause mistakes. Similarly, the technique discussed herein incorporates robustness in terms of the types of halftones it may detect since, the halftones are primarily located as regions that have densely packed but invisible information.
Processing branch 135 of
Still referring to
FIGS. 4B1 through 4B4 illustratively represent the AND operation and the subtracting operation discussed above with reference to
The output of threshold module 144 of
Variance calculation module 148 of
It will be apparent to one skilled in the art that the functionality described with reference to box 154 of
The two stages of the algorithm, i.e., labeling and enhancement/descreening are discussed below. The algorithm is primarily based around the labeling stage with the enhancement stage strongly coupled to labeling for added robustness and computational simplicity. As used below let S(i,j), i=0, . . . , N−1, j=0, . . . , M−1 denote a color channel in the original input.
The algorithm uses a set of internal labels that are assigned to pixels through independent classification stages that operate on each color channel of the input. A buffer maintains the results of the independent classifications and these results are combined at the final decision stage to assign a final label for all the color channels in each pixel. It should be appreciated that until the final decision stage, a pixel may have several attached labels for each color channel. The input is initially low pass filtered to yield a coarse resolution image as illustrated in
In one embodiment, the alignment requirement is met by using symmetric, zero-delay filters. This also reduces the number of multiplications that are required to calculate the filtered value. The suppression of the halftone dots is not as constraining on the design and the robustness of the design. Halftones may be detected in the input to the degree that they are likely to cause Moiré artifacts in the final printed output. Hence, halftone-like features below a certain frequency need not be detected and therefore need not be suppressed by the filter. It should be appreciated that the exact frequency at which this occurs is device specific and depends on the printer used in the copier system, the utilized halftoning method, etc. Furthermore, the halftones present in the input document are designed to be invisible to observers viewing the document from a certain distance. These factors allow straightforward decisions on the choice of the bandwidth of the filter based on the dpi resolution of operation. Very good performance has been experienced using a symmetric Gaussian filter with the bandwidth chosen at 600 dpi and where this bandwidth is adjusted linearly for other target dpi resolutions. For example if the standard deviation of the Gaussian filter is set to σg=2 at 600 dpi, then the standard deviation of the filter at 300 dpi is set to 1, etc. Note that since a copier device is expected to operate at a fixed set of resolutions, one can also utilize different filters for each resolution with the filter bandwidths adjusted using a training set at each resolution. All the 600 dpi illustrated herein utilize a symmetric, separable, 7×7 Gaussian filter of standard deviation σg=2.
After low pass filtering, coarse edge detection is carried out on the low pass filtered image using straightforward edge detection as illustrated in
The edge detection threshold may be adjusted experimentally so that most of the real edges in documents are detected. In one embodiment, the threshold is dependent on the color contrast characteristics of the scanner and whether color correction has been done on the scanned data. The examples used herein are on raw scanner output with no color correction. For the examples we have utilized the directional edge filters given by:
One of the key problems with traditional techniques in the enhancement of edges over halftones is the thickness of the detected edges. Often times, it may be desirable to restrict enhancement to “thinned” edges whereas halftone decisions are still made with the “thick” labels. In order to accommodate such enhancement concerns two thresholds are utilized and distinguished between thick and thin coarse edges using two labels, i.e., a pixel that passes both thresholds is marked as thick and thin. Thick edges are utilized in halftone decisions whereas, as described below, a selective combination of thick and thin edges are utilized in enhancement. The larger threshold used to mark thin edges is given by Tthin=7 at 600 dpi (Tthin=11 at 300 dpi).
As pointed out above there is a need to distinguish between thick and thin coarse edges in order to accommodate enhancement concerns. While halftone detection proceeds by utilizing thick coarse edges, i.e., the determination of halftones utilizes the small edge detection threshold Tthick, applying the enhancement process to the identified thick coarse edges produces low quality results. This is because detection with the small threshold Tthick is not very good at identifying the precise location of coarse edges. Thin edge labeling with the larger threshold Tthin is much more accurate in determining these locations, however, with the unfortunate tendency to miss details which is again a concern in the enhancement.
In one embodiment, the edge information from the missed region 180 is determined from
Around each thin coarse edge pixel, we use a temporary label to mark a symmetric (+/−Nprox) rectangular proximity region of size (2 Nprox+1)×(2 Nprox+1) pixels. Then, given a thick coarse edge pixel, Nprox pixels are checked with respect to the pixel's immediate left to determine if all pixels are marked with the temporary label. A similar check is performed on Nprox pixels to the immediate right, above, and below. The pixel is then activated, i.e., labeled as a “secondary” thin edge pixel, if all four proximity checks pass and the pixel itself is marked with the temporary label. The “secondary” labeling is implemented in a fashion to ensure that only the threshold-passing thin edges are used in establishing the proximity regions. Of course, in the enhancement stage secondary thin edges are treated as thin edges and undergo enhancement.
Setting Nprox to a large number would invoke the risk of broadening thin edges significantly on dense text regions where different text characters are at close proximity. Nprox is thus set to a small number, Nprox=3 at 600 dpi, so that the procedure results in the broadening of thick edges only to the extent that helps the detection of missed salient edges (setting Nprox=3 also provides acceptable performance at 300 dpi).
Halftone detection starts by identifying all the pixels that are marked as fine edges (see
By nature of the banded operation, the neighborhood used in the count is necessarily larger over columns then it is over rows (this follows since the algorithm tries to store as few rows as possible). The length of this neighborhood over columns effectively determines the length of the active region with reference to
Still referring to
In one embodiment, the thickness of this false layer may be significantly reduced by establishing two separate counts over two partial neighborhoods around the current pixel (see
Constant tones are detected by calculating the variance over two neighborhoods around each pixel. The choice of the neighborhoods is similar to the two partial counting neighborhoods used in halftone detection as illustrated with reference to
Of course, establishing variance calculations over rectangular regions does not allow constant tones to be detected inside densely populated text regions. Therefore the above detection is followed with an extension technique where non-halftone and non-edge pixels that are connected to an identified constant tone pixel and that are close in color (within (Tconst)1/2) are also marked as constant-tones. This enables seamless extension of constant-tones into text regions. However, as will be further discussed below, while regions around text characters will be correctly identified, the holes inside characters may be missed. The effects of this problem are negligible as discussed below.
For each pixel the assigned independent labels are first used to identify a single label for each color channel using Table 2 (in Table 2 the “*” indicates a don't care condition).
The final label that combines the labeling information for each channel is given as COARSE EDGE label if any channel is marked COARSE EDGE or if one channel is marked HALFTONE and at least one other marked CONDITION 1 or 2. Otherwise, the final label is HALFTONE if any channel is marked as HALFTONE, else FINE EDGE if any channel is marked FINE EDGE or CONDITION 2, else CONSTANT TONE if all channels are marked CONSTANT TONE. If none of these conditions hold then the final label is OTHER. For the discussion below it is assumed that the final label for pixel (i,j) is given as X(i,j).
The enhancement and descreening stage primarily takes into account that the output device is a printer and targets an observation model that is more sensitive to low-pass frequency characteristics especially for the enhancement of coarse edges. However, more elaborate techniques may be used for other scenarios. Enhancement proceeds on color channels independently except for final normalization, where the computed enhancement differentials are jointly scaled to ensure that pixel values in each color channel remain within maximum and minimum limits.
Some labeling mistakes are inevitable, accordingly the embodiments described herein combine simple enhancement with the labeling to achieve very robust performance. A property that enables this robustness is the very similar methods used in the enhancement of coarse and fine edges. Another property that is emphasized in the design is the sharing of computations between the labeling stage described with reference to
Descreening is accomplished by inputting the already low pass filtered input values at all the pixels that have been labeled as halftone (See
At fine edges an unsharp masking procedure, which is generally known, is used by computing a sharpening term that is given by the input pixel value minus the already computed low pass filtered pixel value, i.e., using equation (1) yields:
This again incurs minimal complexity. The sharpening term is multiplied with a sharpening factor and then added to the original pixel value to determine the enhanced output at pixels labeled as fine edges (See
The enhancement of coarse edges is very similar to the enhancement of fine edges discussed above and is also carried out using unsharp masking. However, a small (3×3) low pass filter K(i,j) is utilized on the input to obtain:
As can be seen on the enhancement results in the halftone region with reference to
The bleed-through removal method is then applied and is meant as an exemplary use of the constant-tone labeling. The bleed-through removal method operates on constant-tone regions and starts by calculating a histogram of all the constant-tone pixels in the processed row (this is essentially at the top row stored by the algorithm). In order to avoid higher dimensional histograms, the histogram is computed on a luminance-like channel or index obtained by averaging the pixel values in each color channel. For each bin in the histogram, the average color of all pixels falling into that bin is stored. In one embodiment, simple checks are performed to ensure widely varying colors do not fall into the same bin due to luminance-like indexing. In order to ensure continuity this histogram is further averaged with a stored “previous” histogram (and its average colors), and the results are utilized as well as stored for the processing of the next row.
Histogram segmentation is then performed and each segment in the histogram is assigned a single representative color given by the conditional average color. The colors of the constant-tone pixels in the enhanced image are tested against these representative colors and those pixels with colors that are within a certain threshold (set to 2 ((Tconst)1/2) of the corresponding segment's color are assigned the representative color.
Of course, this technique is mainly effective in removing bleed-through artifacts over regions marked as constant-tone. However, it should be appreciated that at the expense of increased memory, constant-tone labeling on halftone regions may be performed as well and bleed-through removal may be carried out on de-screened data. With this simple technique, light bleed-through in extended constant-tone regions is substantially eliminated in the input, where artifacts are the most visible. By tuning thresholds it is possible to combat more aggressive artifacts provided that the histogram segmentation can be done accurately.
The simulation examples described below provide exemplary applications of the labeling approach embodiments described herein.
The halftone portions in each document can be seen in detail on the (C) set of Figures which are the hand-segmented ground truth separation of the page into halftone and non-halftone. In order to calculate quantitative detection probabilities with respect to the ground truth, the halftone and non-halftone segmentation of the documents are shown as obtained by the algorithm in the (D) set of Figures. Of the five labels outputted by the algorithm “COARSE EDGE” and “HALFTONE” constitute pixels over halftone regions whereas the remaining three labels in the X field denote non-halftone pixels. By comparing the (C) and (D) sets of corresponding Figures it should be appreciated that the algorithm detects varying halftones with success.
In order to discuss quantitative behavior let PD,h denote the probability that the algorithm detects a halftone pixel given that the ground truth labeling for the pixel is halftone. Similarly let PD,n denote the probability that the algorithm detects a non-halftone pixel given that the ground truth labeling for the pixel is non-halftone. The conditional false alarm or miss probabilities are one minus these probabilities. The overall detection probability PD is then given by PD,h times the number of ground truth halftone pixels plus PD,n times the number of ground truth non-halftone pixels. For the results in
Finally note that the labeling stage is designed to be used in conjunction with the enhancement in a very low complexity environment. Many of the identified issues, as well as the mistakes over very small regions, can be corrected if one is willing to resort to region completion and other more elaborate techniques known to one skilled in the art.
The (E) figure set in
The significant computational complexity required by the algorithm is summarized below for each pixel in each color channel. All operations are on integers with most operations on 8 or fewer bit integers.
The symmetric, separable low pass filtering described above with reference to
Edge detection requires filtering with the filters of Equation (2) and thresholding. The filters are separable and much simpler than the low pass filter. Filtering requires 1 shift, 2 additions, and 1 subtraction. Two filtering computations are carried out per pixel for each color channel and another factor of two comes in for coarse in addition to fine edge detection, yielding 4 shifts, 8 additions, and 4 subtractions.
For the computations discussed with reference to thin coarse edges, an average of 2Nprox+1 pixels need to be marked with the temporary label in the worst case for each pixel in each channel. Proximity checks using counts over rows and columns are implemented here. A single row buffer is utilized that stores the count of temporary labels on each column corresponding to the sum over 2Nprox+1 rows. In this fashion the horizontal or vertical proximity check may be reduced to 2 checks for labels and corresponding increment by 1 or decrement by 1 operations (a possible increment to update the buffer for a new row and a possible decrement to subtract the influence of an out of scope row). Hence, in the worst case, the total becomes 4 checks for labels and 4 increment/decrement operations for each pixel in each channel.
In one embodiment, the counting required for halftone detection is implemented in two stages as counts over Nh,row rows in each column followed by a count over columns. Similar to proximity check calculations, a one row buffer is utilized to store the counts over rows for each column resulting in two increment/decrement operations and two label checks. Counting over columns add two addition/subtraction operations which is carried out for the three counting neighborhoods as discussed with reference to halftone detection and
Edge enhancement requires 2 additions and 1 multiplication, which can be done with via a shift depending on λ. In the enhancement of coarse edges, the filter of Equation (11) requires 2 additions and a shift over rows as well as columns. Hence, worst case edge enhancement needs 6 additions, 2 shifts, and 2 multiplies per edge pixel, in each color channel. Depending on the normalization method a normalizing division may also be performed for each edge pixel, in each color channel.
It can be seen from the above that the main portion of the algorithm requires on the order of 10 multiply and 30 addition/subtraction operations for each pixel in each channel. The bulk of this computation comes from low pass filtering and edge detection. It should be appreciated that any technique that accomplishes descreening on input data needs to be prepared for per pixel low pass filtering. Similarly, for even modest quality in a copier pipeline, at least some edge detection and enhancement is necessary. Hence, the computational resources added by our algorithm over a “baseline” algorithm are those needed by a secondary edge detection and halftone detection. This is on the order of 10 addition/subtraction and 6 increment/decrement operations and corresponds to about 25% increase in computation over the most naive scanner-side algorithm in a copier pipeline.
For applications requiring bleed-through removal, constant-tone detection is also implemented with a row buffer that stores calculations over columns. Squares for variances, etc., are implemented via lookup tables resulting in 1 add and 1 subtract each for the mean and the variance. Calculations for each neighborhood add 1 add and 1 subtract each for the mean and variance followed by a mean normalizing multiply and a subtraction. The total computation comes to 3×(2×2)=12 addition/subtraction operations plus 2 multiplies and 2 subtractions for each pixel in each channel. The luminance-like index calculation in the simple bleed-through removal scheme described above requires 2 additions and a normalization per pixel. Histogram accumulations further require an addition per pixel, for each color channel. Final histogram normalization, averaging, and segmentation are carried out on a row by row basis. Thus, carrying out the bleed-through scheme further requires on the order of 20 addition/subtraction and 3 multiplication operations. In summation, the technique described herein, requires about 60% more computation over the most naive scanner-side algorithm in a copier pipeline, in one embodiment.
It should be further appreciated that additional computations in the copier pipeline, e.g., color correction and halftoning require significant computation. Hence, the practical computational complexity added by the incorporation of the above described technique is typically an even smaller percentage of the overall computational complexity. One skilled in the art will appreciate that the use of three extra row buffers mentioned above, which are included for computational purposes, are not required in all implementations. However, considering these buffers raises the memory requirements of the technique by another 0.8%, thereby bringing the total memory requirements to approximately 1.5% of full page memory.
In summary, the embodiments described herein provide a multiresolutional, single pass technique that accomplishes segmentation and enhancement of compound documents under relatively low computational complexity and memory requirements. The technique is scalable and provides high halftone detection probabilities. The enhancement stage is designed to operate jointly with the labeling stage, and provide robust operation even under situations where labeling errors may occur. The banded architecture and the sharing of computations between stages enable the technique to provide significant functionality at low computational, memory, and memory bandwidth complexity.
The multi-resolutional technique does processing on the input (fine scale) and the low pass filtered version of the input (coarse scale). Edge detection is done at the two resolutions to mark “coarse edges” on the low pass filtered image and “fine edges” on the original image (See
Consequently, the embodiments described herein combines segmentation and region classification into one seamless labeling stage that is accomplished jointly with descreening and enhancement in a single pass algorithm of comparatively negligible computational complexity, memory, and memory-bandwidth requirements. The technique is fully automated, it is applicable to general compound documents, and it may handle a multitude of halftone types over regions of arbitrary sizes and shapes. While the term “halftone dots” is used throughout it should be appreciated that the technique may be used to detect other types of halftones as well. The above described embodiments may be used for multilingual documents and are effective on compound documents with text characters containing fine strokes.
With the above embodiments in mind, it should be understood that the invention may employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. Further, the manipulations performed are often referred to in terms, such as producing, identifying, determining, or comparing.
The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data which can be thereafter read by a computer system. The computer readable medium also includes an electromagnetic carrier wave in which the computer code is embodied. Examples of the computer readable medium include hard drives, network attached storage (NAS), read-only memory, random-access memory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes, and other optical and non-optical data storage devices. The computer readable medium can also be distributed over a network coupled computer system so that the computer readable code is stored and executed in a distributed fashion.
Any of the operations described herein that form part of the invention are useful machine operations. The invention also relates to a device or an apparatus for performing these operations. The apparatus may be specially constructed for the required purposes, or it may be a general purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general purpose machines may be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
The above described invention may be practiced with other computer system configurations including hand-held devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers and the like. Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.