# PeachSmoother

## Abstrato

autor: Lindsey Dubb
versão: 1.0c
download: http://www.avisynth.org/warpenterprises/
categoria: Suavizadores Spatio-temporal
requisitos: YUY2 Colorspace

## Introdução

Este é mais um filtro que limpa o quadro, calculando a média do ruído visual entre e dentro dos quadros.

O Peach (pêssego) é projetado para lidar com as estranhezas em radiodifusão de TV. Ele se ajusta automaticamente às boas ou pobres qualidades do sinal e da recepção e razoavelmente com alguns tipos de interferência. É bem agradável!

O filtro examina a imagem, deduz a quantia de ruídos no quadro e calcula como cancelar o ruído. Para diferenciar entre ruído e movimento, o filtro usa correlações dentro e entre campos como também diferenças de cor locais. O grau de certeza sobre o movimento, ruído e detalhe é usado para decidir que mistura das cores prévias, atuais e próximas para mostrar.

Para usar o Peach, seu computador deverá executar instruções SSE. Significa que você precisará ter um Pentium 3, Athlon, Celeron mais recente ou qualquer processador mais novo.

Este filtro trabalha no colorspace YUY2. Assim se o clipe é codificado com cores RGB, você precisará primeiro processar com ConvertToYUY2().

O filtro Peach Smoother do AVISynth foi escrito por Lindsey Dubb, registro em 2002. Se você tiver qualquer pergunta, comentários, problemas ou sugestões, você é bem-vindo para me enviar um e-mail ou postar no Foro do AVISynth em Doom9.

## As Colocações

NoiseReduction
Um inteiro entre 1 e 200; 35 por padrão

Às vezes o filtro não sabe se a mudança no quadro vem de ruído ou movimento. Quando isso acontece, há um tradeoff — Guess motion (uma negociação - adivinhe o movimento) e a imagem será mais ruidoso se você estiver errado. "Adivinhe o barulho" e um engano deixará o movimento borrado.

As colocações NoiseReduction contam ao filtro como fazer este tradeoff (negociação). Fixe baixo e o computador toca firme, evitando qualquer parte da imagem que tenha movimento. Fixe alto e o ruído será grandemente reduzido - às custas de borrar e perder detalhes em áreas de pouco movimento. Este tradeoff é afetado pela quantia de ruído. Quanto mais ruído há na imagem, mais borrar será necessário para reduzi-lo.

Não há um modo perfeito para escolher isto —Tente valores diferentes até parecer tão agradável quanto possível. Comédias e dramas provavelmente são o melhor material por escolher colocações, pois os close-up faciais fazem qualquer borrar realmente fácil de ver. (É porque somos especialmente bons em ver distorção em faces).

Lembre que este filtro se ajusta automaticamente à quantia de ruídos no quadro. Uma vez que você tem uma colocação que gosta, pode usar para ambos os vídeos limpos e ruidosos.

Porém, há dois tipos de vídeo que merece um pouco de consideração especial: desenhos e jogos esportivos. Com desenhos, você pode usar um NoiseReduction muito mais alto, desde que a animação tende a detalhes piores. E com jogos esportivos (ou qualquer outro espetáculo com movimento constante), há muito pouco a ganhar de um filtro de ruídos, assim pode saltar isto.

Antes de afinar bem esta colocação, tenha certeza que o filtro pôde calcular o ruído no clipe. Para isso, faça uso do Dot, descrito abaixo.

Stability
Um inteiro de -100 a 100; 20 por padrão

Esta colocação conta ao filtro quanta mistura de cores, quando for incerto sobre se há movimento. Para preservar uma quantia pequena de ruídos ao longo do quadro, diminua esta colocação. Para ter uma aparência realmente sólida do quadro, use um valor mais alto. Não fixe muito alto, senão terá posterização.

Embora seu ajuste Stability , o filtro preservará sempre uma certa quantia de variação para manter a profundidade de cor da imagem original.

DoSpatial
Um boolean; TRUE como padrão

Esta colocação decide se você quer que o filtro use suavização espacial. É um suavizador muito sutil e é usado principalmente em baixo contraste, partes móveis do quadro. E é um pouco mais rápido quando o filtro espacial é desativado.

Spatial
Um inteiro de 0 a 400; 100 por padrão

Isto determina quanta suavização espacial a usar. É medido em por cento, relativo à quantia de suavização temporal. Mas o Peach prefere o uso de suavização temporal sempre que possível, assim a suavização espacial só entra em cena quando falha a suavização temporal.

Dot
Um boolean; FALSE por padrão

É... um pequeno ponto verde!

Com esta opção, aparecerá um minúsculo ponto verde quando a estimativa do filtro de ruídos for confirmada pelo quadro atual. Mostrará perto do superior esquerdo da tela - especificamente 16 abaixo e 16 em frente do canto esquerdo superior. O ponto é uma indicação que o filtro assentou num valor de ruído. Em geral, apagará quando todo o quadro estiver em movimento rápido. Quando houver muito movimento, o filtro tende a não acreditar na estimativa atual. Nesse caso, o filtro executa a pesagem dos prévios valores bons.

Se o quadro estiver em constante movimento, demorará um tempo antes do filtro poder entender o nível de ruído. Interferência também tende a fazer a estimação de barulho ficar mais longa . O tempo de estimação depende do tipo e quantia da interferência.

Readout
Um boolean; FALSE por padrão

Para ajudar a decidir quanto suavizar, este filtro mede o ruído no vídeo. Quando você habilitar Readout, estas medidas serão mostradas na saída.

Você verá dois números. O primeiro é uma medida do significado do nível de ruído. O segundo é uma medida da mais baixa quantia de ruído vista em qualquer lugar no quadro. Isso dá uma idéia sobre quanto ruído varia no vídeo. Estas estimativas se ajustarão ao longo do vídeo.

Os números são medidos conforme a mudança absoluta esperada em um único píxel (contando croma e luma) entre dois quadros adjacentes.

Isto dá uma medida objetiva do ruído. Também é o modo para entender os valores pelo NoiseLevel e opções de Baseline, descrito abaixo.

NoiseLevel e Baseline
Dois ajustes - cada um é o número do ponto flutuante de 0.0 a 100.0; não usado por padrão

Em lugar de avaliar o nível de ruído, você pode contar o Peach quanto ruído está exatamente no quadro.

Para fazer assim, escolha os valores para NoiseLevel e Baseline. Para ter estes valores, use a opção de Readout, descrita acima. Note que Baseline nunca deve ser mais que NoiseLevel.

Por que você quer especificar estes números? Porque o Peach pode demorar um tempo para calcular a quantia de ruído. E em ocasiões raras pode se enganar mal. (Isto normalmente é causado em cenas com fumaça e nuvens de pó, que o Peach pode identificar erradamente como ruído). Especificando os valores do ruído, a estimativa nunca oscilará. Saltando a estimação de ruído também faz as coisas correrem um pouco mais rápido.

Por outro lado, algum vídeo realmente tem quantias variáveis de ruído. Nesse caso, você se dará muito melhor com a detecção de ruído habitual do Peach.

ShowMotion
Um boolean; FALSE por padrão

Este é outro diagnóstico obscuro. Quando ativado, o filtro intercalará sua estimativa de que o movimento está ocorrendo. Áreas brancas definitivamente são movimento, áreas pretas são definitivamente estacionárias. Áreas cinzas são áreas cinzas.

Debug
Um boolean; FALSE por padrão

Esta opção só é significada para o forte de coração. Para uma explicação de sua produção, veja os comentários até embaixo de FLT_AdaptiveNoise.c .

## Sobre o Peach

### Quanta Redução de Ruído devo Usar?

Deixe seus olhos serem o juiz. Eu gosto de manter as colocações bem baixas - faces Borradas parecem pior que um pouco estático.

Surpreendentemente, pequenas quantias de variação de cor às vezes podem melhorar uma imagem. Trocando de um lado para outro entre as cores, o quadro pode dar a impressão de uma cor em algum lugar entre eles. Também, ruído pode separar padrões de objetos no quadro, tornando mais fácil para você ignorar os erros.

Com isso em mente, o Peach tenta preservar uma quantia pequena de variação de cor. Como resultado, nunca lhe dará um quadro completamente estável. Isto é provavelmente ruim para compressão, mas melhora a qualidade do quadro.

### Estou vendo muitos borrões no início do meu vídeo de movimento constante (ou muito escuro). O que devo fazer para melhorar os resultados?

Se você estiver vendo muitas manchas, tente usar a opção Dot. Se o ponto verde não aparecer, então o problema é que o Pêssego não pôde entender quanto ruído havia.

Há dois modos para resolver isso. O melhor é ativar a opção Readout, e observar uma parte posterior do vídeo onde o quadro é imóvel. Faça uma nota do NoiseLevel e Baseline daquela parte estacionária. Então especifique em seu comando e a sucessão inteira deve parecer boa.

Se seu vídeo não tiver nenhuma parte estacionária, então você deve saltar este filtro. Um suavizador temporal não vai fazer muito bem para puro material de alto movimento.

Outro modo para resolver este problema é pôr algum vídeo imóvel (do mesmo clipe) no começo da sucessão. Isso permitirá o Peach calcular o ruído antes dos materiais rápidos os mostrar.

### A imagem parece um tanto suave. Há algo que posso fazer?

Tente reduzir a colocação Stability.

## Ruídos em Geral

### Qual a melhor maneira de me livrar dos ruídos?

Tenha certeza em ter um sinal bom. Ruído pode vir de confusões de cabo, conexões pobres, energia fraca e aterramento, placas de entrada de vídeos pobremente projetadas, dispositivos elétricos (algo de um interruptor mais escuro para vários componentes de computador) ou de uma fonte de vídeo ruim. Estes assuntos estão além da extensão deste arquivo de ajuda. Eu sugiro um olhada no AV Science Forum Home Theater Computers FAQ e quadros de avisos, onde estes tópicos são discutidos à altura.

### Devo usar um filtro de ruído?

Depende do que você está assistindo. Esportes e natureza mostram em geral - realmente qualquer coisa com muitas mudanças de texturas de baixo contraste - não é bem controlado pelos suavizadores temporais. Isso é porque essas texturas se parecem muito com barulho.

O Peach faz bem com material difícil, desabilitando-se onde detecta movimento. Causa surpreendentemente poucos problemas com esportes de campo tanto como o ruído de fundo não é muito ruim. Mas não é perfeito - corridas de estradas são especialmente propensas a borrar. Quando isso acontecer, é melhor saltar qualquer suavizador temporal.

Caso contrário, geralmente vale a pena rodar um filtro de ruído.

### Quantos filtros de ruídos devo usar?

Tome muito cuidado ao usar mais que um. Rodando filtros de ruídos temporais múltiplos podem causar aos filtros posteriores em ter excesso de confiança na estimativa de ruído/movimento. Isso normalmente conduz a posterização, manchando e ligando.

Rodando um filtro espacial depois do Peach Smoother ainda pode trabalhar razoavelmente bem, desde que seu suavizador espacial é bem sutil - Só esteja seguro em não rodar o filtro espacial primeiro.

### Onde devo colocar filtros de ruídos em meu script?

Em geral, é melhor filtrar ruído assim que possível. Isto é especialmente verdade para o Peach, desde que sua estimação de ruído pode ser livrada por alguns filtros. Por exemplo, se você legenda seu vídeo, o Peach pode detectar a falta de ruído nos subtítulos.

Com material entrelaçado, é uma idéia muito boa em rodar o filtro antes de desentrelaçar. Isso porque boa redução de ruído pode melhorar grandemente a precisão do desentrelaçador.

Para telecine inverso a situação é mais difícil de julgar. Mas como regra, é ainda melhor rodar a redução de ruído primeiro.

A exceção para esta regra é o filtro pente. Qualquer filtro pente deve ser rodado antes da redução de ruído, porque em caso contrário o filtro de ruído interpretará cruzamento de cor como movimento.

### Outros truques podem ajudar a reduzir ruídos?

Se você estiver usando uma placa Bt8x8, você pode desativar Luma Peaking Odd and Even. Ativando o Filtro Horizontal da placa reduzirá o ruído mas também perderá algum detalhe.

## Alterações de Filtros

- Version 0.9a — Initial release
- Version 0.9b — Allowed parameters to be set; Different defaults; Corrected to deal with Y = 16 black; Additional orange smoke
- Version 0.9c — Added parameter checking
- Version 0.9d — Corrected to allow spatial smoothing of more than 100%
- Version 0.9e — Filter now turns off when jumping between frames
- Version 0.9f — Filter now handles interlaced material correctly; The smoothing option has been rescaled to something closer to a real percentage; Different defaults; Yet more orange smoke
- Version 0.9g — Enabled spatial (but not temporal) smoothing when jumping between frames; Turning off spatial smoothing now improves speed; enabled prefetching for a speedup; improved parameter handling
- Version 0.9h — Provided a (legible) onscreen readout of the amount of noise. Allowed noise values to be supplied by the user. Allowed spatial smoothing in the first frame.
- Version 1.0a — Improved determination of amount of spatial smoothing to use. Improved horizontal correlation code. Improved accuracy of noise estimate readout. Made temporal color combination closer to the theoretical goal. (Side effect: you might want to drop your NoiseReduction by about ten points.) Increased role of spatial correlation in motion estimates. Changed the name of the Estimates option to Readout.
- Version 1.0b — Provided a display of the internal motion estimate with the ShowMotion option. Allowed negative Stability settings.
- Version 1.0c — Moved the readout a little further from the edge of the screen.

`$Date: 2006/03/26 18:11:53 $ Portuguese translation by RoLon`