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

Replacement for ippsFIRSetDlyLine_64f in current IPP libraries?

Michael_K_10
Beginner
493 Views

I'm presently updating some code that was written against version 5.1 of the IPP library to work against 9.0.3 (the update was triggered because we need to port the application to a 64 bit platform).

So far I've had no trouble - the IIR and FFT function name changes have been straightforward (the InitAlloc functions went away). 

But the FIR functions are giving me more trouble - specifically, I believe that the ippsFIR functions should be replaced by ippsFIRSR functions, but there is no SetDlyLine for the ippsFIRSR functions. So clearly I've mis-understood something.

What is the appropriate substitution for the old ippsFIRSetDlyLine_64f function in the new IPP libraries?

 

0 Kudos
4 Replies
Michael_K_10
Beginner
493 Views

Additional information: The only time ippsFIRSetDlyLine_64f is used in our code, it's used with a block of zeros in a function called 'reset'. Is that equivalent to simply re-initializing the filter state? 

0 Kudos
Andrey_B_Intel
Employee
493 Views

Hi Michael.

Thanks for using IPP library.

There is 2 possible solution in your situation.

1) Organize delay line in external buffer and manipulate with it. 0-ing for 'reset'.

2) Provide NULL instead of pDlySrc pointer to ippsFIRSR_64f function when you need to 'reset'

0 Kudos
Michael_K_10
Beginner
493 Views

Andrey Bakshaev (Intel) wrote:

Hi Michael.

Thanks for using IPP library.

There is 2 possible solution in your situation.

1) Organize delay line in external buffer and manipulate with it. 0-ing for 'reset'.

2) Provide NULL instead of pDlySrc pointer to ippsFIRSR_64f function when you need to 'reset'

AHH! here we go. The ippsFIRSR_64f actually has both a dlySrc and dlyDst parameter, and the init function has no delay parameters. So maintaining the delay line buffers myself is in fact the proper thing to do at this point (I missed those parameters on my previous pass through, as I was concentrating on the init functions).

OK, so now I just have to restructure my code to maintain those buffers manually. 

So, the next question is: do I actually need two buffers here? Or can I pass the same buffer for both pDlySrc and pDlyDst and have it update in place? I suspect that the answer is 'no, you need two buffers', but I thought I'd ask.

Thank you!

0 Kudos
Ying_H_Intel
Employee
493 Views

Hi Michael ,

Yes, it should be two buffer one for source , one for destination. 

You may put all of them as NULL  when  the arrays pDlySrc and pDlyDst support NULL values:
• if pDlySrc is NULL, the function uses the delay line with zero values
• if pDlyDst is NULL, the function does not copy any data to the destination delay line

Best Regards,
Ying

 

0 Kudos
Reply