NVIDIA VPI GStreamer Plug-in/Performance/Jetson TX1: Difference between revisions

From RidgeRun Developer Wiki
(Created page with "<noinclude> {{NVIDIA VPI GStreamer Plug-in/Head|previous=|next=|keywords=}} </noinclude> <noinclude> {{NVIDIA VPI GStreamer Plug-in/Foot||}} </noinclude>")
 
mNo edit summary
 
(39 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<noinclude>
<noinclude>
{{NVIDIA VPI GStreamer Plug-in/Head|previous=|next=|keywords=}}
{{NVIDIA VPI GStreamer Plug-in/Head|previous=Performance/Jetson Nano|next=Performance/Jetson TX2|metakeywords=OV5693, nvarguscamerasrc, Gaussian Filter, Jetson TX1, Undistort, Separable Convolution}}
</noinclude>
</noinclude>
__TOC__
<br>
{{Ambox
|type=notice
|small=left
|issue=JetPack version 4.4.1 is used for the performance measurements.
|style=width:unset;
}}


==NVIDIA VPI GStreamer Plug-in Performance Measurements :  Source - Onboard camera OV5693 (nvarguscamerasrc) ==


=== <span style="color:#006400;"> Algorithm : Gaussian Filter </span> ===


'''Platform : Jetson TX1''' <br>
'''Onboard camera :  nvarguscamerasrc''' <br>
'''Resolution: 1920x1080 ''' <br> <br>
For a Gaussian filter given by kernel size of 3 in the X direction and 3 in the Y direction.
<br>
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpigaussianfilter size-x=3 size-y=3 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw'  ! vpiupload ! vpigaussianfilter size-x=3 size-y=3 backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>22.1724 %</td>
    <td>21.0972 % @ 174.719 MHz</td>
    <td>30.029</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>28.931 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>30.039</td>
  </tr>
</table>
</center>


For a Gaussian filter given by kernel size of 5 in the X direction and 5 in the Y direction.
<br>
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpigaussianfilter size-x=5 size-y=5 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpigaussianfilter size-x=5 size-y=5 backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>22.3448 %</td>
    <td>20.8561 % @ 170.427 MHz</td>
    <td>30.034</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>31.1034 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>30.035</td>
  </tr>
</table>
</center>


For a Gaussian filter given by kernel size of 7 in the X direction and 7 in the Y direction.
<br>
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpigaussianfilter size-x=7 size-y=7 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpigaussianfilter size-x=7 size-y=7 backend=1  ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>21.7241 %</td>
    <td>20.6293 % @ 166.493 MHz</td>
    <td>30.034</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>31.3103 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>30.031</td>
  </tr>
</table>
</center>


For a Gaussian filter given by kernel size of 11 in the X direction and 11 in the Y direction.
<br>
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpigaussianfilter size-x=11 size-y=11 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv !  'video/x-raw' ! vpiupload ! vpigaussianfilter size-x=11 size-y=11 backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>22.2759 %</td>
    <td>20.869 % @ 162.873 MHz</td>
    <td>30.032</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>31.7586 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>30.039</td>
  </tr>
</table>
</center>


=== <span style="color:#006400;"> Algorithm : Undistort </span> ===


'''Platform : Jetson TX1''' <br>
'''Onboard camera :  nvarguscamerasrc''' <br>
'''Resolution: 1920x1080 ''' <br>
==== Fisheye Distortion ====
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv bl-output=false ! vpiupload ! vpiundistort k1=0.05 k2=0.01 k3=0 k4=0 model=fisheye ! perf print-arm-load=true ! vpidownload ! nvvidconv ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiundistort k1=0.05 k2=0.01 k3=0 k4=0 model=fisheye backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>23.4483 %</td>
    <td>21.748 % @ 168.719 MHz</td>
    <td>30.066</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>83.3929 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>12.995</td>
  </tr>
</table>
</center>


==== Polynomial Distortion ====
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv bl-output=false ! vpiupload ! vpiundistort k1=0.52 k2=-0.02 p1=0 p2=0 k3=-0.001 k4=0.8 k5=0.05 k6=-0.008 model=polynomial ! perf print-arm-load=true ! vpidownload ! nvvidconv ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv  ! 'video/x-raw' ! vpiupload ! vpiundistort k1=0.52 k2=-0.02 p1=0 p2=0 k3=-0.001 k4=0.8 k5=0.05 k6=-0.008 model=polynomial backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>23.1034 %</td>
    <td>22.5287 % @ 173.939 MHz</td>
    <td>30.051</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>83.5 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>12.977</td>
  </tr>
</table>
</center>


=== <span style="color:#006400;"> Algorithm : KLT Tracker </span> ===


'''Platform : Jetson TX1''' <br>
'''Source:  filesrc''' <br>
'''Resolution: 1280x720 ''' <br> <br>
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 filesrc location=/opt/nvidia/vpi/samples/assets/dashcam.mp4 ! qtdemux name=demux demux.video_0 ! queue !  h264parse ! omxh264dec ! videoconvert ! vpiupload ! vpiklttracker name=klt boxes='<<613,332,23,23>,<669,329,30,29>,<790,376,41,22>>' ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 filesrc location=/opt/nvidia/vpi/samples/assets/dashcam.mp4 ! qtdemux name=demux demux.video_0 ! queue !  h264parse ! omxh264dec ! videoconvert ! 'video/x-raw'  ! vpiupload ! vpiklttracker name=klt boxes='<<613,332,23,23>,<669,329,30,29>,<790,376,41,22>>' backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>29.2381 %</td>
    <td>22.0185 % @ 172.243 MHz</td>
    <td>26.44</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>34 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>29.342</td>
  </tr>
</table>
</center>


=== <span style="color:#006400;"> Algorithm : Harris Detector </span> ===


'''Platform : Jetson TX1''' <br>
'''Onboard camera :  nvarguscamerasrc''' <br>
'''Resolution: 1920x1080 ''' <br>
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpiharrisdetector gradient-size=3 block-size=3 ! vpioverlay ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv  ! 'video/x-raw' !  vpiupload ! vpiharrisdetector gradient-size=3 block-size=3 backend=1 ! vpioverlay ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>26.3793 %</td>
    <td>22.7408 % @ 178.168 MHz</td>
    <td>28.79</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>78.1724 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>24.927</td>
  </tr>
</table>
</center>


'''Platform : Jetson TX1''' <br>
'''Onboard camera :  nvarguscamerasrc''' <br>
'''Resolution: 1920x1080 ''' <br>
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpiharrisdetector gradient-size=5 block-size=5 ! vpioverlay ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiharrisdetector gradient-size=5 block-size=5 backend=1 ! vpioverlay ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>26.7586 %</td>
    <td>23.5425 % @ 182.813 MHz</td>
    <td>28.749</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>81.5357 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>20.402</td>
  </tr>
</table>
</center>


'''Platform : Jetson TX1''' <br>
'''Onboard camera :  nvarguscamerasrc''' <br>
'''Resolution: 1920x1080 ''' <br>
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpiharrisdetector gradient-size=7 block-size=7 ! vpioverlay ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiharrisdetector gradient-size=7 block-size=7 backend=1  ! vpioverlay ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>26.4828 %</td>
    <td>24.0178 % @ 189.046 MHz</td>
    <td>28.812</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>84.1724 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>16.665</td>
  </tr>
</table>
</center>


=== <span style="color:#006400;"> Algorithm : Convolution </span> ===


'''Platform : Jetson TX1''' <br>
'''Onboard camera :  nvarguscamerasrc''' <br>
'''Resolution: 1920x1080 ''' <br> <br>
For a convolution filter given by kernel size of 3 in the X direction and 3 in the Y direction.
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv  ! 'video/x-raw' ! vpiupload ! vpiconvolution kernel="<<0.1111,0.1111,0.1111>,<0.1111,0.1111,0.1111>,<0.1111,0.1111,0.1111>>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv  ! video/x-raw ! vpiupload ! vpiconvolution kernel="<<0.1111,0.1111,0.1111>,<0.1111,0.1111,0.1111>,<0.1111,0.1111,0.1111>>" backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>16.4138 %</td>
    <td>16.0526 % @ 150.512 MHz</td>
    <td>30.073</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>33.2414 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>30.031</td>
  </tr>
</table>
</center>


For a convolution filter given by kernel size of 5 in the X direction and 5 in the Y direction.
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiconvolution kernel="<<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! video/x-raw ! vpiupload ! vpiconvolution kernel="<<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>>"  backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>17.8966 %</td>
    <td>16.1235 % @ 149.31 MHz</td>
    <td>30.042</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>36.7931 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>30.032</td>
  </tr>
</table>
</center>
For a convolution filter given by kernel size of 7 in the X direction and 7 in the Y direction.
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiconvolution kernel="<<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! video/x-raw ! vpiupload ! vpiconvolution kernel="<<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>>" backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>15.4483 %</td>
    <td>15.8318 % @ 147.682 MHz</td>
    <td>30.028</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>40.6207 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>30.041</td>
  </tr>
</table>
</center>
For a convolution filter given by kernel size of 11 in the X direction and 11 in the Y direction.
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiconvolution kernel="<<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! video/x-raw ! vpiupload ! vpiconvolution kernel="<<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>>" backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>15.8276 %</td>
    <td>15.9488 % @ 148.083 MHz</td>
    <td>30.024</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>75.5862 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>29.485</td>
  </tr>
</table>
</center>
=== <span style="color:#006400;"> Algorithm : Separable Convolution </span> ===
'''Platform : Jetson TX1''' <br>
'''Onboard camera :  nvarguscamerasrc''' <br>
'''Resolution: 1920x1080 ''' <br> <br>
For a separable convolution filter given by kernel size of 3 in the X direction and 3 in the Y direction.
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv  ! 'video/x-raw' ! vpiupload ! vpiseparableconvolution kernel-row="<-1.0,0.0,1.0>" kernel-col="<1.0,2.0,1.0>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv  ! video/x-raw ! vpiupload ! vpiseparableconvolution kernel-row="<-1.0,0.0,1.0>" kernel-col="<1.0,2.0,1.0>" backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>15.4138 %</td>
    <td>16.1116 % @ 116.296 MHz</td>
    <td>30.035</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>33.2759 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>30.033</td>
  </tr>
</table>
</center>
For a separable convolution filter given by kernel size of 5 in the X direction and 5 in the Y direction.
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiseparableconvolution kernel-row="<-2.0,-1.0,0.0,1.0,2.0>" kernel-col="<1.0,2.0,4.0,2.0,1.0>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! video/x-raw ! vpiupload ! vpiseparableconvolution kernel-row="<-2.0,-1.0,0.0,1.0,2.0>" kernel-col="<1.0,2.0,4.0,2.0,1.0>"  backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>15.5862 %</td>
    <td>17.4856 % @ 123.793 MHz</td>
    <td>30.031</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>34.5172 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>30.043</td>
  </tr>
</table>
</center>
For a separable convolution filter given by kernel size of 7 in the X direction and 7 in the Y direction.
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiseparableconvolution kernel-row="<-4.0,-2.0,-1.0,0.0,1.0,2.0,4.0>" kernel-col="<1.0,2.0,4.0,6.0,4.0,2.0,1.0>"  ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! video/x-raw ! vpiupload ! vpiseparableconvolution kernel-row="<-4.0,-2.0,-1.0,0.0,1.0,2.0,4.0>" kernel-col="<1.0,2.0,4.0,6.0,4.0,2.0,1.0>"  backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>15.7241 %</td>
    <td>17.6708 % @ 126.448 MHz</td>
    <td>30.029</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>34.9655 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>30.035</td>
  </tr>
</table>
</center>
For a separable convolution filter given by kernel size of 11 in the X direction and 11 in the Y direction.
<br>
'''Backend : CUDA (default)'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiseparableconvolution kernel-row="<-16.0,-8.0,-4.0,-2.0,-1.0,0.0,1.0,2.0,4.0,8.0,16.0>" kernel-col="<1.0,2.0,4.0,6.0,12.0,24.0,12.0,6.0,4.0,2.0,1.0>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<br>
'''Backend : CPU'''
<pre>
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! video/x-raw ! vpiupload ! vpiseparableconvolution kernel-row="<-16.0,-8.0,-4.0,-2.0,-1.0,0.0,1.0,2.0,4.0,8.0,16.0>" kernel-col="<1.0,2.0,4.0,6.0,12.0,24.0,12.0,6.0,4.0,2.0,1.0>" backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
</pre>
<center>
<table class="wikitable">
  <tr>
    <th style="background:MidnightBlue; color:White">Backend</th>
    <th style="background:MidnightBlue; color:White">CPU %</th>
    <th style="background:MidnightBlue; color:White">GPU %</th>
    <th style="background:MidnightBlue; color:White">FPS</th>
  </tr>
  <tr>
    <td>CUDA</td>
    <td>16 %</td>
    <td>17.4695 % @ 123.385 MHz</td>
    <td>30.036</td>
  </tr>
  <tr>
    <td>CPU</td>
    <td>37.8276 %</td>
    <td>15.3284 % @ 150.901 MHz</td>
    <td>30.048</td>
  </tr>
</table>
</center>


<noinclude>
<noinclude>
{{NVIDIA VPI GStreamer Plug-in/Foot||}}
{{NVIDIA VPI GStreamer Plug-in/Foot|Performance/Jetson Nano|Performance/Jetson TX2}}
</noinclude>
</noinclude>

Latest revision as of 18:43, 23 February 2023



Previous: Performance/Jetson Nano Index Next: Performance/Jetson TX2





NVIDIA VPI GStreamer Plug-in Performance Measurements : Source - Onboard camera OV5693 (nvarguscamerasrc)

Algorithm : Gaussian Filter

Platform : Jetson TX1
Onboard camera : nvarguscamerasrc
Resolution: 1920x1080

For a Gaussian filter given by kernel size of 3 in the X direction and 3 in the Y direction.

Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpigaussianfilter size-x=3 size-y=3 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw'  ! vpiupload ! vpigaussianfilter size-x=3 size-y=3 backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 22.1724 % 21.0972 % @ 174.719 MHz 30.029
CPU 28.931 % 15.3284 % @ 150.901 MHz 30.039

For a Gaussian filter given by kernel size of 5 in the X direction and 5 in the Y direction.

Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpigaussianfilter size-x=5 size-y=5 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpigaussianfilter size-x=5 size-y=5 backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 22.3448 % 20.8561 % @ 170.427 MHz 30.034
CPU 31.1034 % 15.3284 % @ 150.901 MHz 30.035

For a Gaussian filter given by kernel size of 7 in the X direction and 7 in the Y direction.

Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpigaussianfilter size-x=7 size-y=7 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpigaussianfilter size-x=7 size-y=7 backend=1  ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 21.7241 % 20.6293 % @ 166.493 MHz 30.034
CPU 31.3103 % 15.3284 % @ 150.901 MHz 30.031

For a Gaussian filter given by kernel size of 11 in the X direction and 11 in the Y direction.

Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpigaussianfilter size-x=11 size-y=11 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv !  'video/x-raw' ! vpiupload ! vpigaussianfilter size-x=11 size-y=11 backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 22.2759 % 20.869 % @ 162.873 MHz 30.032
CPU 31.7586 % 15.3284 % @ 150.901 MHz 30.039

Algorithm : Undistort

Platform : Jetson TX1
Onboard camera : nvarguscamerasrc
Resolution: 1920x1080

Fisheye Distortion


Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv bl-output=false ! vpiupload ! vpiundistort k1=0.05 k2=0.01 k3=0 k4=0 model=fisheye ! perf print-arm-load=true ! vpidownload ! nvvidconv ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiundistort k1=0.05 k2=0.01 k3=0 k4=0 model=fisheye backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 23.4483 % 21.748 % @ 168.719 MHz 30.066
CPU 83.3929 % 15.3284 % @ 150.901 MHz 12.995

Polynomial Distortion


Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv bl-output=false ! vpiupload ! vpiundistort k1=0.52 k2=-0.02 p1=0 p2=0 k3=-0.001 k4=0.8 k5=0.05 k6=-0.008 model=polynomial ! perf print-arm-load=true ! vpidownload ! nvvidconv ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv  ! 'video/x-raw' ! vpiupload ! vpiundistort k1=0.52 k2=-0.02 p1=0 p2=0 k3=-0.001 k4=0.8 k5=0.05 k6=-0.008 model=polynomial backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 23.1034 % 22.5287 % @ 173.939 MHz 30.051
CPU 83.5 % 15.3284 % @ 150.901 MHz 12.977

Algorithm : KLT Tracker

Platform : Jetson TX1
Source: filesrc
Resolution: 1280x720


Backend : CUDA (default)

gst-launch-1.0 filesrc location=/opt/nvidia/vpi/samples/assets/dashcam.mp4 ! qtdemux name=demux demux.video_0 ! queue !  h264parse ! omxh264dec ! videoconvert ! vpiupload ! vpiklttracker name=klt boxes='<<613,332,23,23>,<669,329,30,29>,<790,376,41,22>>' ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink


Backend : CPU

gst-launch-1.0 filesrc location=/opt/nvidia/vpi/samples/assets/dashcam.mp4 ! qtdemux name=demux demux.video_0 ! queue !  h264parse ! omxh264dec ! videoconvert ! 'video/x-raw'  ! vpiupload ! vpiklttracker name=klt boxes='<<613,332,23,23>,<669,329,30,29>,<790,376,41,22>>' backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 29.2381 % 22.0185 % @ 172.243 MHz 26.44
CPU 34 % 15.3284 % @ 150.901 MHz 29.342

Algorithm : Harris Detector

Platform : Jetson TX1
Onboard camera : nvarguscamerasrc
Resolution: 1920x1080

Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpiharrisdetector gradient-size=3 block-size=3 ! vpioverlay ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv  ! 'video/x-raw' !  vpiupload ! vpiharrisdetector gradient-size=3 block-size=3 backend=1 ! vpioverlay ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 26.3793 % 22.7408 % @ 178.168 MHz 28.79
CPU 78.1724 % 15.3284 % @ 150.901 MHz 24.927

Platform : Jetson TX1
Onboard camera : nvarguscamerasrc
Resolution: 1920x1080

Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpiharrisdetector gradient-size=5 block-size=5 ! vpioverlay ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiharrisdetector gradient-size=5 block-size=5 backend=1 ! vpioverlay ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 26.7586 % 23.5425 % @ 182.813 MHz 28.749
CPU 81.5357 % 15.3284 % @ 150.901 MHz 20.402

Platform : Jetson TX1
Onboard camera : nvarguscamerasrc
Resolution: 1920x1080

Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! vpiupload ! vpiharrisdetector gradient-size=7 block-size=7 ! vpioverlay ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiharrisdetector gradient-size=7 block-size=7 backend=1  ! vpioverlay ! perf print-arm-load=true ! vpidownload ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 26.4828 % 24.0178 % @ 189.046 MHz 28.812
CPU 84.1724 % 15.3284 % @ 150.901 MHz 16.665

Algorithm : Convolution

Platform : Jetson TX1
Onboard camera : nvarguscamerasrc
Resolution: 1920x1080

For a convolution filter given by kernel size of 3 in the X direction and 3 in the Y direction.
Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv  ! 'video/x-raw' ! vpiupload ! vpiconvolution kernel="<<0.1111,0.1111,0.1111>,<0.1111,0.1111,0.1111>,<0.1111,0.1111,0.1111>>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv  ! video/x-raw ! vpiupload ! vpiconvolution kernel="<<0.1111,0.1111,0.1111>,<0.1111,0.1111,0.1111>,<0.1111,0.1111,0.1111>>" backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 16.4138 % 16.0526 % @ 150.512 MHz 30.073
CPU 33.2414 % 15.3284 % @ 150.901 MHz 30.031

For a convolution filter given by kernel size of 5 in the X direction and 5 in the Y direction.
Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiconvolution kernel="<<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! video/x-raw ! vpiupload ! vpiconvolution kernel="<<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>,<0.04,0.04,0.04,0.04,0.04>>"  backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 17.8966 % 16.1235 % @ 149.31 MHz 30.042
CPU 36.7931 % 15.3284 % @ 150.901 MHz 30.032

For a convolution filter given by kernel size of 7 in the X direction and 7 in the Y direction.
Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiconvolution kernel="<<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! video/x-raw ! vpiupload ! vpiconvolution kernel="<<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>,<0.0204,0.0204,0.0204,0.0204,0.0204,0.0204,0.0204>>" backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 15.4483 % 15.8318 % @ 147.682 MHz 30.028
CPU 40.6207 % 15.3284 % @ 150.901 MHz 30.041

For a convolution filter given by kernel size of 11 in the X direction and 11 in the Y direction.
Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiconvolution kernel="<<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! video/x-raw ! vpiupload ! vpiconvolution kernel="<<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>,<0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083,0.0083>>" backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 15.8276 % 15.9488 % @ 148.083 MHz 30.024
CPU 75.5862 % 15.3284 % @ 150.901 MHz 29.485

Algorithm : Separable Convolution

Platform : Jetson TX1
Onboard camera : nvarguscamerasrc
Resolution: 1920x1080

For a separable convolution filter given by kernel size of 3 in the X direction and 3 in the Y direction.
Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv  ! 'video/x-raw' ! vpiupload ! vpiseparableconvolution kernel-row="<-1.0,0.0,1.0>" kernel-col="<1.0,2.0,1.0>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv  ! video/x-raw ! vpiupload ! vpiseparableconvolution kernel-row="<-1.0,0.0,1.0>" kernel-col="<1.0,2.0,1.0>" backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 15.4138 % 16.1116 % @ 116.296 MHz 30.035
CPU 33.2759 % 15.3284 % @ 150.901 MHz 30.033

For a separable convolution filter given by kernel size of 5 in the X direction and 5 in the Y direction.
Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiseparableconvolution kernel-row="<-2.0,-1.0,0.0,1.0,2.0>" kernel-col="<1.0,2.0,4.0,2.0,1.0>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! video/x-raw ! vpiupload ! vpiseparableconvolution kernel-row="<-2.0,-1.0,0.0,1.0,2.0>" kernel-col="<1.0,2.0,4.0,2.0,1.0>"  backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 15.5862 % 17.4856 % @ 123.793 MHz 30.031
CPU 34.5172 % 15.3284 % @ 150.901 MHz 30.043

For a separable convolution filter given by kernel size of 7 in the X direction and 7 in the Y direction.
Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiseparableconvolution kernel-row="<-4.0,-2.0,-1.0,0.0,1.0,2.0,4.0>" kernel-col="<1.0,2.0,4.0,6.0,4.0,2.0,1.0>"  ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! video/x-raw ! vpiupload ! vpiseparableconvolution kernel-row="<-4.0,-2.0,-1.0,0.0,1.0,2.0,4.0>" kernel-col="<1.0,2.0,4.0,6.0,4.0,2.0,1.0>"  backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 15.7241 % 17.6708 % @ 126.448 MHz 30.029
CPU 34.9655 % 15.3284 % @ 150.901 MHz 30.035

For a separable convolution filter given by kernel size of 11 in the X direction and 11 in the Y direction.
Backend : CUDA (default)

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! 'video/x-raw' ! vpiupload ! vpiseparableconvolution kernel-row="<-16.0,-8.0,-4.0,-2.0,-1.0,0.0,1.0,2.0,4.0,8.0,16.0>" kernel-col="<1.0,2.0,4.0,6.0,12.0,24.0,12.0,6.0,4.0,2.0,1.0>" ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink


Backend : CPU

gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! video/x-raw ! vpiupload ! vpiseparableconvolution kernel-row="<-16.0,-8.0,-4.0,-2.0,-1.0,0.0,1.0,2.0,4.0,8.0,16.0>" kernel-col="<1.0,2.0,4.0,6.0,12.0,24.0,12.0,6.0,4.0,2.0,1.0>" backend=1 ! perf print-arm-load=true ! vpidownload ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nvoverlaysink
Backend CPU % GPU % FPS
CUDA 16 % 17.4695 % @ 123.385 MHz 30.036
CPU 37.8276 % 15.3284 % @ 150.901 MHz 30.048


Previous: Performance/Jetson Nano Index Next: Performance/Jetson TX2