Débruiter, débloquer, accentuer, corriger les couleurs : les filtres de restauration vidéo en détail
Débruitage, déblocage, débandage, accentuation, balance des blancs et aberration chromatique : comment ça marche, dans quel ordre, avec des tests FFmpeg.
L’essentiel
Chaque filtre de restauration vidéo corrige un type de dégât, et l’ordre dans lequel vous les appliquez décide s’ils s’entraident ou se contrarient. Désentrelacez d’abord, débloquez et débruitez à la taille de la source, corrigez la couleur, puis mettez à l’échelle, accentuez légèrement et ajoutez tramage ou grain en dernier. Accentuer du bruit, ou débruiter un grain que vous venez d’ajouter, défait le travail.
- Chaque filtre de restauration vise un type de dégât : bruit, blocs de compression, banding, manque de netteté, dominante de couleur ou franges colorées. Identifiez le dégât avant de choisir le filtre.
- L’ordre compte : désentrelacer, débloquer et débruiter à la taille de la source, corriger la couleur, puis mettre à l’échelle, accentuer légèrement, et ajouter tramage ou grain en dernier.
- Les débruiteurs échangent bruit contre texture chacun à leur manière. Dans nos tests, les moyennes non locales ont nettoyé un ciel uni presque intégralement mais laissé le bruit dans le feuillage ; poussées plus fort, elles ont effacé 17 % du détail des feuilles.
- L’accentuation raidit les bords qui existent déjà et dessine des halos quand on la pousse. Elle ne peut pas ajouter de détail.
- Deux problèmes distincts portent le nom d’« erreurs de couleur » : la dominante de couleur, corrigée par la balance des blancs, et l’aberration chromatique, corrigée en réalignant les canaux rouge et bleu.
Ce que corrige chaque réparation
La restauration commence par un diagnostic. Le tableau liste les dégâts courants, comment les reconnaître et les filtres que nous avons testés pour chacun. Si vous ne savez pas distinguer grain, bruit et compression, commencez par grain, bruit et artefacts de compression.
| Dégât | Ce que vous voyez | Réparation | Filtres FFmpeg testés |
|---|---|---|---|
| Bruit du capteur | Un moucheté qui change à chaque image, surtout dans les ombres | Débruitage | hqdn3d, atadenoise, nlmeans, fftdnoiz, bm3d |
| Blocs de compression | Une grille de carrés dans les dégradés et les zones en mouvement | Déblocage | deblock, spp, pp7, fspp, uspp |
| Ringing et bruit de moustique | Points et ondulations qui grouillent autour des bords et du texte | Anti-ringing (seuillage doux) ou débruitage | spp avec mode=soft, nlmeans |
| Banding | Marches visibles dans les ciels, les murs et les fondus | Débandage, puis encodage en 10 bits | deband, gradfun |
| Manque de netteté | Des bords sans mordant | Accentuation, ou upscaling avec un modèle | unsharp, cas |
| Dominante de couleur | Les blancs tirent sur l’orange, le bleu ou le vert | Balance des blancs | colorchannelmixer, grayworld, greyedge |
| Aberration chromatique latérale | Franges rouge–cyan ou bleu–jaune qui grandissent vers les bords de l’image | Mise à l’échelle des canaux rouge et bleu | perspective sur les plans extraits |
| Effet de peigne | Lignes en dents de peigne sur les bords en mouvement | Désentrelacement | bwdif |
Pourquoi l’ordre compte
Chaque étape modifie ce que voit la suivante : un filtre mal placé peut défaire le précédent ou amplifier le dégât qu’il devait supprimer.

- Désentrelacez d’abord. Tous les autres filtres supposent des images complètes. Sur des trames entrelacées, un débruiteur prend l’effet de peigne pour de la texture et un scaler l’étale en images fantômes. Voir comment désentrelacer une vidéo.
- Débloquez avant que quoi que ce soit ne déplace les pixels. Les filtres de déblocage travaillent sur la grille de blocs de l’encodeur, que le débruitage et la mise à l’échelle floutent et décalent.
- Débruitez avant d’accentuer ou d’étalonner. L’accentuation et les hausses de contraste amplifient le bruit en même temps que le détail.
- Corrigez la couleur avant d’accentuer. Corrigez la dominante et réalignez les canaux de couleur tant que les bords sont encore doux ; l’accentuation rendrait les franges plus nettes.
- Mettez à l’échelle une seule fois, sur l’image nettoyée, pour ne pas agrandir les dégâts restants.
- Accentuez à la taille de sortie, et légèrement.
- Ajoutez tramage et grain en dernier. Toute étape de lissage placée après eux retirerait le bruit fin qui masque le banding ou l’aspect cireux.
- Encodez avec assez de bits. Un encodage en 10 bits empêche les dégradés lisses de se remettre à former des bandes.
Nous avons vérifié l’ordre débruitage–accentuation sur un clip synthétique à texture fine, avec du bruit ajouté. Accentuer d’abord puis débruiter a laissé plus de bruit dans une zone unie (14,5 selon notre mesure, contre 12,2 dans l’autre sens) et a obtenu 26,6 dB de PSNR par rapport au clip propre, contre 27,7 dB. Le débruitage seul a obtenu 30,3 dB avec 8,0 de bruit restant : toute accentuation coûte un peu de propreté, n’en mettez donc que ce dont la vidéo a besoin.
Débruitage : cinq familles de filtres
Le bruit est une variation aléatoire qui change d’une image à l’autre ; le détail est une structure qui reste en place ou suit la scène. Chaque débruiteur exploite cette différence à sa façon.
- Les filtres spatiaux font la moyenne de chaque pixel avec ses voisins dans la même image. Ils sont rapides, mais ne savent pas distinguer une texture fine d’un bruit de même taille : ils adoucissent donc les deux.
- Les filtres temporels font la moyenne d’un même pixel sur les images voisines. Le détail statique survit parce qu’il se répète, tandis que le bruit se moyenne. Tout ce qui bouge s’étale en traînées, sauf si le filtre détecte le mouvement ou aligne d’abord les images ; cohérence temporelle, scintillement et images fantômes traite ce problème.
atadenoisede FFmpeg est une moyenne temporelle adaptative, ethqdn3dcombine une légère passe spatiale avec une passe temporelle. - Les moyennes non locales remplacent chaque pixel par la moyenne des pixels dont le voisinage se ressemble, où qu’ils se trouvent dans une fenêtre de recherche. Comme le disent leurs auteurs, les pixels les plus semblables ne sont pas forcément proches. Les zones répétitives comme le ciel ou les murs offrent beaucoup de correspondances ; une texture unique en offre peu.
- Les filtres dans le domaine transformé font passer des blocs de l’image dans une représentation fréquentielle, où la vraie structure se concentre dans quelques coefficients forts tandis que le bruit s’étale finement sur tous, puis réduisent les coefficients faibles.
fftdnoizle fait avec une FFT 3D qui peut inclure les images voisines. BM3D regroupe d’abord des patchs 2D semblables en piles 3D, ce qui rend la représentation encore plus parcimonieuse. - Les débruiteurs appris entraînent un réseau sur des paires d’images propres et bruitées. DnCNN apprend à prédire le bruit lui-même (apprentissage résiduel) ; FFDNet reçoit en entrée supplémentaire une carte du niveau de bruit, si bien qu’un seul modèle gère des niveaux de bruit différents et inégaux ; FastDVDnet utilise plusieurs images à la fois et évite une étape coûteuse de compensation de mouvement.
Ce qu’ont montré nos tests
Nous avons ajouté un bruit gaussien qui change à chaque image, d’environ 8 niveaux sur 255 en luminance, à 30 images d’un clip d’exemple 1080p montrant des feuilles au soleil sur fond de ciel bleu. Puis nous avons lancé les débruiteurs de FFmpeg sur le CPU d’un portable (Intel Core i7-1360P) et comparé chaque résultat au clip propre :
| Filtre et réglage | Famille | Durée pour 30 images | PSNR (luminance) | Erreur restante dans le ciel uni | Erreur dans les feuilles | Détail des feuilles conservé |
|---|---|---|---|---|---|---|
| Aucun (entrée bruitée) | Référence | Sans objet | 30,3 dB | 8,8 | 8,9 | 99 % |
hqdn3d (par défaut) | Spatial et temporel | 1,0 s | 30,7 dB | 8,1 | 8,7 | 99 % |
hqdn3d=8:6:12:9 | Spatial et temporel | 0,8 s | 31,5 dB | 6,1 | 8,0 | 97 % |
atadenoise (seuils 0,1 et 0,2) | Temporel | 0,9 s | 31,1 dB | 4,9 | 8,5 | 94 % |
nlmeans=s=6 | Moyennes non locales | 31,7 s | 32,2 dB | 1,1 | 8,1 | 98 % |
nlmeans=s=10 | Moyennes non locales | 31,8 s | 31,0 dB | 1,0 | 8,9 | 83 % |
fftdnoiz=sigma=8:prev=1:next=1 | Domaine transformé, 3 images | 3,8 s | 33,7 dB | 4,3 | 6,4 | 98 % |
bm3d=sigma=30 | Domaine transformé | 8,1 s | 34,0 dB | 1,3 | 6,2 | 91 % |
L’« erreur » est l’écart type de la différence avec le clip propre : dans les feuilles, elle compte donc aussi bien le bruit restant que la texture perdue. Le « détail des feuilles conservé » est la part de la texture fine des feuilles du clip propre encore présente dans le résultat.

Ce que disent les chiffres :
- Les filtres rapides entament à peine un bruit fort.
hqdn3davec ses réglages par défaut a fait passer l’erreur dans le ciel de 8,8 à 8,1. Il convient à un bruit léger, ou à une première passe avant un filtre plus fort. - Les moyennes non locales sont inégales par nature. À
s=6, elles ont nettoyé le ciel jusqu’à 1,1 mais laissé les feuilles presque aussi bruitées qu’avant (8,1), car une texture unique a peu de patchs semblables à moyenner. Às=10, les feuilles ont perdu 17 % de leur vrai détail et le PSNR a baissé : c’est l’aspect cireux décrit dans pourquoi la restauration IA donne un rendu plastique. - Les filtres dans le domaine transformé ont trouvé l’équilibre.
fftdnoizavec une image de chaque côté a conservé 98 % du détail des feuilles à 33,7 dB.bm3da obtenu le PSNR le plus élevé, 34,0 dB, mais a retiré au passage 9 % du détail des feuilles. - La vitesse varie d’un facteur 40.
nlmeansa tourné à environ une image par seconde en 1080p sur notre CPU ; sur 121 images d’un autre clip 1080p, il a mis 192 secondes.
Une réserve sur bm3d : la documentation de FFmpeg indique qu’il ne fait pas d’appariement de blocs tant que group ne dépasse pas 1, sa valeur par défaut. Sur notre version, l’augmenter a rendu le filtre plus de 15 fois plus lent sans réduire le bruit : le tableau utilise donc la valeur par défaut, qui se comporte en filtre dans le domaine transformé plutôt qu’en BM3D complet.
Deux commandes du tableau, prêtes à adapter :
ffmpeg -i input.mp4 -vf "nlmeans=s=6" -c:v libx264 -crf 16 -c:a copy denoised.mp4ffmpeg -i input.mp4 -vf "fftdnoiz=sigma=8:prev=1:next=1" -c:v libx264 -crf 16 -c:a copy denoised.mp4Partez bas et augmentez l’intensité jusqu’à ce que le bruit des zones unies ne vous gêne plus, puis vérifiez les visages, les tissus et le feuillage à 100 %. Pour une méthode courte et pratique, voir comment débruiter une vidéo avec l’IA.
Dégâts de compression : blocs, ringing et banding
La plupart des codecs découpent chaque image en blocs, les transforment et arrondissent les détails qu’ils peuvent le moins se permettre de garder. Trois types de dégâts naissent de cet arrondi :
- Les blocs. Quand l’arrondi est grossier, les blocs voisins ne se raccordent plus à leurs bords et une grille apparaît. MPEG-2, MPEG-4 Part 2 (les fichiers de l’époque DivX et Xvid) et Motion JPEG la montrent sous forme de carrés 8×8. H.264 et HEVC filtrent les bords de blocs à l’intérieur du codec : leurs dégâts paraissent donc plutôt étalés et en taches qu’en grille ; comment corriger une vidéo pixelisée montre les deux.
- Le ringing et le bruit de moustique. Arrondir les hautes fréquences laisse des ondulations près des bords nets et du texte, qui grouillent d’une image à l’autre.
- Le banding. Un dégradé lisse stocké avec trop peu de niveaux, par un pipeline 8 bits ou par un codec qui a aplati un ciel, se transforme en marches visibles.
Déblocage
Nous avons encodé le clip des feuilles en MPEG-2 à faible débit, puis mesuré de combien les sauts de luminosité sont plus forts aux frontières de blocs de 8 pixels qu’ailleurs (1,0 signifie aucune grille visible ; le clip propre a obtenu 0,99, le fichier MPEG-2 2,08).
| Filtre | Ce qu’il fait | Score de blocs | PSNR (luminance) |
|---|---|---|---|
| Fichier MPEG-2 | Référence | 2,08 | 27,7 dB |
deblock=filter=strong | Lisse les frontières de blocs qui ressemblent à des marches | 1,78 | 27,7 dB |
pp7=qp=12 | Seuille les coefficients DCT à des positions décalées | 1,43 | 27,4 dB |
spp=quality=4:qp=12 | Recompresse à plusieurs décalages et en fait la moyenne | 1,24 | 27,6 dB |
spp=quality=4:qp=24 | Idem, plus fort | 1,04 | 26,4 dB |
uspp=quality=3:qp=12 | Comme spp, mais encode chaque décalage avec un vrai codec | 1,03 | 27,5 dB |
Deux leçons. D’abord, le déblocage masque la grille mais ne ramène pas ce que l’encodeur a jeté : le PSNR a à peine bougé avec des réglages modérés, et le réglage spp le plus fort a coûté 1,3 dB en floutant. Ensuite, spp, pp7, fspp et uspp ont besoin d’une valeur de quantificateur. Ils la lisent dans le flux quand le décodeur en fournit une ; dans nos tests, ils n’ont rien changé tant que nous n’avons pas fixé qp nous-mêmes. Partez de 12 environ et n’augmentez que tant que des blocs subsistent :
ffmpeg -i old.mpg -vf "spp=quality=4:qp=12" -c:v libx264 -crf 16 -c:a aac deblocked.mp4Pour le ringing autour du texte et des bords, spp propose aussi mode=soft, que la documentation de FFmpeg décrit comme un meilleur effet anti-ringing, mais probablement plus flou.
Débandage
Le banding demande l’inverse de l’accentuation : il faut fondre les marches, puis les empêcher de revenir. Sur un ciel tiré d’un des clips d’exemple fournis avec KwaFlux, qui présente un vrai banding de compression, nous avons mesuré la longueur des plages uniformes le long de chaque ligne, avant et après :
- Source : les plages uniformes mesuraient en moyenne 10,4 pixels, et 20 % atteignaient 24 pixels ou plus, ce qui se voit comme des bandes.
- **
deband:** 2,8 pixels en moyenne, avec 0,8 % de plages aussi longues. - **
gradfun:** 1,3 pixel, sans aucune plage aussi longue. La documentation de FFmpeg le présente comme conçu pour la lecture uniquement, car la compression a tendance à perdre son tramage et à faire revenir les bandes.

Pour les fichiers à conserver, débandez donc, puis encodez en 10 bits, où les niveaux supplémentaires préservent le dégradé lissé. Vidéo 8 bits ou 10 bits explique pourquoi :
ffmpeg -i input.mp4 -vf "deband" -c:v libx264 -crf 16 -pix_fmt yuv420p10le -c:a copy debanded.mp4Accentuer sans halos
L’accentuation augmente le contraste des bords. La méthode classique, le masque flou (unsharp mask), soustrait une copie floutée de l’image pour trouver les bords, puis rajoute cette différence multipliée par un coefficient. L’effet secondaire est le dépassement (overshoot) : une ligne claire du côté clair du bord et une ligne sombre du côté sombre. Ce sont les halos.
L’accentuation adaptative au contraste (CAS), issue de FidelityFX d’AMD, ajuste le coefficient pixel par pixel : les zones déjà nettes en reçoivent moins, celles qui manquent de détail davantage.
Nous avons accentué un bord doux qui passe du niveau 60 au niveau 180 et mesuré le dépassement :
| Filtre | Halo sombre (niveaux sous 60) | Halo clair (niveaux au-dessus de 180) |
|---|---|---|
unsharp, 5×5, coefficient 1,5 | 4 | 2 |
unsharp, 7×7, coefficient 2,5 | 20 | 16 |
cas=strength=0.5 | Environ 2 | Aucun |
cas=strength=1.0 | 35 | 2 |

La documentation de FFmpeg juge raisonnables les coefficients unsharp compris entre −1,5 et 1,5, et notre essai à 2,5 montre pourquoi. CAS est resté propre à intensité modérée mais a dessiné le halo sombre le plus profond des quatre à pleine intensité : adaptatif ne veut donc pas dire sûr à tous les réglages. Deux habitudes évitent les excès d’accentuation :
- Accentuez après la mise à l’échelle, à la taille à laquelle la vidéo sera regardée, et jugez à 100 % à cette taille.
- Rappelez-vous ce que l’accentuation ne sait pas faire. Elle raidit les bords qui ont survécu ; elle ne récupère pas un détail perdu dans un flou de mise au point ou de bougé. Pour ces cas, voir comment corriger une vidéo floue.
ffmpeg -i input.mp4 -vf "cas=strength=0.4" -c:v libx264 -crf 16 -c:a copy sharpened.mp4Dominantes de couleur et aberration chromatique
Dominantes de couleur : la balance des blancs
Une dominante apparaît quand la caméra se trompe sur la lumière : toutes les couleurs se décalent alors dans le même sens. La lumière au tungstène rend les blancs orangés, l’ombre les rend bleutés. La corriger consiste à pondérer les canaux rouge, vert et bleu jusqu’à ce qu’un élément neutre redevienne neutre. Les méthodes diffèrent par leur façon de trouver ce « neutre » :
- Gray world (monde gris) suppose que la réflectance moyenne de la scène est achromatique. Ça marche quand la scène a des couleurs variées, et ça échoue quand une couleur domine.
- Gray edge (bords gris), proposé par van de Weijer, Gevers et Gijsenij, suppose que la *différence moyenne aux bords* d’une scène est achromatique, ce qui est moins influencé par les grandes surfaces d’une seule couleur.
- Une référence neutre connue mesure un élément que vous savez blanc ou gris, comme une charte grise, un mur blanc ou une coque de bateau blanche, et calcule les gains qui le rendent neutre.
Nous avons ajouté une dominante chaude à une image d’un clip d’exemple fourni avec KwaFlux, montrant un bateau en mer, puis l’avons corrigée de trois façons en mesurant l’écart de couleur moyen par rapport à l’image d’origine (ΔE ; plus il est bas, plus on est proche) :
| Méthode | ΔE moyen par rapport à l’original | Coque blanche, rouge moins bleu |
|---|---|---|
| Image d’origine | Référence | −6 |
| Dominante chaude ajoutée | 19,9 | 39 |
grayworld | 15,4 | 36 |
greyedge | 8,9 | 9 |
Gains calculés sur la coque (colorchannelmixer) | 5,9 | 0 |

Gray world a échoué comme dans les manuels : l’image est surtout faite de ciel et de mer bleus, il a donc neutralisé le ciel et laissé la coque orangée. Gray edge a fait l’essentiel du chemin. Les gains calculés sur la coque ont donné le résultat le plus proche. Pour les calculer, relevez les valeurs RVB de la zone neutre, puis divisez la valeur du vert par celle du rouge et par celle du bleu. Notre coque donnait 156, 144, 117 : le rouge reçoit donc 144 ÷ 156 = 0,923 et le bleu 144 ÷ 117 = 1,232 :
ffmpeg -i input.mp4 -vf "colorchannelmixer=rr=0.923:bb=1.232" -c:v libx264 -crf 16 -c:a copy balanced.mp4Sans référence neutre, gray edge est le choix automatique le plus sûr. Appliquez-le en lumière linéaire, comme le conseille la documentation de FFmpeg pour ces filtres :
ffmpeg -i input.mp4 -vf "zscale=transfer=linear,format=gbrpf32le,greyedge=difford=1:minknorm=5:sigma=2,zscale=transfer=bt709,format=yuv420p" -c:v libx264 -crf 16 -c:a copy balanced.mp4Pour une dominante accompagnée de couleurs ternes et plates, un étalonnage est souvent la solution la plus rapide ; l’Étalonnage IA couvre ce volet.
Aberration chromatique : réaligner les canaux
L’aberration chromatique est un défaut d’objectif : le verre dévie les longueurs d’onde différemment, si bien que les couleurs ne tombent pas au même endroit. Il en existe deux types :
- L’aberration latérale (transversale) donne à chaque couleur un grossissement légèrement différent. Les franges, en général rouge–cyan ou bleu–jaune, sont absentes au centre et grandissent vers les bords de l’image. Fermer le diaphragme n’y change rien, mais le post-traitement peut la corriger : mettre à l’échelle les canaux rouge et bleu pour qu’ils s’alignent de nouveau sur le vert.
- L’aberration axiale (longitudinale) fait la mise au point de chaque couleur à une distance différente : des franges violettes ou vertes apparaissent autour des bords très contrastés, n’importe où dans l’image, surtout à pleine ouverture. La mise à l’échelle ne la corrige pas ; masquer ou désaturer les franges permet seulement de la cacher.
Pour tester la correction, nous avons agrandi de 0,5 % le canal rouge d’une mire en damier et réduit le bleu de 0,5 % autour du centre, puis mesuré la différence moyenne rouge–bleu près des bords :
| Version | Bord gauche | Centre | Bord droit |
|---|---|---|---|
| Mire propre | 0 | 0 | 0 |
| Aberration latérale simulée | 37,5 | 2,3 | 37,5 |
Décalage uniforme des canaux (rgbashift) | 77,3 | 43,3 | 6,9 |
| Correction radiale (mise à l’échelle inverse) | 0,5 | 0,5 | 0,5 |

Le décalage uniforme est l’erreur classique : il aligne un côté et double l’erreur de l’autre, car l’aberration latérale grandit avec la distance au centre. La correction radiale réduit le rouge et agrandit le bleu autour du centre. Avec le filtre perspective de FFmpeg, elle travaille avec une précision inférieure au pixel ; les valeurs ci-dessous correspondent à une image 1920 × 1080 et à 0,5 % : mesurez votre propre vidéo et recalculez-les (les marges valent la moitié de largeur × (1 − 1/1,005) et de hauteur × (1 − 1/1,005)) :
ffmpeg -i input.mp4 -filter_complex "[0:v]format=gbrp,extractplanes=r+g+b[r][g][b];[r]perspective=x0=4.776:y0=2.687:x1=1915.224:y1=2.687:x2=4.776:y2=1077.313:x3=1915.224:y3=1077.313:interpolation=cubic:sense=destination[r2];[b]perspective=x0=4.776:y0=2.687:x1=1915.224:y1=2.687:x2=4.776:y2=1077.313:x3=1915.224:y3=1077.313:interpolation=cubic:sense=source[b2];[g][b2][r2]mergeplanes=0x001020:gbrp,format=yuv420p" -c:v libx264 -crf 16 -c:a copy fixed.mp4Astuce : dans nos tests, extractplanes a renvoyé les plans dans l’ordre R, G, B quel que soit l’ordre saisi : extractplanes=g+b+r donne quand même le rouge en premier. Étiquetez les sorties dans l’ordre R, G, B, sinon les canaux se retrouvent intervertis. Les convertisseurs RAW et les logiciels de montage dotés de profils d’objectif font cette correction automatiquement, et c’est la voie la plus simple quand votre objectif figure dans leur base.
Une chaîne FFmpeg complète
Voici tout l’ordre en une seule commande, pour un vieux clip 720p plein de blocs et de bruit, avec une dominante chaude, upscalé en 1080p :
ffmpeg -i input.mp4 -vf "bwdif=mode=send_frame:deint=interlaced,spp=quality=4:qp=12,hqdn3d=4:3:6:4.5,colorchannelmixer=rr=0.92:bb=1.23,scale=1920:-2:flags=lanczos,cas=strength=0.4,deband,noise=c0s=4:c0f=t" -c:v libx264 -crf 16 -preset slow -tune grain -pix_fmt yuv420p10le -c:a copy restored.mp4| Filtre | Étape | Remarques |
|---|---|---|
bwdif=mode=send_frame:deint=interlaced | Désentrelacement | N’agit que sur les images signalées comme entrelacées ; supprimez-le pour une source progressive |
spp=quality=4:qp=12 | Déblocage | Seulement pour les sources où les blocs se voient |
hqdn3d=4:3:6:4.5 | Débruitage | Les valeurs par défaut écrites en clair ; remplacez par fftdnoiz ou nlmeans pour un bruit plus fort |
colorchannelmixer=rr=0.92:bb=1.23 | Balance des blancs | Remplacez par les gains calculés sur votre propre zone neutre |
scale=1920:-2:flags=lanczos | Mise à l’échelle | Un upscaling classique ; un upscaler IA se placerait ici |
cas=strength=0.4 | Accentuation | Légère, à la taille de sortie |
deband | Débandage | Fond les marches des dégradés |
noise=c0s=4:c0f=t | Grain | Grain fin de luminance qui change à chaque image |
-tune grain -pix_fmt yuv420p10le | Encodage | Préserve grain et dégradés ; le H.264 10 bits se lit sur moins d’appareils, réservez-le donc au master |
Sur notre portable, la chaîne a traité 150 images d’un clip d’exemple 720p en H.264 High 10 1080p en 32,8 secondes. Pour la diffusion, encodez le master en HEVC Main 10 ou en H.264 8 bits avec grain.
La place des modèles d’IA, et ce qui se prépare
Les filtres classiques ont quelques paramètres et une idée figée de ce à quoi ressemble le bruit. Les modèles appris remplacent cette idée figée par une idée apprise à partir d’exemples :
- Les modèles mono-image (DnCNN, FFDNet et les réseaux de restauration qui ont suivi) apprennent la différence entre images propres et dégradées, et peuvent retirer bruit, blocs et flou en une seule passe.
- Les modèles multi-images combinent plusieurs images alignées : un détail présent sur plus d’une image est récupéré au lieu d’être deviné. FastDVDnet a montré que cela peut fonctionner sans étape coûteuse de compensation de mouvement. Quand l’alignement échoue, ils laissent des traînées, sujet de cohérence temporelle, scintillement et images fantômes.
- Les modèles génératifs (GAN et diffusion) ajoutent une texture que l’entrée ne contient pas. C’est la source à la fois de leurs détails et de leur risque ; pourquoi la restauration IA donne un rendu plastique traite ce compromis et la tendance 2026 vers la restauration par diffusion en une étape.
Les leçons classiques restent valables : réparer avant d’agrandir, garder un peu de texture, juger à 100 % et en mouvement.
Ce que fait KwaFlux
- La Réparation intelligente combine les étapes. Dans Réparation de qualité, Réparation intelligente analyse le clip et combine débruitage, accentuation, correction des couleurs et de la luminosité, upscaling et restauration des visages et des détails fins, en s’appuyant sur les images voisines.
- La Réparation par scène vise un type de dégât. Scène de nuit traite le bruit des faibles lumières et Suppression du grain film le grain, aux côtés de Débrumage, Suppression de la pluie, Anime et Coloriser.
- Le désentrelacement passe en premier. L’atelier Réparation de qualité enchaîne Désentrelacement, puis Réparation de qualité, puis Interpolation d’images : le même ordre que celui recommandé dans ce guide.
- Les dominantes relèvent de l’étalonnage. Couleur intelligente, dans Étalonnage IA, « Corrige les dominantes automatiquement ».
- Les tâches en plusieurs étapes restent en 10 bits. Quand un export se déroule en plusieurs étapes, les fichiers transmis entre elles sont en H.264 10 bits, pour que des arrondis 8 bits répétés n’ajoutent pas de banding.
- Prévisualisez, puis comparez. Rendez un aperçu de 1, 3 ou 5 secondes, choisissez Suivre la source avant de juger le mouvement, et activez Comparer la qualité après l’aperçu pour voir les scores. Corrigez l’aberration chromatique latérale avant l’import, avec la commande ci-dessus ou la correction d’objectif de votre logiciel de montage.
Problèmes courants
| Problème | Cause probable | Solution |
|---|---|---|
| Visages cireux après débruitage | Intensité trop forte, ou filtre non local qui efface la texture | Baissez l’intensité ; comparez la peau à 100 % ; ajoutez un grain fin en dernier |
| Le bruit empire après accentuation | Accentuation avant débruitage, ou trop forte | Débruitez d’abord ; accentuez en dernier et légèrement |
| Contours blancs ou sombres sur les bords | Coefficient d’accentuation trop élevé | Baissez le coefficient ; essayez cas entre 0,3 et 0,5 |
| Les bandes reviennent après l’export | Encodage 8 bits, ou tramage perdu à la compression | Débandez juste avant l’encodage final et encodez en 10 bits |
| Traînées derrière les objets en mouvement | Débruiteur temporel qui moyenne le mouvement | Baissez l’intensité temporelle ou utilisez un filtre qui tient compte du mouvement |
| Le déblocage ne change rien | Aucune valeur de quantificateur dans le flux | Fixez qp vous-même, en partant de 12 environ |
| La balance des blancs automatique grise le ciel | Gray world sur une scène dominée par une couleur | Utilisez gray edge ou des gains calculés sur un neutre connu |
| Franges corrigées d’un seul côté | Un décalage uniforme des canaux | Mettez plutôt à l’échelle le rouge et le bleu autour du centre |
Les limites
- Aucun débruiteur ne sépare le bruit d’un détail de même taille et de même contraste. Il faut céder quelque chose, et c’est à vous de choisir quoi.
- Le déblocage masque les bords de blocs ; il ne restaure pas ce que l’encodeur a jeté.
- L’accentuation augmente le contraste des bords ; elle n’ajoute pas de résolution.
- La mise à l’échelle des canaux ne corrige ni l’aberration chromatique axiale ni les franges violettes autour des hautes lumières écrêtées.
- La balance des blancs automatique est une estimation. Sans référence neutre, c’est une supposition sur la lumière.
Conclusion
Une bonne restauration est une suite de petites réparations ciblées : diagnostiquer le dégât, placer chaque filtre là où il ne peut pas défaire les autres, et s’arrêter dès que le problème ne se voit plus. Mesurez quand vous le pouvez, comparez à 100 % et en mouvement, et gardez un peu de texture plutôt que de courir après une image immaculée.
KwaFlux exécute la Réparation de qualité sur votre propre GPU. Le traitement IA tourne sur votre propre GPU et vos fichiers média ne sont pas envoyés pour être traités. KwaFlux fonctionne sous Windows 10 (64 bits, version 1809 ou plus récente), Windows 11 et macOS 12 ou plus récent sur Apple Silicon. Les aperçus ne demandent pas de compte : rendez un aperçu de 1, 3 ou 5 secondes sur n’importe quel clip. Une connexion avec un forfait payant n’est requise que pour exporter, convertir, réparer un fichier ou télécharger un fichier depuis un lien.
Testez sur vos propres images
Téléchargez KwaFlux et prévisualisez gratuitement les effets sur vos propres images avant de payer — sans compte, traitement sur votre GPU, sans envoi de vos médias. Les aperçus vidéo durent 1, 3 ou 5 secondes, ceux de la stabilisation 5, 15 ou 30 secondes.
Questions fréquentes
Faut-il débruiter avant ou après l’accentuation ?
Avant. L’accentuation augmente le contraste de tout ce qui est à l’échelle des bords, bruit compris : un débruiteur placé après a donc plus à retirer. Dans notre test, débruiter d’abord a laissé moins de bruit dans une zone unie (12,2 contre 14,5) et a obtenu un meilleur score par rapport au clip propre.
Quel filtre de débruitage vidéo conserve le plus de détails ?
Il n’y a pas un seul meilleur filtre : tout dépend de la vidéo et du bruit. Dans nos tests, un filtre dans le domaine fréquentiel utilisant les images voisines a conservé 98 % de la texture des feuilles, avec le deuxième score le plus élevé. Comparez des recadrages à 100 %, comme dans comment débruiter une vidéo avec l’IA.
L’accentuation peut-elle corriger une vidéo floue ?
En partie. L’accentuation raidit les bords encore présents, ce qui rend plus nette une vidéo légèrement douce, mais elle ne récupère pas un détail perdu dans un flou de mise au point ou de bougé, et la pousser dessine des halos. Pour un vrai flou, voir comment corriger une vidéo floue.
Pourquoi le banding revient-il après l’export ?
Parce qu’un encodage 8 bits arrondit de nouveau le dégradé lissé, et que la compression a tendance à supprimer le tramage fin qui masquait les marches. Débandez juste avant l’encodage final, encodez en 10 bits si votre diffusion le permet, et ajoutez un peu de grain pour que les zones unies gardent un peu de texture.
La balance des blancs automatique est-elle fiable ?
Parfois. Les méthodes automatiques estiment la lumière à partir d’hypothèses : gray world s’attend à ce que la scène soit grise en moyenne et échoue quand une couleur domine, tandis que gray edge tient mieux. Des gains mesurés sur un élément que vous savez blanc ou gris restent la correction la plus fiable.
Peut-on supprimer l’aberration chromatique en post-production ?
En partie. L’aberration chromatique latérale, dont les franges grandissent vers les bords de l’image, se corrige en mettant à l’échelle les canaux rouge et bleu autour du centre. L’aberration axiale, ces franges violettes ou vertes autour des bords lumineux n’importe où dans l’image, peut seulement être masquée ou désaturée.
Sources
- Buades, Coll, and Morel, "Non-Local Means Denoising," Image Processing On Line, 2011 (averaging similar pixels, which need not be close) (consulté le 2026-10-22)
- Lebrun, "An Analysis and Implementation of the BM3D Image Denoising Method," Image Processing On Line, 2012 (grouping similar 2D patches into 3D groups) (consulté le 2026-10-22)
- Zhang et al., "Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising" (DnCNN, residual learning) (consulté le 2026-10-22)
- Zhang, Zuo, and Zhang, "FFDNet: Toward a Fast and Flexible Solution for CNN-Based Image Denoising" (noise-level map input) (consulté le 2026-10-22)
- Tassano, Delon, and Veit, "FastDVDnet: Towards Real-Time Deep Video Denoising Without Flow Estimation" (multi-frame denoising without motion compensation) (consulté le 2026-10-22)
- AMD GPUOpen, "AMD FidelityFX Contrast Adaptive Sharpening (CAS)" (per-pixel sharpening amount) (consulté le 2026-10-22)
- van de Weijer, Gevers, and Gijsenij, "Edge-Based Color Constancy," IEEE Transactions on Image Processing, 2007, author's copy (gray-world and gray-edge assumptions) (consulté le 2026-10-22)
- Wikipedia, "Chromatic aberration" (axial and transverse types; transverse corrected by radial scaling, axial hard to remedy in post) (consulté le 2026-10-22)
- FFmpeg Filters Documentation (`hqdn3d`, `atadenoise`, `nlmeans`, `bm3d`, `fftdnoiz`, `deblock`, `spp`, `uspp`, `deband`, `gradfun`, `unsharp`, `cas`, `grayworld`, `greyedge`, `perspective`, `extractplanes`, `bwdif`) (consulté le 2026-10-22)
- x264 source, x264.c help text (`--tune grain` settings) (consulté le 2026-10-22)

