Given a $d$ -dimensional array of size $n^d$ and an integer $p$ , the running max (or min) filter is the set of maximum (or minimum) elements within a $d$ -dimensional sliding window of edge length $p$ inside the array. This problem is useful in many signal processing applications such as pattern analysis, adaptive signal processing, and morphological analysis. The current best algorithm for computing the one-dimensional (1-D) max (or min) filter, due to the work of [H. Yuan and M. J. Atallah, “Running max/min filters using 1+o(1) comparisons per sample,” IEEE Trans. Pattern Anal. Mach. Intell. , vol. 33, no. 12, pp. 2544–2548, Dec. 2011], uses $1+o(1)$ comparisons per sample in the worst case. As a direct consequence, the $d$ -dimensional max (or min) filter (max and min filters, respectively) can be computed in $d+o(1)$ ( $2d+o(1)$ , respectively) comparisons per sample. In this paper, we first present an algorithm for computing $d$ -dimensional max and min filters simultaneously on i.i.d. inputs that uses $1.5+o(1)$ expected comparisons per sample. This is the first algorithm (on i.i.d. inputs) that gets rid of the dependence on $d$ in the dominating term, with respect to $n$ and $p$ , of the (expected) number of comparisons needed. It is also asymptotically optimal (when $d$ is a fixed constant as $n \rightarrow \infty$ and $p \rightarrow \infty$ ). We also consider the dynamic version of the problem of $d$ -dimensional max and min filters simultaneously on i.i.d. inputs where we want to maintain the filters after changes in the input array. We design a linear-sized data structure that stores precomputed information for efficient update using $O(p^{d-1}\log _2 p)$ expected comparisons per update.
Read full abstract