What is the most efficient way to make a CSI camera frame available for GPU processing?


We use the following, correctly working GStreamer pipeline on a jetson AGX. The application uploads the captured frames to the GPU, and does NV12 to RGB conversion and many more GPU processing in real-time.

nvarguscamerasrc ! ‘video/x-raw(memory:NVMM),width=3864, height=2180, framerate=60/1, format=NV12’ ! nvvidconv ! ‘video/x-raw, format=NV12’ ! appsink

Another possible pipeline would be:

nvarguscamerasrc ! ‘video/x-raw(memory:NVMM),width=3864, height=2180, framerate=60/1, format=NV12’ ! nvvidconv ! ‘video/x-raw(memory:NVMM), format=RGBA’ ! appsink

Now some questions arise:

  • What is the most performant pipeline to get as much as possible GPU and CPU load for our application?
  • Is it possible to simplify the pipeline and to get rid of the nvvidconv and to the access the camera frame directly without any conversion?
  • Does nvvidconv use CPU or GPU runtime or is implemented in a digital signal processor?

I’m grateful for any answers.

hello christoph.stamm,

you may refer to forum topic, Topic 223334 for using GStreamer + VPI.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.