Oferta de HalloweenDoce ou travessura: conserta o vídeo!Os três planos baixam. A licença perpétua economiza $30Até 2 de nov., 23:59 (horário do Pacífico)

Ver preços

Reduzir ruído, remover blocos, dar nitidez, corrigir a cor: filtros de restauração de vídeo a fundo

Como funcionam redução de ruído, deblocking, debanding, nitidez, balanço de branco e correção de aberração cromática, a ordem certa e testes no FFmpeg.

O essencial

Cada filtro de restauração de vídeo corrige um tipo de dano, e a ordem em que você os roda decide se eles ajudam ou brigam entre si. Desentrelace primeiro, remova os blocos e reduza o ruído no tamanho da fonte, corrija a cor, depois redimensione, aplique uma nitidez leve e acrescente dithering ou grão por último. Dar nitidez ao ruído, ou remover o ruído do grão que você acabou de adicionar, desfaz o trabalho.

  • Cada filtro de restauração mira um tipo de dano: ruído, blocos de compressão, banding, falta de nitidez, dominante de cor ou franjas coloridas. Dê nome ao dano antes de escolher o filtro.
  • A ordem importa: desentrelace, remova os blocos e reduza o ruído no tamanho da fonte, corrija a cor, depois redimensione, aplique uma nitidez leve e acrescente dithering ou grão por último.
  • Os redutores de ruído trocam ruído por textura de formas diferentes. Nos nossos testes, o non-local means deixou um céu liso quase sem ruído, mas manteve o ruído na folhagem; forçado mais, apagou 17% do detalhe das folhas.
  • A nitidez deixa mais abruptas as bordas que já existem e desenha halos quando forçada. Ela não acrescenta detalhe.
  • Dois problemas diferentes são chamados de “erro de cor”: a dominante de cor, corrigida pelo balanço de branco, e a aberração cromática, corrigida realinhando os canais vermelho e azul.

O que cada reparo corrige

A restauração começa com um diagnóstico. A tabela lista os tipos comuns de dano, como reconhecê-los e os filtros que testamos para cada um. Se você não consegue distinguir grão de ruído ou de compressão, veja antes grão vs ruído vs artefatos de compressão.

DanoO que você vêReparoFiltros do FFmpeg que testamos
Ruído do sensorPontinhos que mudam a cada quadro, piores nas sombrasRedução de ruídohqdn3d, atadenoise, nlmeans, fftdnoiz, bm3d
Blocos de compressãoUma grade de quadrados em degradês e áreas em movimentoDeblockingdeblock, spp, pp7, fspp, uspp
Ringing e mosquito noisePontos e ondulações que andam em volta de bordas e textosDeringing (limiarização suave) ou redução de ruídospp com mode=soft, nlmeans
BandingDegraus visíveis em céus, paredes e fadesDebanding, depois codificação em 10 bitsdeband, gradfun
Falta de nitidezBordas sem definiçãoNitidez, ou upscale com um modelounsharp, cas
Dominante de corBrancos parecem laranja, azuis ou verdesBalanço de brancocolorchannelmixer, grayworld, greyedge
Aberração cromática lateralFranjas vermelho–ciano ou azul–amarelo que crescem em direção às bordas do quadroRedimensionar os canais vermelho e azulperspective nos planos extraídos
CombingLinhas em forma de pente nas bordas em movimentoDesentrelaçamentobwdif

Por que a ordem importa

Cada etapa muda o que a seguinte enxerga, então um filtro no lugar errado pode desfazer o anterior ou amplificar o dano que deveria remover.

Fluxograma de uma ordem de restauração: desentrelaçar, remover blocos, reduzir ruído, corrigir a cor, redimensionar, dar nitidez, debanding e grão, codificar em 10 bits
  • Desentrelace primeiro. Todos os outros filtros supõem quadros inteiros. Em campos entrelaçados, um redutor de ruído trata o combing como textura e um redimensionador o espalha em fantasmas. Veja como desentrelaçar vídeo.
  • Remova os blocos antes de qualquer coisa mexer nos pixels. Os filtros de deblocking trabalham sobre a grade de blocos do encoder, que a redução de ruído e o redimensionamento borram e deslocam.
  • Reduza o ruído antes de dar nitidez ou corrigir a cor. Nitidez e aumento de contraste amplificam o ruído junto com o detalhe.
  • Corrija a cor antes da nitidez. Corrija a dominante e realinhe os canais de cor enquanto as bordas ainda estão suaves; a nitidez deixaria as franjas mais marcadas.
  • Redimensione uma vez só, no quadro já limpo, para não ampliar o dano que sobrou.
  • Dê nitidez no tamanho de saída, e de leve.
  • Acrescente dithering e grão por último. Qualquer etapa de suavização depois deles removeria o ruído fino que esconde o banding ou o aspecto de cera.
  • Codifique com bits suficientes. Uma codificação em 10 bits impede que os degradês suaves voltem a ter banding.

Conferimos a ordem entre redução de ruído e nitidez em um clipe sintético com textura fina e ruído adicionado. Dar nitidez primeiro e reduzir o ruído depois deixou mais ruído em uma área lisa (14,5 pela nossa medida, contra 12,2 na ordem inversa) e marcou 26,6 dB de PSNR em relação ao clipe limpo, contra 27,7 dB. Só reduzir o ruído marcou 30,3 dB, com 8,0 de ruído restante: qualquer nitidez custa um pouco de limpeza, então use só o que o material precisa.

Redução de ruído: cinco famílias de filtros

Ruído é uma variação aleatória que muda de quadro para quadro; detalhe é uma estrutura que fica no lugar ou se move com a cena. Cada redutor de ruído explora essa diferença do seu jeito.

  • Filtros espaciais tiram a média de cada pixel com os vizinhos no mesmo quadro. São rápidos, mas não distinguem textura fina de ruído do mesmo tamanho, então suavizam os dois.
  • Filtros temporais tiram a média do mesmo pixel ao longo dos quadros vizinhos. O detalhe estático sobrevive porque se repete, enquanto o ruído se cancela na média. Tudo o que se move vira rastro, a menos que o filtro detecte o movimento ou alinhe os quadros antes; consistência temporal, flicker e fantasmas trata desse problema. O atadenoise do FFmpeg é uma média temporal adaptativa, e o hqdn3d combina uma passada espacial leve com uma temporal.
  • O non-local means substitui cada pixel pela média de pixels cujos trechos em volta se parecem, onde quer que estejam dentro de uma janela de busca. Como dizem os autores, os pixels mais parecidos não precisam estar perto. Áreas repetitivas, como céu ou paredes, oferecem muitas correspondências; uma textura única oferece poucas.
  • Filtros no domínio de transformada levam blocos da imagem para uma representação de frequência, em que a estrutura real se concentra em poucos coeficientes fortes e o ruído se espalha de leve por todos eles, e então encolhem os fracos. O fftdnoiz faz isso com uma FFT 3D que pode incluir quadros vizinhos. O BM3D primeiro agrupa trechos 2D parecidos em pilhas 3D, o que deixa a representação ainda mais esparsa.
  • Redutores de ruído baseados em aprendizado treinam uma rede com pares de imagens limpas e com ruído. O DnCNN aprende a prever o próprio ruído (aprendizado residual); o FFDNet recebe um mapa de nível de ruído como entrada extra, então um único modelo lida com níveis de ruído diferentes e desiguais; o FastDVDnet usa vários quadros de uma vez e evita uma etapa cara de compensação de movimento.

O que nossos testes mostraram

Adicionamos um ruído gaussiano que muda a cada quadro, cerca de 8 níveis em 255 na luma, a 30 quadros de um clipe de exemplo em 1080p com folhas iluminadas pelo sol contra o céu azul. Depois rodamos os redutores de ruído do FFmpeg na CPU de um notebook (Intel Core i7-1360P) e comparamos cada resultado com o clipe limpo:

Filtro e ajusteFamíliaTempo para 30 quadrosPSNR (luma)Erro restante no céu lisoErro nas folhasDetalhe das folhas mantido
Nenhum (entrada com ruído)ReferênciaNão se aplica30,3 dB8,88,999%
hqdn3d (padrão)Espacial e temporal1,0 s30,7 dB8,18,799%
hqdn3d=8:6:12:9Espacial e temporal0,8 s31,5 dB6,18,097%
atadenoise (limiares 0,1 e 0,2)Temporal0,9 s31,1 dB4,98,594%
nlmeans=s=6Non-local means31,7 s32,2 dB1,18,198%
nlmeans=s=10Non-local means31,8 s31,0 dB1,08,983%
fftdnoiz=sigma=8:prev=1:next=1Domínio de transformada, 3 quadros3,8 s33,7 dB4,36,498%
bm3d=sigma=30Domínio de transformada8,1 s34,0 dB1,36,291%

“Erro” é o desvio padrão da diferença em relação ao clipe limpo, então, nas folhas, ele conta igualmente o ruído que sobrou e a textura perdida. “Detalhe das folhas mantido” é a parcela da textura fina das folhas do clipe limpo que ainda está presente no resultado.

Seis recortes da mesma área de céu e folhas: limpo, com ruído, hqdn3d, nlmeans em duas intensidades e bm3d, cada um com as suas notas

O que os números dizem:

  • Filtros rápidos mal arranham um ruído forte. O hqdn3d no padrão levou o erro do céu de 8,8 para 8,1. Ele serve para ruído leve, ou como primeira passada antes de um filtro mais forte.
  • O non-local means é desigual por natureza. Com s=6, limpou o céu até 1,1, mas deixou as folhas quase tão ruidosas quanto antes (8,1), porque uma textura única tem poucos trechos parecidos para tirar a média. Com s=10, as folhas perderam 17% do detalhe real e o PSNR caiu: é o aspecto de cera descrito em por que a restauração com IA fica com cara de plástico.
  • Os filtros no domínio de transformada equilibraram as duas coisas. O fftdnoiz, com um quadro de cada lado, manteve 98% do detalhe das folhas a 33,7 dB. O bm3d teve o PSNR mais alto, 34,0 dB, mas removeu 9% do detalhe das folhas no caminho.
  • A velocidade varia por um fator de 40. O nlmeans rodou a cerca de um quadro por segundo em 1080p na nossa CPU; em 121 quadros de outro clipe 1080p, levou 192 segundos.

Uma ressalva sobre o bm3d: a documentação do FFmpeg diz que ele não faz block matching a menos que group passe de 1, o valor padrão. No nosso build, aumentar esse valor deixou o filtro mais de 15 vezes mais lento sem reduzir o ruído, então a tabela usa o padrão, que funciona como um filtro no domínio de transformada, e não como o BM3D completo.

Dois comandos da tabela, prontos para adaptar:

ffmpeg -i input.mp4 -vf "nlmeans=s=6" -c:v libx264 -crf 16 -c:a copy denoised.mp4
ffmpeg -i input.mp4 -vf "fftdnoiz=sigma=8:prev=1:next=1" -c:v libx264 -crf 16 -c:a copy denoised.mp4

Comece baixo e aumente a intensidade até o ruído nas áreas lisas deixar de incomodar, depois confira rostos, tecidos e folhagem com 100% de zoom. Para um passo a passo curto e prático, veja como reduzir o ruído de vídeo com IA.

Danos de compressão: blocos, ringing e banding

A maioria dos codecs corta cada quadro em blocos, transforma esses blocos e arredonda o detalhe que menos pode se dar ao luxo de manter. Três tipos de dano saem desse arredondamento:

  • Blocagem. Quando o arredondamento é grosseiro, os blocos vizinhos deixam de casar nas bordas e aparece uma grade. MPEG-2, MPEG-4 Part 2 (arquivos da era DivX e Xvid) e Motion JPEG mostram isso como quadrados de 8×8. O H.264 e o HEVC filtram as bordas dos blocos dentro do codec, então o dano deles tende a parecer borrado e manchado em vez de quadriculado; como corrigir vídeo pixelado mostra os dois tipos.
  • Ringing e mosquito noise. Arredondar as altas frequências deixa ondulações ao lado de bordas nítidas e textos, que andam de quadro para quadro.
  • Banding. Um degradê suave guardado com poucos níveis, por um pipeline de 8 bits ou por um codec que achatou um céu, vira degraus visíveis.

Deblocking

Codificamos o clipe das folhas em MPEG-2 com bitrate baixo e medimos o quanto os degraus de brilho são mais fortes nas bordas dos blocos de 8 pixels do que no resto (1,0 significa nenhuma grade visível; o clipe limpo marcou 0,99 e o arquivo MPEG-2, 2,08).

FiltroO que fazNota de blocagemPSNR (luma)
Arquivo MPEG-2Referência2,0827,7 dB
deblock=filter=strongSuaviza as bordas de blocos que parecem degraus1,7827,7 dB
pp7=qp=12Aplica limiar aos coeficientes DCT em posições deslocadas1,4327,4 dB
spp=quality=4:qp=12Recomprime em vários deslocamentos e tira a média1,2427,6 dB
spp=quality=4:qp=24O mesmo, mais forte1,0426,4 dB
uspp=quality=3:qp=12Como o spp, mas codifica cada deslocamento com um codec de verdade1,0327,5 dB

Duas lições. Primeiro, o deblocking esconde a grade, mas não traz de volta o que o encoder descartou: o PSNR quase não se mexeu nos ajustes moderados, e o ajuste mais forte do spp custou 1,3 dB ao borrar a imagem. Segundo, spp, pp7, fspp e uspp precisam de um valor de quantizador. Eles o leem do stream quando o decodificador fornece; nos nossos testes, não mudaram nada até definirmos o qp nós mesmos. Comece perto de 12 e só aumente enquanto ainda houver blocos:

ffmpeg -i old.mpg -vf "spp=quality=4:qp=12" -c:v libx264 -crf 16 -c:a aac deblocked.mp4

Para o ringing em volta de textos e bordas, o spp também tem o mode=soft, que a documentação do FFmpeg descreve como um efeito de deringing melhor, mas provavelmente mais borrado.

Debanding

O banding pede o oposto da nitidez: os degraus precisam ser misturados e depois impedidos de voltar. Em um céu de um dos clipes de exemplo que vêm com o KwaFlux, que mostra banding real de compressão, medimos o comprimento dos trechos lisos ao longo de cada linha antes e depois:

  • Fonte: os trechos lisos tinham em média 10,4 pixels, e 20% deles tinham 24 pixels ou mais, o que se lê como faixas.
  • **deband:** 2,8 pixels em média, com 0,8% dos trechos desse tamanho.
  • **gradfun:** 1,3 pixel, com nenhum desse tamanho. A documentação do FFmpeg diz que ele foi feito só para reprodução, porque a compressão tende a perder o dithering dele e trazer as faixas de volta.
Em cima: blocos de MPEG-2, deblock e uspp com 300% de zoom. Embaixo: um céu com banding, deband e gradfun, com o contraste aumentado quatro vezes

Então, para arquivos que você vai guardar, aplique o debanding e depois codifique em 10 bits, onde os níveis extras seguram o degradê suavizado. Vídeo 8 bits vs 10 bits explica por quê:

ffmpeg -i input.mp4 -vf "deband" -c:v libx264 -crf 16 -pix_fmt yuv420p10le -c:a copy debanded.mp4

Nitidez sem halos

Dar nitidez aumenta o contraste das bordas. O método clássico, a máscara de nitidez (unsharp mask), subtrai uma cópia borrada da imagem para achar as bordas e soma essa diferença de volta, multiplicada por uma quantidade. O efeito colateral é o overshoot: uma linha clara do lado claro da borda e uma linha escura do lado escuro. Esses são os halos.

A nitidez adaptativa ao contraste (CAS), do FidelityFX da AMD, ajusta a quantidade pixel a pixel: áreas que já estão nítidas recebem menos, áreas sem detalhe recebem mais.

Aplicamos nitidez a uma borda suave que passa do nível 60 para o 180 e medimos o overshoot:

FiltroHalo escuro (níveis abaixo de 60)Halo claro (níveis acima de 180)
unsharp, 5×5, quantidade 1,542
unsharp, 7×7, quantidade 2,52016
cas=strength=0.5Cerca de 2Nenhum
cas=strength=1.0352
Perfis de borda do unsharp e do cas em duas intensidades, mais recortes de galhos contra o céu: a fonte, o unsharp com quantidade 2,5 e contornos brancos, e o cas em 0,5

A documentação do FFmpeg chama de razoáveis as quantidades de unsharp entre −1,5 e 1,5, e o nosso teste com 2,5 mostra por quê. O CAS ficou limpo em intensidade moderada, mas desenhou o halo escuro mais profundo dos quatro na intensidade máxima, então adaptativo não quer dizer seguro em qualquer ajuste. Dois hábitos mantêm a nitidez honesta:

  • Dê nitidez depois de redimensionar, no tamanho em que as pessoas vão assistir, e avalie com 100% de zoom nesse tamanho.
  • Lembre-se do que a nitidez não faz. Ela deixa mais abruptas as bordas que sobreviveram; não recupera detalhe perdido por foco ou desfoque de movimento. Para esses casos, veja como corrigir vídeo desfocado.
ffmpeg -i input.mp4 -vf "cas=strength=0.4" -c:v libx264 -crf 16 -c:a copy sharpened.mp4

Dominantes de cor e aberração cromática

Dominantes de cor: balanço de branco

Uma dominante de cor acontece quando a câmera avalia mal a luz, então todas as cores se deslocam para o mesmo lado: a luz de tungstênio deixa os brancos laranja, a sombra os deixa azuis. Corrigir isso significa ajustar a escala dos canais vermelho, verde e azul até algo neutro voltar a parecer neutro. Os métodos diferem na forma de encontrar o “neutro”:

  • O gray world supõe que a refletância média da cena é acromática. Funciona quando a cena tem cores variadas e falha quando uma cor domina.
  • O gray edge, proposto por van de Weijer, Gevers e Gijsenij, supõe que a *diferença média nas bordas* de uma cena é acromática, algo que grandes áreas de uma só cor influenciam menos.
  • Uma referência neutra conhecida mede algo que você sabe que é branco ou cinza, como um cartão cinza, uma parede branca ou o casco branco de um barco, e calcula os ganhos que o tornam neutro.

Adicionamos uma dominante quente a um quadro de um clipe de exemplo que vem com o app, com um barco no mar, depois corrigimos de três formas e medimos a diferença média de cor em relação ao quadro original (ΔE; quanto menor, mais perto):

MétodoΔE médio vs originalCasco branco, vermelho menos azul
Quadro originalReferência−6
Com dominante quente19,939
grayworld15,436
greyedge8,99
Ganhos a partir do casco (colorchannelmixer)5,90
O quadro do barco: original, com dominante quente, gray world, gray edge e ganhos a partir do casco, com um gráfico de barras da diferença média de cor

O gray world falhou do jeito clássico, de manual: o quadro é quase todo céu e mar azuis, então ele neutralizou o céu e deixou o casco laranja. O gray edge fez a maior parte do caminho. Os ganhos a partir do casco chegaram mais perto. Para calculá-los, colete os valores RGB do trecho neutro e divida o valor do verde pelo do vermelho e pelo do azul. Nosso casco deu 156, 144, 117, então o vermelho recebe 144 ÷ 156 = 0,923 e o azul 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.mp4

Sem uma referência neutra, o gray edge é a escolha automática mais segura. Rode-o em luz linear, como a documentação do FFmpeg recomenda para esses filtros:

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.mp4

Para uma dominante somada a cores chapadas e sem vida, uma correção de cor costuma ser o caminho mais rápido; a Correção de cor IA cuida desse lado.

Aberração cromática: realinhar os canais

A aberração cromática é um problema da lente: o vidro desvia os comprimentos de onda em quantidades diferentes, então as cores não caem no mesmo lugar. Ela tem dois tipos:

  • A aberração lateral (transversal) dá a cada cor uma ampliação um pouco diferente. As franjas, normalmente vermelho–ciano ou azul–amarelo, não aparecem no centro e crescem em direção às bordas do quadro. Fechar o diafragma não ajuda, mas o pós-processamento sim: redimensione os canais vermelho e azul para que voltem a se alinhar com o verde.
  • A aberração axial (longitudinal) foca cada cor a uma distância diferente, então franjas roxas ou verdes aparecem em volta de bordas de alto contraste em qualquer parte do quadro, principalmente com o diafragma todo aberto. Redimensionar não resolve; mascarar ou dessaturar as franjas só consegue escondê-las.

Para testar a correção, ampliamos o canal vermelho de uma carta de teste xadrez em 0,5% e reduzimos o azul em 0,5% em relação ao centro, depois medimos a diferença média entre vermelho e azul perto das bordas:

VersãoBorda esquerdaCentroBorda direita
Carta limpa000
Aberração lateral simulada37,52,337,5
Deslocamento uniforme de canal (rgbashift)77,343,36,9
Correção radial (escala inversa)0,50,50,5
Recortes perto da borda esquerda do quadro das folhas: original, aberração lateral simulada, deslocamento uniforme de canal e a correção radial

O deslocamento uniforme é o erro comum: ele alinha um lado e dobra o erro do outro, porque a aberração lateral cresce com a distância do centro. A correção radial reduz o vermelho e amplia o azul em relação ao centro. Com o filtro perspective do FFmpeg, isso funciona com precisão de subpixel; os números abaixo correspondem a um quadro de 1920 × 1080 e a 0,5%, então meça o seu próprio material e recalcule-os (as margens são metade de largura × (1 − 1/1,005) e de altura × (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.mp4

Dica: nos nossos testes, o extractplanes devolveu os planos na ordem R, G, B qualquer que fosse a ordem digitada, então extractplanes=g+b+r ainda entrega o vermelho primeiro. Rotule as saídas na ordem R, G, B, ou os canais acabam trocados. Conversores RAW e editores com perfis de lente fazem essa correção automaticamente, e são o caminho mais fácil quando a sua lente está no banco de dados deles.

Uma cadeia completa no FFmpeg

Aqui está a ordem inteira em um único comando, para um clipe 720p antigo, com blocos, ruído e uma dominante quente, ampliado para 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
FiltroEtapaObservações
bwdif=mode=send_frame:deint=interlacedDesentrelaçamentoSó mexe em quadros marcados como entrelaçados; tire-o em fontes progressivas
spp=quality=4:qp=12DeblockingSó para fontes com blocos visíveis
hqdn3d=4:3:6:4.5Redução de ruídoOs valores padrão escritos por extenso; troque por fftdnoiz ou nlmeans para ruído mais pesado
colorchannelmixer=rr=0.92:bb=1.23Balanço de brancoSubstitua pelos ganhos do seu próprio trecho neutro
scale=1920:-2:flags=lanczosRedimensionamentoUm upscale convencional; um upscaler de IA entraria aqui no lugar dele
cas=strength=0.4NitidezLeve, no tamanho de saída
debandDebandingMistura os degraus nos degradês
noise=c0s=4:c0f=tGrãoGrão fino de luma que muda a cada quadro
-tune grain -pix_fmt yuv420p10leCodificaçãoPreserva o grão e os degradês; H.264 em 10 bits roda em menos aparelhos, então use como master

No nosso notebook, a cadeia processou 150 quadros de um clipe de exemplo em 720p para H.264 High 10 em 1080p em 32,8 segundos. Para a entrega, codifique o master em HEVC Main 10 ou em H.264 de 8 bits com grão.

Onde entram os modelos de IA e para onde isso vai

Os filtros clássicos têm poucos parâmetros e uma ideia fixa de como o ruído é. Os modelos treinados trocam essa ideia fixa por uma aprendida com exemplos:

  • Modelos de imagem única (DnCNN, FFDNet e as redes de restauração que vieram depois) aprendem a diferença entre imagens limpas e degradadas e conseguem remover ruído, blocos e desfoque em uma única passada.
  • Modelos multiquadro combinam vários quadros alinhados, então o detalhe que aparece em mais de um quadro é recuperado em vez de adivinhado. O FastDVDnet mostrou que isso funciona sem uma etapa cara de compensação de movimento. Quando o alinhamento falha, eles deixam rastros, o tema de consistência temporal, flicker e fantasmas.
  • Modelos generativos (GANs e difusão) acrescentam textura que a entrada não tem. Essa é a origem tanto do detalhe quanto do risco deles; por que a restauração com IA fica com cara de plástico trata desse equilíbrio e da tendência de 2026 para a restauração por difusão em um passo.

As lições clássicas continuam valendo: repare antes de ampliar, mantenha alguma textura e avalie com 100% de zoom e em movimento.

Como o KwaFlux lida com isso

  • O Reparo inteligente combina as etapas. No Reparo de qualidade, o Reparo inteligente analisa o clipe e combina redução de ruído, nitidez, correção de cor e brilho, upscaling e restauração de rostos e de detalhes finos, trabalhando com quadros vizinhos.
  • O Reparo por cena mira um tipo de dano. A Cena noturna cuida do ruído de pouca luz e a Remoção de grão de filme cuida do grão, ao lado de Remover névoa, Remover chuva, Anime e Colorizar.
  • O desentrelaçamento vem primeiro. A área de trabalho do Reparo de qualidade roda o Desentrelaçamento, depois o Reparo de qualidade e depois a Interpolação de quadros, a mesma ordem que este guia recomenda.
  • Dominantes ficam com a correção de cor. A Cor inteligente, na Correção de cor IA, “corrige dominantes automaticamente”.
  • Trabalhos em várias etapas mantêm 10 bits. Quando uma exportação roda em várias etapas, os arquivos passados entre elas são H.264 de 10 bits, para que o arredondamento repetido em 8 bits não acrescente banding.
  • Gere a prévia e depois compare. Renderize uma prévia de 1, 3 ou 5 segundos, escolha Acompanhar a origem antes de avaliar o movimento e ative Comparar qualidade após a pré-visualização para ver as notas. Corrija a aberração cromática lateral antes de importar, com o comando acima ou com a correção de lente do seu editor.

Problemas comuns

ProblemaCausa provávelSolução
Rostos de cera depois da redução de ruídoIntensidade alta demais, ou um filtro non-local apagando texturaReduza a intensidade; compare a pele com 100% de zoom; adicione grão fino por último
O ruído piora depois da nitidezNitidez aplicada antes da redução de ruído, ou em excessoReduza o ruído primeiro; dê nitidez por último e de leve
Contornos brancos ou escuros nas bordasQuantidade de nitidez alta demaisReduza a quantidade; teste o cas entre 0,3 e 0,5
As faixas voltam depois da exportaçãoCodificação em 8 bits, ou dithering perdido na compressãoAplique o debanding antes da codificação final e codifique em 10 bits
Rastros atrás de objetos em movimentoRedutor de ruído temporal tirando a média do movimentoReduza a intensidade temporal ou use um filtro que leve o movimento em conta
O deblocking não muda nadaO stream não forneceu valor de quantizadorDefina o qp você mesmo, começando perto de 12
O balanço de branco automático deixa o céu cinzaGray world em uma cena dominada por uma só corUse gray edge ou ganhos a partir de um neutro conhecido
Franjas corrigidas só de um ladoUm deslocamento uniforme de canalRedimensione o vermelho e o azul em relação ao centro

O que isso não resolve

  • Nenhum redutor de ruído separa o ruído de um detalhe do mesmo tamanho e contraste. Algo se perde, e você escolhe o quê.
  • O deblocking esconde as bordas dos blocos; ele não restaura o que o encoder descartou.
  • A nitidez aumenta o contraste das bordas; ela não acrescenta resolução.
  • Redimensionar canais não corrige a aberração cromática axial nem as franjas roxas em volta de realces estourados.
  • O balanço de branco automático é uma estimativa. Sem uma referência neutra, é um palpite sobre a luz.

Conclusão

Uma boa restauração é uma sequência de reparos pequenos e direcionados: diagnostique o dano, rode cada filtro onde ele não desfaça os outros e pare assim que o problema deixar de aparecer. Meça quando puder, compare com 100% de zoom e em movimento, e mantenha um pouco de textura em vez de correr atrás de um quadro imaculado.

O KwaFlux executa o Reparo de qualidade na sua própria GPU. O processamento de IA roda na sua própria GPU e os seus arquivos de mídia não são enviados para processamento. Roda no Windows 10 (64 bits, versão 1809 ou mais recente), no Windows 11 e no macOS 12 ou mais recente em Apple Silicon. As prévias não exigem conta: renderize uma prévia de 1, 3 ou 5 segundos de qualquer clipe. O login com um plano pago só é necessário para exportar, converter, reparar um arquivo ou baixar um arquivo de um link.

Teste no seu próprio material

Baixe o KwaFlux e veja os efeitos de graça no seu próprio material antes de pagar — sem conta, processado na sua GPU, sem enviar sua mídia. As prévias de vídeo duram 1, 3 ou 5 segundos; as de estabilização, 5, 15 ou 30 segundos.

Perguntas frequentes

Devo reduzir o ruído antes ou depois de dar nitidez?

Antes. A nitidez aumenta o contraste de tudo o que está na escala das bordas, ruído incluído, então um redutor de ruído que roda depois tem mais para remover. No nosso teste, reduzir o ruído primeiro deixou menos ruído em uma área lisa (12,2 contra 14,5) e teve nota mais alta em relação ao clipe limpo.

Qual filtro de redução de ruído preserva mais detalhe no vídeo?

Não existe um único melhor filtro; depende do material e do ruído. Nos nossos testes, um filtro no domínio da frequência que usa quadros vizinhos manteve 98% da textura das folhas com a segunda nota mais alta. Compare recortes com 100% de zoom, como em como reduzir o ruído de vídeo com IA.

Dar nitidez resolve um vídeo desfocado?

Em parte. A nitidez deixa mais abruptas as bordas que ainda existem, então um material levemente suave parece mais definido, mas ela não recupera detalhe perdido por foco ou desfoque de movimento, e forçá-la desenha halos. Para desfoque de verdade, veja como corrigir vídeo desfocado.

Por que o banding volta depois de exportar?

Porque uma codificação em 8 bits arredonda de novo o degradê suavizado, e a compressão tende a descartar o dithering fino que escondia os degraus. Aplique o debanding logo antes da codificação final, codifique em 10 bits onde a entrega permitir e acrescente um pouco de grão para que as áreas lisas mantenham alguma textura.

O balanço de branco automático é confiável?

Às vezes. Os métodos automáticos estimam a luz a partir de suposições: o gray world espera que a média da cena dê cinza e falha quando uma cor domina, enquanto o gray edge se sai melhor. Ganhos medidos a partir de algo que você sabe que é branco ou cinza são a correção mais confiável.

Dá para remover aberração cromática na pós-produção?

Em parte. A aberração cromática lateral, em que as franjas crescem em direção às bordas do quadro, pode ser corrigida redimensionando os canais vermelho e azul em relação ao centro. A aberração axial, as franjas roxas ou verdes em volta de bordas claras em qualquer parte do quadro, só pode ser mascarada ou dessaturada.

Fontes

  1. Buades, Coll, and Morel, "Non-Local Means Denoising," Image Processing On Line, 2011 (averaging similar pixels, which need not be close) (acessado em 2026-10-22)
  2. Lebrun, "An Analysis and Implementation of the BM3D Image Denoising Method," Image Processing On Line, 2012 (grouping similar 2D patches into 3D groups) (acessado em 2026-10-22)
  3. Zhang et al., "Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising" (DnCNN, residual learning) (acessado em 2026-10-22)
  4. Zhang, Zuo, and Zhang, "FFDNet: Toward a Fast and Flexible Solution for CNN-Based Image Denoising" (noise-level map input) (acessado em 2026-10-22)
  5. Tassano, Delon, and Veit, "FastDVDnet: Towards Real-Time Deep Video Denoising Without Flow Estimation" (multi-frame denoising without motion compensation) (acessado em 2026-10-22)
  6. AMD GPUOpen, "AMD FidelityFX Contrast Adaptive Sharpening (CAS)" (per-pixel sharpening amount) (acessado em 2026-10-22)
  7. 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) (acessado em 2026-10-22)
  8. Wikipedia, "Chromatic aberration" (axial and transverse types; transverse corrected by radial scaling, axial hard to remedy in post) (acessado em 2026-10-22)
  9. FFmpeg Filters Documentation (`hqdn3d`, `atadenoise`, `nlmeans`, `bm3d`, `fftdnoiz`, `deblock`, `spp`, `uspp`, `deband`, `gradfun`, `unsharp`, `cas`, `grayworld`, `greyedge`, `perspective`, `extractplanes`, `bwdif`) (acessado em 2026-10-22)
  10. x264 source, x264.c help text (`--tune grain` settings) (acessado em 2026-10-22)
  • redução de ruído
  • restauração de vídeo
  • qualidade de vídeo

Autor e editor da KwaFlux. Os artigos são revisados pela equipe editorial da KwaFlux e se baseiam em nossas notas de pesquisa de produto e nas especificações publicadas.