I am currently seeing between 20% and 30% load on the whole system, as soon as I start reading from the camera using gstreamer. I just wanted to confirm, that this is as expected (I personally had expected much less load).
My setup:
- Jetson TX2
- Jetpack 4.2 (installed via SDK Manager)
- CSI-2 MIPI IMX185 from Leopard imaging
I ran different types of pipelines, for example:
This results in around 15% load on all 4 CPUs as well as the GPU:
gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=1920, height=1080, format=(string)NV12, framerate=(fraction)30/1' ! fakesink
On the other extreme, when sinking into a v4l2loopback device, I see around 25% load across the 4 CPUs and the GPU:
gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)60/1' ! nvvidconv ! 'video/x-raw, format=(string)BGRx, width=(int)640, height=(int)360' ! videoconvert ! 'video/x-raw, format=(string)BGR' ! v4l2sink device=/dev/video1
I measure the load as follows: I start tegrastats as a daemon, logging into a file every 250ms. After waiting for 15 seconds, I run one of the gstreamer pipelines for at least 5 minutes. After ending the pipeline, I keep logging for some more time. The reported load is the difference between not running and running the gtstreamer pipeline. Also, the CPU frequency goes up at the same time.
I was hoping for a much lower load for the CSI camera, as I was hoping to run some additional applications on top. Especially for the nvarguscamerasrc into the fakesink, I was hoping that this would not put much load on the CPUs.
Was my expectation wrong or do I have a mistake in my setup?