Abstract:
A method of segmenting a digitized image includes providing a digitized image on a domain of points on an N%N grid, defining a weight between each pair of adjacent points in the image based on the intensity difference of each said point pair, marking a subset of points in the image, associating a probability potential with each unmarked point, and using a multigrid method to solve for the probability potentials for each unmarked point, wherein a restriction operator for the image is applied to an (N−1)%(N−1) image wherein each image weight is treated as a function of an adjoining point for application of the restriction operator, wherein said restriction operator determines weights of a coarse level grid.

Description:
CROSS REFERENCE TO RELATED UNITED STATES APPLICATIONS 
     This application claims priority from “A Weighted Multigrid Solver for Computing Anisotropic (Inhomogeneous) Laplacian System”, U.S. Provisional Application No. 60/641,790 of Leo Grady filed Jan. 6, 2005, the contents of which are incorporated herein by reference. 
    
    
     TECHNICAL FIELD 
     This invention is directed to automated and semi-automated segmentation, filtration, and colorization of digitized images. 
     DISCUSSION OF THE RELATED ART 
     One goal of automated medical image analysis is how to best take advantage of input from the technician or medical practitioner who will be performing the analysis. The current state-of-the art is such that few automated image analysis techniques can be applied fully autonomously with reliable results. Consequently, the practitioner should evaluate the results of any automated process. In general, this person is currently performing the analysis manually. The goal of the automation is to shorten the time and improve the reliability of the analysis. 
     Frequently a medical image acquisition device is used for multiple medical indications and studies. In this case the goal of image analysis varies with the patient symptoms and history. For example, a cardiac image can admit several “correct” segmentations depending on the nature of the region of interest, such as the entire heart or a specific ventricle or atria. The knowledge of the goal for the analysis is entirely with the user. However, by specifying the number of segments and by providing small samples of each segment the goal of the segmentation can be better defined for an automated approach. 
     Segmentation, along with image filtering and image colorization, is an example of an application solved by the inhomogeneous Laplace (Poisson) equation with internal Dirichlet boundary conditions. Although solution algorithms for this equation are framed in a discrete (graph) setting, these algorithms have been almost exclusively employed in a rectilinear coordinate system that results in a possibly widely banded Laplacian matrix. Despite the banded structure of the matrix representing the Laplacian on a 2D grid, traditional Laplace/Poisson solvers are inappropriate due to the inhomogeneity of the PDE coefficients. The efficiency of a solution to the inhomogeneous equations can be addressed by introducing a weighted multigrid approach that builds on homogeneous multigrid methods. 
     SUMMARY OF THE INVENTION 
     Exemplary embodiments of the invention as described herein generally include methods and systems for solving the inhomogeneous Laplace (Poisson) equation with internal Dirichlet boundary conditions that involve a geometric multigrid approach using weighted prolongation/restrictions operators and an appropriate system coarsening. 
     According to one aspect of the invention, there is provided a method for segmenting a digitized image comprising the steps of providing a digitized image comprising a plurality of intensities corresponding to a domain of points on an N%N grid, defining a weight between each pair of adjacent points in the image based on the intensity difference of each said point pair, marking a subset of points in the image, associating a probability potential with each unmarked point, and using a multigrid method to solve for the probability potentials for each unmarked point, wherein a restriction operator for the image is applied to an (N−1)%(N−1) image wherein each image weight is treated as a function of an adjoining point for application of the restriction operator, wherein said restriction operator determines weights of a coarse level grid. 
     According to a further aspect of the invention, the probability potential for each unmarked point represents the probability that a random walker starting from said point reaches a marked point. 
     According to a further aspect of the invention, the probability that a random walker starting from an unmarked point reaches a marked point is calculated for each marked point. 
     According to a further aspect of the invention, each said weight w ij  between a point v i  adjacent to point v j  is determined by
 
 w   ij =exp(−β( g   i   −g   j ) 2 ),
 
where g i  and g j  are the intensities of points i and j, respectively, and β is a free parameter.
 
     According to a further aspect of the invention, the method includes representing said image by a Laplacian matrix L indexed by point pairs, wherein an element L ij  for points i and j is defined by 
               L   ij     =     {           d   i               if   ⁢           ⁢   i     =   j     ,               -     w   ij               if   ⁢           ⁢   i   ⁢           ⁢   and   ⁢           ⁢   j   ⁢           ⁢   represent   ⁢           ⁢   adjacent   ⁢           ⁢   nodes     ,             0         otherwise   ,                   
where d i =Σw ij  for all weights incident on point i, decomposing L as
 
               L   =     [           L   M         B             B   T           L   U           ]       ,         
wherein L M  is the Laplacian for the marked points, L U  is the Laplacian for the unmarked points, and B comprises those elements of L that are left over, representing the probability potential for each unmarked point i with respect to a marked point s by x i   s , said unmarked probability potentials forming a vector x U , wherein the probability potentials for each unmarked point can be determined by solving L U x U =ƒ wherein ƒ is a function.
 
     According to a further aspect of the invention, a point is assigned to a segment of a marked node according to max s (x i   s ). 
     According to a further aspect of the invention, the multigrid method comprises calculating an approximate solution to the probabilities on a fine level grid, calculating a residual to the solution, restricting the residual to said coarse level grid with said restriction operator, calculating a correction for the residual on the coarse level grid, and correcting the approximate solution on said fine level grid with a prolongated correction using a prolongation operator, wherein said prolongation operator is an adjoint of said restriction operator. 
     According to a further aspect of the invention, the prolongation operator from a point x 1 (i, j) on the coarse grid to a point on the fine grid x 0  is defined by the transformations 
                   x   0     ⁡     (       2   ⁢   i     ,     2   ⁢   j       )       =         x   1     ⁡     (     i   ,   j     )       ⁢     ∀   i         ,   j                   x   0     ⁡     (         2   ⁢   i     +   1     ,     2   ⁢   j       )       =           w   E     ⁢     x   E   0       +       w   W     ⁢     x   W   0             w   E     +     w   W                           x   0     ⁡     (         2   ⁢   i     +   1     ,       2   ⁢   j     +   1       )       =           w   N     ⁢     x   N   0       +       w   E     ⁢     x   E   0       +       w   S     ⁢     x   S   0       +       w   W     ⁢     x   W   0             w   N     +     w   E     +     w   S     +     w   W           ,         
wherein the labels E, W, N, S indicate, respectively, the east/west/north/south neighbors of a point and their corresponding weights.
 
     According to a further aspect of the invention, the restriction operator from a point on the fine grid x 0  to a point x 1 (i, j) on the coarse grid is defined by the transformations 
                 x   0     ⁡     (         2   ⁢   i     +   1     ,     2   ⁢   j       )       =         x   0     ⁡     (         2   ⁢   i     +   1     ,     2   ⁢   j       )       +         w   E     ⁢     x   E   0         d   E       +         w   W     ⁢     x   W   0         d   W                         x   0     ⁡     (       2   ⁢   i     ,       2   ⁢   j     +   1       )       =         x   0     ⁡     (       2   ⁢   i     ,       2   ⁢   j     +   1       )       +         w   N     ⁢     x   N   0         d   N       +         w   S     ⁢     x   S   0         d   S                         x   0     ⁡     (       2   ⁢   i     ,     2   ⁢   j       )       =         x   0     ⁡     (       2   ⁢   i     ,     2   ⁢   j       )       +         w   N     ⁢     x   N   0         d   N       +         w   E     +     x   E   0         d   E       +         w   S     ⁢     x   S   0         d   S       +         w   W     ⁢     x   W   0         d   W                         x   1     ⁡     (     i   ,   j     )       =       x   0     ⁡     (       2   ⁢   i     ,     2   ⁢   j       )             
wherein the labels E, W, N, S indicate, respectively, the east/west/north/south neighbors of a point and their corresponding weights, and the factors d E , d W , d N , d S  denote the corresponding degrees of the neighboring points.
 
     According to a further aspect of the invention, a coarse level point is marked if any of its fine level neighbor points are marked. 
     According to another aspect of the invention, there is provided a program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform the method steps for segmenting a digitized image. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIGS. 1(   a )-( c ) depicts a 1D projection over an object boundary, according to an embodiment of the invention. 
         FIG. 2  depicts a flow chart of a multigrid solver according to an embodiment of the invention. 
         FIG. 3  depicts an example of segmentation obtained from a multigrid algorithm according to an embodiment of the invention. 
         FIG. 4  is a block diagram of an exemplary computer system for implementing a multigrid scheme according to an embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Exemplary embodiments of the invention as described herein generally include systems and methods for applying a multigrid solver to the inhomogeneous Laplace (Poisson) equation with internal Dirichlet boundary conditions. Given knowledge of a certain quantity of interest at certain pixels, referred to as seeds, appropriate quantities are assigned to the unlabeled pixels that reflect the spatial structure of the image. The quantities of interest can include, but are not limited to, object labels, grayscale intensities, or colors, and the seed pixels can without limitation be provided by a user. The seed pixels are then set to be the Dirichlet boundary conditions, despite being internal to the domain of the image, the pixel intensities define the coefficients or weights, and the Laplace (or Poisson) equation is solved to detemine the quantities at the unlabeled pixels. This approach respects weak or absent object boundaries, has provable robustness to noise, and can be interpreted as a random walk on the domain of the image. 
     As used herein, the term “image” refers to multi-dimensional data composed of discrete image elements (e.g., pixels for 2-D images and voxels for 3-D images). The image may be, for example, a medical image of a subject collected by computer tomography, magnetic resonance imaging, ultrasound, or any other medical imaging system known to one of skill in the art. The image may also be provided from non-medical contexts, such as, for example, remote sensing systems, electron microscopy, etc. Although an image can be thought of as a function from R 3  to R, the methods of the inventions are not limited to such images, and can be applied to images of any dimension, e.g. a 2-D picture or a 3-D volume. For a 2- or 3-dimensional image, the domain of the image is typically a 2- or 3-dimensional rectangular array, wherein each pixel or voxel can be addressed with reference to a set of 2 or 3 mutually orthogonal axes. The terms “digital” and “digitized” as used herein will refer to images or volumes, as appropriate, in a digital or digitized format acquired via a digital acquisition system or via conversion from an analog image. 
     The language of graph theory is suitable for problems formulated on a discrete space, such as a digitized image. A graph is a pair G=(V; E) with vertices (nodes) vεV and edges eεE ⊂ V×V. An edge, e, spanning two vertices, v i  and v j , is denoted by e ij . A weighted graph assigns a value to each edge called a weight. The weight of an edge, e ij , is denoted by w(e ij ) or w ij . The degree of a vertex is d i =Σw           e ij            for all edges e ij  incident on v i . If w ij  is interpreted as the bias affecting a random walker&#39;s choice, then w ij &gt;0. In the context of 2D image processing, the graph nodes are taken as the image pixels, which lie on a rectangular, 4-connected, grid. Image intensities can be converted into edge weights (i.e., diffusion constants) through many different methods. One exemplary, non-limiting weighting function is the Gaussian weighting function given by w ij =exp(−β(g i −g j ) 2 ), where g i  indicates the image intensity at pixel i. The value of β is a free parameter. Another possible weighting function would maximize the entropy of the resulting weights. Although these values may be interpreted as diffusion constants, they shall be referred to herein as weights.
     The discrete Laplacian matrix can be defined as 
               L       v   i     ⁢     v   j         =     {           d     v   i                 if   ⁢           ⁢   i     =   j     ,               -     w   ij               if   ⁢           ⁢     v   i     ⁢           ⁢   and   ⁢           ⁢     v   j     ⁢           ⁢   are   ⁢           ⁢   adjacent   ⁢           ⁢   nodes     ,             0       otherwise                 
where L v     i     v     j    is used to indicate that the matrix L is indexed by vertices v i  and v j .
 
     Given a set of marked pixels subject to Dirichlet boundary conditions, where the pixels can be marked either interactively or automatically, the vertices can be partitioned into two disjoint sets, V M  (marked/seed nodes) and V U  (unmarked nodes) such that V M ∩V U =V and V M ∪V U =0. The Laplacian can then be decomposed and reordered into the form 
               L   =     [           L   M         B             B   T           L   U           ]       ,         
corresponding to the marked/unmarked sets. Here, L U  is the Laplacian for the unmarked nodes, L M  is the Laplacian for the marked nodes, and B (and its transpose B T ) comprise those elements of L that are left over. Fixing some of the nodes as “boundary” nodes results in their removal from the Laplacian matrix and incorporation into the right hand side. This formulation can be reduced to solving
 L U x U =ƒ, 
for x U  in the presence of some right hand side, ƒ, that depends on the application. In the context of potential theory, the quantities x U  can be referred to as the potentials for the unmarked set. The potentials of the marked set are assumed known and fixed.
 
     According to embodiment of the invention, the anisotropic diffusion equation has a similar formulation, with V M =0 and V U =V. In this embodiment, the solution of the combinatorial diffusion requires a solution to 
                   ⅆ   x       ⅆ   t       =     -   Lx       ,         
given some time t and an initial distribution x 0 . A backward Euler approximation can be used to replace this differential equation with a linear system
 
                   (         1   t     ⁢   I     +   L     )     ⁢   x     =       1   t     ⁢     x   0         ,         
which is equivalent to the system presented above, with
 
             f   =       1   t     ⁢     x   0             
and a constant addition to the diagonal of L. Since this formulation typically does not have imposed Dirichlet boundary conditions, a less complicated multigrid approach can be utilized for its solution. Note that the addition of a constant term to the diagonal of the Laplacian matrix can be ignored. Due to the application to diffusion, and to simplify notation, the subscripts of L and x denoting V U  will be dropped in the remainder of this disclosure, except where appropriate.
 
     Multigrid methods can be used to solve linear systems such as the one in question, where L is generated from an elliptic or parabolic partial differential equation (PDE), in a computationally effective manner. In general, there are two branches of the method: geometric and algebraic. Algebraic multigrid approaches aspire to a “black box” method that can apply the technique to an arbitrary linear system. In contrast, geometric methods evolved out of attempts to solve PDEs on a rectilinear domain (especially elliptic and parabolic systems) where it may be assumed that coarsened versions of the operator also represent rectilinear grids. Although discrete in nature, and therefore equally defined on arbitrary graphs, application of these methods to standard images results in a Laplacian operator with a sparsity structure that represents a grid. 
     Standard iterative methods for solving PDEs, represented discretely as Au=ƒ, where u is an unknown, reduce high frequency errors, but not low frequency errors due to an excessive number of iterations needed for convergence. Multigrid methods can correct for low frequency errors by computing a smooth correction function on a coarse resolution grid and interpolating the correction onto a fine resolution grid to correct the current iteration of u. The idea is that the coarse-grid updates correct low-frequency errors, while fine grid relaxations correct high-frequency errors. In order to produce the coarse grid correction, the multigrid method is applied recursively, forming what is referred to as a V-cycle, described as follows. Denote the relaxation iterations parameter by v, the residual vector by r, the current (intermediate) solution at level k as x k , the coarsened operator at level k as L k , the restriction operator as R, and the prolongation operator as P. Since the prolongation/restriction operators are linear, they can be represented as matrices. The multigrid method can be described by the following pseudocode. 
                                                                                                 multigrid( L, x, f):           k=0           while not converged to tolerance             relax L 0 x 0  = f 0  with v iterations //relaxation                  r 0  = f − L 0 x 0     //compute the residual             r 1  = Rr 0     //restrict the residual                  c = 0   // initialize the correction to zero                  multigrid_recursion( k+1, c, r 1 )                  x k  = x k  + Pc   // update the solution with the                 // prolongation correction           end                        
The recursive function is defined by
 
     
       
         
               
               
             
               
               
               
             
               
               
             
               
               
             
               
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 multigrid_recursion( k, y, d): 
               
               
                   
                   if k = k MAX  then solve L k y = d exactly 
               
               
                   
                   else 
               
               
                   
                     relax L k y k  = d k  with v iterations // relaxation 
               
             
          
           
               
                   
                     r k  = d k  − L k y k   
                 // compute the residual 
               
               
                   
                     r k+1  = Rr k   
                 // restrict the residual 
               
               
                   
                     c = 0 
                 // initialize the correction 
               
             
          
           
               
                   
                     multigrid_recursion( k+1, c, r k+1 ) 
               
             
          
           
               
                   
                 // continue recursion 
               
             
          
           
               
                   
                     y k  = y k  + Pc 
                 // update the solution with 
               
               
                   
                   
                   //  the  prolongation 
               
               
                   
                 correction 
               
               
                   
                   end. 
               
               
                   
                   
               
             
          
         
       
     
     Multigrid methods involve: (1) specifying the restriction operator; (2) specifying the prolongation operator; and (3) producing a coarsened operator. The prolongation and restriction operators are formally adjoint to each other, where two operators, A and A*, are adjoint if            Ax, y         =         x, A*y          is satisfied. For a finite, linear, operator represented by matrix A, the adjoint is given by A*=A T .
     An exemplary prolongation operator is defined through bilinear interpolation. However, this operator does not respect the edge weights and therefore may interpolate over object boundaries. Therefore, according to an embodiment of the invention, a weighted bilinear interpolation is used, with weights given by the edge weights. Specifically, the prolongation operator proceeds in three steps for values at the fine level, x 0 , and the coarse level, x 1 . For ease of exposition, a north/south/east/west notation is used to indicate the neighbors of a node and the corresponding weight between them. 
                   x   0     ⁡     (       2   ⁢   i     ,     2   ⁢   j       )       =         x   1     ⁡     (     i   ,   j     )       ⁢     ∀   i         ,   j                   x   0     ⁡     (         2   ⁢   i     +   1     ,     2   ⁢   j       )       =           w   E     ⁢     x   E   0       +       w   W     ⁢     x   W   0             w   E     +     w   W                         x   0     ⁡     (         2   ⁢   i     +   1     ,       2   ⁢   j     +   1       )       =           w   N     ⁢     x   N   0       +       w   E     ⁢     x   E   0       +       w   S     ⁢     x   S   0       +       w   W     ⁢     x   W   0             w   N     +     w   E     +     w   S     +     w   W               
In essence, the first step injects the coarse-level solution to the fine grid. The subsequent equations describe a weighted bilinear interpolation over the remaining fine-level pixels. Note that for a unity-weighted (i.e., homogeneous) domain, this operator becomes standard bilinear interpolation.
 
       FIGS. 1(   a )-( c ) depicts a 1D projection over an object boundary, represented by the vertical, dashed line, and the effects of applying a standard versus a weighted projection.  FIG. 1(   a ) represents a current solution at the coarse level. An unweighted projection operator is depicted in  FIG. 1(   b ). Note that the projected values do not respect the object boundary. A weighted projection operator is illustrated in  FIG. 1(   c ). Note that the weighted restriction operator can be defined as the adjoint of the weighted prolongation operator. 
     An exemplary restriction operator is defined as the adjoint of the weighted prolongation operator defined above. This adjoint can be written in four steps. 
                 x   0     ⁡     (         2   ⁢   i     +   1     ,     2   ⁢   j       )       =         x   0     ⁡     (         2   ⁢   i     +   1     ,     2   ⁢   j       )       +         w   E     ⁢     x   E   0         d   E       +         w   W     ⁢     x   W   0         d   W                         x   0     ⁡     (       2   ⁢   i     ,       2   ⁢   j     +   1       )       =         x   0     ⁡     (       2   ⁢   i     ,       2   ⁢   j     +   1       )       +         w   N     ⁢     x   N   0         d   N       +         w   S     ⁢     x   S   0         d   s                         x   0     ⁡     (       2   ⁢   i     ,     2   ⁢   j       )       =         x   0     ⁡     (       2   ⁢   i     ,     2   ⁢   j       )       +         w   N     ⁢     x   N   0         d   N       +         w   E     ⁢     x   E   0         d   E       +         w   S     ⁢     x   S   0         d   S       +         w   W     ⁢     x   W   0         d   W                         x   1     ⁡     (     i   ,   j     )       =       x   0     ⁡     (       2   ⁢   i     ,     2   ⁢   j       )             
The factor d N  denotes the degree of the node to the north, etc. Effectively, one can think of this operator as reversing the projection. Note that a unity weighted lattice (i.e., homogeneous domain) would cause the weighted restriction operator above to be a standard “full-weighting” restriction.
 
     The standard multigrid operator coarsening, given an adjoint prolongation/restriction operator, is
 
L k+1 =RL k P.
 
However, this construction of a coarsened operator yields a matrix whose sparsity pattern does not correspond to a lattice representation, resulting in lower efficiency implementation of coarse operations and representation. In addition, this construction can result in negatively valued diffusion coefficients, which do not yield a true Laplacian.
 
     According to an embodiment of the invention, a method of coarsening a fine-level L while maintaining the sparsity structure of a lattice treats the vertical/horizontal weights as two (N−1)%(N−1) images, and applies the restriction operator to determine the weights of the coarse lattice. A restriction operator so applied is referred to as a full weighting operator. In this embodiment, weights between grid nodes are associated with the nodes instead of the usual edges for purposes of applying the restriction operator, which applies to functions defined on the set of nodes. Since there are (N−1)%(N−1) edge weights for an N%N image, the result is an (N−1)%(N−1) grid. The restriction/prolongation operators defined above are then applied to this lattice. In addition, the marked nodes can also be incorporated into the higher-level operator. This is done by considering a coarse-level node to be marked if any of its eight fine-level neighbors are also marked. 
       FIG. 2  depicts a flow chart of a multigrid solver according to an embodiment of the invention. At step  20 , in image with a set V M  of marked pixels with K labels is provided, either automatically or through the intervention of a medical practitioner. At step  21 , edge weights for the lattice representing the image are defined from the pixel intensities according to w ij =exp(−β(g i −g j ) 2 ), where g i  and g j  are the intensities of pixels i, j, respectively. This Gaussian weighting function is exemplary, and other weighting functions can be used and still be within the scope of an embodiment of the invention. With these weighting functions, a Laplacian matrix L can be defined for the segmentation of the image. The probability potential for each unmarked point i with respect to a marked point s can be represented by x i   s  and the unmarked probability potentials form a vector x U . The probability potentials for each unmarked point are determined by solving L U x U =ƒ, wherein ƒ is a function. The segmentation can be determined by assigning a point is to a segment of a marked node according to max s (x i   s ). 
     At step  22 , the multigrid procedure for determining the segmentation begins. At step  23 , a new iterate to the solution x i   s  is calculated on the full image. At step  24 , a restriction operator R is calculated according to the averaging formulae defined above. This restriction operator is then applied to the error (ƒ−L u x i   s ) to obtain a coarse grid function d. The weights of the coarse grid are determined from the weights of the fine grid by applying the restriction operator to the (N−1)%(N−1) grid of weights, as defined above. The correction L U   −1 d is calculated on the coarse grid at step  25 , and at step  26 , the correction is interpolated back to the fine grid using a weighted bilinear-interpolation as the prolongation operator P, as defined above. At step  27 , the error correction PL U   −1 d is added to the uncorrected iteration x i   s  to obtain a corrected iteration. At step  28 , the procedure returns to step  23  to calculate the next iteration. The steps  23 ,  24 ,  25 ,  26 ,  27 , and  28  are repeated until convergence of the solution. Note that, after convergence, the solution for the N th  x i   s  can be determined from 
     
       
         
           
             
               x 
               i 
               f 
             
             = 
             
               1 
               - 
               
                 
                   ∑ 
                   
                     s 
                     &lt; 
                     f 
                   
                 
                 ⁢ 
                 
                   
                     x 
                     i 
                     s 
                   
                   . 
                 
               
             
           
         
       
     
     At step  29 , a final segmentation can be obtained by assigning to each node v i  the label corresponding to the max s (x i   s ). Thus, the node v i  will be assigned to the segment of the marked node with the maximum probability potential. It is to be understood that although the multigrid technique was illustrated above with a 2-level grid, it can be easily applied to an n-level grid by one skilled in the art. 
     Numerical experiments have demonstrated that a multigrid solver according to an embodiment of the invention has a nearly linear relationship to data size. 
       FIG. 3  depicts an example of segmentation obtained from a multigrid algorithm according to an embodiment of the invention. Gray marks in the image represent the result of user interaction to identify three objects (corpus callosum, cerebellum, and background) for segmentation. These gray marks serve as seeds for the segmentation. The thick black lines indicate the computed segment boundaries. Even though no prior knowledge is incorporated into the multilabel algorithm, the algorithm can correctly segment both objects, despite unusual shapes and textures. 
     It is to be understood that the present invention can be implemented in various forms of hardware, software, firmware, special purpose processes, or a combination thereof. In one embodiment, the present invention can be implemented in software as an application program tangible embodied on a computer readable program storage device. The application program can be uploaded to, and executed by, a machine comprising any suitable architecture. 
       FIG. 4  is a block diagram of an exemplary computer system for implementing a multigrid scheme according to an embodiment of the invention. Referring now to  FIG. 4 , a computer system  41  for implementing the present invention can comprise, inter alia, a central processing unit (CPU)  42 , a memory  43  and an input/output (I/O) interface  44 . The computer system  41  is generally coupled through the I/O interface  44  to a display  45  and various input devices  46  such as a mouse and a keyboard. The support circuits can include circuits such as cache, power supplies, clock circuits, and a communication bus. The memory  43  can include random access memory (RAM), read only memory (ROM), disk drive, tape drive, etc., or a combinations thereof. The present invention can be implemented as a routine  47  that is stored in memory  43  and executed by the CPU  42  to process the signal from the signal source  48 . As such, the computer system  41  is a general purpose computer system that becomes a specific purpose computer system when executing the routine  47  of the present invention. 
     The computer system  41  also includes an operating system and micro instruction code. The various processes and functions described herein can either be part of the micro instruction code or part of the application program (or combination thereof) which is executed via the operating system. In addition, various other peripheral devices can be connected to the computer platform such as an additional data storage device and a printing device. 
     It is to be further understood that, because some of the constituent system components and method steps depicted in the accompanying figures can be implemented in software, the actual connections between the systems components (or the process steps) may differ depending upon the manner in which the present invention is programmed. Given the teachings of the present invention provided herein, one of ordinary skill in the related art will be able to contemplate these and similar implementations or configurations of the present invention. 
     The particular embodiments disclosed above are illustrative only, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. Accordingly, the protection sought herein is as set forth in the claims below.