## Pulldown

`Pulldown` (clip, int a , int b)

Il filtro di `Pulldown` seleziona 2 frames ogni 5 del video sorgente. Il frame rate è parimenti ridotto a 2/5 del valore originale.Ad esempio: `Pulldown`(0,2) seleziona i frames 0, 2, 5, 7, 10, 12, e così via.

Questo filtro è destinato ad essere usato dopo `DoubleWeave`, e lo scopo è quello di ricuperare i frames originali di un film che è stato convertito in un video clip con un processo di pulldown 3:2.

La ragione per cui è necessario usare prima `DoubleWeave` è che le schede di cattura uniscono i frames in modo errato. In termini di fields, la sequenza di pulldown 3:2 è semplicemente "A A B B B C C D D D ...", dove da "A" fino a "D" sono rappresentati i frames del film . Ma la scheda di cattura unisce i fields in frames senza rispettare la struttura del pulldown , così si avrà:

    A   B   C   D   D       (30fps)
    A   B   B   C   D

In questa struttura il frame C non comparirà mai. Dopo `DoubleWeave` ogni coppia di fields forma il proprio frame frame, sicchè lo stream video comincerà così:

    A A B B C C D D D       (60fps)
    A B B B B C C D D
    *     *   *     *

Ora ogni frame del film ha per sè almeno un video frame. A questo punto il filtro `Pulldown` con argumenti ``0,3`` selezionerà i frames marcati con * e si avrà,

    A     B   C     D       (24fps)
    A     B   C     D

... che è quello che si voleva.

Tutto questo è veramente complicato da descrivere, ma nella pratica il pulldown è solo una questione di inserimento di un pò di codice standard. Vedere un esempio sotto ``ShowFiveVersions``.

`Pulldown`(a`,`b`)` è implementato internamente ad Avisynth come`SelectEvery(5,a`,`b).AssumeFrameBased`.

`$Date: 2004/10/03 21:26:00 $`