rodizio wrote:I have recently played around with 3D live video on the Pi (by running two Pi's with two cams as transmitters and modified hello_video.bin instances on the receivers, one rendering the left image, the other rendering the right image as a quick hack), but got really sick after 2 minutes. This doesn't happen when playing side by side 3D videos on Youtube though.
After reading up on that topic, I found this is probably caused by un-synchronized frame display between the left and right eye.
That, and also that the 2 images aren't well enough aligned to avoid confusing the brain. Ideally you would apply a geometric distortion to calibrate the camera rig, but that does require an accurate calibration process for every system - not totally practical.
rodizio wrote:Is frame capture synchronized when using the compute module and two cameras with raspivid 3d modes?
The 2 cameras are on independent oscillators, so they will drift over time. Generally speaking you should be good for around 15minutes based on typical oscillator tolerances.
The GPU does get a usec accurate timestamp at the start of each frame from each sensor. It is on my list of things to play with to insert minor frame rate alterations on one sensor to keep it closer in sync with the other, but it's a pretty low priority.
rodizio wrote:Is there a way to synchronize frame capture (maybe not perfect, but as good as possible) when using two Pi Zeros instead of a compute module? Maybe by using the serial or GPIO ports to synchronize? Since the compute module is quite big, and there is no Pi3 CM available, I'd rather use two Pi Zeros.
Serial - not really viable. GPIO - potentially possible based on the small changes in frame rate approach mentioned above. You've got an issue in that userland hasn't got close enough access to the frame events or GPIO to make it truly accurate. It does get the accurate timestamps, but you then have to synchronise clocks between the devices, which is a bigger job in itself.
CM is the same size as a SODIMM - 67x32mm. Zero is 65x30mm. Not a huge difference, although you do need to make up a carrier board for the CM which will add to the thickness (shouldn't need to add to the width much).
Yes the standard CMIO board is bigger, but that is only intended as a basic dev kit rather than to be used in products.
CM1 is the same spec as the PiZero, so I don't quite get your comparison there. CM3 is imminent, but I don't know exact timescales.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.