Efficient algorithm for Gaussian blur using finite-state machines

Frederick M. Waltz, John W. V. Miller · Proceedings of SPIE, the International Society for Optical Engineering/Proceedings of SPIE · 1998

2D Gaussian blur operations are used in many image processing applications. The execution times of these operations can be rather long, especially where large kernels are involved. Proper use of two properties of Gaussian blurs can help to reduce these long execution times: (1) Large kernels can be decomposed into the sequential application of small kernels. (2) Gaussian blurs are separable into row and column operations. This paper makes use of both of these characteristics and adds a third one: (3) The row and column operations can be formulated as finite-state machines to produce highly efficient code and, for multi-step decompositions, eliminate writing to intermediate images. This paper shows the FSM formulation of the Gaussian blur for the general case and provides examples. Speed comparisons between various implementations are provided for some of the examples. The emphasis is on software implementations, but implementations in pipelined hardware are also discussed. Straightforward extensions of these concepts to 3- and higher-dimensional image processing are also presented. Implementation techniques for DOG (Difference-of-Gaussian filters) are also provided.

Read the paper · More papers on PaperTik