GPU-efficient recursive filtering and summed-area tables
ACM Trans. Graphics (SIGGRAPH Asia), 30(6), 2011.
Efficient overlapped computation of successive recursive filters on 2D images.
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 additional 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.
Hindsights:
For completeness we could have mentioned
integral images,
a term used in computer vision [Viola and Jones 2001]
to also refer to
summed-area tables [Crow 1984].