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?
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.
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?
Image ----> FFT ----> Processing ----> IFFT -> modified ImageIs 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 ?
Retrieving data ...