Problem

Our client was a post-funding startup with an innovative idea for the application and implementation of embedded video coding. This concept had the potential to transform the way video content was compressed, processed, and delivered.

However, the startup soon ran into a significant hurdle. The existing video encoders available in the market were not customisable enough to suit their unique requirements. The encoders lacked the flexibility necessary to integrate seamlessly with the rest of their pipeline, a vital step for the client’s product to function as intended.

In the world of embedded video coding, achieving a balance between customisation and standardisation is crucial. Video encoders typically adhere to well-established coding standards to ensure compatibility with a wide range of devices and platforms. However, our client needed much more control over the encoder to optimise their product.

At the same time, they did not have control over the decoder side of the process, which meant they had to ensure compliance with existing coding standards. This was a challenge, as the modifications required for the project needed to be done within these constraints.

Another challenge came from the embedded system itself. The system they targeted was equipped with a powerful GPU (graphics processing unit), but the CPU was already overworked. Offloading the video encoding processes to the GPU became critical for performance optimisation.

The GPU had the necessary processing power, clock speed, and capability for high performance. Leveraging this resource efficiently was one of the project’s most important requirements.

At this point, the client realised that their internal team and external contractors, though experienced in video coding, needed additional specialised expertise to meet these unique demands. They needed a partner who could help develop an optimised solution that balanced customisation with adherence to established video compression standards. Enter TechnoLynx, whose expertise in GPU programming, video compression, and embedded systems made us the perfect fit for this challenge.

Solution

TechnoLynx collaborated closely with the client’s team to build a solution that leveraged the GPU’s capabilities while ensuring seamless integration with the rest of the video pipeline. This project was unique in that it required much more hands-on collaboration than many of our typical projects. The client’s team focused primarily on the video coding side of the solution, while TechnoLynx was responsible for GPU-specific optimisations and enhancements to the video encoding process.

To tackle this project, we adopted a modular approach. First, we identified distinct modules within the encoding pipeline and established APIs between them. This allowed both TechnoLynx and the client’s teams to work autonomously while ensuring that all the pieces would come together seamlessly.

Our main focus was on implementing the transform and prediction level functionality within the encoder. These components play a crucial role in determining the efficiency of compression, and therefore, were central to the client’s success.

Starting from a state-of-the-art baseline agreed upon with the client, TechnoLynx embarked on an iterative improvement process. We began by developing the initial version of the transform and prediction modules and tested them to ensure they met performance benchmarks. Once these foundational pieces were in place, we worked closely with the client to fine-tune and optimise the encoding process, making improvements with each iteration.

A key aspect of this project was ensuring that the solution utilised the client’s GPU to its fullest potential. The embedded system’s GPU was more than capable, but we needed to ensure that the encoding tasks were offloaded efficiently without overwhelming the system.

We took full advantage of CUDA, a parallel computing platform and programming model developed by NVIDIA, which allowed us to leverage the power of the GPU for high-performance video encoding tasks. By using CUDA, we could ensure that the GPU handled computationally intensive tasks like transform and prediction, while the CPU remained free to manage other critical system processes.

The client’s embedded system required a solution that could handle complex video compression while maintaining high performance across different platforms. Cross-platform compatibility was an essential requirement, as the system needed to work seamlessly in various GPU environments. TechnoLynx utilised cross-platform C++ and CMake to ensure the solution would function reliably regardless of the operating system or GPU in use.

To enhance compression efficiency, TechnoLynx focused on improving how the encoder handled 3D graphics and video playback. By optimising the transform and prediction algorithms, we were able to deliver better compression without sacrificing video quality. We also implemented features that supported ray tracing and virtual reality (VR), which were critical to the client’s long-term plans. This was particularly important because the project needed to be future-proof, ready to support advanced features like VR and 3D graphics in embedded systems.

TechnoLynx also ensured that the video embed code and playback functionalities worked seamlessly with the client’s hosting service and video player. A crucial part of embedded video coding is the ability to easily integrate videos into websites, which includes optimising video playback and ensuring compatibility across different video hosting services. Our solution was designed to allow the client to easily embed videos on their website, making the most of their dedicated and integrated graphics resources.

In terms of video hosting and playback, refresh rates played a significant role in ensuring a smooth user experience. Our team optimised the refresh rates to ensure that even during high-performance GPU tasks, video playback would remain fluid and responsive. This focus on refresh rates ensured that users could enjoy high-quality video playback with minimal lag or interruptions.

Result

The project culminated in the successful development and delivery of a fully customised encoding solution that met all of the client’s requirements. By utilising the GPU’s capabilities to handle the most computationally intensive aspects of the video encoding process, we ensured that the CPU remained free to manage other tasks, preventing system overload. The solution exceeded the client’s expectations in terms of compression efficiency, enabling them to deliver higher-quality video at lower bitrates.

The improvements to compression efficiency were a direct result of the optimisations we made to the transform and prediction modules. These changes allowed the encoder to handle 3D graphics and video playback with greater ease, making the system more robust for future applications involving virtual reality and ray tracing. The use of ray tracing, in particular, improved how light and shadows were rendered in videos, contributing to a more immersive experience for the end-users.

Our approach to cross-platform compatibility also paid off. The solution performed consistently across different GPU environments and operating systems, ensuring that the client could deploy it widely without running into compatibility issues. By using cross-platform C++ and CMake, we ensured that the encoder would be stable and reliable regardless of the hardware or software setup.

The runtime performance of the solution was another significant achievement. By offloading the most intensive tasks to the GPU, we were able to achieve high performance without overburdening the system’s CPU. The client’s embedded system was able to handle video playback smoothly, thanks to optimised refresh rates and efficient GPU utilisation. This meant that users could enjoy a seamless experience when viewing embedded videos on their website, even during high-demand tasks like 3D graphics rendering or virtual reality playback.

In terms of video embedding, TechnoLynx ensured that the solution was easily integratable with the client’s hosting service and video player. The embed code we developed allowed the client to place videos on their website effortlessly, improving both their marketing materials and overall user experience. The solution worked across a wide range of hosting services and video players, making it versatile and adaptable for future needs.

The project also set the stage for future developments. With a high-performance, GPU-optimised encoding solution in place, the client was well-positioned to explore more advanced applications, including virtual reality and 3D graphics. Our work laid a strong foundation for further innovation, allowing the client to continue pushing the boundaries of what’s possible with embedded video coding.

Additionally, by ensuring that the solution was future-proof, TechnoLynx gave the client the flexibility they needed to scale their operations. Whether they wanted to integrate new features like higher resolution video or experiment with new video codecs, the client now had the tools to do so without needing to overhaul their entire system.

To further optimise the performance of our client’s video encoding solution, TechnoLynx also focused on selecting and optimising the right hardware, particularly regarding the graphics card. When it comes to video processing, the choice of a dedicated graphics card is crucial for achieving high performance and efficiency. Unlike integrated graphics, which share resources with the CPU, dedicated graphics cards come with their own memory and processing power. This allows them to handle more demanding tasks, such as video compression, without affecting the CPU’s performance.

In this project, we worked with discrete GPUs, which are standalone units designed specifically for handling graphically intensive workloads. A discrete GPU was ideal for this project because it could take on the heavy lifting involved in the video encoding process. The client’s embedded system was already equipped with a capable GPU, and by offloading critical tasks such as transform and prediction calculations to this GPU, we were able to free up the CPU for other important operations.

The choice of video card also played an essential role in achieving the high levels of compression efficiency and real-time performance the client required. A high-quality video card can process more frames per second, improve video playback, and manage multiple streams simultaneously. In this case, the GPU’s video card worked seamlessly with our custom code, enabling smooth integration with the rest of the video pipeline.

This project proved that when dealing with complex embedded systems and demanding applications like video encoding, the right choice of hardware—especially the use of dedicated graphics cards and discrete GPUs—can significantly enhance performance. The optimisation of these components allowed us to meet the client’s ambitious goals, ensuring the video encoding system was both robust and efficient.

Conclusion

This project was a clear demonstration of TechnoLynx’s expertise in GPU programming, video compression, and embedded systems. By using state-of-the-art technology, we were able to deliver a customised solution that met the client’s specific needs while ensuring high performance and flexibility. Our close collaboration with the client’s team, combined with our modular approach, allowed us to tackle the project’s unique challenges head-on and deliver a solution that exceeded expectations.

The success of this project highlights the importance of GPU optimisation in embedded video coding. By offloading intensive tasks to the GPU, we were able to achieve higher performance without overwhelming the system’s CPU. This approach not only improved compression efficiency but also ensured smooth video playback and seamless integration with the client’s hosting service.

As the client moves forward, they are well-equipped to continue innovating in the field of video coding. With a high-performance, future-proof solution in place, they can explore new applications like virtual reality, ray tracing, and 3D graphics with confidence. TechnoLynx’s work on this project has laid a strong foundation for future growth and success.

In summary, this project demonstrated the power of collaboration, innovation, and technical expertise. By working closely with the client and leveraging the full capabilities of the GPU, TechnoLynx was able to deliver a solution that not only met the client’s immediate needs but also provided a platform for future development and success.

Image credits: Freepik