CUDA ISP for NVIDIA Jetson: API usage
CUDA ISP for NVIDIA Jetson |
---|
CUDA ISP for NVIDIA Jetson Basics |
Getting Started |
User Manual |
GStreamer |
Examples |
Performance |
Contact Us |
General
CUDA ISP provides several algorithms to process raw image data from a camera sensor in a variety of ways.
Here we illustrate a simple example that involves all the basic algorithms. This example takes a raw BAYER10 image, converts it to a BAYER8 image, then converts it to a RGB image, then applies automatic white balancing on the image, then converts it to I420 format. A simple process of this type might be used to encode camera information into a video file or a network stream.
Backend
We first create a backend object. The backend object provides factories to create algorithms and buffers. We specify CUDA as the desired backend type.
auto backend = rr::IBackend::Build(rr::kCUDA);
Creating the algorithms
The creation of any given algorithm requires a single function call:
auto shift = backend->CreateAlgorithm(rr::kShift); auto debayer = backend->CreateAlgorithm(rr::kDebayer); auto white_balancer = backend->CreateAlgorithm(rr::kWhiteBalancer); auto color_space_converter = backend->CreateAlgorithm(rr::kColorSpaceConverter);
The shift object converts BAYERXX formats (BAYER10, BAYER12, BAYER14, or BAYER16) into a BAYER8 format. Each pixel in a BAYERXX format takes up 16 bits of information, but with the appropiate rightwards bit shift, the 8 most significant bits can be placed in the 8 least significant bit positions of the pixel memory. The shift object then completes the BAYERXX to BAYER8 conversion by only returning the 8 least significant bits of each pixel.
The debayer object converts BAYER8 to either RGB or RGBA.