Jetson Inference
DNN Vision Library

CUDA utilities and image processing kernels. More...

Modules

 Color Mapping
 Defines various colormaps and color mapping functions.
 
 Color Conversion
 Colorspace conversion functions for various YUV formats, RGB, BGR, Bayer, and grayscale.
 
 Cropping
 Crop an image to the specified region of interest (ROI).
 
 Drawing
 Drawing basic 2D shapes using CUDA.
 
 Error Checking
 Error checking and logging macros.
 
 Fonts
 TTF font rasterization and image overlay rendering using CUDA.
 
 Memory Management
 Allocation of CUDA mapped zero-copy memory.
 
 Normalization
 Normalize the pixel intensities of an image between two ranges.
 
 Overlay
 Overlay images and vector shapes onto other images.
 
 Pixel Filtering
 CUDA device functions for sampling pixels with bilinear filtering.
 
 Point Cloud
 3D point cloud processing and visualization.
 
 Resize
 Rescale an image to a different resolution.
 
 Warping
 Various image warps and matrix transforms.
 

Functions

__device__ __host__ int iDivUp (int a, int b)
 If a / b has a remainder, round up. More...
 

Detailed Description

CUDA utilities and image processing kernels.

Function Documentation

◆ iDivUp()

__device__ __host__ int iDivUp ( int  a,
int  b 
)
inline

If a / b has a remainder, round up.

This function is commonly using when launching CUDA kernels, to compute a grid size inclusive of the entire dataset if it's dimensions aren't evenly divisible by the block size.

For example:

const dim3 blockDim(8,8); const dim3 gridDim(iDivUp(imgWidth,blockDim.x), iDivUp(imgHeight,blockDim.y));

Then inside the CUDA kernel, there is typically a check that thread index is in-bounds.

Without the use of iDivUp(), if the data dimensions weren't evenly divisible by the block size, parts of the data wouldn't be covered by the grid and not processed.