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 $