It’s been almost two years since Microsoft’s EdgeHTML rendering engine was discontinued and the tech giant surprised everyone by announcing it was shifting Edge to Google’s ubiquitous and open-source Chromium. By switching to Chromium, Microsoft said it could better contribute to the web and support the constantly evolving web standards.
This shift has ensured that Windows 10 users wouldn’t come across the occasional glitches when using Microsoft Edge. In addition, Microsoft has also started actively contributing to the Chromium Gerrit with both new features and bug fixes.
The underlying multimedia technology in legacy Microsoft Edge is Media Foundation (introduced in Vista), which is currently missing in Chromium platform. Fortunately, Microsoft has confirmed that it is working on ‘Media Foundation‘ for the open-source project and support will land soon.
As part of the Media Foundation development, Microsoft is now working on “zero-copy video capture” implementation that will leverage GPU memory buffers on Windows 10 to reduce excessive power usage.
The camera capture path for Windows in Chromium is a significant contributor to power usage in WebRTC video conferencing scenarios and the main causes of excessive power usage are the copy and conversion operations.
On Windows 10, NV12 is the preferred format for YUV 4:2:0 video frames. Additionally, with most camera drivers on recent hardware, the frames are initially populated in GPU textures (D3D11 textures).
The current implementation in Chromium results in the video frames being copied/converted multiple times, which contributes to excessive power and performance issues when you use Chrome to stream videos.
Microsoft claims it can achieve zero-copy video capture on Windows by leveraging GPU memory buffers.
“The number of copies can be minimized by leveraging the existing GPU memory buffer infrastructure in Chromium,” Microsoft said.
With this approach, there is a single copy from the NV12 D3D11 texture to a VideoCaptureBufferPool NV12 texture, thus reducing the excessive resources usage.