Video Stitching for Embedded Systems
Video Stitching for Embedded Systems
Developer guide for RidgeRun video stitching on embedded systems.
What is RidgeRun Video Stitcher?
RidgeRun's Video Stitching for Embedded Systems solution combines multiple synchronized camera feeds into a single, continuous panoramic or 360° video stream using calibrated image alignment and blending. Designed for NVIDIA Jetson, Qualcomm Dragonwing IQ-9075, and NXP i.MX95, it enables GPU-accelerated, multi-camera video stitching for robotics, autonomous vehicles, surveillance, and 360° camera systems. Built on LibPanorama, the solution supports fisheye and rectilinear camera inputs, integrates with GStreamer pipelines, and provides OpenGL acceleration across supported platforms, with an additional CUDA backend for NVIDIA Jetson. On the Jetson AGX Orin, benchmarks demonstrate real-time stitching of three 4K video inputs at 30 FPS or higher, depending on the processing backend and system configuration.
RidgeRun Video Stitching demonstration.
Explore the guide
This guide explains how to build, configure, and integrate RidgeRun's Video Stitching solution to create panoramic and 360° video from multiple cameras on NVIDIA Jetson, Qualcomm Dragonwing IQ-9075, and NXP i.MX95. It covers installation and setup, the LibPanorama architecture, CPU and GPU processing backends (OpenGL and CUDA), camera calibration for rectilinear and fisheye lenses, and real-time GStreamer pipeline integration using the rrstitcher and rrglstitcher elements. Developers will also find practical multi-camera stitching examples, troubleshooting guidance, and performance benchmarks comparing frame rates across embedded platforms, input resolutions, camera configurations, and processing backends.
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 LibPanorama-based Stitcher has been tested on:
- NVIDIA Jetson AGX Orin and Jetson Orin Nano
- Qualcomm Dragonwing IQ-9075
- NXP i.MX95
OpenGL provides the cross-platform GPU processing path. CUDA is a Jetson-specific backend available with a compatible LibPanorama build; it does not provide the original GstCuda/NVMM integration in the GStreamer elements documented here. See Architecture and Getting Started for backend requirements.
The performance summary below includes AGX Orin, Dragonwing IQ-9075, and i.MX95.
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 table shows rounded OpenGL stitching throughput with three synthetic 1920 × 1080 RGBA inputs. rrstitcher uses system-memory input; rrglstitcher uses GstGLMemory input.
| Platform | rrstitcher |
rrglstitcher |
|---|---|---|
| NVIDIA Jetson AGX Orin | 85 FPS | 99 FPS |
| Qualcomm Dragonwing | 49 FPS | 57 FPS |
| NXP i.MX95 | 15 FPS | 34 FPS |
These figures measure stitching throughput, not a complete camera-to-display frame rate. The synthetic benchmark excludes camera capture, decoding, encoding, and display. AGX Orin results were measured in MAXN mode with dynamic clocks. See Performance for the full test configuration, methodology, and results at other resolutions and camera counts.
Related documentation
Image Stitching for NVIDIA Jetson documents the former CUDA/GstCuda Stitcher and provides background on image stitching concepts. Our RidgeRun Video Stitching 2.0: OpenGL Support for Jetson, Dragonwing, and i.MX95 blog post provides a quick overview of RidgeRun's new Video Stitching solution. Visit the RidgeRun Store to learn more about the RidgeRun Video Stitching license.