I need to process image data from 10 image sensors simultaneously (namely from OnSemi MT9V022s or similar). All 10 sensors will be externally triggered by a common signal. Ideal solution would be to do the processing on some high-level CPU like ARMv7/8 or x86 but I dont know how to connect all the cameras to the CPU. I would like to avoid using USB for the connection since I dont need the USB stack for anything (maybe except transfer speed).
The image sensors have either serial or parallel output. Since there may not be 10 similar data input types on a given CPU, is the only way to multiplex the image data to fewer (or single) streams? If so, how could such multiplexing be done? Are there some ICs that could be used for that or do I have to design a custom FPGA? As I see it, may I need to develop a custom "multiplexer" device that would input all 10 sensors and join them to a common output?
Given I would like at least 10 x 320x240 8-bit grayscale at 10-30 FPS what are the IO options for the common output (SPI, USB etc.)? Can I use a CSI interface for the common output and write a driver that would do the de-multiplexing? Or can I just multiplex the sensors for transfer and then de-multiplex them in CPU and use a Linux image sensor driver? A target CPU would be ideally a strong multicore ARM with OpenCL support - maybe something like nVidia Tegra K1 or X1.