Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Faster Blur using IIR filter

Thomas_Jensen1
Beginner
662 Views
(Ipp 5.0)
I need to blur a 16u pixel buffer using a gaussian kernel.
I have noticed that blurring with IIR much faster is than with a matrix filter.
Do you have an example of blurring with IIR?
Thomas
0 Kudos
3 Replies
Intel_C_Intel
Employee
662 Views

Hi,

Your could try fast ipp separable filters

ippiFilterRow/ColumnBorderPipeline

the example 9-3 in vol 2 of manual shows how to do it without the extra image. But these functions work with 8u/16s/32f images
Thanks,
Alexander
0 Kudos
Thomas_Jensen1
Beginner
662 Views
Thanks for the tip.
In the mean time, I implemented my own IIR blurring by gaussian.
The code is very fast when burring with large matrices (100x100).
For other sharpening code I use, I will try to move from 17x17 to separable row/column mode, to speed that up. I use a LoG (unsharp mask) matrix, but it could need some speedup.
Thomas
0 Kudos
arataj
Beginner
662 Views
Hello!



I do not exactly know what the IIR Gaussian blur is, but I use one, from GIMP. There are two problems with it:



1) it is increassingly imprecise for larger pixel values,



2) I do not understand its stddev computation:



vert = fabs (vert) + 1.0;

std_dev = sqrt (-(vert * vert) / (2 * log (1.0 / 255.0)));



where `vert' is defined as a radius in the GUI. What is 255 doing there?



The equation changes radius = 1 to stddev = about 0.3. Is it then right to say that I used an approx. of Gaussian blur with stddev = 0.3 with that method?



Best regards,

Artur

Message Edited by arataj on 03-19-200605:50 AM

0 Kudos
Reply