Este plugin para Avisynth implementa um robusto detector de quadro duplicado. Foi criado inicialmente como uma cama de teste para um novo algoritmo que diferencia quadro, mas para fazê-lo um filtro útil em seu próprio direito, foram implementadas características de cópia e mistura, por meio de uma string de quadros que estão todos dentro da diferença de percentual do primeiro quadro da string, que será substituída com uma string de quadros todos idênticos ao último quadro da string fonte. O último quadro é usado em vez do primeiro porque freqüentemente o primeiro quadro, depois de uma mudança de cena tem mais artefatos bloqueando, etc. Se a opção de mistura está habilitada, o quadro de substituição será gerado de uma mistura de todas as duplicatas na string (útil para redução de ruídos).
Isto é planejado para uso em clipes que têm um número significante de quadros de conteúdo duplicados, mas que difere devido ao ruído. Tipicamente anime tem muitas dessas duplicatas. Substituindo as duplicatas ruidosas com exatas, pode-se obter uma redução de bitrate. É um lanche grátis! ('Marc FD' implementou primeiro esta funcionalidade de cópia). Adicionalmente, se a opção de mistura está habilitada, uma significante redução de ruídos pode ser obtida para quadros duplicados.
Alguns detectores de duplicatas são incapazes de se adaptar às mudanças nos níveis de luminância das várias cenas num clipe e eles são mal afetados pelo ruído. Eles têm delicados percentuais absolutos que devem ser fixados pelo usuário. Este filtro tenta resolver todos esses problemas.
Dup usa uma pequena janela que esquadrinha no quadro, assim é capaz de ver mudanças muito pequenas. O efeito de ruído é reduzido por meio de cancelamento automático por um processo de adição. A diferença de quadro é normalizada na faixa de 0-100% para fazer a colocação do percentual mais intuitiva.
O filtro aceita entrada YUY2 e YV12. Ainda não está aperfeiçoado em velocidade. Otimizações serão incluídas em uma versão futura.
Esta versão Dup requer Avisynth 2.5 e além. Há uma versão de legado Dup para uso com versões Avisynth 2.0x.
Dup(threshold=5,debug=true)
Qualquer combinação e ordem de parâmetros nomeados é permitida. Porém, lembre-se que sempre deve incluir parênteses vazios se não especificar um parâmetro.
REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\Avisynth] "PluginDir"="d:\\avisynthplugins"
Depois, crie arquivos padrões como exigido no diretório de plugins. Por exemplo, para fixar blend=true como padrão para Dup(), faça um arquivo chamado Dup.def e ponha esta linha nele:
blend=true
Você pode listar tantas tarefas de parâmetro quantas queira, uma por linha. As não especificadas assumem os valores dados abaixo. Claro que sempre poderá anular os padrões em seus escritos quando invocar as funções. NOTA: As linhas no arquivo de padrões não devem conter qualquer espaço ou abas.
A seguir a sintaxe para Dup (substitua parameter_list com sua lista de parâmetros nomeados separada por vírgulas):
Dup(parameter_list)
threshold (0.0-100.0, padrão 3.0): Este parâmetro define a mudança de porcentagem na janela de píxel 32x32 mais diferente que seja o bastante para declarar uma duplicata de um quadro. O modo para pensar nisto é que se o percentual é ± 7%, então, se qualquer área de píxel 32x32 muda de 7% ou mais, não é uma duplicata, caso contrário é. Use a opção show para exibir os valores da diferença de quadro para ajudar a fixar o percentual se você preferir algo diferente do padrão.
Você sempre deve fixar seu percentual acima do nível de ruído do clipe. A quantia dependerá de quantas duplicatas você quer gerar, ou a redução de bitrate desejada. Para determinar o nível de ruído, examine os quadros e procure os que tenham conteúdo duplicado, embora com diferenças de ruído. Você pode achar que os quadros com conteúdos duplicados são um métrico da altura de alguma porcentagem (devido aos ruídos). Determine o mais alto métrico que você obter para as duplicatas contidas. Então fixe seu percentual acima desse nível com uma margem que queira para alcançar a redução de bitrate desejada.
chroma (true/false, padrão true): Fixe chroma=false para excluir croma da diferença do quadro.
show (true/false, padrão false): Quando fixo em true, a informação é sobreposta sobre a parte superior esquerda do quadro. Quando copy=false, a área de píxel 32x32 que é muito diferente da mesma área no próximo quadro é delineada com uma caixa branca e a diferença métrica é exibida. Se a caixa tem um X, o quadro foi declarado como uma duplicata de acordo com a porcentagem de diferença configurada (threshold). Quando copy=true, a caixa não é exibida. As informações do texto dirão quais quadros são duplicados e com que quadro de fonte.
copy (true/false, padrão true): Se esta opção é fixada em true, as duplicatas declaradas serão substituídas por uma única cópia. Se houver uma string de duplicatas, o último quadro na string é usado para todas as cópias. Se blend=true, o quadro da cópia será gerado misturando todas as duplicatas na string.
maxcopies (1-20, padrão 20): Determina o número máximo de cópias que podem ser emitidas para a declaração duplicada. Porém, se o fluxo de entrada tem mais que o máximo número de duplicatas em uma string, então eles vão tudo para a produção. Este limite força o término da sucessão duplicada atual; as comparações reiniciam com o quadro seguinte.
blend (true/false, padrão false): Se esta opção é fixada em true, o comportamento da cópia será modificada de forma que em vez de usar o último quadro na string de duplicatas, será criado um quadro e usado da mistura de todas as duplicatas na string. Isto é útil para redução de ruído. Esta opção requer copy=true. Também, note que o quadro de mistura é gerado quando o primeiro quadro na string é pedido. O acesso fortuito no meio de uma string não invocará mistura. Toque o clipe diretamente de um ponto de partida para a correta operação.
debug (true/false, padrão false): Este parâmetro habilita depurar a produção à utilidade DebugView. Ela pode ser baixada do meu web site.
$Date: 2006/03/26 18:11:53 $ Portuguese translation by RoLon