Limkuat

AV1, le codec vidéo pour le futur du Web

Partie 1 ⋅ Un codec pour les gouverner tous… mais après avoir détrôné H.264.

Cet article parle de codecs. Si vous ne savez pas de quoi il s’agit, vous pouvez lire ce court article d’introduction avant de revenir ici.

Un nouveau venu : AV1

Le codec AV1 est un codec de la dernière génération, libre et ouvert, qui est le fruit de la collaboration entre Amazon, Cisco, Google, Intel, Microsoft, Mozilla, et Netflix, regroupés sous forme d’un consortium, l’AOM.

Ambition

AV1 promet des performances de compression excellentes en maintenant une bonne qualité d’image quand on le compare à HEVC ou H.264 — ce dernier restant, encore aujourd’hui, le codec de choix dans la distribution à destination du Web. L’ambition d’AV1 semble claire : devenir le nouveau codec de référence du Web, et par là-même, détrôner le vieillissant H.264 ou son successor HEVC — qui n’a pas vraiment pris sur le Web de toute façon.

Déploiement

Son déploiement commence peu à peu, surtout sur des plateformes de grande envergure, tels YouTube et Netflix.

YouTube propose d’ores et déjà les vidéos encodées en AV1 (le clic droit sur une vidéo, puis le bouton “Stats for nerds” permet de vérifier si la vidéo est en AV1 ou non). Des outils comme youtube-dl ou yt-dlp permettent aussi de lister toutes les versions d’une vidéo pour chaque résolution proposée. Cela permet accessoirement de voir si une version AV1 est disponible.

Capture d’écran de YouTube après avoir fait clic droit puis “Stats for nerds”, sur une vidéo encodée en AV1. On voit l’identifiant de la vidéo, sa taille (viewport), sa résolution (1920*960), son volume (100%), son codec (av01.0.08M.08 et opus), son espace colorimétrique (bt709), et enfin, des graphs représentant la vitesse de connexion, l’activité réseau, et la quantité de vidéo pré-téléchargée (buffer).

Netflix a commencé à utiliser ce codec en début 2020 sur les terminaux compatibles. Depuis, l’entreprise documente régulièrement l’utilisation d’AV1 sur son blog technique (en anglais).

Twitch annonçait au NAB 2019 un déploiement total d’AV1… vers 2024 ou 2025. Yikes.

L’efficacité d’AV1

YouTube est sans doute la plateforme qui sert le plus de contenu encodé en AV1 à l’heure actuelle. À l’aide de l’outil youtube-dl déjà évoqué, nous pouvons comparer l’efficacité d’une version AV1 par rapport aux autres.

Il semblerait que YouTube réserve l’encodage AV1 aux vidéos ayant un certain trafic, d’après quelques observations empiriques. Ainsi toutes les vidéos n’ont-elles pas leur déclinaison AV1 et gardent VP9 comme codec le plus performant proposé.

Mise en garde : nous avons trouvé une vidéo qui bénéficie d’un excellent taux de compression (à qualité visuelle égale) grâce à AV1. Mais cette vidéo seule n’est pas représentative de l’ensemble des vidéos. Toutes les vidéos ne bénéficieraient pas d’une telle performance, il convient de le signaler. Nous avons choisi cette vidéo en particulier parce qu’elle nous donne une idée des gains possibles dans un cas favorable.

Statistiques de la vidéo YouTube testée, pour deux résolutions (HD et 4K) et pour chacun des trois codecs proposés, indiquant le bitrate moyen et le poids final du fichier vidéo pour 12 minutes de vidéos (plus c’est bas, mieux c’est) :

  • Version HD (1920×960 30p, format 2:1)

    • H.264 : 1216 kbps, 104.72 MiB
    • VP9 : 1171 kbps, 100.86 MiB
    • AV1 : 794 kbps, 68.42 MiB
  • Version 4K (3840×1920 30p, format 2:1)

    • H.264 : inexistant
    • VP9 : 8063 kbps, 694.04 MiB
    • AV1 : 3970 kbps, 341.76 MiB

En regardant l’intégralité de cette vidéo en AV1 plutôt qu’en VP9 ou H.264, c’est 35 % à 50 % de bande passante économisée. Ce n’est pas mal du tout ! Le gain est meilleur sur la version 4K.

Mise en oeuvre

Encodage

Cependant, AV1 se plie mal — vraiment très mal — à l’encodage logiciel. Nous avons testé l’encodeur de référence de l’AOM, libaom-av1, via ffmpeg. Il nous a fallu 1 heure et 17 minutes pour encoder 5 secondes de vidéo 1920×1080 60p, avec un processeur Intel Core i7–10710U.

Nous comptons tester SVT-AV1 et rav1e, deux autres encodeurs logiciels qui sont censés être plus performants (surtout pour rav1e). Nous partirons de plusieurs vidéos présentant des schémas de prédiction différents et cela fera l’objet d’une partie 2, plus technique.

Décodage

Même si l’encodage logiciel semble peu viable pour AV1, il est en revanche tout à fait possible de le décoder décemment avec un décodeur logiciel décent comme dav1d.

Le même CPU qui mettait plus d’une heure à encoder 5 secondes de vidéo, ce même CPU décode sans problème une vidéo 4K 60 fps.

Et fort heureusement, car sans cela le déploiement d’AV1 ne serait pas viable sans qu’une bonne partie des équipements grand public ne soit équipée d’une puce de décodage AV1 (comme c’est souvent le cas pour H.264), ce qui n’est pas encore généralisé en 2023.


Article publié par Luciano Calamia et Amaury Carrade, le 20 janvier 2023. Besoin de captation et de diffusion en direct ? Contactez-nous !