ARM Announces Mali Egil Video Processor: VP9 Encode & Decode For Mobile
Earlier this month we took a look at ARM’s new Mali-G71 GPU. Based on the company’s equally new Bifrost architecture, Mali-G71 marks a significant architectural change for the Mali family, incorporating a modern thread level parallelism (TLP) centric execution design. The Mali GPU is in turn the heart of ARM’s graphics product stack – what ARM calls their Mali Multimedia Suite – but in practice it is not a complete graphics and display solution on its own.
As part of their IP development process and to allow SoC integrators to mix and match different blocks, the Mali GPU is only the compute/rendering portion of the graphics stack; the display controller and video encode/decode processor are separate. Splitting up these blocks in this fashion gives ARM’s customers some additional flexibility, allowing something like Mali-G71 to be mixed with other existing controllers (be it ARM or otherwise), but at the same time these parts aren’t wholly divorced within ARM. Even though they’re separate products, ARM likes to update all of the parts of their graphics stack in relative lockstep. To that end, with the Mali GPU core update behind them, this week ARM is announcing an updated video processor, codenamed Egil, to replace the current Mali-V550 processor.
The Mali-V550 video processor was launched back in October 2014, and these days is typically paired with Mali-T8xx series GPUs. V550 introduced basic HEVC support, and the forthcoming Egil processor will in turn build off of that. From a codec standpoint, the two principle additions to Egil are further fleshed out encode support for HEVC, and full encode/decode support for VP9.
On the encode side, V550 implemented a form of HEVC that ARM politely calls HEVC Lite, which is not too far removed from doing limited HEVC encoding with an H.264 encoder. HEVC Lite lacked support for HEVC B-frames, and overall while it generated HEVC compliant streams, it couldn’t achieve the same quality/compression levels as a full HEVC encoder. To that end, Egil updates the Mali video processor to support full HEVC encoding, offering not just Main profile (8bpc) support, but Main10 profile (10bpc) support as well. This, interestingly enough, is something V550 could already decode, but now ARM finally has a video processor that can encode it as well.
As for VP9, Egil adds both encode and decode support for the codec. VP9 has not seen quite the same level of usage as say H.264, but Google in particular favors it for their streaming services when it’s available, as it’s a royalty-free codec. This latter point is especially important as the patent holders behind HEVC have continued to struggle to develop a simple licensing scheme, which has further pushed ARM and other vendors towards VP9 and other royalty-free codecs. Egil in turn offers support for both Profile 0 (8bpc) and Profile 2 (10bpc) video, encoding and decoding. I suspect the decoding abilities will be the more useful feature there, but VP9 hardware encoding is still relatively new, so it’s hard to say how much we’re going to see it used.
On a technical side note, after talking with ARM’s engineers, they seem especially proud of their encoding implementation for VP9’s reference frame scaling capability. Reference frame scaling allows the resolution of a stream to be altered on the fly – by scaling the resolution of the inter frames – with a goal of allowing for quick bitrate scaling of a stream. According to ARM’s engineers, doing reference frame scaling in real time in a low power hardware encoder was a Very Hard™ task that they’re quite proud they were able to get working.
Moving on, at an implementation level, Egil retains the same overall architecture as V550 and other ARM video processors. Which is to say that ARM uses a multi-core design from 1 to 8 cores, to allow SoC integrators to scale Egil’s size and performance to meet their needs. The individual cores are essentially small processors on their own, implementing a very rigid DSP to handle the necessary non-fixed functionality.
ARM says that a single core built on TSMC’s 16nm FinFET process and clocked at 800MHz will be enough for 1080p80 encode/decode, with a 6 core design scaling up to 4Kp120. For that reason ARM likes to tout that Egil is capable of exceeding what any mobile device needs – and indeed, I expect any large configurations would be used in something more along the lines of a TV – but there is still a need to balance Egil’s size and power requirements with mobile SoC design needs. Though it’s also worth noting that since Egil supports simultaneous video encoding and decoding (something used in video conferencing, for example), the total video processing requirements for a device can be a bit higher than they would initially seem.
Wrapping things up, Egil is expected to be released later this year. And while it is not necessarily tied to the hip with Mali-G71 (especially since these designs aren’t being released simultaneously) I’d certainly expect Egil to eventually show up paired with a G71 in a future SoC.