Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
14 Views

problem with "ippsFFTGetBufSize_R_32f"

hi,
when I use this function "ippsFFTGetBufSize_R_32f" in machine core2due the size of the buffer returns "Zero" .
When I run the same function on another machine but with processor Intel Pentium4 the buffer size return a value not "zero"


How can I solve this problem on core2due machine ??

Regards,
kholood
0 Kudos
2 Replies
Highlighted
14 Views

Hello,

there is no problem.IPP canuse different algorithms depending on target cpu to achieve maximum performance.

Regards,
Vladimir
0 Kudos
Highlighted
Employee
14 Views

Hi kholood,

ippsFFTGetBufSize function calculates the necessary memory buffer size in dependence of FFT order and used algorithm (it may be different for different processors. Pleasesee Understanding CPU Dispatching in the Intel IPP Library ). 0 is also legal size. it means that for that particular order and library FFT does not need any external buffers on the target cpu.

Here is the tip of implement IPP image FFT (almost similar to signal FFT) , just for your reference,

1) definition,
IppiFFTSpec_R_32f *pFFTSpec;

2) call
ippiFFTInitAlloc_R_32f (&pFFTSpec,...)

3) allocate the work buffer.
pBufSize = new int[1];
// allocate the external work buffer
ippiFFTGetBufSize_R_32f (pFFTSpec,pBufSize);

Ipp8u *pBuffer = ippsMalloc_8u(*pBufSize);

4) then call
ippiFFTFwd_RToPack_32f_C1R(const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep, pFFTSpec, pBuffer);

ippiFFTFree_R_32f( pFFTSpec);
ippsFree(pBuffer);

Regards,

Ying

0 Kudos