AviSynthで手動逆テレシネ

内蔵フィルタのDoubleWeaveとPulldownを使います。

周期一定なら非常に楽で、高速です。

周期の確認

スクリプトに以下のように書きます。

DoubleWeave()
a = Pulldown(0, 2).Subtitle("0, 2")
b = Pulldown(1, 3).Subtitle("1, 3")
c = Pulldown(2, 4).Subtitle("2, 4")
d = Pulldown(0, 3).Subtitle("0, 3")
e = Pulldown(1, 4).Subtitle("1, 4")
ShowFiveVersions(a, b, c, d, e)

上に3つ、下に2つの画面が並ぶと思います。

再生してみて縞フレームがないパターンが2通りあると思うので、その画面に出ている数字をメモしておきます。

逆テレシネ

スクリプトに以下のように書きます。

DoubleWeave().Pulldown(0, 3)

Pulldownの値は先ほどメモしたものを書きます。
2通りありますが、どちらでも構いません。

周期確認を楽にする

縞フレームを強調することでわかりやすくします。

TIVTCをダウンロードして、TIVTC.dllをpluginsフォルダに入れます。

以下を拡張子.avsiにしてpluginsフォルダに入れます。

function PulldownCheck(clip clip)
{
    clip = clip.DoubleWeave()
    clip = clip.ShowCombedTIVTC()
    clip = clip.ReduceBy2()
    a = clip.Pulldown(0, 2).Subtitle("0, 2")
    b = clip.Pulldown(1, 3).Subtitle("1, 3")
    c = clip.Pulldown(2, 4).Subtitle("2, 4")
    d = clip.Pulldown(0, 3).Subtitle("0, 3")
    e = clip.Pulldown(1, 4).Subtitle("1, 4")
    clip = ShowFiveVersions(a, b, c, d, e)
    return clip
}

スクリプトに以下のように書きます。

PulldownCheck()

縞フレームは白く強調されるので、わかりやすいと思います。

解像度を半分にして見やすくしていますが、不要ならclip = clip.ReduceBy2()は消してください。

SelectEveryについて

Pulldownの代わりにSelectEveryを使うこともできます。

DoubleWeave().SelectEvery(5, 0, 3)

Pulldown(a, b)は、SelectEvery(5, a, b)と同じです。