# MultiDecimate

## Abstrato

autor: Donald A. Graft
versão: 1.0.7
download: http://neuron2.net/mine.html
categoria: Remoção de Desentrelaçamento & Pulldown
requisitos: YUY2 Colorspace

## Introdução

Este filtro provê capacidades de dizimação estendidas não disponível no Decimate(). Pode remover todos os quadros duplicados de um clipe, ou pode remover N de todos os quadros de M onde N e M podem ser selecionados pelo usuário, removendo os quadros mais semelhante dos seus antecessores. Modos especiais estão disponíveis para proteger cenas estáticas de dizimação.

Este filtro usa uma aproximação de 2 passes para permitir acesso fortuito de navegação em toda a linha de tempo, dizimação fortuita e a adição posterior de um manual com base GUI (tweaking*) que belisca capacidade.

Este filtro é valioso quando dizimação tradicional 1-in-5 não é suficiente. Por exemplo, muitos filmes silenciosos são transferidos em DVD incluindo duplicatas em padrões incomuns, porque as taxas de quadros originais não são 24 fps. Não é incomum ver clipes que requerem dizimação estranha como 20 em 43. Às vezes essas dizimações estranhas podem ser atingidas, ou quase, por aplicação repetida de Decimate() usando ciclos diferentes, mas isso é uma aproximação incômoda que nem sempre pode atingir as relações exatas de dizimação requeridas. Este filtro tenta aproximar ao problema mais diretamente, mas às custas de operação de 2 passes.

Outra aplicação típica é remover 3 entre 4 quadros para clipes que foram feitos às 120 fps para apresentar corretamente híbridos de filme e vídeo.

Esta versão suporta YUY2 só para Avisynth 2.5. YV12 será incluído quando a funcionalidade estabilizar.

## Configuração Inicial

Coloque MultiDecimate.exe e ProcessMD.exe em algum lugar em seu caminho executável DOS. Ponha o MultiDecimate.dll em sua pasta de plugins do Avisynth (ou carregue-o manualmente em seus escritos). Se você não manja de caminhos do DOS, apenas ponha MultiDecimate.exe e ProcessMD.exe em seu diretório de escrito.

## Processo

Passo 1. Faça seu escrito para o passo 1:

...
MultiDecimate(pass=1)

Carregue o escrito e toque diretamente do princípio ao fim (não salte primeiro pela linha de tempo!). Isto cria o arquivo métrico, mfile.txt, em seu diretório de escrito. Se você quiser examinar seu vídeo para padrões duplicados, comente a chamada MultiDecimate(), não tente fazer isso durante o passo 1, pois qualquer salto na linha de tempo corromperá o arquivo métrico. Finalmente, depois que o passo 1 completa, saia imediatamente do VirtualDub; não role ao seu redor.

É perda de tempo incluir qualquer filtro depois da chamada do MultiDecimate() no primeiro passe. Comente-os para desempenho mais rápido. Comente-os de novo na segunda passagem.

Passo 2. Execute MultiDecimate.exe para rodar o GUI. Selecione o arquivo mfile.txt. Selecione o modo desejado (veja abaixo uma descrição dos modos). Fixe as caixas de configuração restantes como exigido (veja abaixo). Então clique no botão Create. Isto faz os arquivos cfile.txt e dfile.txt em seu diretório de escritos.

Passo 3. Edite o escrito para mudar pass=1 para pass=2. Agora você pode carregar o escrito e terá o vídeo dizimado correto, e a linha de tempo de navegação de acesso fortuito será suportada. O Passo 2 lê o arquivo dfile.txt na memória e o usa para determinar quais quadros a entregar.

## GUI de Dizimação - Modos e Configurações

Os seguintes modos estão disponíveis:

- "Remove duplicates: Global: Naive": Este modo removerá todos os quadros determinados para serem duplicados como definidos pelo "Threshold" (percentual) configurado. Os quadros com um percentual métrico menor serão considerados duplicatas. Examine o mfile.txt para checar os quadros métricos.

- "Remove duplicates: Global: Protect static scenes": Este modo removerá todos os quadros determinados duplicatas como definidos pela configuração do percentual, mas não serão removidas as cenas estáticas. Uma cena estática é definida para ser a que roda duplicatas iguais ou maior que o Comprimento de Execução configurado.

- "Remove duplicates: Cycle-based: Naive": Este modo removerá N de todos os quadros M, onde N é definido antes do Cycle configurado e M é definido pelos Remove configurados.

- "Remove duplicates: Cycle-based: Protect static scenes": Este modo removerá N de todos os quadros M, como acima, mas as cenas estáticas são "protegidas". Em modo "naive", uma cena estática dentro de um ciclo pode ser preferencialmente dizimada. Isto pode ser ruim porque pode perder muita cena estática e tendo duplicatas extras delas significa que elas permanecem nas cenas de ação.

  Para endereçar isto, use o modo "protect static scenes". Quando você escolher este modo da lista, duas caixas extras de edição aparecem. "Threshold" é o métrico abaixo do qual as duplicatas são declaradas. Os métricos são iguais aos usados no arquivo mfile.txt, assim você pode usá-lo para ajudar. Os campos no mfile.txt são como segue:

  FrameNum IsADup Metric

  "Run Length" é o número de duplicatas (assim definido) numa linha que define uma cena estática sujeita à proteção. Uma cena estática protegida é dizimada pela relação remove/cycle, nem mais, nem menos (sujeito a truncar o inteiro).

## Parâmetros de Filtro do Avisynth

A seguir a sintaxe para MultiDecimate (substitui parameter_list com sua lista de parâmetros nomeados separada por vírgulas):

`MultiDecimate` (parameter_list)

pass (1 ou 2, padrão 1): Este parâmetro define o passo do processo descrito acima.

quality (0-3, padrão 2) Esta opção permite ao usuário negociar a detecção da diferença de qualidade e a velocidade. A seguir as possibilidades:

quality = 0: Sub amostrado para velocidade e croma não considerados (mais rápido).
quality = 1: Sub amostrado para velocidade e croma considerados
quality = 2: Inteiramente amostrado e croma não considerado.
quality = 3: Inteiramente amostrado e croma considerado (mais lento).

show (true/false, padrão false) habilita informação para exibir no quadro. Também exibe a versão do software.

debug (true/false, padrão false) habilita informação para imprimir via OutputDebugString(). Uma utilidade chamada DebugView está disponível para pegar essas strings. A informação exibida é igual à mostrada pela opção show acima.

## Agradecimentos

Graças ao Tom Daniel ('manono') por sugestionar esta nova funcionalidade de dizimação.

## Copyright

Copyright (C) 2003, Donald A. Graft, Todos os Direitos Reservados.
Feedback/inquiries to neuron2 at attbi.com.

Para atualizações e outros filtros / ferramentas, visite meu web site:
http://neuron2.net/

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