GStreamer OpenCL Bayer to RGB converter

From RidgeRun Developer Connection
Revision as of 18:45, 9 August 2022 by Dsoto (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Note: This product is deprecated !

We recommend to take a look at gst-isp instead. It offers debayering accelerated with OpenCL.

Overview

This wiki describes the OpenCL accelerated GStreamer Bayer to RGB conversion element, along with benchmarking information and example pipelines. The GStreamer plug-in allows you to leverage the processing power of the IMX6 GP-GPU to perform real-time Full HD Bayer to RGB conversion. It adds the capability to link sensors that deliver Bayer content into your pipeline without compromising real time performance. The OpenCL and GStreamer integration enable a zero-memcopy buffer flow so data can be delivered between the different hardware accelerators in the platforms. To avoid memory copies, the upstream GStreamer element must put the bayer frame directly into GPU memory. Another way of stating this is the upstream element (likely the video capture element) needs to have user pointer support.

  • Bayer to RGB
  • No memory copies
  • Friendly with other HW accelerators
  • GStreamer 1.X

Sample pipelines

These are some sample pipelines using the bayer to rgb plugin.

  • 640x480 videotestsrc in
gst-launch-1.0 videotestsrc is-live=true ! 'video/x-bayer,width=640,height=480,framerate=30/1,format=bggr' ! \
queue ! ocldebayer ! 'video/x-raw,width=640,height=480,format=RGBA'  ! queue ! imxg2dvideosink sync=false -v
  • 720p from file
gst-launch-1.0 filesrc blocksize=921600 location=720p-bayer.bggr ! 'video/x-bayer,width=1280,height=720,framerate=30/1,format=bggr' ! \
queue ! ocldebayer ! 'video/x-raw,width=1280,height=720,format=RGBA'  ! queue ! imxg2dvideosink sync=false -v
  • Camera loopback
gst-launch-1.0 v4l2src ! 'video/x-bayer,width=1920,height=1080,framerate=30/1,format=bggr' ! \
queue ! ocldebayer ! 'video/x-raw,width=1920,height=1080,format=RGBA'  ! queue ! imxg2dvideosink sync=false -v