Understanding Latency Contributors

Hi guys !
I’m trying to understand how different components affect latency, and so where I should “invest” in order to minimize it.

Say you have a system with a glass to glass latency of 100ms, how would that be spread on the following ellements (feel free to add elements in your answer) :


  • Camera
  • GPU
  • CPU
  • Wifi Card


  • Wifi Card
  • CPU
  • GPU
  • Display

The underlying question is : What would it take to have a system capable of streaming a HD-Ready video feed (1280x720px) with a latency under 40ms ?

At present the only way to truly get sub 100ms glass to glass latency is to use hardware other than a pi.

The pi gpu is a closed broadcom blob. So things cannot be significantly tweaked. This encoding pipeline is where the vast majority of the systems latency resides. You can do a few tricks on the pi to reduce latency- fast decoder and screen ( like a new android device), bumping up the processor speed/voltage helps slightly, use a csi cam (to state the obvious), use a fast sd card, and most significantly is to increase the fps. By increasing fps the faster you feed the gpu pipe the faster data comes out the other side as it holds about 3 frames of video data at a time.

The transmission time is minimal (although recently constantine was able to shave off up to 10ms by changing some wifi frame handling) and your choice of wifi card will have minimal effect.

To go after a low latency feed, right now the best bet is Stephen’s upcoming OpenHD 3.0 and using a Jetson in the air.

Do some searching in telegram and the old rcgroups threads if you are still curious about the pi. It has been discussed ad naseum several times…