A project I'm working on requires unmodified 1080p video to be taken from the CSI interface and sent to a screen (over HDMI) as quickly as possible. I don't currently have a CSI-compatible camera to test with. What is the lowest latency one should expect from this arrangement?
This isn't a terribly scientific test, but it may provide a rough idea. I ran the following script on a reasonably fast desktop system, causing it to print the current timestamp including microseconds to the console:
Then I started the Pi's camera module preview system (which can be done with
raspidvid -t 0 or alternatively with the start_preview method in picamera), and positioned the Pi's display in front of the desktop's monitor.
Finally, I snapped a picture of the script's output on both the desktop's monitor and the Pi's camera preview with my phone. The results aren't great as I was using a stock camera module which can't really focus at distances this close. Still, they're just enough to see that the latency is somewhere around 30-40ms:
While the desktop's display is showing 00:32:01.466nnn, you can just make out the Pi's is showing 00:32:01.43nnnn, hence latency is somewhere around the 30-40ms range. I should also note that the camera was running with a resolution of 1280x800 (as that's the native resolution of the HDMIPi screen, and I don't have anything better to hand), but I'd be surprised if the latency were significantly different at 1080p.