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

From RidgeRun Developer Connection
Jump to: navigation, search
(Two cameras)
(Blanked the page)
(Tag: Blanking)
 
(81 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<noinclude>
 
{{CUDA ISP for NVIDIA Jetson/Head|previous=|next=|metakeywords=|metadescription=}}
 
</noinclude>
 
  
{{DISPLAYTITLE:CUDA ISP for NVIDIA Jetson: Performance|noerror}}
 
 
= GStreamer elements performance =
 
To measure the performance, we have used two of our GStreamer tools: [[GstShark]] and [https://github.com/RidgeRun/gst-perf 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. 
 
 
<source lang=bash>
 
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
 
</source>
 
The results obtained:
 
<center>
 
{| class="wikitable"
 
|-
 
! Measurement (Average) !! Jetson Xavier NX
 
|-
 
| FPS || 396
 
|-
 
| Processing time (seconds) || 0.002522
 
|}
 
</center>
 
 
<br>
 
<br><br>
 
[[File:Shift4kproctimenx.png|1000px|frameless|center|CUDA ISP library ]]
 
<br>
 
<br><br>
 
 
=== '''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.
 
<source lang=bash>
 
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
 
</source>
 
The results obtained:
 
<center>
 
{| class="wikitable"
 
|-
 
! Measurement (Average) !! Jetson Xavier NX
 
|-
 
| FPS || 228
 
|-
 
| Processing time (seconds) || 0.004389
 
|}
 
</center>
 
 
<br>
 
<br><br>
 
[[File:Debayer4krgbproctimenx.png|1000px|frameless|center|CUDA ISP library ]]
 
<br>
 
<br><br>
 
 
'''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.
 
<source lang=bash>
 
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
 
</source>
 
The results obtained:
 
<center>
 
{| class="wikitable"
 
|-
 
! Measurement (Average) !! Jetson Xavier NX
 
|-
 
| FPS || 187
 
|-
 
| Processing time (seconds) || 0.005353
 
|}
 
</center>
 
 
<br>
 
<br><br>
 
[[File:Debayer4ki420proctimenx.png|1000px|frameless|center|CUDA ISP library ]]
 
<br>
 
<br><br>
 
 
=== '''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.
 
<source lang=bash>
 
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
 
</source>
 
The results obtained:
 
<center>
 
{| class="wikitable"
 
|-
 
! Measurement (Average) !! Jetson Xavier NX
 
|-
 
| FPS || 370
 
|-
 
| Processing time (seconds) || 0.002698
 
|}
 
</center>
 
<br>
 
<br><br>
 
[[File:Awb4krgbproctimenx.png|1000px|frameless|center|CUDA ISP library ]]
 
<br>
 
<br><br>
 
 
'''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.
 
<source lang=bash>
 
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
 
</source>
 
The results obtained:
 
<center>
 
{| class="wikitable"
 
|-
 
! Measurement (Average) !! Jetson Xavier NX
 
|-
 
| FPS || 202
 
|-
 
| Processing time (seconds) || 0.004952
 
|}
 
</center>
 
 
<br>
 
<br><br>
 
[[File:Awb4ki420proctimenx.png|1000px|frameless|center|CUDA ISP library ]]
 
<br>
 
<br><br>
 
 
== '''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.
 
<source lang=bash>
 
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
 
</source>
 
The results obtained:
 
<center>
 
{| class="wikitable"
 
|-
 
! Measurement (Average) !! Jetson Xavier AGX
 
|-
 
| FPS || 539
 
|-
 
| Processing time (seconds) || 0.001854
 
|}
 
</center>
 
 
<br>
 
<br><br>
 
[[File:Debayer1920x1200rgbproctimev1.png|1000px|frameless|center|CUDA ISP library ]]
 
<br>
 
<br><br>
 
 
'''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.
 
<source lang=bash>
 
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
 
</source>
 
The results obtained:
 
<center>
 
{| class="wikitable"
 
|-
 
! Measurement (Average) !! Jetson Xavier AGX
 
|-
 
| FPS || 458
 
|-
 
| Processing time (seconds) || 0.002183
 
|}
 
</center>
 
 
<br>
 
<br><br>
 
[[File:Debayer1920x1200i420proctime.png|1000px|frameless|center|CUDA ISP library ]]
 
<br>
 
<br><br>
 
 
=== 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.
 
<source lang=bash>
 
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
 
</source>
 
The results obtained:
 
<center>
 
{| class="wikitable"
 
|-
 
! Measurement (Average) !! Jetson Xavier NX
 
|-
 
| FPS || 752
 
|-
 
| Processing time (seconds) || 0.001329
 
|}
 
</center>
 
 
<br>
 
<br><br>
 
[[File:Debayer1920x1200rgbproctime.png|1000px|frameless|center|CUDA ISP library ]]
 
<br>
 
<br><br>
 
 
'''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.
 
<source lang=bash>
 
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
 
</source>
 
The results obtained:
 
<center>
 
{| class="wikitable"
 
|-
 
! Measurement (Average) !! Jetson Xavier NX
 
|-
 
| FPS || 473
 
|-
 
| Processing time (seconds) || 0.002111
 
|}
 
</center>
 
 
<br>
 
<br><br>
 
[[File:Awb1920x1200i420proctimeagx.png|1000px|frameless|center|CUDA ISP library ]]
 
<br>
 
<br><br>
 
 
== 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.
 
 
 
=== Two cameras ===
 
 
'''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:
 
 
<center>
 
{| class="wikitable"
 
|-
 
! Measurement (Average) !! cudadebayer !! cudaawb
 
|-
 
| FPS || 0 || 0
 
|-
 
| Processing time (seconds) || 0 || 0
 
|}
 
</center>
 
 
<br>
 
<br><br>
 
[[File:Debayer1920x1200rgbproctime.png|1000px|frameless|left|CUDA ISP library ]]
 
<br>
 
<br><br>
 
 
<br>
 
<br><br>
 
[[File:Debayer1920x1200rgbproctime.png|1000px|frameless|left|CUDA ISP library ]]
 
<br>
 
<br><br>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<noinclude>
 
{{CUDA ISP for NVIDIA Jetson/Foot||}}
 
</noinclude>
 

Latest revision as of 08:17, 28 March 2023