Difference between revisions of "CUDA ISP for NVIDIA Jetson/Getting Started/Evaluating the CUDA ISP"

From RidgeRun Developer Connection
Jump to: navigation, search
(Installing CUDAISP)
 
(45 intermediate revisions by 4 users not shown)
Line 2: Line 2:
  
 
<noinclude>
 
<noinclude>
{{CUDA ISP for NVIDIA Jetson/Head|previous=|next=|metakeywords=|metadescription=}}
+
{{CUDA ISP for NVIDIA Jetson/Head|previous=CUDA_ISP_for_NVIDIA_Jetson_Basics|next=Getting Started/Getting the code|metakeywords=|metadescription=}}
 
</noinclude>
 
</noinclude>
  
 
== Requesting the Evaluation Binary ==
 
== Requesting the Evaluation Binary ==
  
To request an evaluation binary for a specific architecture, don't hesitate to get in touch with us providing the following information:
+
To request an evaluation binary for a specific architecture, don't hesitate to get in touch with us, providing the following information:
  
* Platform (i.e.: TX1, TX2, x86)
+
* Platform (i.e.: NVIDIA family boards, x86)
 
* Operating System version, including:
 
* Operating System version, including:
 
** Kernel version. Use <code>uname -a</code>
 
** Kernel version. Use <code>uname -a</code>
Line 18: Line 18:
 
* CUDA and NPP library version
 
* CUDA and NPP library version
  
 +
Moreover, please, provide a brief description of your use case.
  
RidgeRun will provide you with the binaries to evaluate BIPS with some limitations
+
RidgeRun will provide you with the binaries to evaluate CUDA ISP with some limitations.
  
 
<center>
 
<center>
 +
<!---
 
[[File:RR Contact Us.png|200px|link=http://www.ridgerun.com/contact]]
 
[[File:RR Contact Us.png|200px|link=http://www.ridgerun.com/contact]]
 +
-->
 +
{{ContactUs Button}}
 
</center>
 
</center>
  
 +
== Features of the Evaluation ==
  
== Installing CUDAISP ==
+
To help you test our CUDA ISP library, RidgeRun can provide an evaluation version of the plug-in.
  
RidgeRun will provide you with a tarball with the following contents:
+
The following table summarizes the features available in the professional and evaluation versions of CUDA ISP.
  
<pre>
+
<center>
 +
<table class="wikitable">
 +
  <tr>
 +
    <th>Feature</th>
 +
    <th>Professional</th>
 +
    <th>Evaluation</th>
 +
  </tr>
 +
  <tr>
 +
    <td>C++ headers </td>
 +
    <td style="background-color:#DAF7A6">Y</td>
 +
    <td style="background-color:#DAF7A6">Y</td>
 +
  </tr>
 +
  <tr>
 +
    <td>CUDA ISP Examples</td>
 +
    <td style="background-color:#DAF7A6">Y</td>
 +
    <td style="background-color:#DAF7A6">Y</td>
 +
  </tr>
 +
  <tr>
 +
    <td>GStreamer plugin</td>
 +
    <td style="background-color:#DAF7A6">Y</td>
 +
    <td style="background-color:#DAF7A6">Y</td>
 +
  </tr>
 +
  <tr>
 +
    <td>Unlimited Processing Time</td>
 +
    <td style="background-color:#DAF7A6">Y</td>
 +
    <td style="background-color:#FF5733">N (1)</td>
 +
  </tr>
 +
  <tr>
 +
    <td>Source Code</td>
 +
    <td style="background-color:#DAF7A6">Y</td>
 +
    <td style="background-color:#FF5733">N</td>
 +
  </tr>
 +
  <caption>Table 1. Features provided in the evaluation version</caption>
 +
</table>
 +
</center>
 +
 
 +
'''(1)''' The evaluation version will limit the processing to a maximum of 27000 executions. You can also ask for a time-limited evaluation.
 +
 
 +
== Evaluating CUDA ISP ==
 +
=== Installing dependencies ===
 +
CUDA ISP has the following dependencies:
 +
* CUDA/NPPI
 +
* libspdlog
 +
* GstCUDA
 +
 
 +
To see how to install these dependencies, follow this link: [[CUDA_ISP_for_NVIDIA_Jetson/Getting_Started/Building_CUDA_ISP_for_NVIDIA_Jetson|Building CUDA ISP]].
  
└── usr
+
=== Installing and testing CUDA ISP ===
    └── local
 
        ├── include
 
        │   └── libcudaisp
 
        │      ├── buffer.hpp
 
        │      ├── colorspaceparams.hpp
 
        │      ├── debayerparams.hpp
 
        │      ├── ialgorithm.hpp
 
        │      ├── ibackend.hpp
 
        │      ├── ilogger.hpp
 
        │      ├── iparams.hpp
 
        │      ├── isettings.hpp
 
        │      ├── isp.hpp
 
        │      └── shiftparams.hpp
 
        ├── lib
 
            └── aarch64-linux-gnu
 
                ├── gstreamer-1.0
 
                │   └── libgstcudaisp.so
 
                └── libcudaisp.so
 
  
</pre>
 
  
After decompressing the files, please, copy the contents to the target machine:
+
RidgeRun will provide you with a tarball with the contents of the evaluation version of the CUDA ISP library.
  
<syntaxhighlight lang=bash>
+
To test the binary for the evaluation version of CUDA ISP, please:
sudo cp -r usr/local/* /usr/local/
 
</syntaxhighlight>
 
  
 +
* Install the required dependencies.
 +
* Decompress the tarball
 +
* Run the following command:
  
 +
<source lang=bash>
 +
./configuration.sh
 +
</source>
  
 +
=== Testing CUDA ISP elements ===
 +
To validate that the installation was successful, run the following command:
 +
<source long=bash>
 +
gst-inspect-1.0 cudaisp
 +
</source>
 +
You should see the following output:
 +
<source long=bash>
 +
Plugin Details:
 +
  Name                    cudaisp
 +
  Description              GStreamer LibCudaISP-based elements
 +
  Filename                /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstcudaisp.so
 +
  Version                  0.1.0
 +
  License                  Proprietary
 +
  Source module            libcudaisp
 +
  Binary package          libcudaisp
 +
  Origin URL              RidgeRun
  
 +
  cudaawb: GstCUDA AWB
 +
  cudadebayer: GstCUDA Debayer
 +
  cudashift: GstCUDA Shift
  
 +
  3 features:
 +
  +-- 3 elements
 +
</source>
 +
To see more on how to use these elements, please, click the following link: [[CUDA_ISP_for_NVIDIA_Jetson/Examples/GStreamer_usage|GStreamer Usage for CUDA ISP]]
  
 +
=== Examples ===
 +
The C++ examples provided are one for each element:
  
 +
* cudadebayer
 +
* cudashift
 +
* cudawhitebalancer
  
 +
The example binaries are compiled after building. If the build directory is build:
 +
<pre>
 +
rr
 +
└── examples
 +
        ├── cudadebayer
 +
        ├── cudashift
 +
        └── cudawhitebalancer
 +
</pre>
  
 +
*cudadebayer: The cudadebayer example receives four arguments:
 +
# Input path file (bayer8)
 +
# Output path file (rgb)
 +
# Width
 +
# Height
 +
To run the example:
 +
<source long=bash>
 +
./cudadebayer input_file.bayer8 output_file.rgb width height
 +
</source>
  
 +
*cudashift: The cudashift example receives five arguments:
 +
# Input path file (bayer {10, 12, 14, 16})
 +
# Output path file (bayer8)
 +
# Width
 +
# Height
 +
# Shift right value
 +
To run the example:
 +
<source long=bash>
 +
./cudashift input_file.bayer10 output_file.bayer8 width height shift_number
 +
</source>
  
 +
*cudawhitebalancer: The cudawhitebalancer example receives four arguments:
 +
# Input path file (rgb)
 +
# Output path file (rgb)
 +
# Width
 +
# Height
 +
To run the example:
 +
<source long=bash>
 +
./cudadebayer input_file.rgb output_file.rgb width height
 +
</source>
  
 +
For the API usage, you can also use the examples available in our [http://ridgerun.pages.ridgerun.com/rnd/libcudaisp/examples.html User Manual].
  
  
  
 
<noinclude>
 
<noinclude>
{{CUDA ISP for NVIDIA Jetson/Foot||}}
+
{{CUDA ISP for NVIDIA Jetson/Foot|CUDA_ISP_for_NVIDIA_Jetson_Basics|Getting Started/Getting the code}}
 
</noinclude>
 
</noinclude>

Latest revision as of 13:57, 14 June 2023



Previous: CUDA_ISP_for_NVIDIA_Jetson_Basics Index Next: Getting Started/Getting the code





Requesting the Evaluation Binary

To request an evaluation binary for a specific architecture, don't hesitate to get in touch with us, providing the following information:

  • Platform (i.e.: NVIDIA family boards, x86)
  • Operating System version, including:
    • Kernel version. Use uname -a
    • Distribution version.
  • If you are on Jetson:
    • Jetpack version
    • L4T version
  • CUDA and NPP library version

Moreover, please, provide a brief description of your use case.

RidgeRun will provide you with the binaries to evaluate CUDA ISP with some limitations.

RR Contact Us.png

Features of the Evaluation

To help you test our CUDA ISP library, RidgeRun can provide an evaluation version of the plug-in.

The following table summarizes the features available in the professional and evaluation versions of CUDA ISP.

Feature Professional Evaluation
C++ headers Y Y
CUDA ISP Examples Y Y
GStreamer plugin Y Y
Unlimited Processing Time Y N (1)
Source Code Y N
Table 1. Features provided in the evaluation version

(1) The evaluation version will limit the processing to a maximum of 27000 executions. You can also ask for a time-limited evaluation.

Evaluating CUDA ISP

Installing dependencies

CUDA ISP has the following dependencies:

  • CUDA/NPPI
  • libspdlog
  • GstCUDA

To see how to install these dependencies, follow this link: Building CUDA ISP.

Installing and testing CUDA ISP

RidgeRun will provide you with a tarball with the contents of the evaluation version of the CUDA ISP library.

To test the binary for the evaluation version of CUDA ISP, please:

  • Install the required dependencies.
  • Decompress the tarball
  • Run the following command:
./configuration.sh

Testing CUDA ISP elements

To validate that the installation was successful, run the following command:

gst-inspect-1.0 cudaisp

You should see the following output:

Plugin Details:
  Name                     cudaisp
  Description              GStreamer LibCudaISP-based elements
  Filename                 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstcudaisp.so
  Version                  0.1.0
  License                  Proprietary
  Source module            libcudaisp
  Binary package           libcudaisp
  Origin URL               RidgeRun

  cudaawb: GstCUDA AWB
  cudadebayer: GstCUDA Debayer
  cudashift: GstCUDA Shift

  3 features:
  +-- 3 elements

To see more on how to use these elements, please, click the following link: GStreamer Usage for CUDA ISP

Examples

The C++ examples provided are one for each element:

  • cudadebayer
  • cudashift
  • cudawhitebalancer

The example binaries are compiled after building. If the build directory is build:

rr
└── examples 
        ├── cudadebayer
        ├── cudashift
        └── cudawhitebalancer
  • cudadebayer: The cudadebayer example receives four arguments:
  1. Input path file (bayer8)
  2. Output path file (rgb)
  3. Width
  4. Height

To run the example:

./cudadebayer input_file.bayer8 output_file.rgb width height
  • cudashift: The cudashift example receives five arguments:
  1. Input path file (bayer {10, 12, 14, 16})
  2. Output path file (bayer8)
  3. Width
  4. Height
  5. Shift right value

To run the example:

./cudashift input_file.bayer10 output_file.bayer8 width height shift_number
  • cudawhitebalancer: The cudawhitebalancer example receives four arguments:
  1. Input path file (rgb)
  2. Output path file (rgb)
  3. Width
  4. Height

To run the example:

./cudadebayer input_file.rgb output_file.rgb width height

For the API usage, you can also use the examples available in our User Manual.




Previous: CUDA_ISP_for_NVIDIA_Jetson_Basics Index Next: Getting Started/Getting the code