Difference between revisions of "CUDA ISP for NVIDIA Jetson/Performance"

From RidgeRun Developer Connection
Jump to: navigation, search
(Two cameras)
(More cameras)
Line 239: Line 239:
  
 
== More cameras ==
 
== More cameras ==
This section shows the performance results for the elements running at the same time on more than one camera on a Jetson XavierAGX.  
+
This section shows the performance results for the elements running at the same time on more than one camera on a Jetson XavierAGX. For all the tests done, the following pipeline was used to measure the processing time and FPS for the cudaawb and the cudadebayer element with an input image with 1920x1200 resolution coming from multiple camera sensor to an RGB output image.
 +
<source lang=bash>
 +
GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve rrv4l2src device=/dev/video0 io-mode=userptr ! 'video/x-bayer, bpp=10, width=1920, height=1200, format=grbg' ! cudadebayer ! cudaawb ! 'video/x-raw, format=RGB' ! fakesink
 +
</source>
  
 +
The same way, the following pipeline was used to measure the processing time and FPS for the cudaawb and the cudadebayer element with an input image with 1920x1200 resolution coming from multiple camera sensor to an I420 output image
 +
<source lang=bash>
 +
GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve rrv4l2src device=/dev/video1 io-mode=userptr ! 'video/x-bayer, bpp=10, width=1920, height=1200, format=grbg' ! cudadebayer ! cudaawb ! 'video/x-raw, format=I420' ! fakesink
 +
</source>
  
 
=== Two cameras ===  
 
=== Two cameras ===  
Line 246: Line 253:
 
'''RGB Output'''
 
'''RGB Output'''
  
The following pipeline was used to measure the processing time and FPS for the cudaawb and the cudadebayer element with an input image with 1920x1200 resolution coming from a camera sensor to an RGB output image.
 
<source lang=bash>
 
GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve rrv4l2src device=/dev/video0 io-mode=userptr ! 'video/x-bayer, bpp=10, width=1920, height=1200, format=grbg' ! cudadebayer ! cudaawb ! 'video/x-raw, format=RGB' ! fakesink
 
</source>
 
 
The results obtained:  
 
The results obtained:  
  

Revision as of 22:55, 23 March 2023


  Index  






GStreamer elements performance

To measure the performance, we have used two of our GStreamer tools: GstShark and GstPerf.

For testing purposes, take into account the following points:

  • Maximun performance mode enabled: all cores and Jetson clocks enabled.
  • Jetpack 4.6
  • FPS is equal to 1/processing time

Jetson Xavier NX

In the following sections you will see the performance for each of the elements.

cudashift element

The following pipeline was used to measure the processing time and FPS for the cudashift element with an input image with 4K resolution coming from a camera sensor.

GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve v4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, format=rggb' ! cudashift shift=5 ! fakesink

The results obtained:

Measurement (Average) Jetson Xavier NX
FPS 396
Processing time (seconds) 0.002522




Error creating thumbnail: Unable to save thumbnail to destination




cudadebayer element

RGB Output

The following pipeline was used to measure the processing time and FPS for the cudadebayer element with an input image with 4K resolution coming from a camera sensor to an RGB output image.

GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve v4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=3840, height=2160' ! cudadebayer ! fakesink

The results obtained:

Measurement (Average) Jetson Xavier NX
FPS 228
Processing time (seconds) 0.004389




Error creating thumbnail: Unable to save thumbnail to destination




I420 Output

The following pipeline was used to measure the processing time and FPS for the cudadebayer element with an input image with 4K resolution coming from a camera sensor to an I420 output image.

GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve v4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=3840, height=2160' ! cudadebayer ! fakesink

The results obtained:

Measurement (Average) Jetson Xavier NX
FPS 187
Processing time (seconds) 0.005353




Error creating thumbnail: Unable to save thumbnail to destination




cudaawb element

RGB Output

The following pipeline was used to measure the processing time and FPS for the cudaawb element with an input image with 4K resolution coming from a camera sensor to an RGB output image.

GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve v4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=3840, height=2160' ! cudadebayer ! cudaawb ! fakesink

The results obtained:

Measurement (Average) Jetson Xavier NX
FPS 370
Processing time (seconds) 0.002698




Error creating thumbnail: Unable to save thumbnail to destination




I420 Output

The following pipeline was used to measure the processing time and FPS for the cudaawb element with an input image with 4K resolution coming from a camera sensor to an I420 output image.

GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve v4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=3840, height=2160' ! cudadebayer ! cudaawb ! 'video/x-raw, format=I420' ! fakesink

The results obtained:

Measurement (Average) Jetson Xavier NX
FPS 202
Processing time (seconds) 0.004952




Error creating thumbnail: Unable to save thumbnail to destination




Jetson Xavier AGX

In the following sections you will see the performance the elements.

cudadebayer

RGB Output

The following pipeline was used to measure the processing time and FPS for the cudadebayer element with an input image with 1920x1200 resolution coming from a camera sensor to an RGB output image.

GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve rrv4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=1920, height=1200, format=grbg' ! cudadebayer ! 'video/x-raw, format=RGB' ! fakesink

The results obtained:

Measurement (Average) Jetson Xavier AGX
FPS 539
Processing time (seconds) 0.001854




Error creating thumbnail: Unable to save thumbnail to destination




I420 Output

The following pipeline was used to measure the processing time and FPS for the cudadebayer element with an input image with 1920x1200 resolution coming from a camera sensor to an I420 output image.

GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve rrv4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=1920, height=1200, format=grbg' ! cudadebayer ! 'video/x-raw, format=I420' ! fakesink

The results obtained:

Measurement (Average) Jetson Xavier AGX
FPS 458
Processing time (seconds) 0.002183




Error creating thumbnail: Unable to save thumbnail to destination




cudaawb

RGB Output

The following pipeline was used to measure the processing time and FPS for the cudaawb element with an input image with 1920x1200 resolution coming from a camera sensor to an RGB output image.

GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve rrv4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=1920, height=1200, format=grbg' ! cudadebayer ! cudaawb ! 'video/x-raw, format=RGB' ! fakesink

The results obtained:

Measurement (Average) Jetson Xavier NX
FPS 752
Processing time (seconds) 0.001329




Error creating thumbnail: Unable to save thumbnail to destination




I420 Output

The following pipeline was used to measure the processing time and FPS for the cudaawb element with an input image with 1920x1200 resolution coming from a camera sensor to an I420 output image.

GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve rrv4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=1920, height=1200, format=grbg' ! cudadebayer ! cudaawb ! 'video/x-raw, format=I420' ! fakesink

The results obtained:

Measurement (Average) Jetson Xavier NX
FPS 473
Processing time (seconds) 0.002111




Error creating thumbnail: Unable to save thumbnail to destination




More cameras

This section shows the performance results for the elements running at the same time on more than one camera on a Jetson XavierAGX. For all the tests done, the following pipeline was used to measure the processing time and FPS for the cudaawb and the cudadebayer element with an input image with 1920x1200 resolution coming from multiple camera sensor to an RGB output image.

GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve rrv4l2src device=/dev/video0 io-mode=userptr ! 'video/x-bayer, bpp=10, width=1920, height=1200, format=grbg' ! cudadebayer ! cudaawb ! 'video/x-raw, format=RGB' ! fakesink

The same way, the following pipeline was used to measure the processing time and FPS for the cudaawb and the cudadebayer element with an input image with 1920x1200 resolution coming from multiple camera sensor to an I420 output image

GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" gst-launch-1.0 -ve rrv4l2src device=/dev/video1 io-mode=userptr ! 'video/x-bayer, bpp=10, width=1920, height=1200, format=grbg' ! cudadebayer ! cudaawb ! 'video/x-raw, format=I420' ! fakesink

Two cameras

RGB Output

The results obtained:

Measurement (Average) cudadebayer cudaawb
FPS 0 0
Processing time (seconds) 0 0




Error creating thumbnail: Unable to save thumbnail to destination







Error creating thumbnail: Unable to save thumbnail to destination














  Index