Video Stitching for Embedded Systems
🚧 Documentation is under development
The Video Stitching for Embedded Systems guide is currently under active development. Some sections may be incomplete or change without notice.
Questions? Contact RidgeRun or email to support@ridgerun.com.
Video Stitching for Embedded Systems
Developer guide for RidgeRun video stitching on embedded systems.
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.
Explore the guide
Use the table of contents to navigate through setup, architecture, calibration, GStreamer integration, performance, and examples.
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
rrstitcherandrrglstitcherelements. - System, OpenGL, and CUDA processing backends through LibPanorama, depending on the target platform.
- System-memory RGBA processing with
rrstitcher. - Direct OpenGL texture processing using
GstGLMemorywithrrglstitcher. - 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.
rrglstitcherrequires 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 | rrstitcherOpenGL |
rrglstitcherOpenGL |
|---|---|---|
| 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.