Pulldown

Pulldown (clip, int a , int b)

O filtro Pulldown simplesmente seleciona dois entre cada cinco quadros do vídeo fonte. A taxa de quadro é reduzida a dois quintos do seu valor original.
Por exemplo, Pulldown(0,2) seleciona os quadros 0, 2, 5, 7, 10, 12 e assim por diante.

Este filtro é projetado para ser usado depois de DoubleWeave, e seu propósito é recuperar os quadros originais de um filme que foi convertido a vídeo usando o processo 3:2 do pulldown.

A primeira razão pela qual é preciso usar DoubleWeave é que as placas de captura combinam os campos de modo errado. Em termos de campos, a seqüência de pulldown 3:2 é simplesmente "A A B B B C C D D D ...", onde "A" a "D" representam os quadros dos filme originais. Mas as placas de captura combinam os campos em quadros sem respeito pelo padrão de pulldown, e você tem isto:

A   B   C   D   D       (30 fps - 30 quadros por segundo)
A   B   B   C   D

Neste quadro C padrão nunca é mostrado por si só. Depois de DoubleWeave todo par de campos adquire seu próprio quadro, assim o fluxo vídeo começará assim:

A A B B C C D D D       (60 fps - 60 quadros por segundo)
A B B B B C C D D
*     *   *     *

Agora cada quadro de filme tem um quadro de vídeo pelo menos em si mesmo. Neste momento o filtro Pulldown com argumentos de 0,3 selecionará as quadros marcadas com um * e você terá

A     B   C     D       (24 fps - 24 quadros por segundo)
A     B   C     D

... que é o que você realmente quer.

Tudo isto é muito complicado para descrever, mas em prática desfazer o pulldown é apenas uma questão de inserir algum código boilerplate. Veja o exemplo abaixo em ShowFiveVersions.

Pulldown(a,b) é implementado internamente como SelectEvery(5,a,b).AssumeFrameBased.

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