GPU-Efficient Recursive Filtering and Summed-Area Tables

Diego Nehab1       AndrĂ© Maximo1       Rodolfo S. Lima2       Hugues Hoppe3

1IMPA       2Digitok       3Microsoft Research

Abstract: Image processing operations like blurring, inverse convolution, and summed-area tables are often computed efficiently as a sequence of 1D recursive filters. While much research has explored parallel recursive filtering, prior techniques do not optimize across the entire filter sequence. Typically, a separate filter (or often a causal-anticausal filter pair) is required in each dimension. Computing these filter passes independently results in significant traffic to global memory, creating a bottleneck in GPU systems. We present a new algorithmic framework for parallel evaluation. It partitions the image into 2D blocks, with a small band of data buffered along each block perimeter. We show that these perimeter bands are sufficient to accumulate the effects of the successive filters. A remarkable result is that the image data is read only twice and written just once, independent of image size, and thus total memory bandwidth is reduced even compared to the traditional serial algorithm. We demonstrate significant speedups in GPU computation.

down +up +right +left down +up +right +left

Two examples of efficient operations supported by our new algorithmic framework are inverse convolution for bicubic (and biquintic) B-spline interpolation (top) and recursive Gaussian filtering for image blurring (bottom).