CUDA ISP for NVIDIA Jetson Basics

From RidgeRun Developer Connection
Jump to: navigation, search


  Index Next: Getting_Started/Evaluating_the_CUDA_ISP






Foundations

CUDA ISP offers an alternative for image signal processing. The key features are:

  • Processing done by GPU with NVIDIA's NPP library and CUDA.
  • Compatible with other CUDA applications
  • Reduce usage of CPU processing.
  • Compatible with x86 architecture and discrete GPUs.

Capabilities

The following diagrams shows the different combined capabilites CUDA ISP can perform.




Error creating thumbnail: Unable to save thumbnail to destination





Shifting

The shifting algorithm receives a number of bits that the information wants to be shifted. Then the algorithm shift right the number of bits given. This algorithm was implemented using the NPP library from NVIDIA. The following image shown an example on how the shifting algorithm works.


CUDA ISP library




Debayering

Debayering is a fundamental part of digital image processing whenever using a color camera in RAW mode. It consists of a process in which an image gets decoded from a color matrix into a full-resolution color image. Most color images are made using one-shot color cameras that produce a color image in one pass. As opposed to its monochrome counterpart in which red, green, and blue signals are measured at each point of the image, on one-shot color cameras, each pixel gets only one color. The way this information is interpreted by the computer is by using some variant of the Bayer Matrix, which is simply a formula that describes the pixel filter sequence. Consequently, debayering is needed to obtain the color image. For this purpose, several interpolation algorithms have been developed over the years to achieve such conversion, by averaging the values of the closes surrounding pixels to determine the color of a pixel. The following image demonstrate the effect on a bayer image by applying the debayering algorithm.




CUDA ISP library




Auto white balance

The white balance consists of adjusting colors so that the image looks more natural, basically, taking control over the color temperature at the image and get the picture as similar to the scene at the moment that the picture was taken. This behavior is done by our brain when we see things so we see the colors correctly, but on the cameras, there are a lot of components that can affect the light and colors of the image. it also depends on the indoors and outdoors conditions. CUDA ISP AWB algorithm has the ability to improve the color on the images using a white-balance algorithm implemented using NPP library from NVIDIA.





Error creating thumbnail: Unable to save thumbnail to destination




Color space conversion

Color space conversion consists of translating a specific color representation into another. Given that a color space is simply a way to describe colors with numbers, each one has a specific range of colors it can represent, in a way that is fit for its own set of applications. CUDA ISP provides a color space conversion from RGB to I420 and vice versa. RGB color space is mostly used for displays, whereas YUV (I420) is a color space typically used for color image/video processing and/or compression, given its reduced bandwidth for chroma components without perceptual distortion.






Error creating thumbnail: Unable to save thumbnail to destination








  Index Next: Getting_Started/Evaluating_the_CUDA_ISP