cancel
Showing results for 
Search instead for 
Did you mean: 

Memory requirements for FFT

Carter Lee
Associate III
Posted on November 14, 2017 at 04:36

Dear All,

I'd like to implement FFT within STM32F103C8 without any extra memory buffers.

So I want to know how many memories are needed to implement if I have 2592x1944x8bit size's one image?

3 REPLIES 3
AvaTar
Lead
Posted on November 14, 2017 at 07:32

So I want to know how many memories are needed to implement if I have 2592x1944x8bit size's one image?

You will have a hard time to find any Cortex M with a RAM size in that dimension (5MB).

So you would need to operate block-wise.

I have not much experience with two-dimensional FFTs, but a cursory research will tell you.

It will surely depend on the frequency resolution you need.

But then, you still have an obvious performance issue.

I would consider a Cortex A.

Carter Lee
Associate III
Posted on November 14, 2017 at 08:06

If I can't use STM32F103C8, then I was going to use STM32F4 board,

Actually I'd like to have a below process

Image ----> FFT

 ----> Processing  ----> IFFT -> modified Image

Is there any way to process that kind of way?

Even I've seen M4 support such as this DSP from document, does it have a quite a bit limited constraints?

I'm wondering how can I calculate it what how much do I need the memory?

Posted on November 14, 2017 at 09:17

Image ----> FFT

 ----> Processing  ----> IFFT -> modified Image

Is there any way to process that kind of way?

One usually works over blocks (rectangular parts) of the image, were the block size relates to the frequency resolution.

One-dimensional data, like audio, are treated this way as well. For images, you just have two dimensions.

Two-dimensional FFTs are quite common, you will find a lot of generic code examples to start with.

But how you manage loading and processing parts of a 5MB image, and keep/store results in a RAM measured in kBytes is IMHO a serious challenge.

How about scaling down (reducing resolution) before processing ?