AV1 For WebRTC - Part 2
In part 2 we update the results comparing our Aurora1 AV1 encoder with x264 and add OpenH264 and libaom-RT.
Codec implementations and their performance, quality, and efficiency vary, still, there is nothing they can do to increase the coding tools available. An advanced codec will always provide higher compression efficiency and better operational modes than a legacy standard.
As Chrome 90 Beta has fully integrated AV1 with WebRTC, many video conferencing platforms and applications are evaluating AV1 as the next generation codec after H.264 and VP9.
Using Aurora1, AV1 can already achieve a 50% coding efficiency gain over H.264 and HEVC across many content types and use cases. RTC content comprises screen content, and this is a principal driver for AV1 with WebRTC since the AV1 Screen Content Coding (SCC) tool is unique among all current standards.
Enabling SCC in Aurora1 reduces screen content bitrates to the 100-500kbps range, an achievement that is not possible with any other video codec standard, or even, AV1 encoder.
“This feature ships an AV1 encoder in Chrome desktop, specifically optimized for video conferencing with WebRTC integration.”
With the announcement of AV1 integrated with WebRTC in Chrome 90, we compared our Aurora1 AV1 encoder to libaom-RT (the real-time mode of libaom) and OpenH264, using configurations aligned to the structures inside WebRTC.
WebRTC is a capability that is essential for real-time online streaming to browsers. libaom-RT is the open-source encoder behind WebRTC AV1 and it is the solution that powers Google DUO and Google Meet.
For this comparison, we used the libaom-RT version dated March 5, 2021.
To learn more, read: Chrome 90 Beta: AV1 Encoder for WebRTC, New Origin Trials, and More, and AV1 Encoder feature for Chrome.
Motivations to Adopt AV1 in WebRTC
- Higher compression efficiency reduces bandwidth consumption and improves visual quality.
- Enables access to video streaming for users on low bandwidth networks (offers full-motion video at data rates of 30kbps and lower).
- Significant screen sharing efficiency compared with VP9 and H.264.
Usage Scenarios for AV1 in WebRTC
The following Aurora1 WebRTC performance points come from customers who have deployed Aurora1 over their video conferencing applications on computing devices (data center servers and desktop/laptop machines) running Windows, macOS, and Linux. (In the first half of 2021 we plan to release Aurora1 with WebRTC integration for mobile platforms.)
- Cameras are encoded at 24fps and screen content encoded at 12fps. Resolution between 720p and 1080p.
- With normal screen content, Aurora1 can encode 1080p at 100kbps or lower. When intensive screen content motion is present the bitrate rarely exceeds 500kbps.
- CPU usage is reasonable, and a smooth visual experience is delivered even when using low-end i5 Intel PCs.
- Aurora1’s Scalable Video Codec (SVC) feature needs just 35% of the bitrate used by OpenH264 or VP9 to deliver the same visual quality. Aurora1 SVC can reduce your bandwidth consumption by 65%.
- By turning off SVC, Aurora1 can achieve a further 10% savings stretching the total bandwidth reduction to a whopping 75% over the OpenH264 SVC mode.
Comparing WebRTC Compatible Codecs
To get an accurate picture of how Aurora1 stacks up to x264, OpenH264, libvpx-VP9, and libaom-RT, we compared them using their recommended zero-latency configuration that is single-threaded running on the Snapdragon 845 mobile processor, running a mixed content set of forty 180p videos at a target bitrate range of 50Kbps and 200Kbps. (Full details on the data with metrics and statistics are shown in Figure 1, Figure 2, and Table 1.)
In Figure 1, the Y-axis indicates BD-rate in PSNR compared to the anchor x264 medium. The BD-rate’s negative values mean fewer bits are needed to achieve the same objective quality.
The lower the curve, the better the coding efficiency. Meanwhile, the X-axis indicates encoding speed in FPS (frames per second). Single thread operation.
Aurora1’s speed levels will be renamed since we are rolling out faster speed levels such as medium, fast, faster, veryfast, superfast, to ultrafast, while maintaining the coding efficiency advantage of AV1 compared to existing H264/AVC, VP8, and VP9 solutions for WebRTC applications.
Table 1. BD-rate under PSNR – Aurora1 zerolatency over mobile platforms, compared to libaom-RT (single thread).
Note that negative numbers represent the coding advantage of Aurora1 over libaom-RT at the specified speed profile in the table. For example, using libaom-RT at CPU9, Aurora1 is 34.45% more efficient using the Superfast preset and 33.17% more efficient using Ultrafast.