Gaussian blur

I’m trying to do a gaussian blur on an image (in OpenCL), but all the algorithms I found are for separable gaussian (the blur is done horizontally then vertically), so it’s 2 1-dimensionnal operations.

I’m looking for how to perform a single pass 2-dimensionnal gaussian blur. (my gauss have to be integrated to a 2-dim kernel so a single pass is best suted to my application)


For non-separable convolutions with large kernels, using FFTs is usually the best way to go.
Hopefully there is some OpenCL example code for an FFT somewhere (?)
If not, there might be one for CUDA that you could translate…