Abstract:
A spatial median filter determines a median of a plurality of values by dividing the plurality of values into a plurality of groups of values. The values in each of the groups are sorted to determine its median. Then, the medians of the plurality of groups are fully sorted. Certain of the sorted values are eliminated from prescribed ones of the groups in accordance with prescribed criteria based on the number of values in the group and the median value of the group values. The remaining values are sorted to determine the median of the plurality of values.

Description:
RELATED APPLICATIONS 
     This application claims the priority of the corresponding provisional application, Serial No. 60/192,294, filed Mar. 27, 2000. U.S. patent application Ser No. 09/760,924 was filed concurrently herewith. 
    
    
     TECHNICAL FIELD 
     This invention relates to filters and, more particularly, to determining the median of a plurality of values. 
     BACKGROUND OF THE INVENTION 
     A standard prior known approach in finding a median of N values is to fully sort the sequence of N values by arranging the N values in the sequence in either ascending or descending order, e.g., 4, 10, 20, . . . or . . . , 20, 10, 4, respectively, and then picking the middle value of the sorted sequence of N values. The optimal number of comparisons needed to sort N values is in the order of K*N*log(N), where K is some constant independent of N. This process of finding a median is not optimal, because the sorting is more than what is needed to locate the median. Sorting arranges all values in an ascending or a descending order. It produces the location of every value in the sequence, not only the median. In locating a median, only the median itself is of interest, it is not necessary to know the order of other values in the sequence. Therefore, using a full sorting process to locate the median is not optimal, and it requires making significantly more comparisons than are actually necessary. 
     SUMMARY OF THE INVENTION 
     The problems and limitations of prior spatial median filters is overcome in determining a median of a plurality of values, in accordance with the invention, by dividing the plurality of values into a plurality of groups of values. The values in each of the groups are sorted to determine its median. Then, the medians of the plurality of groups are fully sorted. Certain sorted values are eliminated from prescribed ones of the groups in accordance with prescribed criteria based on the number of values in the group and the median value of the group values. The remaining values are sorted to determine the median of the plurality of values. 
     A technical advantage of the invention is that fewer comparisons are required to determine the median of a plurality of values than in prior known arrangements. Consequently, this results in a significantly simpler implementation of a spatial median filter including an embodiment of the invention. 
     Another technical advantage of the invention is that in the process of determining the median values that are less than or equal and values that are greater than or equal to the median are also identified without any additional processing. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     FIG. 1 shows, in simplified form details of a nine-value, i.e., point, spatial median filter including an embodiment of the invention; and 
     FIG. 2 shows, in simplified form, details of a so-called pseudo nine-value spatial median filter including an embodiment of the invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     A. Theoretical Discussion 
     By employing an embodiment of the current invention, finding the median of N values is more efficient than the prior known process of full sorting. Finding the median of N values is divided into a group of problems of finding the median of M values, where M is significantly smaller than N. The total number of comparisons required to solve the group of problems is smaller than that required to sort the original N values. 
     More specifically, to find the median of N values, we divide the N values, in this example, into three groups, namely, G 1 , G 2  and G 3 . Assume group G 1  has N 1  values, group G 2  has N 2  values and group G 3  has N 3  values. Therefore, the three groups contain all N values, namely, N=N 1 +N 2 +N 3 . Now assume that a median has been determined for each of the groups G 1 , G 2  and G 3 , and have been labeled as A 1 , A 2  and A 3 , respectively. A 1  is the median of group G 1 , A 2  is the median of group G 2  and A3 is the median of group G 3 . 
     Furthermore, it is assumed that all values have been determined in group G 1  that are less than or equal to median A 1 . These values are designated as being in sub-group G 11 . Similarly, all values that are greater than or equal to median A 1  in group G 1  are designated as being in sub-group G 12 . All values in group G 2  that are less than or equal to median A 2  are designated as being in sub-group G 21 . Similarly, all values in group G 2  that are greater than or equal to median A 2  are designated as being in sub-group G 22 . All values in group G 3  that are less than or equal to median A 3  are designated as being in sub-group G 31 . Similarly, all values in group G 3  that are greater than or equal to median A 3  are designated as being in sub-group G 32 . 
     How the median A 1  and the first set of sub-groups including G 11  and G 12  of group G 1  are determined is not being specified at this moment. It is sufficient to say that they may be found by using the current process: further dividing group G 1  into a second set of three sub-groups, and applying the current process recursively. When eventually, a sub-group in the second set contains 9 or fewer values, the median of the particular sub-group can be found by using the median determining process of the 9-value, i.e., point, spatial median filter to be described in more detail below in relationship to the 9-value spatial median filter implementation. This process also applies to the remaining groups which, in this example, are groups G 2  and G 3 . Medians A 2  and A 3  and the corresponding sub-groups G 21 , and G 22 , and G 31  and G 32  of groups G 2  and G 3 , respectively, are found in the same manner as median A 1  and sub-groups G 11  and G 12  of group G 1 . 
     It is noted that the current process, in addition to determining the median of each group of values, also yields a sub-group including all values that are less than or equal to the median of the group and a sub-group including all values that are greater than or equal to the median of the group. This is realized without any additional processing. 
     For now, it is assumed that the three medians and six sub-groups have been determined, namely, median A 1 , and sub-groups including G 11  and G 12  of group G 1 , median A 2 , and sub-groups G 21  and G 22  of group G 2 , and median A 3 , and sub-groups G 31  and G 32  of group G 3 . Then, the three medians A 1 , A 2  and A 3  are fully sorted. Without loss of generality, we can assume A 1 ≦A 2 ≦A 3 . If they are not, the smallest value of A 1 , A 2 and A 3  is re-labeled to be A 1 , and it&#39;s associated group as G 1 , and the associated sub-groups as G 11  and G 12  etc. 
     At this stage, some values can be eliminated from the N values. That is, the median of the N values is guaranteed to be among the surviving values. Specifically, median A 1  and all values in sub-group G 11  can be eliminated. Additionally, median A 3  and all values in sub-group G 32  can also be eliminated. Let M 1 =floor(N 1 /2), i.e., the largest integer that is less than or equal to N 1 /2. Note M 1 =(N 1 −1)/2, if N 1  is odd. M 1  includes all the values in sub-group G 11  because they are less than or equal to A 1 . Similarly, let M 3 =floor(N 3 /2), i.e., the smallest integer that is greater than or equal to N 3 /2. M 3  includes all values in sub-group G 32  because they are greater than or equal to A 3 . The total number of values eliminated is therefore equal to M 1 +M 3 +2. After the elimination of these values, the surviving values from the original N values are: 
     a) all values in sub-group G 12  from group G 1  that are greater than or equal to A 1 , excluding A 1 , there are M 1 −1 of them; 
     b) all values in group G 2  (N 2  of them); and 
     c) all values in sub-group G 31  from group G 3  that are less than or equal to A 3 , excluding A 3 , there are M 3 −1 of them. 
     Therefore, the total number of surviving values is P=N−floor(N 1 /2)−floor(N 3 /2)−2. Now the remaining task is to find the median of the remaining P=(N−floor(N 1 /2)−floor(N 3 /2)−2) values. Thus, the original problem of finding the median of N values is reduced to the following: 
     1) find three medians of the three groups of size N 1 , N 2 , and N 3 , and obtain sub-groups G 11 , G 12 , G 21 , G 22 , G 31  and G 32 ; 
     2) find the median of the three medians in 1) above; 
     3) find the median of the remaining P=(N−floor(N 1 /2)−floor(N 3 /2)−2) values, and find the two sub-groups, a first sub-group including all values that are less than or equal to the median of the P values and a second sub-group including all values that are greater than or equal to the median of the P values. 
     This process can be applied recursively to finding the medians in the steps 1) and 3) above. For example, the problem of finding the median A 1  of group G 1  can be further divided into the above three steps. The recursion stops when the size of median filter is small, for example, 9. At that point, the process of finding the median in a 9-value spatial median filter can be used. If one starts with N&lt;9, the above process still can be applied. The size is recursively reduced. The recursion stops when the size becomes three (3). Then, the median of 3-points can be found by sorting the three values. The optimal 3-value spatial median filter is the same as the full sort of the 3 values. 
     B. Preferred Embodiments 
     FIG. 1 shows, in simplified form, details of a so-called 9-value spatial median filter that is advantageously used in practicing the invention. The spatial median filter can be advantageously employed to measure the overall effect of all values that make up an object. Additionally, since each individual value may be prone to random noise, use of spatial median filter can also reduce the effects of the noise. 
     Referring to FIG. 1, it is seen that the 9-points, i.e., values, are arranged into three groups of three values each, namely, a first group including values a, b and c, a second group including values d, e and f, and a third group including values g, h and j. The first group is supplied to sorter  101 , the second group to sorter  102  and the third group to sorter  103 . Sorters  101 ,  102  and  103  each perform a complete sort of their respective supplied groups, i.e., arrange the supplied values in either ascending or descending order. In the spatial median filter shown in FIG. 1, it is assumed that the values are arranged in ascending order. That is, A 3 ≧A 2 ≧A 1  and so on for the other values. Note that a sorter of three values requires three comparisons. Thus, the three sorters  101 ,  102  and  103  perform nine comparisons. The median of each group is determined to be the middle value in the sorted group. The three medians from sorters  101 ,  102  and  103 , in this example, are a 2 , b 2  and c 2 , respectively, and are supplied to sorter  104 . In turn, sorter  104  sons the three medians a 2 , b 2  and c 2 . This requires another three comparisons. After sorting, the three medians a 2 , b 2  and c 2 , are assumed to be arranged in ascending order and are designated λ, β and γ, respectively, where λ≦β≦γ. Now the nine values of the spatial median filter are reduced to five values by removing four values. The remaining five values include the median of the nine values. This reduction is realized by first identifying the group of three values who&#39;s median is λ. These values are labeled in ascending order as d 1 ≦d 2 ≦d 3 . It is noted that these three values had been sorted in the prior sorting operations. Additionally, since d 2  is the median of the group, it has the same value as λ. It can be shown that both d 1  and d 2  are each less than or equal to the median of the nine values and, hence, can be removed from the nine values. Now label the three values having γ as its median in ascending order as f 1 ≦f 2 ≦f 3 . Again, it is noted that f 2  has the same value as γ. It can be shown that the values f 2  and f 3  are each greater than or equal to the median of the nine values and, hence, can also be removed from the nine values. Thus, leaving five values including d 3 , f 1  and a group of three values having β as its median that is labeled in ascending order as e 1 ≦e 2 ≦e 3 . These remaining five values arc divided into two groups and further sorted. One group includes d 3  and e 1  that after sorting via sorter  105  are labeled in ascending order as g 1 ≦g 2 . This sorting requires only one comparison. The second group includes e 2 , e 3  and f 1  that after sorting via sorter  106  are labeled in ascending order as h 1 ≦h 2 ≦h 3 . This sorting only requires two comparisons because e 2  and e 3  have already been sorted. Of the remaining five values g 1 , g 2 , h 1 , h 2  and h 3 , it can be shown that value g 1  is less than or equal to the median of the nine values and can be removed, and that value h 3  is greater than or equal to the median of the nine values and can be removed, leaving values g 2 , h 1  and h 2 . These remaining three values are sorted via sorter  107  and labeled in ascending order as j 1 ≦j 2 ≦j 3 . This sorting takes only two comparisons because values h 1  and h 2  have already been sorted. The median value of the group from sorter  107  is the median of the nine values and is value j 2 . It is noted that in this process four values have been identified that are less than or equal to the median of the nine values, namely, d 1 , d 2 , g 1  and j 1 . Similarly, four values have been identified that are greater than or equal to the median of the nine values, namely, f 2 , f 3 , h 3  and j 3 . 
     It should be noted that if so-called pipelining is used in the median filter  110 , only one three value sorter is required for sorters  101 ,  102 ,  103  and  104  because the prior sorted results are stored for use in the subsequent sorting. 
     As indicated above, d 1  and d 2  are each less than or equal to the median of the nine values and, hence, can be removed from the nine values. This can be done because d 2  (and hence d 1  which is less than d 2 ) is less than or equal to at least 5 of the 9 values (for which the median is desired). Consider the following: d 2 ≦d 3  (because they are sorted); d 2 ≦e 2 ≦e 3  (because d 2 =λ, e 2 =β and λ≦β, and e 1 , e 2  and e 3  are sorted); and d 2 ≦f 2 ≦f 3  (because d 2 =λ, f 2 ≦γ, λ≦β≦γ, and f 1 , f 2  and f 3  are sorted). Consequently, d 2  is less than or equal to 5 values, namely, d 3 , e 2 , e 3 , f 2  and f 3 . 
     Recall that the median of the 9 values is the value that is greater than or equal to 4 values, and less than or equal to 4 other values. Since d 2  is less than or equal to 5 values, then either d 2  is not the median, in which case it can be removed, or d 2  is the median. However, if d 2  is the median, then d 2  must either be equal to d 3  or e 2 , in which case d 3  or e 2  is also a median, consequently d 2  can be removed as well (note that our assertion is that the median is guaranteed to be in the surviving values). How is it known that if d 2  is the median, then d 2  must be equal to d 3  or e 2 ? The proof is as follows: if d 2  is equal to d 3  then proof done. Otherwise, d 2  must be less than d 3 , i.e., d 2 &lt;d 3 . In this case, d 2  must be equal to e 2 . Because if otherwise, d 2  is not equal to e 2 , then d 2 &lt;e 2 ≦e 3 ≦f 2 ≦f 3 . That is, d 2  is strictly less than 5 values d 3 , e 2 , e 3 , f 2 , f 3 . This shows that d 2  could not be the median. This contradiction shows that if d 2  is the median, then d 2  must be equal to either d 3  or e 2 . Since d 1 ≦d 2 , the same analysis shows that d 1  can be removed. 
     An analysis essentially identical to that above can be used to show that f 2  and f 3 , and that g 1  and h 3  can be removed. The main difference is that “less than” is replaced by “greater than” in the above analysis. 
     FIG. 2 shows in simplified form a so-called pseudo 9-point spatial median filter. Referring to FIG. 2, it is seen that the 9-points, i.e., values, are arranged into three groups of three values each, namely, a first group including values a, b and c, a second group including values d, e and f, and a third group including values g, h and j. The first group is supplied to sorter  201 , the second group to sorter  202  and the third group to sorter  203 . Sorters  201 ,  202  and  203  each perform a complete sort of their respective supplied groups, i.e., arrange the supplied values in either ascending or descending order. In the spatial median filter shown in FIG. 2, it is assumed that the values are arranged in ascending order. That is, a 3 ≦a 2 ≦a 1  and so on for the other values. Note that a sort of three values requires three comparisons. Thus, the three sorters  201 ,  202  and  203  perform nine comparisons. The median of each group is determined to be the middle value in the sorted group. The three medians from sorters  201 ,  202  and  203 , in this example, are a 2 , b 2  and c 2 , respectively, and are supplied to sorter  204 . In turn, sorter  204  sorts the three medians a 2 , b 2  and c 2 . This requires another three comparisons. After sorting, the three medians a 2 , b 2  and c 2 , are assumed to be arranged in ascending order and are designated d 1 , d 2 , and d 3 , where d 1 ≦d 2 ≦d 3 . Take the median of them, namely, d 2 , as the pseudo-median. Total number of comparisons is 12. 
     The above-described embodiments are, of course, merely illustrative of the principles of the invention. Indeed, numerous other methods or apparatus may be devised by those skilled in the art without departing from the spirit and scope of the invention.