Video Stitching for Embedded Systems

RidgeRun Video Stitching combines multiple camera views into a single panoramic image, providing a wider field of view for embedded applications.

Built on top of LibPanorama, the solution provides a standalone C++ library and GStreamer integration, with support for CPU and GPU processing backends.

Partner logo
Technology alliance
▶
Video stitching demo coming soon.

Purpose and supported use cases

Video Stitching for Embedded Systems is intended for applications where multiple overlapping cameras are used to obtain a wider field of view. The product takes the calibrated camera views and combines them into a single panoramic output that can be displayed or used by other stages in a video pipeline.

Typical use cases include panoramic video, surveillance, robotics, teleoperation, and autonomous systems. It is a good fit for fixed multi-camera setups where the camera positions are known and can be calibrated beforehand.

Supported platforms

The Stitcher currently supports the following embedded platforms:

  • NVIDIA Jetson — CUDA and OpenGL processing through LibPanorama.
  • Qualcomm Dragonwing — OpenGL processing through LibPanorama.
  • NXP i.MX95 — OpenGL processing through LibPanorama.

Performance has been measured across different resolutions and camera counts on these platforms. See the Performance section for the complete benchmark results.

Supported capabilities and limitations

Capabilities

  • Multi-camera stitching using a predefined camera calibration.
  • Standalone C++ API.
  • GStreamer integration through the rrstitcher and rrglstitcher elements.
  • System, OpenGL, and CUDA processing backends through LibPanorama, depending on the target platform.
  • System-memory RGBA processing with rrstitcher.
  • Direct OpenGL texture processing using GstGLMemory with rrglstitcher.
  • Automatic panorama dimensions based on the calibration and input resolution.

Limitations

  • A valid calibration is required before stitching the camera inputs.
  • All GStreamer inputs must use the same resolution and framerate.
  • The input order must match the camera indices defined by the calibration.
  • rrglstitcher requires GStreamer GL and a LibPanorama build with OpenGL support.
  • Available GPU backends depend on the capabilities of the target platform.
  • Image quality depends on camera overlap, placement, synchronization, and calibration accuracy.
  • Memory requirements increase with the input resolution, panorama size, and number of cameras.

Performance at a glance

The following table shows representative results using three 1920x1080 inputs. FPS values are rounded to the nearest whole number.

Platform rrstitcher
OpenGL
rrglstitcher
OpenGL
NVIDIA Jetson AGX Orin 85 FPS 99 FPS
Qualcomm Dragonwing 49 FPS 57 FPS
NXP i.MX95 15 FPS 34 FPS

These numbers show stitching throughput only and are intended as a quick platform comparison. Performance changes with the resolution, number of inputs, backend, and panorama dimensions. See Performance for the complete results and test methodology.

Related documentation

To check how the stitching algorithm works and documentation of the previous NVIDIA CUDA-based version of the Stitcher, see Image Stitching for NVIDIA Jetson.