Image by alexeyzhilkin on Freepik
Video content overlays are crucial to inform viewers about events that are happening inside of the video stream. They provide a way to display important information without distracting from the video itself. This makes them ideal for a variety of use cases, including:
Sports match scores: Video overlays can be used to display the score, the time remaining in the game, and the names of the players on the field. This information can be helpful for viewers who are trying to follow the game, especially if they are watching on a small screen or if the game is being played in a noisy environment.
Drone recording controls: Video overlays can be used to provide drone pilots with information such as the drone's altitude, speed, and battery level. This information can help pilots to fly the drone safely and effectively, and to capture the best possible footage.
Security information in video surveillance: Video overlays can be used to display information such as the date and time, the names of the people in the video, and any alarms that have been triggered. This information can help security personnel to monitor the area and respond to any incidents quickly and efficiently.
At RidgeRun, we know how important it is to perform content overlaying by taking advantage of the platform resources, in particular, having minimum impact on the systems so that other applications are unaffected in performance. Because of that, RidgeRun has three content overlay solutions to cope with the exigencies of the market in embedded systems:
The Fast Embedded Overlay is the simplest solution. It renders texts and images on a video stream using Cairo and CPU acceleration. It is adequate for simple information display on systems with scarce computational resources.
Figure 1. RidgeRun Fast Embedded Overlay
The QtOverlay allows more sophisticated overlays, including animations, styles and dynamic content. It utilizes Qt as interface manager and QML as the content markup language. One of the strengths of QtOverlay is its GPU acceleration, capable of running on x86, NXP i.MX and NVIDIA Jetson platforms with the minimum impact possible.
Figure 2. RidgeRun QtOverlay
Our HTML Overlay solution is quite similar to QtOverlay, using the GPU as much as possible to lower the CPU consumption and allow other applications to run smoothly. However, the key difference is that it is possible to place contents described in HTML, CSS and Javascript with all the power of a website on top of a video stream. The OpenGL acceleration allows it to run on a vast variety of platforms, including x86, NVIDIA Jetson and the NXP i.MX 8.
Figure 3. HTML Overlay results
With various video overlay options available, it can be difficult to decide which solution is right for you. To help you make the best decision, we've created a comparison table that highlights the key features and benefits of each option.
Table 1. Comparison char
Fast Embedded Overlay | QtOverlay | HTML Overlay |
CPU-only | GPU-accelerated | GPU-accelerated |
Basic shapes: two texts, a logo and a date. | Complex contents in QML: fonts, texts, images, shapes, animations. | Complex graphics in local or remote HTML: fonts, texts, images, shapes, animations. |
Content update matching the framerate. | Content update matching the framerate. | Content update asynchronous at a different rate (<= 30 Hz). |
Dynamic contents through GStreamer properties | Dynamic contents using QML attributes through GStreamer properties | Dynamic contents from the web using JavaScript through the web service |
Focus on consuming low resources. | Focused on speed and balance. | Focused on the complexity of the contents. |
YUV input formats | RGBA input formats (NV12 in Jetson) | RGBA input formats |
Optimized for small devices with CPU only | Optimized for x86, NVIDIA Jetson and NXP i.MX | Optimized for x86, NVIDIA Jetson and NXP i.MX |
Low computational resources | Balanced computational resources | Computational resources proportional to opening a webpage |
Dependencies are under LGPLv2 and permissive licenses. | Dependencies are under LGPLv2. Qt components are either under LGPLv2, LGPLv3 or permissive. | Dependencies are under LGPLv2 and permissive licenses. |
To choose the right solution, consider the following factors:
Complexity of your overlay: Fast Embedded Overlay is a good choice for simple overlays. At the same time, QtOverlay or HTML Overlay is better for more complex overlays.
Performance requirements: QtOverlay is the best option for top performance, as it is GPU-accelerated and offers platform-specific optimizations, apart from having a minimum footprint at the computational level. Moreover, QtOverlay supports bigger image dimensions.
Development requirements: HTML Overlay is the best option for creating complex or dynamic overlays, as it allows you to use HTML, CSS, and JavaScript.
Zero copy support: Both HTML Overlay and QtOverlay support zero-copy CPU/GPU via texture mapping thanks to the support of NVIDIA NVMM (QtOverlay) and Vivante extensions (HTML Overlay and QtOverlay).
If you are wondering about choosing Fast Embedded Overlay, HTML Overlay or QtOverlay, you can try it by asking for an evaluation version of both RidgeRun products before purchasing by contacting us.
For technical questions or any service inquiry, please send an email to support@ridgerun.com or send a message through https://www.ridgerun.com/contact.