STMedianFilter é um filtro mediano (de movimento ligeiramente compensado) spatial/temporal.
De razoavelmente muito boa granulação, usando só píxeis adjacentes em espaço e tempo, olha em 26 locais adjacentes para os filtrar. Filtra luma e croma, mas em croma é um pouco mais limitado, como descrito depois.
USO - para usá-lo:
1) Coloque o STMedianFilter.dll em qualquer lugar num diretório. Você pode obtê-lo em www.trbarry.com/STMedianFilter.zip
2) Em seu arquivo Avisynth use comandos semelhantes para
LoadPlugin("F:\STMedianFilter\STMedianFilter.dll") Avisource("D:\wherever\myfile.avi") STMedianFilter(S_FilterThreshHold, S_EdgeThreshHold, T_FilterThreshHold, T_MotionThreshHold)
E claro, substitua os nomes dos arquivos e diretório com o seu próprio e dê os valores inteiros como parâmetros. Os valores válidos para cada, são de 0 a 255.
S e T acima, postos para espaço e temporal, respectivamente.
Um bom ponto de partida para valores de parâmetros pode ser
STMedianFilter(8,15,4,7)
Valores maiores filtram mais, mas mais artefatos. Descrições de parâmetros:
S_FilterThreshHold - não filtre píxel de espaço se muda mais que estes. Maiores valores podem causar perda de detalhe de linha, mas não é extremamente sensível.
S_EdgeThreshHold - não filtre píxel de espaço se em uma extremidade onde os valores mudam mais que isto. Parece ceder razoavelmente, assim pode ser elevado muito se desejado.
T_FilterThreshHold - não filtre píxel Temporal se mudar isto mais que estes. Grandes valores causarão fantasmas. Não fixe mais de 5-10 para evitar fantasma.
T_MotionThreshHold - não filtre píxel Temporal se valores de movimento não compensados mudarem mais que isto. Não fixe mais de 10 para evitar fantasma.
Mas se eu entendo isso como um simples filtro mediano é um passo de corte onde um valor é fixado para não ir além de seus limites alto e baixo.
Por exemplo, se tivesse 3 píxeis seguidos com valores < 5,8,7 > você poderia cortar o do centro para não estar fora o baixo 5 ou o alto 7, assim o fixaria em 7.
Agora imagine você tinha uma pequena tela de vídeo 3x3, como uma superfície de um cubo de Rubik. Imagine o quadro prévio como a camada inferior do cubo, o quadro atual como a camada do meio e o próximo quadro o topo.
Então o píxel de centro atual seria o centro do cubo de Rubik e haveria 13 modos de você desenhar uma linha por ele e um par de dois vizinhos mais próximos.
O que eu fiz foi comparar cada um desses pares de vizinhos para ver qual par era mais concordante em valor. Eu usei esse par para cortar o valor do píxel central.
Eu também cortei o valor do píxel só se ambos:
1) Não mudassem o valor do píxel por mais que o valor do parâmetro do FilterThreshold, e
2) A quantia do 'movimento não compensado' (acordo em valor pelos vizinhos) fosse menos que o valor do parâmetro MotionThreshHold.
$Date: 2006/03/26 18:11:54 $ Portuguese translation by RoLon