Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
Annonces
FPGA community forums and blogs have moved to the Altera Community. Existing Intel Community members can sign in with their current credentials.
6817 Discussions

FFT - convert "PACK"-data to halfcomplex (FFTW) and back

mweissbach
Débutant
881 Visites
Hello all

I use the IPP 5.1 for several things including the FFT transform of images. For this I receive the results as "pack"-data. I also use the FFTW for running the same programs on other platforms.

My question is:
Is it possible to convert the IPP-Pack-Format to the FFTW-halfcomplex format?
It seems very hard to develop myself this conversion. Maybe there is an existing algorithm... ?

For information about the halfcomplex-format, please see:
http://www.fftw.org/fftw3_doc/Multi_002dDimensional-DFTs-of-Real-Data.html#Multi_002dDimensional-DFTs-of-Real-Data

Thank you all in advance!

M.W.
0 Compliments
3 Réponses
Vladimir_Dudnik
Employé
881 Visites

Hello,

there is comment from our expert:
IPP52 betacontains conversions from pack to complex and from complex to pack formats:

IPPAPI (IppStatus, ippiPackToCplxExtend_32f32fc_C1R, (const Ipp32f* pSrc, IppiSize srcSize, int srcStep, Ipp32fc* pDst, int dstStep ))

IPPAPI(IppStatus,ippiCplxExtendToPack_32fc32f_C1R,(const Ipp32fc* pSrc, int srcStep, IppiSize srcSize, Ipp32f* pDst, int dstStep ))

We dont haveintention to support any other external formats - the complex format is universal one and can be used as an intermediate format for any other transforms.

Regards,
Vladimir

0 Compliments
mweissbach
Débutant
881 Visites
Hi @ all


I solved the problem. The solution is here for all that are interested:

Halfcomplex To Pack:
The block without the left border (and the right corner if the count of elements of a columns is even) can be copied. Be aware of the number of rows by regarding both cases if the count is odd or even.
Handle the left (and maybe the right) border seperatly by arranging the comlex numbers in the order that is given by the scheme in the documentation. At the end the correct values for the edges has to been set.

Pack To HalfComplex:
Copy the inner part of the block (see above). Rearrange the borders. Compute the second part of the data by the conjugated complex numbers of of the upper part. The handling of the borders and later the edges follow.

Only the real-part of numbers in the left and the right corner (FFTW-halfcomplex) are stored in the IPP-packed-Format and cannot be restored by the inverse transform.

I hope this will help, if you face this problem.

Greetings

MW
0 Compliments
Vladimir_Dudnik
Employé
881 Visites

Thanks a lot for your contribution to the community

Regards,
Vladimir

0 Compliments
Répondre