Page 1 of 1

which xmos for image processing

Posted: Sun Mar 13, 2011 4:24 pm
by shashi
Hi,

Have been looking at the various options available from XMOS. I have an application wherein about 400 frames of 1024x1024 pixels 14bit size are recorded per second. The total run may last for several minutes. Obviously that requires a large amount of storage. My question is whether any of the xmos options would be suitable to reduce the recorded data in realtime. To start with, can it have a memory allocation for 24 frames where each incoming image would be added starting from position 1 to 24 (and fold back to 1st) until the full run would be over. At the end of the run the 24 frames would be processed further to obtain a final calibrated set of 3 images.

This is for an astronomical imaging instrument with high time resolution.

Looking forward to the comments and suggestions,
Thanks in advance,
Shashi

--
http://www.prl.res.in/~shashi

Re: which xmos for image processing

Posted: Sun Mar 13, 2011 6:14 pm
by Folknology
Although XS1 cores have horse power they have very little memory a mere 64K for code and data (+8k OTP).

Assuming your image cannot be processed as a stream or line of data we need to look at the memory requirements

A single frame 1024*1024 as say 16bit depth = 1024*1024*2 = 2,097,152 or approx 2MB/frame.

if you split this over cores you would need about 32 cores assuming the image processing fits in the 8K OTP of each core.

Obviously if inter-frame processing had to occur (as it looks by your description) even more cores/memory would be required ~2*num of frames MB.

Unfortunately there is not external memory bus to hook up SDRAM, but it is possible to hook it up as an external memory controller via the Ports. Unfortunately the data rates obtainable using this method are fairly low in the 25-30MB/sec region.

If this is enough your application it could possibly be made to work.

regards
Al

Re: which xmos for image processing

Posted: Sun Mar 13, 2011 6:33 pm
by jonathan
What pre-processing were you intending to apply to your framebuffer to yield 3 "calibrated images" from the e.g. 24-frame wide buffer?

Re: which xmos for image processing

Posted: Mon Mar 14, 2011 2:14 am
by shashi
Hi Al, Jonathan,

Thanks for the detailed replies. Yes, the memory requirement would be a bottleneck. I think I could live with that 20MB/sec throughput for the transfer through the ports.

This is for a polarimeter. There is a modulating half wave plate rotated by a stepper motor at about 5 to 10hz. The stepper takes 96 steps per rotation. At each step one image is acquired and the motor moves on. The rotation of 96 steps provides a four fold cycle in polarisation. Hence the 24 buffer frames. At each location the image acquired is added to the corresponding buffer. At the end of the run, further analytical fit is applied on the 24 frames to retrieve the I,Q and U components of the polarisation. The fit is a sinusoidal function to be applied to each pixel. This fitting part could be done offline on a parallel processing computer or a GPU.

I envisage one xmos device to take care of each buffer location. One master device could do the direction of the incoming image frame to the corresponding xmos device handling that buffer.

Thanks for your comments,
Best regards,
Shashi

Re: which xmos for image processing

Posted: Mon Mar 30, 2015 8:05 am
by srinie
Hi Shashi,
How are you going with XMOS experimentation?
Recently there are some image processing IPs and there is plan for image sensors slice as well.
Please have a look at
https://github.com/xcore/sc_image_sensor

Please do revert back if you any have relevant queries.