AV1@Scale : le réveil de la synthèse du grain argentique
(netflixtechblog.com)- Netflix étend à l’échelle mondiale les flux Film Grain Synthesis (FGS) d’AV1 afin de réduire l’utilisation de données en streaming tout en préservant la texture du grain argentique
- FGS ne compresse pas directement le grain : il transmet une vidéo dont le grain a été retiré ainsi que des paramètres de modèle de grain, puis le resynthétise par blocs au moment de la lecture
- Dans l’exemple de They Cloned Tyrone, AV1 FGS atteint 2804 kbps contre 8274 kbps pour AV1 classique, soit environ 66 % de réduction du bitrate dans une scène à fort grain argentique
- Lors de l’évaluation d’environ 300 titres, le bitrate moyen a baissé de 36 % en 1080p et plus, tandis qu’en dessous de 1080p l’effet est resté autour de 10 %, le downscaling réduisant le bruit
- Lors des tests A/B avant le déploiement, Netflix a observé une baisse de 24 % du bitrate initial, de 31,6 % du bitrate moyen, de 10 % du rebuffering et de 10 % du délai de démarrage ; le déploiement à grande échelle sur les appareils compatibles est en cours depuis mars 2025
Extension d’AV1 Film Grain Synthesis chez Netflix
- Netflix a récemment étendu les flux AV1 Film Grain Synthesis (FGS) à ses abonnés dans le monde entier
- FGS fait partie du standard AV1 depuis ses débuts, mais lors du lancement initial du codec AV1 par Netflix en 2021, il n’était activé que pour un nombre limité de titres
- L’objectif de cette extension est d’améliorer l’efficacité des données tout en préservant l’intégrité artistique du grain argentique
- Le grain argentique contribue à la texture, au réalisme et à la nostalgie des films classiques, mais comme il est très aléatoire, les méthodes de compression traditionnelles imposaient un compromis entre réduction de la taille des fichiers et préservation du grain
- Dans les vidéos numériques aussi, le bruit des capteurs de caméra ou le grain ajouté volontairement en postproduction rendent la compression plus difficile
Comment AV1 FGS traite le grain
- Au lieu de compresser directement le grain, AV1 FGS encode d’abord une denoised video, c’est-à-dire une vidéo dont le grain a été retiré de la source originale
- Des paramètres modélisant la forme et l’intensité du grain sont transmis avec les données vidéo compressées, puis resynthétisés pendant la lecture
- Le standard AV1 ne prescrit pas la méthode de suppression du grain elle-même, ce qui permet à l’utilisateur de choisir le denoiser souhaité
- À l’étape de lecture, le grain argentique est restauré au moyen d’une méthode basée sur des blocs, optimisée pour fonctionner de façon fluide sur les appareils grand public
- Une explication plus détaillée est disponible dans l’article original
Modèle de motif et d’intensité du grain
-
Film Grain Pattern
- Un modèle autorégressif (auto-regressive model) réplique le motif du grain argentique
- Les paramètres clés sont les coefficients AR, qui peuvent être estimés à partir du résidu entre la vidéo source et la denoised video
- Ce modèle capture les corrélations spatiales entre les échantillons de grain afin de conserver les caractéristiques du bruit original
- En ajustant les coefficients AR
{ai}, on peut rendre la forme du grain plus grossière ou plus fine - Ces coefficients servent à générer un template de bruit 64x64 ; pendant la lecture, des patchs 32x32 aléatoires sont extraits puis ajoutés à la vidéo décodée
-
Film Grain Intensity
- Une fonction de mise à l’échelle contrôle l’apparence du grain selon les conditions de luminance
- Cette fonction est estimée pendant l’encodage et modélise la relation entre les valeurs de pixels et l’intensité du bruit sous forme de fonction linéaire par morceaux
- L’intensité du grain est ajustée selon la luminosité et les couleurs de l’image afin de reproduire plus fidèlement l’apparence de la vidéo originale
Amélioration de la qualité d’image et réduction du bitrate
- Netflix compare AV1 classique et AV1 FGS à partir d’une image de They Cloned Tyrone
- AV1 classique atteint 8274 kbps, contre 2804 kbps pour AV1 FGS, soit une réduction d’environ 66 % du bitrate
- Dans cet exemple comportant un fort grain argentique, AV1 classique peut présenter un bruit déformé avec des motifs de type DCT, tandis que la version FGS préserve l’intégrité du grain argentique même à un bitrate plus faible
- Le bruit synthétisé peut masquer les artefacts de compression et offrir une meilleure expérience visuelle
- Des artefacts de compression sont visibles dans le flux AV1 classique et dans le flux AV1 FGS sans bruit synthétisé
- Le flux AV1 FGS avec synthèse de grain masque certains artefacts de compression grâce au masquage par contraste du système visuel humain
Limites de la mesure de qualité et évaluation du catalogue
- Netflix ne dispose actuellement pas de modèle de qualité dédié à la synthèse du grain argentique
- Comme le bruit de la vidéo source et celui de la vidéo décodée apparaissent à des positions de pixels différentes, les méthodes de comparaison pixel à pixel comme PSNR ou VMAF peuvent attribuer des scores de qualité faibles
- Les évaluations internes ont confirmé l’amélioration de la qualité visuelle et la valeur technique de l’approche
- Environ 300 titres présentant des niveaux de grain variés ont été sélectionnés pour évaluer l’impact d’AV1 FGS
- Aux résolutions 1080p et supérieures, le bitrate moyen a diminué de 36 %
- Aux résolutions inférieures à 1080p, la réduction du bitrate s’est limitée à environ 10 %
- L’effet plus faible aux basses résolutions s’explique probablement par le filtrage du bruit lors du downscaling
- L’activation de l’outil de codage FGS ajoute en permanence un overhead syntaxique au bitstream
Impact sur le streaming observé lors des tests A/B
- Avant le déploiement, Netflix a évalué par tests A/B l’impact de l’activation d’AV1 FGS sur l’ensemble du streaming
- Les résultats des tests se traduisent par une QoE plus fluide et plus stable
- Les améliorations observées sont les suivantes
- Le bitrate au démarrage de la lecture a baissé de 24 % et le bitrate moyen de 31,6 %, réduisant les besoins en bande passante réseau et la nécessité de stocker le flux téléchargé
- Le taux d’erreurs de lecture a diminué d’environ 3 %
- Le nombre de rebufferings a baissé de 10 % et leur durée de 5 %
- Le délai de démarrage a diminué de 10 %, probablement parce que le bitrate réduit permet aux appareils d’atteindre plus rapidement le niveau de buffer cible
- Les baisses visibles de bitrate ont diminué de 10 %, tout comme le temps passé par les utilisateurs à ajuster la position de lecture
- Sur les appareils compatibles 4K, environ 0,7 % du temps de visionnage est passé de 1080p ou moins à 2160p
- Ce changement de résolution s’explique par la réduction du bitrate aux points de transition, qui facilite l’atteinte de la résolution maximale pendant une session
État du déploiement et prochaines étapes
- Netflix déploie FGS à grande échelle depuis mars 2025, et de nombreux utilisateurs peuvent désormais regarder des flux avec FGS activé sur les appareils compatibles
- Parmi les exemples proposés pour tester les flux FGS figurent The Hot Spot, Kung Fu Cult Master, Initial D, God of Gamblers II, Baahubali 2: The Conclusion et Dept. Q
- Pour certains titres, il faut désactiver le HDR dans le menu des paramètres afin de faire directement l’expérience des nouveaux flux FGS
- Le prochain article expliquera comment ce travail a été implémenté dans le pipeline d’encodage vidéo de Netflix, ainsi que les enseignements tirés
1 commentaires
Avis Hacker News
On passe à côté du fait que le bruit synthétisé peut ne pas contenir les détails et informations présents dans le bruit d’origine.
Quand on regarde un encodage de haute qualité avec du vrai bruit, la résolution augmente de façon surprenante dès qu’on passe d’une image fixe à la vidéo. Le bruit semble danser au-dessus du signal, et à 24 fps le signal derrière reste nettement visible.
À l’inverse, si l’on supprime le bruit image par image puis qu’on rajoute un bruit artificiel « esthétiquement » similaire, les détails d’origine ne peuvent pas être récupérés et, à 24 fps, l’image devient fondamentalement plus floue. Sur de vieux films très bruités, l’écart de détail peut aller jusqu’à un facteur 2.
Si H.265 ou AV1, en tenant compte du mouvement, regardaient plusieurs images avant et après pour créer une image « débruitée », ils pourraient en théorie retrouver et encoder le signal de détail sur l’axe temporel, mais je ne sais pas si c’est ce qui se fait en pratique. Si je me trompe, j’aimerais le savoir.
L’essentiel est qu’il ne faut pas comparer le débruitage et la synthèse sur des images fixes. Pour savoir si les détails sont jetés ou préservés, il faut comparer de vraies vidéos côte à côte. Le bruit n’est pas seulement du bruit : c’est aussi du détail.
Sur le plan esthétique, le grain synthétique d’AV1 ne semble pas tenir compte de la taille des grains dans la vidéo d’origine. Ainsi, le grain épais provenant des gros cristaux d’halogénure d’argent des vieux films peut apparaître comme un grain fin une fois synthétisé, ce qui peut sembler artificiel. Un bon débruiteur de film pourrait peut-être atténuer cela.
De plus, il ne modélise pas correctement les composantes couleur séparées du film, mais comme les sources vidéo de Netflix sont souvent déjà sous-échantillonnées en chrominance, ce ne serait pas un gros problème : https://norkin.org/pdf/DCC_2018_AV1_film_grain.pdf
Je n’ai fait que lire un peu sur le sujet, donc je peux me tromper.
Pour expliquer l’aspect temporel, il suffit de penser à un projecteur de film traditionnel. Entre chaque image, on voit une obscurité totale pendant un très court instant. On pourrait appeler cette obscurité du « bruit », et si l’on restait sur cet instant, le signal d’origine ne serait pas visible du tout.
Mais notre système visuel fait une certaine moyenne temporelle, si bien que nous remarquons à peine ce scintillement (https://en.wikipedia.org/wiki/Flicker_fusion_threshold). Le bruit et le grain semblent être perçus de manière similaire, et ressortent moins que les parties stables du signal/de l’image.
Comme les astrophotographes empilent des images bruitées pour obtenir une image avec un meilleur rapport signal/bruit, je pense que le cerveau fait en partie la même chose. Cela ne veut pas dire qu’il hallucine des détails inexistants, mais que le bruit enregistré revient vers sa moyenne au fil du temps, et que cette moyenne représente plus clairement le signal réel. Bien sûr, ce n’est pas parfait à cause du bruit systématique/non aléatoire, mais il est généralement moins important.
Les algorithmes de débruitage qui ne traitent que des images individuelles n’ont pas ce contexte et tendent à perdre des détails ou à les corriger par conjecture. AV1 n’impose pas d’algorithme particulier ; en théorie, un algorithme intelligent peut donc utiliser le contexte temporel pour préserver davantage de détails.
Si l’on fait la moyenne de quelques images statiques, le signal inchangé est conservé et le bruit aléatoire s’annule, ce qui améliore le rapport signal/bruit. Préserver le bruit lui-même n’est pas utile.
L’effet observé peut relever d’une préférence esthétique pour le comportement du grain d’origine, ou venir de la comparaison entre un contenu à faible bande passante avec de forts artefacts de compression, comme du lissage/filtrage passe-bas, et une version à plus forte bande passante qui conserve tous les détails. C’est indépendant du grain rajouté par-dessus.
La valeur d’ajouter du bruit peut se discuter philosophiquement, mais le problème dans l’exemple ici, c’est que le processus de débruitage rend tout excessivement flou, si bien que la version débruitée comme l’image avec grain synthétisé paraissent nettement moins nettes que l’original
Le grain lui-même ressemble aussi trop à un bruit très basique, et pas vraiment à du grain de pellicule réel
Résultat, le grain d’origine « bave » sur une zone plus large et donne un aspect terne, et en essayant d’encoder un grain net, on perd même la netteté de la scène réelle
La synthèse de grain de pellicule a du sens pour le streaming à bande passante limitée. Cela dit, je suis d’accord pour dire que le grain synthétisé dans l’exemple ne ressemble pas vraiment à du grain. Et selon la quantité et la méthode de débruitage, les détails de la scène peuvent être rendus flous
Ce serait bien de proposer une option permettant d’activer ou de désactiver la simulation de pellicule
The Holdovers, l’un de mes films préférés, a très bien réussi sa simulation de pellicule. Il se déroule dans les années 70 et cherche à ressembler aux films de cette époque
À mes yeux, c’était excellent, mais un vrai passionné de pellicule repérerait sans doute beaucoup d’inexactitudes
Dans un futur proche, Netflix pourrait peut-être traiter certains effets de postproduction côté client. Si l’on a un trouble de la vision des couleurs, on utiliserait un mode adapté ; si l’on n’aime pas le faux grain, on le désactiverait, etc.
Il y a quelques points à garder en tête
Les images fixes ne sont pas une très bonne méthode pour évaluer la qualité vidéo
Même un filtre de débruitage théoriquement parfait[1] paraîtra toujours moins détaillé que la source d’origine. C’est parce que le système cerveau/œil reconstitue davantage de détails dans une image bruitée que dans une image floue
[1] Par parfait, j’entends ici qu’il préserve 100 % des détails qui ne sont pas du grain, pas qu’il restaure magiquement les détails perdus à cause du bruit
En bonus, beaucoup de spectateurs apprécieraient une option pour le désactiver
Le vrai sujet ici, c’est la partie « passage à grande échelle ». La synthèse de grain de pellicule existe déjà depuis un moment dans les encodeurs AV1 courants, mais il fallait un certain réglage manuel pour éviter les problèmes
C’est pourquoi, en production, elle n’était utilisée que pour des catalogues très limités ou des titres particulièrement importants. Ici, ils ne détaillent pas vraiment comment ils ont surmonté ce problème, mais c’est une bonne chose qu’elle soit déployée plus largement
Pour ce qui est de ceux qui n’aiment pas le grain, tout présente naturellement un certain niveau de bruit ou de grain. Même les meilleurs capteurs numériques en ont, et même nos yeux
Cela a une utilité qui dépasse le simple effet esthétique. Cela augmente la netteté perçue et tend à masquer des défauts comme les dégradés en paliers ou les artefacts de compression
Cela ne veut pas dire que tout bruit ou tout grain est souhaitable. Il peut être inévitable à cause de limites techniques, résulter d’un mauvais choix créatif, ou être distrayant
Mais l’alternative consistant à appliquer du débruitage à tout me semble bien pire. Beaucoup de caméras font cela par défaut aujourd’hui, et à mes yeux le lissage dû au débruitage paraît souvent irréaliste et beaucoup plus gênant
Je ne comprends pas l’idée « grain = réalisme ». Dans mes yeux réels, il n’y a pas de grain.
Cela dit, je reconnais le rôle du grain comme outil artistique, donc cette technologie reste intéressante en soi.
Si l’on regarde autour de soi, presque toutes les surfaces ont une forme ou une autre de texture fine et ne sont pas visuellement uniformes. Quand cela est enregistré en vidéo, l’optique de la caméra, la résolution limitée et le lissage dû à la compression réduisent ces microtextures. Le grain de film fournit une partie de ces stimuli visuels haute fréquence perdus.
Nos yeux et notre cerveau aiment ce genre de stimuli haute fréquence, et ils ne sont pas très exigeants quant à la reproduction exacte du motif de bruit de la scène d’origine. C’est pourquoi l’encodeur x265, qui produit de la vidéo H.265, ne propose pas de synthèse de grain, mais dispose d’un paramètre psy-rd. Cela revient plus ou moins à dire : « fais en sorte que la vidéo compressée paraisse aussi “énergique” que l’original, même si cette énergie n’est pas exactement au même endroit », tandis que psy-rdoq revient plutôt à « privilégier globalement une énergie plus élevée ».
En ajustant ce type de paramètres, on peut rendre une vidéo compressée plus agréable à regarder sans stocker davantage de données.
Heureusement, nos yeux sont beaucoup plus sensibles qu’une caméra. Mais ici, le « réalisme » vient de la manière dont les choses étaient capturées avec la technologie de l’époque. Ce n’est pas différent du bruit d’un phonographe ou de la façon dont un signal CRT se dégrade. C’est « authentique » par rapport à la technologie utilisée par les réalisateurs et à la manière dont ils savaient que le public verrait leurs films.
C’est comme les coups de pinceau de Van Gogh : ils font partie de la réalité de ses tableaux. On n’aurait pas envie de poncer une peinture à l’huile pour la rendre parfaitement plate. C’est la réalité du médium d’origine. C’est pour cela qu’on peut vouloir préserver au maximum la réalité de l’original, même dans une copie numérique d’un film.
Quand on connaît bien un sujet, on peut lire une grande partie de son histoire dans l’objet, et cela change aussi les émotions qu’il suscite.
Un enfant qui regarde un sketch de Buster Keaton en retenant son souffle et en gloussant de plaisir, et un critique de cinéma qui sait quel film et quelle caméra ont été utilisés, ce que signifie l’abstraction d’une scène, et même de quel tissu est fait le costume de Keaton, auront deux expériences esthétiques subjectives différentes du même médium.
Le goût esthétique subjectif relève de la cognition. Il nous faudrait une théorie formelle de l’intelligence mappée sur le cerveau humain, et ces phénomènes subjectifs se ramènent au final au traitement personnalisé des données et aux conditions initiales.
Par contraste avec une animation sur cellulo propre, le grain de film peut aussi aider les gens à suspendre leur incrédulité. Ils ont appris à associer l’absence de grain à l’animation irréaliste, à certains médiums ou à la CGI. Les vidéos personnelles et les actualités avaient du grain et une faible qualité, si bien que le grain s’est retrouvé corrélé au « réel ».
À mon avis, il n’y a rien de plus profond que ça. Nous sommes des produits de notre époque. Dans 40 ans, le médium aura peut-être changé et le grain de film sera associé au surréalisme, ou bien il sera tout simplement éliminé parce qu’il s’agit fondamentalement de bruit.
Je ne connais pas bien la psychologie visuelle qui se cache derrière. Peut-être qu’il ajoute des hautes fréquences effacées par la compression, ou qu’il fonctionne comme une forme de dithering.
Pour ce qui est des yeux, du point de vue de la physique quantique, il est probablement juste de dire qu’ils ont eux aussi du grain. Mais nous ne le percevons pas parce que le cerveau le filtre. Je ne sais pas très bien comment cela interagit avec le grain de film.
J’imagine que les verriers d’autrefois auraient été fascinés par notre capacité actuelle à produire de grandes vitres uniformes, alors que nous imitons, par familiarité, les compromis qu’ils étaient contraints d’accepter.
Dire que « lorsqu’on regarde des films classiques, le mouvement subtil du grain de film ajoute de l’authenticité et de la nostalgie à chaque scène » revient, selon moi, à dire qu’on ajoute simplement du bruit visuel qui masque les détails de la scène réelle.
La nostalgie peut très bien s’attacher à des indices visuels plus marquants, comme d’anciens acteurs ou de vieux souvenirs de la première fois où l’on a vu le film.
Dire que cela « contribue au réalisme du film » est même l’inverse de la réalité, puisqu’il n’y a pas de grain dans le monde réel.
Cela dit, je suis content qu’AV1 continue de progresser et dispose d’un mécanisme de remplacement algorithmique au lieu de gaspiller du bitrate à encoder des déchets visuels. De cette façon, il sera aussi plus facile de le désactiver.
Si le grain de film fait partie de la vision du réalisateur, il est aussi valable que le choix de placer une musique dramatique non diégétique derrière une scène. C’est très peu authentique, mais très efficace pour susciter des émotions, et c’est le but de l’art.
Le directeur de la photographie Steve Yedlin décrit cela comme le fait de donner à l’œil du spectateur quelque chose à quoi « s’accrocher ».
Dans les appels téléphoniques mobiles, le codec AMR-WB capture nominalement de 50 Hz à 7000 Hz. Mais ce n’est vrai qu’au débit maximal disponible, 23,85 Kbps.
Au débit le plus courant, 12,65 Kbps, il ne conserve que jusqu’à 6400 Hz, et synthétise la bande 6400–7000 Hz à partir de basses fréquences et de bruit. Parce qu’un peu de bruit sonne mieux que pas de bruit du tout.
Le grain de film devrait disparaître. Son époque est révolue. Les photos sépia et les films muets à 16 fps projetés en 24 fps sont déjà morts ; le prochain, c’est le grain de film.
L’Eastman Business Park de Rochester a lui aussi été démoli.
Et j’aimerais qu’on arrête de mettre de la poussière et des rayures dans les vidéos YouTube.
C’est un peu frustrant de filmer d’abord une vidéo, de supprimer le bruit en postproduction, d’en rajouter, puis de le supprimer encore à l’encodage avant d’en rajouter à nouveau au décodage.
Faux éclairages, fausses ombres, faux ciel, etc.
Désormais, tout est faux. Je veux une technologie qui fonctionne à partir du scan du film original. Idéalement, sans même passer par une compression JPEG, qui est déjà la première étape de perte de détails.
La détection de mouvement, les images clés et les images delta me vont, mais il faut que ce soit une vidéo sans perte. Bien sûr, destinée à tenir sur un Blu-ray ; le streaming ne m’intéresse pas vraiment.