[ad_1]
TL;DR
- AV1 is a popular video codec among online streaming services because it is royalty-free and can provide excellent video quality without requiring much bandwidth.
- However, many devices do not have hardware acceleration to play AV1 encoded video, so you must use a software decoder running on the CPU.
- Android currently ships with Google’s libgav1 AV1 software decoder, but a future update will switch this to VideoLAN’s libdav1d, which will significantly improve performance.
Exactly seven years ago, YouTube shared a startling statistic with the world. a billion Hours of content on the platform every day. Since then, the digital media landscape has only grown thanks to the rise of TikTok and the ongoing online streaming war between Netflix and major media companies. Because these online services must deliver vast amounts of video content every day, it is imperative that businesses use the best compression technology available to conserve bandwidth without significantly compromising quality. . That’s why his AV1 codec from Alliance for Open Media is gaining attention among online streaming services.
AV1 is a video codec that provides better compression efficiency compared to older codecs such as h.264, h265, and VP9. This means that videos encoded with AV1 can provide comparable video quality at much lower bitrates. This reduces bandwidth requirements for both streaming services and end users without compromising quality. However, improved performance is not the only reason why the streaming industry prefers his AV1. AV1 also has no royalties, making it an attractive option for streaming services looking to reduce costs.
However, streaming services have been slow to adopt AV1 for their content. Services like YouTube, Netflix, Instagram, and Vimeo already encode much of their content in AV1, but still deliver this content to most consumer devices in other codecs. The reason is that many consumer devices do not yet have hardware support for playing AV1 videos. This means that to play AV1 video, you must use a software decoder running on the CPU.
AV1 offers better compression efficiency compared to older codecs such as h.264, h265, and VP9.
Video decoders are inherently complex algorithms that can run on the CPU (software acceleration) or on hardware blocks dedicated to multimedia processing (hardware acceleration). Depending on the quality of the video and the codec used, decoding a video file can be computationally intensive. Ideally, the device would use a hardware accelerated decoder to play AV1 content, ensuring smoother playback and lower power consumption.
Unfortunately, most mobile devices do not have hardware-accelerated AV1 decoders and must use software-accelerated decoders to process AV1 content on the CPU. This is especially problematic considering that battery life is a top priority for most users. We’re finally at the point where all major mobile silicon vendors, including Qualcomm starting with Snapdragon 8 Gen 2 and Apple with the A17 Pro, are shipping products with hardware-accelerated AV1 decoders. Given that most people don’t upgrade their phones every year or buy top-of-the-line hardware, it will take several years before the majority of mobile devices support hardware-accelerated AV1 decoding. Probably.

Mishal Rahman / Android Authority
Left: List of AV1 decoders available for Samsung Galaxy S24 Ultra.
Center: System-provided libgav1 AV1 decoder details with software acceleration.
Right: Details of the hardware-accelerated AV1 decoder from Qualcomm.
Meanwhile, Google is preparing to update Android to properly play AV1 content on existing devices that don’t have hardware-accelerated decoders. Since the release of Android 10, AOSP includes the libgav1 decoder, an open source AV1 decoder developed by Google. However, libgav1 is not the only AV1 decoder; there is also Alliance for Open Media’s libaom (reference decoder) and VideoLAN’s libdav1d.
Like libgav1, libdav1d runs on the CPU, but Significantly Decoding AV1 content is better than libgav1. This is likely because libdav1d is mostly written in assembly for ARMv8 chips, which significantly reduces performance overhead. In fact, libdav1d is so computationally efficient that even low-end hardware can smoothly play high-quality AV1 content without consuming much CPU power.
For comparison, here is a graph comparing the performance of Google’s libgav1 and VideoLAN’s libdav1d AV1 decoders. The device I tested was a Google Pixel 3 XL with Qualcomm’s Snapdragon 845, which lacks a hardware-accelerated AV1 decoder. In this test, we played two videos encoded in AV1. One is a 6:30 clip of Artemis launched at 4K60 (8 bit, 1165 kb/s) and the other is a 9:11 clip of 1080p25 called “Sparks” from Netflix (10 bit, 915 kb/s) .

Mishal Rahman / Android Authority
As you can see from the graph, libdav1d performed significantly better than libgav1 in this experiment. When playing the Artemis 1 clip using libdav1d as the decoder, my boyfriend’s Pixel 3 XL averaged over 50fps. By comparison, when using libgav1, the average speed of the device was less than 10fps. Similarly, on my Pixel, Sparks clips played at an average of 25 fps with libdav1d, but less than 10 fps with libgav1.
If you’re wondering how I was able to test libdav1d on the Pixel 3 XL, it’s because I used VLC Media Player, which bundles libdav1d. Most media player apps on Android use Google’s ExoPlayer library. This defaults to the system-provided libgav1 decoder for AV1 content if a hardware-accelerated AV1 decoder is not present. If Google replaces the system-provided AV1 decoder from libgav1 to libdav1d, media player apps that use ExoPlayer could greatly benefit from improved performance. That’s exactly what Google has been preparing for since late last year.
On my test device, playing Sparks clips with libdav1d averaged 25fps, but with libgav1 it was less than 10fps.
Since early November, the AOSP source code includes the libdav1d decoder. This is because Google had to experiment with using libdav1d instead of libgav1 as his Android system-provided AV1 decoder. Two sources, who requested anonymity, said Google communicated this policy to its partners several months ago. We will replace libgav1 with libdav1d on existing devices by March 2024 through a future Google Play system update.. This is possible because media codecs are part of Android’s Project Mainline module.
One of my sources confirmed that Google is still testing this change, but what’s unclear is whether this will roll out to all devices that support the Media Codecs mainline module (Android 10 and above). Or will it be deployed only to devices running Android? 14. Since Android 14 is Google’s first actual release, it’s possible that Google will limit this change to only devices running Android 14. Required Ensure OEM includes AV1 decoder. This may sound strange since AOSP has included libgav1 since Android 10, but Google actually doesn’t seem to require OEMs to include it in their builds until Android 14.
In any case, it will be interesting to see if the upcoming Google Play system update in March 2024 actually includes the libdav1d AV1 decoder. If so, users with lower-end hardware could see a significant improvement in AV1 video playback performance. However, it remains to be seen how long it will be before streaming services actually bring his AV1 video content to these devices.
[ad_2]
Source link