Raspberry Pi Camera Latency Testing – Part 1

When the Raspberry Pi Camera was first released I ran some latency testing with the netcat based pipeline to see if it was suitable for FPV use.
The initial results at full HD resolution were not promising as the following video shows.

This is a test of the Raspberry Pi camera streaming over 802.11g WiFi to a netbook running Windows 7.

The stream is 1920×1080 pixels with at the default data rate. The large screen is the HDMI feed directly from the Raspberry Pi. The small screen is the netbook showing the received stream.

The stream was created and received using the inbuilt commands given at www.designspark.com and recorded at 29.97 frames/s.

By analyzing the video in Movie Maker the latency between real life and the big screen was 0.2 to 0.3 seconds. The latency from real life to the netbook as around 4.5 seconds. This is obviously too high for remotely piloting a vehicle or even aiming a bigger camera. The next step is to reduce the camera resolution and bitrate to try to improve this.

After gradually reducing the picture quality a bit at a time I arrived at a 640×480 pixel resolution with a 1 MBits/s data rate.  There was no noticeable latency between real life and the big screen (Raspberry Pi preview).

The Movie Maker analysis shows the latency averaging around 0.3 seconds, which is still probably too high for remotely piloting a vehicle although could be used for aiming a second camera such as an SLR. However it may be possible to reduce this using dedicated code instead of the piped the output of multiple commands.

Orginially posted on Youtube on 21 May 2013.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s