Abstract:
A method and apparatus are provided for determining a weighted average measured reflectance parameter R m  for pixels in an image for use in integrated cavity effect correction of the image. For each pixel of interest P i,j  in the image, an approximate spatial dependent average A i,j , B i,j  of video values in a region of W pixels by H scan lines surrounding the pixel of interest P i,j  is computed by convolving video values V i,j  of the image in the region with a uniform filter. For each pixel of interest P i,j  a result of the convolving step is used as the reflectance parameter R m . The apparatus includes a video buffer for storing the pixels of the original scanned image, and first and second stage average buffers for storing the computed approximate spatial dependent averages A i,j , B i,j . First and second stage processing circuits respectively generate the first and second stage average values A i,j , B i,j  by convolving the video values of the image in a preselected region with a uniform filter.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is related to U.S. application Ser. No. 09/010,331 filed on Jan. 21, 1998. 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention is directed to the art of digital image processing and, more particularly, to a method and apparatus for implementing integrated cavity effect correction. The present invention is especially well suited for use in desk top scanners for correcting the integrated cavity effect caused by the dependence in a measured reflectance of a patch on the surrounding background and will be described with particular reference thereto. However, it is to be understood that the present invention has broader application and can be used in a wide range of digital image processing systems and other systems where there is a need for convolution filtering with a triangular, pyramidal, or other spatial responses. 
     The integrated cavity effect (ICE) phenomena in digital imaging scanners refers to the dependence in the measured reflectance of a patch on the surrounding background. This effect is caused by a local change in the illumination due to light reflecting from the neighboring locations on the document and back into an illuminator in the digital imaging scanner. It is well known that these context dependent reflectance variations often cause problems in the digital reproduction of documents. As an example, the image video in the background amid black characters is often much lower than the video signal value in a broad background area. This background variation causes additional dots to be printed around the characters when images are rendered using error diffusion techniques. 
     The ICE also adversely affects the performance of auto-window algorithms. Typically, auto-window algorithms depend on values of background information to identify window regions in the document. Therefore, non-uniform background values can easily cause the adverse merging of two or more windows separated only by a narrow white space. 
     U.S. Pat. No. 5,790,281 to Knox, et al. assigned to the assignee of the instant application describes a method of mathematically adjusting the measured reflectance of an image acquired by an image acquisition device for correcting the integrating cavity effect. As described there, typical image acquisition apparatus measure the amount of light reflected from the surface of the original document and send a corresponding set of electrical signals to a printing or storage module. Image acquisition usually requires illuminating the original document using a reflecting cavity which causes the measurement of the amount of light present on the surface of the document to become distorted. The method disclosed by the Knox, et al. &#39;281 patent corrects this phenomenon by calculating the amount of light that reaches the surface of the original document by being reflected from the illumination system and the surrounding cavity. This allows the measured reflectance to be corrected, and the true reflectance to be used for subsequent output or storage. 
     In general, therefore, a rigorous mathematical method for correcting the integrated cavity effect is known. The correction formula is given by:          r        (   x   )       =           R   m          (   x   )            (     1   +     fR   c       )         1   +     f        〈     R   m     〉                                  
     where r(x) is the corrected reflectance R m (x) is the measured reflectance, R c  is the measured reflectance for a white paper, f is the fraction of light reflected off the document that is captured by the cavity and redirected onto the document, and the &lt;R m &gt; refers to a convolution with a kernel g(x). 
     The convolution with a kernel g(x) is given by:          〈     R   m     〉     =       ∫       g        (   x   )              R   m          (   x   )               x           ∫       g        (   x   )                 (   x   )                                    
     As is apparent from the above, the reflectance correction clearly depends on the weighted average measure reflectance &lt;R m &gt; of the surrounding area. This poses a significant processing problem in digital imaging systems when the selected context of the average is substantial. More particularly, when the selected context is large, the processing required in software for calculating the average is extremely slow. In addition, although it is possible to implement a real time hardware solution to the computation of the weighted average, the required circuitry is extremely expensive. 
     Accordingly, a method and apparatus for implementing an approximate weighted average for implementing integrated cavity effect correction in scanners is desired. 
     SUMMARY OF THE INVENTION 
     In accordance with one aspect of the invention, an inexpensive circuit and method is provided for computing the spatial dependent average in a digital image by repeatedly convolving the video data with a uniform filter. The uniform average is implemented by adding and subtracting data from the lead edge and trail edge of a selected “running block” context in both the slowscan and fastscan directions, respectively. 
     In accordance with a more limited aspect of the invention, a method of determining a weighted average measured reflectance parameter R m  for pixels in an image for use in integrated cavity effect correction of the image is provided. The method includes the step of computing, for each pixel of interest P i,j  in the image, and approximate spatial dependent average A i,j , B i,j  of video values in a region of W pixels by H scan lines surrounding the pixel of interest P i,j  by twice convolving video values V i,j  of the image in said region with a uniform filter and then using a result of the convolving step for each pixel of interest P i,j  as the averaged reflectance parameter &lt;R m &gt;. 
     A primary advantage of the invention is a simple and low cost solution for generating a weighted average measured reflectance parameter &lt;R m &gt; for use in integrated cavity effect correction in scanners. 
     It is another advantage of the invention that a close approximation to a rigorous calculated weighted average value in a large context is provided. 
     These and other advantages and benefits of the present invention will become apparent to those of ordinary skill in the art upon reading and understanding the following detailed description of the preferred embodiments. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention may take form in various components and arrangements of components, and in various steps and arrangements of steps. The drawings are only for purposes of illustrating the preferred embodiments of the invention and are not to be construed as limiting same. 
     FIG. 1 is a schematic illustration of a system for implementing integrated cavity effect correction in accordance with the present invention; 
     FIG. 2 is graphical representation illustrating a first step portion of the processing performed in the system shown in FIG. 1; 
     FIG. 3 is a graphical representation illustrating a second step portion of the processing performed in the system shown in FIG. 1; and, 
     FIG. 4 is a flowchart illustrating a preferred method performed by the system shown in FIG. 1 for implementing integrated cavity effect correction in accordance with the present invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     With reference first to FIG. 1, a preferred processing system  10  for implementing integrated cavity effect correction in scanners will be described. As shown there, a video buffer  12  holds plurality of video values V i,j  representative of the light intensity of a plurality of pixels P i,j  obtained from imaging an original document using a digital scanner device or the like. A first stage processing circuit  14  is adapted to read each of the video values V i,j  in blocks of selected size from each of the pixel locations P i,j  in the video buffer  12  and generate first stage average values A i,j  in accordance with the invention in a manner to be described in detail below. The first stage average values A i,j  are stored in a first stage average buffer  16 . 
     A second stage processing circuit  18  is adapted to read each of the first stage average values A i,j  in blocks of selected size from the first stage average buffer  16  and generated a second stage average value B i,j  in accordance with the invention. The second stage average values B i,j  are stored in a second stage average buffer  20 . Preferably, the block sizes read from the video buffer  12  and from the first stage average buffer  16  are the same size. However, other differently sized blocks can be used. 
     It is to be appreciated that the present invention exploits the mathematical principle that the double convolution of a 2-D uniform weight filter yields a filter with pyramidal weights. Additional or compounded convolutions of the 2-D uniform weight filter yields filters with weights that are more Gaussian in profile as the multiple convolutions are increased. Double convolution of a 2-D uniform weight filter over a 4×4 context yields a filter with a pyramidal shaped weighting profile as follows:          [         1       2       3       4       3       2       1           2       4       6       8       6       4       2           3       6       9       12       9       6       3           4       8       12       16       12       8       4           3       6       9       12       9       6       3           2       4       6       8       6       4       2           1       2       3       4       3       2       1         ]                               
     By way of preliminary example of the preferred embodiment to be described below, let V i,j  be the video at row i and column j in the video buffer  12  (FIG.  1 ): 
     V 11  V 12  V 13  V 14  V 15  V 16  V 17    
     V 21  V 22  V 23  V 24  V 25  V 26  V 27    
     V 31  V 32  V 33  V 34  V 35  V 36  V 37    
     V 41  V 42  V 43  V 44  V 45  V 46  V 47    
     V 51  V 52  V 53  V 54  V 55  V 56  V 57    
     V 61  V 62  V 63  V 64  V 65  V 66  V 67    
     V 71  V 72  V 73  V 74  V 75  V 76  V 77    
     Next, let S i,j  be the sum of V i,j  over a region or context of 4 by 4 to the left and above the location i,j as calculated by the first stage processing circuit  14 , i.e. S i,j  is the sum of V mn  for i−4&lt;m&lt;=i and j−4&lt;n&lt;−j. According to the example, therefore: 
     
       
         
           S 
           44 
           =V 
           11 
           +V 
           12 
           +V 
           13 
           +V 
           14 
           +V 
           21 
           +V 
           22 
           +V 
           23 
           +V 
           24 
           +V 
           31 
           +V 
           32 
           +V 
           33 
           +V 
           34 
           +V 
           41 
           +V 
           42 
           +V 
           43 
           +V 
           44 
         
       
     
     
       
         
           S 
           45 
           =V 
           12 
           +V 
           13 
           +V 
           14 
           +V 
           15 
           +V 
           22 
           +V 
           23 
           +V 
           24 
           +V 
           25 
           +V 
           32 
           +V 
           33 
           +V 
           34 
           +V 
           35 
           +V 
           42 
           +V 
           43 
           +V 
           44 
           +V 
           45 
         
       
     
     etc. 
     The sum values S i,j  of the video value V i,j  are calculated as above by the first stage processing circuit  14  and put into a matrix form and stored in the first stage average buffer  16  as follows: 
     S 44  S 45  S 46  S 47    
     S 54  S 55  S 56  S 57    
     S 64  S 65  S 66  S 67    
     S 74  S 75  S 76  S 77    
     Summing the S i,j  again over a region or context of 4×4 to the left and above by the second stage processing circuit  18  yields a set of second sum values T i,j  for storage in the second stage average buffer  20 . As an example: 
     
       
         
           T 
           77 
           =S 
           44 
           +S 
           45 
           +S 
           46 
           +S 
           44 
           + 
           54 
           +S 
           55 
           +S 
           56 
           +S 
           57 
           +S 
           64 
           +S 
           65 
           +S 
           66 
           +S 
           67 
           +S 
           74 
           +S 
           75 
           +S 
           76 
           +S 
           77 
         
       
     
     Expanding the S i,j  explicitly in terms of V i,j  shows that the double sum T 77  is a weighted sum of the video values V i,j  stored in the video buffer  12  with a pyramidal shaped weights centered at pixel location i=4,j=4. 
     Accordingly: 
     
       
           T   77   =V   11 +2 V   12 +3 V   13 + 
       
     
     
       
         4 V   14 +3 V   15 +2 V   16   +V   17 + 
       
     
     
       
         2 V   21 +4 V   22 +6 V   23 +8 V   24 + 
       
     
     
       
         6 V   25 +4 V   26 +2 V   27 +3 V   31 + 
       
     
     
       
         6 V   32 +9 V   23 +12 V   34 +9 V   35 + 
       
     
     
       
         6 V   36 +3 V   37 +4 V   41 +8 V   42 + 
       
     
     
       
         12 V   43 +16 V   44 +12 V   45 +8 V   46 + 
       
     
     
       
         4 V   47 +3 V   51 +6 V   52 +9 V   53 + 
       
     
     
       
         12 V   54 +9 V   55 +6 V   56 +3 V   57 + 
       
     
     
       
         2 V   61 +4 V   62 +6 V   63 +8 V   61 + 
       
     
     
       
         6 V   65 +4 V   66 +2 V   67   +V   71 + 
       
     
     
       
         2 V   72 +3 V   73 +4 V   74 +3 V   75 + 
       
     
     
       
         2 V   76   +V   77   
       
     
     The above illustrates that the sum of a sum of a 4×4 context yields a pyramidal weighted sum of a 7×7 context. In general, a sum of sums of a W by H context yields a pyramidal weighted sum over a context of 2W-1 by 2H-1. 
     With continued reference to FIG.  1  and with additional reference now to FIG. 2, the preferred particular computation of the pyramidal weighted sum in the two-dimensional case with reduced number of multipliers and adders in accordance with the present invention will be described. Preferably, in order to reduce the overall number of bits used, the first stage processing circuit  14  of the subject invention computes the average A i,j  of the video values V i,j  rather than the sum S i,j  as described above. Likewise, in the second stage processing circuit  18 , the second stage average values B i,j  of the first stage average values A i,j  are computed rather than the strict sum T i,j  as described above. It is to be appreciated, however, that the subject invention embraces both the strict sum calculation to provide the pyramidal weighted sums as described above as well as the average value calculations as described below to compute the pyramidal weighted average for the purposes of reducing the numbers of bits used as well as for reducing the number of multipliers and adders needed. 
     Preferably, in accordance with the invention, the video values V i,j  in a window size of W pixels by H scan lines are used by the first stage processing circuit  14  to compute the first stage average values A i,j  for storage in the first stage average buffer  16 . Preferably, as shown in FIG. 2, a running block  30  of the video values V i,j  is processed by the first stage processing circuit  14  to generate the first stage average values A i,j . The running block  30  essentially frames pixels of the video buffer  12  to provide a context having a width of W pixels and a height of H scan lines. It is to be appreciated that the video values V i,j  are retrieved from the video buffer  12  by the first stage processing circuit  14  in a manner so that the running block  30  “progresses” in the pixel direction along the scan lines or, equivalently, to the right as viewed in FIG. 2 by a single pixel column at a time. After the running block is “moved” to the rightmost edge of the video values stored in the video buffer  12 , the block is shifted downwardly by one scanline and to the extreme left. The running block essentially moves in a raster-like fashion repeatedly to retrieve video values from the next set of scan lines in the video buffer. 
     The first stage processing circuit  14  includes a first register  32  for storing a value SumTop j−1  representative of the row sum of the video values at scan line SL i−H+1  from pixel P j−W  to pixel P j−1 . A second register  34  stores the row sum of the video values at scan line SL i  from pixel P j−W  to pixel P j−1 . As the image processing performed by the first stage processing circuit  14  proceeds from pixel P j−1  to pixel P j , the processing circuit  14  updates the first and second registers  32 ,  34  according to the following: 
     
       
         SumTop j =SumTop j−1   +V   i−H+1,j   −V   i−H+1,j−W   
       
     
     
       
         SumBottom j =SumBottom j−1   +V   i,j   −V   i,j−W   
       
     
     A first-in-first-out (FIFO) buffer  36  is included in the first stage processing circuit  14  to store, at each pixel location, a value F j  which is representative of the sum of the row averages from pixel P j−W+1  to pixel P j  over scan lines SL i−H+1  to scan line SL i−1 . Preferably, in accordance with the present invention, the value F j  is computed in the previous scan line cycle and is thus immediately available from the first FIFO  36 . For each pixel location in the video buffer  12 , the first stage processing circuit  14  calculates a first stage average value A i,j  according to the following: 
     
       
           A   ij =(F j +SumBottom j   /W )/ H.   
       
     
     Next, the first stage processing circuit  14  updates the value F j  in the first FIFO  36  for use in the next scan line cycle according to the following: 
     
       
           F   j   =F   j +(SumBottom j −SumTop j )/ W.   
       
     
     With continued reference to FIG.  1  and with additional reference now to FIG. 3, the second step portion of the processing for computation of the pyramidal weighted average for implementing the integrated cavity effect correction in accordance with the present invention will be described. As discussed above, preferably, in order to reduce the overall number of bits used, the second stage processing circuit  18  of the subject invention computes second stage average values B i,j  of the first stage average values A i,j  rather than the strict sum calculation T i,j  described above. Again, it is to be appreciated that the subject invention embraces both the strict sum calculation to provide the pyramidal weighted average as well as the average value calculations as described herein to compute the pyramidal weighted sums for the purposes of reducing the numbers of bits used as well as for reducing the number of multipliers and adders needed. 
     Preferably, in accordance with the invention, the first stage average values A i,j  in a window size of W pixels by H scan lines are used by the second stage processing circuit  18  to compute the second stage average values B i,j  for storage in the second stage average output  20 . Preferably, as shown in FIG. 3, a running block  40  of the first stage average values A i,j  is processed by the second stage processing circuit  18  to generate the second stage average values B i,j . The running block  40  essentially frames pixel locations of the first stage average buffer  16  to provide a context having a width of W pixels and a height of H scan lines. It is to be appreciated that the first stage average values A i,j  are retrieved from the buffer  16  by the second stage processing circuit  18  in a manner so that the running block  40  “progresses” in the pixel direction along the scan lines or to the right as viewed in FIG. 3 by a single pixel column at a time. After the running block is “moved” to the rightmost edge of the first stage average values A i,j  stored in the first stage average buffer  16 , the block is shifted downwardly and to the extreme left. The running block essentially moves in a raster-like fashion repeatedly to retrieve video values from the next set of scan lines in the first stage average buffer  16 . 
     The second stage processing circuit  18  includes a first register  42  for storing a value Sum2Top j−1  representative of the row sum of first stage average values at scan line SL i  from pixel location P j−1  to pixel location P j+W−2 . A second register  44  stores the row sum of the first stage average values at scan line SL iI+H−1  from pixel location P j−1  to pixel location P j+W−2 . As the image processing performed by the second stage processing circuit  18  proceeds from pixel location P j−1  to pixel location P j , the processing circuit  18  updates the first and second registers  42 ,  44  according to the following: 
     
       
         Sum2Top j =Sum2Top j−1   +A   i,j+W−1   −A   i,j−1   
       
     
     
       
         Sum2Bottom j =Sum2Bottom j−1   +A   i+H−1,j+W−1   −A   i+H−1,j−1   
       
     
     A first-in-first-out (FIFO) buffer  46  is included in the second stage processing circuit  18  to store, at each pixel location, a value F2 j  which is representative of the sum of the row averages from pixel location P j  to pixel location P j+W−1  over scan lines SL i  to scan line SL i+H−2 . Preferably, in accordance with the present invention, the value F2 j  is computed in the previous scan line cycle and is thus immediately available from the second FIFO  46 . For each pixel location in the second stage average buffer  16 , the second stage processing circuit  18  calculates a second stage average value B i,j  according to the following: 
     
       
           B   i+H−1,j+W−1 =( F 2 j +Sum2Bottom j   /W )/ H.   
       
     
     Next, the second stage processing circuit  18  updates the value F2 j  in the second FIFO  46  for use in the next scan line cycle according to the following: 
     
       
           F 2 j   =F 2 j +(Sum2Bottom j −Sum2Top j )/ W   
       
     
     With reference next to FIG. 4, the preferred method  100  for implementing integrated cavity effect correction in accordance with the present invention is shown. With reference now to that figure, a first step  102  initializes the first and second FIFO buffers  32 ,  46  respectively. In addition, the first step  102  initializes a scan line counter i to an initial value of “1” as well as a set of line buffers V and A to values corresponding to the video values along the extreme edge of the scanned digital image. 
     Next, in step  104 , the scan line counter value is compared against the sum of a first value N y  representative of the total number of scan lines in the image plus a value H representative of the height in scan lines of the preselected running buffer size. Of course, when the current scan line i exceeds the total number of scan lines in the image plus the height of the running buffer, the method  100  ends at step  106 . However, when the current scan line i is yet within the scanned image bounds, an initialization procedure is executed at step  108 . More particularly, in step  108 , the first and second registers  32 ,  34  in the first stage processing circuit  14  are initialized as well as the first and second registers  42 ,  44  in the second stage processing circuit  18 . Further in step  108 , a new scan line of the video buffer  12  is read into the first stage processing circuit  14  and a parameter j is initialized to a value “1” to designate the first pixel column. 
     Next, at step  110 , the current pixel column j is compared against a parameter N x  representative of the total number of pixels in an image across the width of the image plus a parameter W representative of the width of the running block  30 . When the current pixel column j exceeds the sum of the width of the image N x  plus the width W of the running buffer  30 , the parameter i representative of the current scan line is incremented at step  112 . On the other hand, when the current pixel column j is less than the sum of the width of the image N x  and the width of the running buffer  30 , the processing in block  114  is executed. 
     Next, in step  116 , the parameter i representative of the current scan line is compared against the height H of the running buffer  30 . In addition, the parameter j representative of the current pixel column is compared against a parameter W representative of the width of the running buffer  30 . When both the current scan line and the current pixel column are at or exceed the height and width H, W respectively of the running buffer, the integrated cavity effect corrected video r i,j  at pixel location P i,j  is computed in step  118  in accordance with the following equation:          r     i   ,   j       =         V   ij          (     1   +     fR   C       )         1   +     fB       1   +   H   -   1     ,     j   +   W   -   1                                    
     In step  120 , the parameter j representative of the current pixel column is incremented at step  120 . This has the effect of “sliding” each of the running block  30 ,  40  to the right as viewed in FIGS. 2 and 3. Thereafter, the method  100  continues at step  110  in a manner described above. 
     The invention has been described with reference to the preferred embodiments. Obviously, modifications and alterations will occur to others upon reading and understanding the preceding detailed description. It is intended that the invention be construed as including all such modifications and alterations insofar as they come within the scope of the appended claims or the equivalents thereof.