AV1 For WebRTC - Part 2
In part 1 of this article, we introduced the AV1 codec for Real-Time Communications (RTC) by comparing our Aurora1 AV1 encoder with x264 and libvpx-VP9 operating on the Snapdragon 845. In part 2 we update the results for our Aurora1 AV1 encoder 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 the H.264 and VP9 standards.
Using Aurora1, AV1 can already achieve a 50% coding efficiency gain over HEVC across almost any content type or use case. As RTC content is loaded with screen content, a principal driver for AV1 using WebRTC is the Screen Content Coding (SCC) tool. Enabling SCC in Aurora1 reduces screen content bitrates to the 100-500kbps range, an achievement that is not possible with any other standard, or AV1 encoder.
“This feature ships an AV1 encoder in Chrome desktop, specifically optimized for video conferencing with WebRTC integration.” AV1 Encoder feature for Chrome
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 a capability that is essential for real-time online streaming to browsers. libaom-RT is the encoder behind WebRTC AV1 and the solution that powers Google DUO, Google’s video calling application, and Google Meet.
For this comparison, we used the libaom-RT version dated March 5, 2021.
To learn more, read the posts, 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.
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.
In the first half of 2021, we plan to release Aurora1 with real-time video communications (WebRTC) integration for mobile platforms.
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 zerolatency 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. Note that 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 is, the better the coding efficiency is. The X-axis indicates the encoding speed in FPS (frames per second), all running on a single thread.
Aurora1’s speed levels will be renamed since we are rolling out faster speed levels such as medium, fast, faster, veryfast, superfast, to ultrafast, all 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.