Birds Eye View - Performance on NXP i.MX8
| ⇦ Performance Measurements/NVIDIA Jetson | Home | Contact us ⇨ |
| Getting Started |
|---|
| User Guide |
| Calibration Guide |
| Calibration Guide Legacy |
| GStreamer |
| Performance |
| Performance Measurements |
| Contact Us |
In the following wiki, you can find the performance measurements for the NXP i.MX8 platform using the GstBEV plugin.
Considerations
The performance measurements were done with the resolutions of 1024x768, 1280x720 and 1920x1080 at 30 fps, using an UDP sender-to-receiver model.
NXP i.MX 8M Plus
Pipeline Structure
The general structure of the pipelines used for the measurements are the following:
Sender (PC)
GST_DEBUG=2 gst-launch-1.0 \ videotestsrc pattern=ball ! $CAPS1 ! queue ! x264enc speed-preset=ultrafast tune=zerolatency ! $CAPS2 ! h264parse config-interval=1 ! rtph264pay ! udpsink host=<ip-address> port=3000 \ videotestsrc pattern=ball ! $CAPS1 ! queue ! x264enc speed-preset=ultrafast tune=zerolatency ! $CAPS2 ! h264parse config-interval=1 ! rtph264pay ! udpsink host=<ip-address> port=3001 \ videotestsrc pattern=ball ! $CAPS1 ! queue ! x264enc speed-preset=ultrafast tune=zerolatency ! $CAPS2 ! h264parse config-interval=1 ! rtph264pay ! udpsink host=<ip-address> port=3002 \ videotestsrc pattern=ball ! $CAPS1 ! queue ! x264enc speed-preset=ultrafast tune=zerolatency ! $CAPS2 ! h264parse config-interval=1 ! rtph264pay ! udpsink host=<ip-address> port=3003 -v
Receiver (iMX.8)
GST_DEBUG=2 gst-launch-1.0 \ udpsrc port=3000 ! application/x-rtp,media=video,encoding-name=H264 ! rtph264depay ! h264parse ! \ queue max-size-buffers=3 leaky=downstream ! v4l2h264dec ! $CAPS3 ! queue max-size-buffers=3 leaky=downstream ! \ imxvideoconvert_g2d ! $CAPS4 ! queue max-size-buffers=3 leaky=downstream ! bev.sink_0 \ udpsrc port=3001 ! application/x-rtp,media=video,encoding-name=H264 ! rtph264depay ! h264parse ! \ queue max-size-buffers=3 leaky=downstream ! v4l2h264dec ! $CAPS3 ! queue max-size-buffers=3 leaky=downstream ! \ imxvideoconvert_g2d ! $CAPS4 ! queue max-size-buffers=3 leaky=downstream ! bev.sink_1 \ udpsrc port=3002 ! application/x-rtp,media=video,encoding-name=H264 ! rtph264depay ! h264parse ! \ queue max-size-buffers=3 leaky=downstream ! v4l2h264dec ! $CAPS3 ! queue max-size-buffers=3 leaky=downstream ! \ imxvideoconvert_g2d ! $CAPS4 ! queue max-size-buffers=3 leaky=downstream ! bev.sink_2 \ udpsrc port=3003 ! application/x-rtp,media=video,encoding-name=H264 ! rtph264depay ! h264parse ! \ queue max-size-buffers=3 leaky=downstream ! v4l2h264dec ! $CAPS3 ! queue max-size-buffers=3 leaky=downstream ! \ imxvideoconvert_g2d ! $CAPS4 ! queue max-size-buffers=3 leaky=downstream ! bev.sink_3 \ bev name=bev calibration-file=<calibration_file> ! \ queue max-size-buffers=3 leaky=downstream ! imxvideoconvert_g2d ! $CAPS4 ! glimagesink sync=false qos=false
Profiling Tools
To obtain the measurements on the different performance indicators, these tools were used:
- CPU Usage: RidgeRun Profiler
- Memory Usage: RidgeRun Profiler
- Latency: GstShark
- GPU Usage: GPU Top
- Framerate: GstShark
Results
| 4 cameras | |||
| Parameter | imx8mp | ||
|---|---|---|---|
| Resolution | 1024x768 | 1280x720 | 1920x1080 |
| CPU Usage(%) | 23.15 | 23.34 | 23.53 |
| Memory Usage(MiB) | 187.22 | 183.91 | 190.34 |
| Latency(s) | 0.252585 | 0.250167 | 0.252863 |
| GPU Usage(%) | 24 | 26 | 26 |
| Framerate(fps) | 25.541 | 24.703 | 22.897 |
| 6 cameras | |||
| Parameter | imx8mp | ||
|---|---|---|---|
| Resolution | 1024x768 | 1280x720 | 1920x1080 |
| CPU Usage(%) | 35.41 | 34.93 | 36.54 |
| Memory Usage(MiB) | 333.37 | 341.82 | 409.06 |
| Latency(s) | 0.635835 | 0.610770 | 0.613545 |
| GPU Usage(%) | 42 | 44 | 45 |
| Framerate(fps) | 25.006 | 24.997 | 24.910 |