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

From RidgeRun Developer Connection
Jump to: navigation, search
Line 2: Line 2:
  
 
<noinclude>
 
<noinclude>
{{CUDA ISP for NVIDIA Jetson/Head|previous=Getting Started|next=Getting the code|metakeywords=|metadescription=}}
+
{{CUDA ISP for NVIDIA Jetson/Head|previous=Getting Started|next=Getting Started/Getting the code|metakeywords=|metadescription=}}
 
</noinclude>
 
</noinclude>
  

Revision as of 10:01, 31 March 2023



Previous: Getting Started 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.: TX1, TX2, 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 CUDAISP

RidgeRun will provide you with a tarball with the following contents:


├── usr
│    └── local
│        ├── include
│        │   └── libcudaisp
│        │       ├── buffer.hpp
│        │       ├── colorspaceparams.hpp
│        │       ├── cudabufferparams.hpp
│        │       ├── cudatype.hpp
│        │       ├── debayerparams.hpp
│        │       ├── format.hpp
│        │       ├── ialgorithm.hpp
│        │       ├── ibackend.hpp
│        │       ├── ilogger.hpp
│        │       ├── iparams.hpp
│        │       ├── isettings.hpp
│        │       ├── isp.hpp
│        │       ├── runtimeerror.hpp
│        │       ├── shiftparams.hpp
│        │       └── whitebalanceparams.hpp
│        └── lib
│            └── aarch64-linux-gnu / x86_64-linux-gnu
│                ├── gstreamer-1.0
│                │   └── libgstcudaisp.so
│                └── libcudaisp.so
└── examples 
    ├── bin
    |   ├── cudadebayer
    |   ├── cudashift
    |   └── cudawhitebalancer
    └── src
        ├── cudadebayer_example.cpp
        ├── cudashift_example.cpp
        ├── cudawhitebalancer_example.cpp
        ├── framereader.cpp
        ├── framereader.hpp
        └── Makefile

After decompressing the files, please, copy the contents to the target machine:

sudo cp -r usr/$(uname -m)-linux-gnu/* /usr/$(uname -m)-linux-gnu/

# Export the GStreamer plugin-path
export GST_PLUGIN_PATH=/usr/local/lib/$(uname -m)-linux-gnu/gstreamer-1.0

Testing CUDA ISP

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:

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.




  Index