CUDA ISP for NVIDIA Jetson: GStreamer usage

From RidgeRun Developer Connection
< CUDA ISP for NVIDIA Jetson‎ | Examples
Revision as of 16:39, 17 March 2023 by Nmorua (talk | contribs) (cudadebayer)
Jump to: navigation, search


  Index  






General

CUDA ISP provides GStreamer plugins that facilitate the usage of the library with GStreamer pipelines. CUDA ISP provides three different GStreamer elements for image signal processing. to The three elements are:

  • cudashift
  • cudadebayer
  • cudaawb

In the following sections, you can see the characteristics of the elements and examples of how to use them. You can see more information about the algorithms these elements apply in CUDA ISP Basics

GStreamer Elements

cudashift

This element applies the shifting algorithm. For more information about the element properties and capabilities, check here: cudashift element

The following pipeline receives a bayer 10 image with 4k resolution from a camera sensor, applies a shifting with a value of 5 and outputs a bayer 8 image.

gst-launch-1.0 -ve v4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, format=rggb' ! cudashift shift=5 ! fakesink




Error creating thumbnail: Unable to save thumbnail to destination




cudadebayer

This element applies the debayering algorithm. For more information about the element properties and capabilities, check here: cudadebayer element

This element has two output options: RGB or I420. Next, you will see examples on how to use the cudadebayer element.

The following pipeline receives a bayer 10 image with 4K resolution from a camera sensor and outputs an RGB image.

gst-launch-1.0 -ve v4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=3840, height=2160' ! cudadebayer ! fakesink

This next pipeline receives a bayer 10 image with 4K resolution and outputs an I420 image. You can see that source caps were added to choose which output format you desire,in this case it would be I420.

gst-launch-1.0 -ve v4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=3840, height=2160' ! cudadebayer ! 'video/x-raw, format=I420' ! fakesink

This next pipeline receives a bayer 10 image with 4K resolution and outputs an RGB image with shifting added. In this case the output format is RGB.

gst-launch-1.0 -ve v4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=3840, height=2160' ! cudadebayer shift=5 ! 'video/x-raw, format=RGB' ! fakesink




Error creating thumbnail: Unable to save thumbnail to destination




cudaawb

This element applies de auto-white balance algorithm. It allows the following image formats:

  • Input
    • RGB
    • I420
  • Output
    • RGB
    • I420

The following pipeline receives a bayer10 image with 4K resolution from a camera sensor and outputs an RGB image after applying the auto-white balance algorithm. This element requires an RGB image input. So, when using a camera sensor, before using the cudaawb element, we should add the cudadebayer element to obtain the RGB image that the AWB element will use as input.

gst-launch-1.0 -ve v4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=3840, height=2160' ! cudadebayer ! cudaawb ! fakesink




Error creating thumbnail: Unable to save thumbnail to destination




The following pipeline receives a bayer10 image with 4K resolution from a camera sensor and outputs an I420 image after applying the auto-white balance algorithm.

gst-launch-1.0 -ve v4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=3840, height=2160' ! cudadebayer ! cudaawb ! 'video/x-raw, format=I420' ! fakesink




Error creating thumbnail: Unable to save thumbnail to destination




Use all!

This pipeline receives a bayer 10 image with 4K resolution and outputs a RGB image, using the three elements.

gst-launch-1.0 -ve v4l2src io-mode=userptr ! 'video/x-bayer, bpp=10, width=3840, height=2160' ! cudashift shift=5 ! cudadebayer ! cudaawb ! fakesink




Error creating thumbnail: Unable to save thumbnail to destination






  Index