Pulldown

Pulldown (clip, int a, int b)

Pulldown フィルタは、ソースビデオから 5 フレームごとに 2 フレームずつを単純に選択します。フレームレートは、オリジナル値の 2/5 に減少します。
例えば、Pulldown(0,2) はフレーム 0, 2, 5, 7, 10, 12 などを選択します。

このフィルタは DoubleWeave の後に使用することを想定して作られており、そしてその目的は 3:2 プルダウン*1処理を使ってビデオに変換された映画のオリジナルのフレームを取り出すことにあります。

先に DoubleWeave を使う必要がある理由は、キャプチャーカードが間違った方法でフィールドを合成することにあります。フィールドの点から見ると、3:2 プルダウンのシークエンスは単に「A A B B B C C D D D ...」です(ここで A から D はオリジナルのフィルムのフレームを表します)。しかし、キャプチャカードは、プルダウンのパターンを尊重せずにこれらのフィールドを合成してフレームにします。そして、次のようなフレームが得られます:

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

このパターンでは、フレーム C は単独で表示されることはありません。DoubleWeave の後、フィールドのすべての組み合わせはそれぞれのフレームを得ます。そのため、ビデオストリームはこのように開始されます:

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

今、映画の各フレームは、それぞれ少なくとも 1 つのビデオフレームを持っています。この時点で、0,3 という実引数を渡して Pulldown フィルタを適用すると、*(アスタリスク)で印を付けたフレームが選択されます。そして、以下のフレームが得られます:

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

... まさに求めた通りのものです。

説明するには非常に複雑ですが、実際のところ、プルダウンを元に戻すのは、ただ単にボイラープレートコード*2を挿入するだけの問題です。ShowFiveVersions の例を参照してください。

Pulldown(a,b) は、内部的には SelectEvery(5,a,b).AssumeFrameBased として実装されています。


註: このページは、AviSynth 2.5.8 RC3 に同梱されている英語版ヘルプの日本語訳です。原文は、AviSynth をインストールしたフォルダ内の Docs/english/corefilters/pulldown.htm にあります。なお、このページのテキストおよび画像のライセンスは、オリジナルのそれに準じます。詳しくは、AboutLicense を参照してください。


*1 訳者註: 参考: 24Pと24PAの違い3:2 および 24Pa プルダウンについて
*2 訳者註: 定型コード。原文では boilerplate code。boilerplate には「決まり文句」などの意味がある。

最終更新日時: 2014-03-11 (火) 03:49:03 (3692d)