※このページは 2009年11月に執筆したものです。MT や AviSynth2.6 の完成度が低かった時代のものであり、現在となっては役に立たない情報も含まれています。

アニメエンコする場合は、逆テレシネフィルタをマルチスレッド化するのがとんでもなく難しい事に今更気が付きました。私の場合、録画&エンコするのはほとんど実写番組。

MTを導入して10ヶ月経ちますが、アニメエンコするのは今日が初めて。(ちなみに昨日録画したラピュタをエンコ中)むぅぅぅ、、、、こりゃ無理っぽいな(^_^;

はじめに

MTプラグインとは、AviSynthの各フィルタをマルチスレッドで作動させるためのもの。AviSynth2.6からは標準で実装されます。

MTプラグインの解説はこちらで
AviSynth 2.6 のMT化手順と 2.5系から移行する際のチェックポイント

MTプラグイン設定1

mt("""IT(fps = 24, ref = "TOP", blend = false)""",X,Y)
※ この書式は AviSynth 2.5.7 + MT および ごく初期の AviSynth 2.6 + MT で有効です。現在の 2.6 では動作しません。

上記の様に設定すると、画面をX分割してマルチスレッドで逆テレシネが行われる。
しかし(特に日本の)アニメーションでは、部分的に絵が動く事がしばしばなので、分割した画面の一ヶ所でも静止画扱いされると解除ミスが発生

ITに限らず、他の逆テレシネプラグインも試している最中だけど同様な結果。

実写系の映画では殆ど発生せず、発生しても気にならないレベルが殆どなので無視していたけど、、、アニメの場合は無視できないレベルの破綻になる。

MTプラグイン設定2

SetMTMode(3,0)
IT(fps = 24, ref = "TOP", blend = false)

上記の様に設定すると、1枚1枚のフレームを別スレッドに分けてプラグインが実行される。
これは強制終了する。
多分、秒間12コマとか8コマとか、セルの書き換えレートが変わるあたりで各スレッドの整合性が取れなくなってエラーが出ているんだと思う。
そして何より、SetMTModeでは愛用中のFFT3DGPUが作動しないのも痛い。

解決策

素材をBOBして60FPS化⇒「Pulldown(0,2)」とかやって手動で強制24FPS化する

# SelectEvery(5,0,2)とかでもOK
# 0,2の部分の数値は一例。(しかも無理矢理の決め打ち)

MT使わないITよりも高速にエンコ出来るんだけど、最初のCMカット編集時にもBOB化が必要なんでレスポンスが悪いんだよねぇ('Α`)
しかもカット毎にPulldownが正しく行われているか目視チェックが必要(またはもっとキチンとしたスクリプトが必要)だし。

キチンとプルダウンしたい人は「3:2 pulldown」とかで検索の事。

追記:TV素材は無理だ(^_^;
TV素材のソースを手動でPulldown挑戦してみました。恐ろしく色々な所でプルダウンのオーダーが変わりますね。。。完全にプルダウンさせるのは、「出来ない事はない」けど、時間がかかる。面倒極まりない。シングルスレッドでITフィルタかけた方がよっぽどマシでしたorz

あとがき

とりあえず今日の所はMT外してITはシングルスレッドでエンコ。
これからどうするかな、、、微妙だなぁ。。。
以前みたいにインタレ保持したまま or BOB化して残そうかなぁ。。。