Convolution3D

Abstrato

autor: Vlad59
versões: - 1.01 (versão YUY2)
                - beta 4 (YV12 versão com influência temporal desativada)
download: http://www.avisynth.org/warpenterprises/
categoria: suavizadores Spatio-temporal
requisitos: 

Descrição

Convolution3D é um filtro do Avisynth que aplicará uma convolução 3D a todo píxel de uma quadro

1 - Como usar

Convolution3d (matrix=0, ythresh=3, cthresh=4, t_ythresh=3, t_cthresh=4, influence=3, debug=0)

Escolha da Matriz:
0 : Matriz original:
1 2 1   2 4 2   1 2 1
2 4 1   4 8 4   2 4 1
1 2 1   2 4 2   1 2 1
Esta matriz é útil para filme normal (não anime) porque mantém mais detalhes
1: bb idéia de 1 matriz inteira (grande idéia)
1 1 1   1 1 1   1 1 1
1 1 1   1 1 1   1 1 1
1 1 1   1 1 1   1 1 1
Esta matriz é muito útil com animes ou fontes de qualidade ruins porque borra um pouco mais (removendo mais ruídos assim)

Influência Temporal:
Especialmente usado para acelerar um pouco este filtro e evitar usar informações temporais quando não necessário
(mudança de cena, fade, ...)
Eu construo primeiro um limit = Temporal Luma Threshold * Temporal influence
Para cada 2 píxeis computados (devido ao MMX, 2 píxeis ao mesmo tempo), eu confiro isto primeiro:
se
(Abs (Y0 - Y0[Quadro anterior]) +
Abs (Y0 - Y0[Próximo quadro]) +
Abs (Y1 - Y1[Quadro anterior]) +
Abs (Y1 - Y1[Próximo quadro])) > limite
então
faça trabalho Espacial (só 3*3 matriz)
ou
faça trabalho Espacial e Temporal (3*3*3 matriz)
Quanto mais baixo é - > mais rápido será o filtro mas a compressibilidade deverá ser mais baixa

Quanto mais alto é - > mais lento será o filtro mas a compressibilidade deverá ser mais alta

se é fixada influência temporal em -1 então só o trabalho espacial é feito (velocidade alta).

Este parâmetro é um flutuante.

2 - Exemplos de Parâmetros

Eu construo os seguintes pré-fixos para fazer as coisas mais fáceis:
Convolution3d (preset="movieHQ") // Filme de Alta Qualidade (fonte de DVD boa)
é um pseudônimo para Convolution3D (0, 3, 4, 3, 4, 2.8, 0)
Convolution3d (preset="movieLQ") // Filme de Baixa Qualidade (fonte de DVD ruidosa)
é um pseudônimo para Convolution3D (0, 3, 4, 3, 4, 2.8, 0)
Convolution3d (preset="animeHQ") // Anime de Alta Qualidade (fonte de DVD boa)
é um pseudônimo para Convolution3D (0, 6, 12, 6, 8, 2.8, 0)
Convolution3d (preset="animeLQ") // Anime de Baixa Qualidade (fonte de DVD ruidosa)
é um pseudônimo para Convolution3D (1, 8, 16, 8, 8, 2.8, 0)
Convolution3d (preset="animeBQ") // Anime Qualidade Ruim (???)
é um pseudônimo para Convolution3D (1, 12, 22, 8, 8, 2.8, 0)
Convolution3d (preset="vhsBQ") // captura de VHS Qualidade Ruim (???)
é um pseudônimo para Convolution3D (0, 32, 128, 16, 64, 10, 0)

Eu tive que testar Convolution3d com uma captura de TV de qualidade ruim e neste caso tive especialmente para o mais alto percentual de croma (causando algum fantasma mas a qualidade global parece ser melhor).
Eu pessoalmente uso estes parâmetros:

Convolution3D (0, 32, 128, 32, 128, 10, 0)

Os percentuais de Convolution3d só estão aqui para cuidar de extremidades e mudança de cena. Você pode aumentar o de espaço (especialmente croma) mas pare assim que ver alguns borrados ao redor das extremidades (se quer qualidade). Com as colocações propostas você não deverá ter este problema.
O Temporal deverá estar abaixo de 10 para evitar fantasma.
Você deve ter cuidado especialmente do percentual da matriz 1, porque com esta matriz o quadro atual tem menos peso assim é mais fácil ter fantasma.

Você pode achar alguma informação sobre como trabalha em: http://forum.doom9.org/showthread.php?s=&threadid=29829

3 - Limitações ou Problemas Conhecidos

AVISO: é lento, eu sei e tento fazê-lo mais rápido, assim não me apresse sobre isso, obrigado desde já.

4 - Créditos

Obrigado ao
bb pela idéia original e muitos testes
iago, Koepi e TheReal pelo testes de filme real e comprimento total (ou captura)
Tom Barry, Dividee e Sh0dan por suas úteis informações técnicas ou idéias
Por um tutorial francês Ctrl-Alt-Suppr
Defiler por acomodar o Convolution3d
Todos os usuários do Convolution3D

Vlad59 (babas.lucas@laposte.net)

5 - Licença

Copyright (c) 2002 Sébastien LUCAS. Todos os direitos reservados.
babas.lucas@laposte.net

Este arquivo está sujeito às condições do GNU General Public License como publicado pela Fundação do Software Livre. Uma cópia desta licença está incluída com esta distribuição de software no arquivo COPYING. Se você não tiver uma cópia, você a pode obter escrevendo à Fundação do Software Livre, 675 Massa Ave, Cambridge, MA 02139, E.U.A..

Este software é distribuído na esperança que será útil, mas SEM QUALQUER GARANTIA; sem até mesmo a garantia incluída de COMERCIABILIDADE ou APTIDÃO PARA UM PROPÓSITO EM PARTICULAR. Veja o GNU General Public License para mais detalhes.

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