• Michael Gruner

Video Stabilization for Embedded Systems

A lightweight video stabilization library for embedded systems


RidgeRun's Video Stabilization for Embedded Systems is a software library that aims to provide efficient video stabilization solutions for resource constrained systems. The library uses different hardware units available in the platform to ensure real-time performance on a variety of small platforms.

Broadly, stabilizers may be broke down in three stages:

  1. Motion estimation: approximating the camera movement

  2. Motion compensation: removing undesired movement

  3. Image warping: transforming the image to compensate for undesired movement.

From these, the first and the last stages are known to be very resource intensive. For the motion estimation, we make use of the HW accelerated H.264 encoder and extract the motion vectors. Most modern platforms, even though small, are capable of encoding at 30fps. These motion vectors are aggregated to estimate the overall camera movement.


The camera movement is then smoothed out to eliminate undesired perturbations. This motion correction is applied to the original image by using OpenGL, which again may operate in real-time in the mentioned platforms.


The following image shows a very general overview of the process:

Our initial v0.1.0 pre-release includes:

  • Support for x86, imx6*, imx8*, and snapdragon* platforms (*in progress).

  • HW accelerated motion estimation via H264 motion vectors.

  • Motion smoothing using ultra-low latency filter.

  • Image warping via OpenGL.

  • GStreamer plugin for easy pipeline integration

Stay tuned for updates and learn more in our developer's wiki.


Purchase directly from our store.


Technical questions? : support@ridgerun.com

Want to know more about the project? : contactus@ridgerun.com

43 views0 comments

Recent Posts

See All