Background
V-Nova is a company known for high-quality video compression and decoding solutions. Their MPEG-5 LCEVC codec was already running well on AMD and NVIDIA GPUs. But they needed better performance on Apple devices.
The main challenge was that their iOS app used only CPU-based decoding. The result was less-than-ideal performance, especially on iPhones, iPads, and Apple TV.
The company wanted to support the LCEVC external video decoder framework with GPU acceleration for Apple’s Metal environment. The main goal was to lower CPU usage, keep performance high, and ensure the solution worked with AV Player-based iOS apps. Apple devices are popular among content creators. So, fixing this issue meant real value for V-Nova’s users.
Problem
V-Nova had an existing GPU implementation that worked great on non-Apple platforms. On iOS, though, decoding still depended only on the CPU. There was no GPU support via Metal shaders.
This created a gap in performance. Under heavy loads, the CPU-based decoder struggled. The system could not scale well with high-resolution video or fast frame delivery.
Video decoding involves many steps. These include reading input frames, handling colour images, and applying pixel processing for clear output. The performance gap became more obvious with real-time playback.
The original design also limited frame handling. The system could not use the GPU’s power for fast tasks like image processing. This was due to everything happening on the CPU. This meant longer frame times, higher latency, and uneven playback during intensive tasks.
Solution
The TechnoLynx team built a GPU-based solution using Apple’s Metal shader language. The goal was to move heavy decoding tasks away from the CPU. We kept compatibility with V-Nova’s external decoder framework and ensured support across iPhone, iPad, and Apple TV.
We began by looking at how the GPU could handle tasks like pixel processing and frame decoding better than the CPU. We focused on efficient image processing techniques that would use GPU power without draining battery too quickly.
During testing, we noticed that running the GPU in short bursts worked better than keeping it always active. Letting the GPU work at full load briefly and then rest helped it manage power and heat more effectively. This gave us both high performance and better energy use.
To improve how frames were handled, we used a producer-consumer model. This means the system adds frames to a queue. Another thread picks up those frames and processes them using the GPU.
This approach made sure that the GPU and CPU worked in parallel. It kept the system smooth and responsive, even under high load.
We also built a set of Metal GPU kernels. By combining many operations into a single pass, we reduced the number of memory reads and improved GPU cache usage.
Another improvement was precompiling different kernel variants. This meant we could choose the right kernel at run-time without delays. It also gave us flexibility to support different data formats later if needed.
Memory layout was another focus. We designed the data flow to keep memory access simple and efficient. This helped reduce the load on the GPU’s memory controller and made the processing even faster.
Result
The results were clear and measurable. Our new GPU-based implementation using Metal showed up to 25% lower CPU usage in most conditions. This meant other tasks could run smoothly, and the system stayed more balanced.
Under normal conditions, video playback performance was equal to the original. But when we simulated heavy loads—like fast frame changes or higher resolutions—the Metal-based solution outperformed the original by about 38%. It handled more frames in less time, which means fewer dropped frames and smoother playback.

Power use stayed mostly the same. But because the GPU finished tasks faster and rested more often, the overall system heat stayed lower. This helped reduce battery strain, which matters a lot on mobile devices like the iPhone and iPad.
The most important result was scalability. When video playback needed more processing power, the system could respond better than before. It didn’t freeze or lag. It simply kept going.
This gives users a much better experience, even when playing large files or working with high frame rate content.
By using GPU power for pixel processing, image decoding, and frame management, TechnoLynx helped V-Nova bring their software to a new level. It also gave them a wider reach among users who prefer Apple hardware.
Final Thoughts
This project showed how GPU-based image processing and video decoding can improve user experience on Apple devices. With smart use of Metal shaders, we moved tasks from CPU to GPU. This helped with performance, responsiveness, and power handling.
The changes made a real difference, especially under high demand. It also gave the app more room to grow and support future formats or devices.
At TechnoLynx, we focus on practical solutions that work well and are easy to maintain. For V-Nova, this meant a faster, smoother, and more efficient video decoder. For their users, it meant better performance with no compromise on quality.
Image credits: Freepik