Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.

Bilateral filter performance issue

Gang_B_
Beginner
222 Views

Hi, ExpertsI had test Bilateral filter in ipp with ippiFilterBilateralGauss and ippiFilterBilateralGaussFast option. But found the performance of ippiFilterBilateralGaussFast is slower than ippiFilterBilateralGauss.

For 1080p 3 channels image on i7-6700k CPU and the latest version of IPP, ippiFilterBilateralGauss cost 10ms to process 1 frame, but ippiFilterBilateralGaussFast cost  500ms to process 1 frame.

Why ippiFilterBilateralGaussFast is slower than ippiFilterBilateralGauss?

Code is as follows:

status = ippiFilterBilateralBorderGetBufferSize_L(filter, size, radius, dataType, channels, distMethod, &specSize, &tmpBufferSize);
status = ippiFilterBilateralBorderInit_L(filter, size, radius, dataType, channels, distMethod, valSquareSigma, posSquareSigma, pSpec);
status = ippiFilterBilateralBorder_8u_C3R_L((Ipp8u*)pSrc, srcStep, (Ipp8u*)pDst, dstStep, size, border, OWN_GET_BORDER_VALP(8u, 3), pSpec, pTmpBuffer); 

0 Kudos
6 Replies
Gennady_F_Intel
Moderator
222 Views

which version of IPP do you use?

Gang_B_
Beginner
222 Views

IPP_VERSION_STR "2019.0.2" Windows version. 

Did you test the filter before? How about the performance?

Gennady F. (Intel) wrote:

which version of IPP do you use?

Gennady_F_Intel
Moderator
222 Views

did you check the status value after each of these function call? 

Igor_A_Intel
Employee
222 Views

Hi Gang,

why do you use " ippiFilterBilateralGaussFast"filter type? In the chapter (IPPI manual) devoted to Bilateral filter the only one possible value is described: " ippiFilterBilateralGauss". If you check IPP function status after initialization attempt with " ippiFilterBilateralGaussFast" - you'll see that it is not supported. I'm curious how you've obtained 500 ms per frame if the function does nothing in this case - you should get 0 ms (I guess).

regards, Igor

Gang_B_
Beginner
222 Views

Hi, Igor 

You are right. I checked the returned value, it's 14. 

#define ippStsNotSupportedModeErr          -14 /* The requested mode is currently not supported. */

And actually, it cost 500ms and then return this value. 

Intel had defined ippiFilterBilateralGaussFast several years before, when Intel will support ippiFilterBilateralGaussFast?

Igor Astakhov (Intel) wrote:

Hi Gang,

why do you use " ippiFilterBilateralGaussFast"filter type? In the chapter (IPPI manual) devoted to Bilateral filter the only one possible value is described: " ippiFilterBilateralGauss". If you check IPP function status after initialization attempt with " ippiFilterBilateralGaussFast" - you'll see that it is not supported. I'm curious how you've obtained 500 ms per frame if the function does nothing in this case - you should get 0 ms (I guess).

regards, Igor

Gang_B_
Beginner
222 Views

hi, Gennady

I checked the status, its -14. 

#define ippStsNotSupportedModeErr          -14 /* The requested mode is currently not supported. */

Intel had defined ippiFilterBilateralGaussFast for several years. When intel will implement it?

Gennady F. (Intel) wrote:

did you check the status value after each of these function call? 

Reply