yadif=[mode[:field_dominance]]【メリット】
Yet another("もちっと気の利いた"みたいな語感があるらしい)デインターレースフィルタ。
- <mode>
- 0: 1フレームを1フレームとして出力。(*実験ではデフォルトの模様 *)
1: 1フィールドを1フレームとして出力。
2: 0 同様。ただし空間軸のインターレース検出をスキップ。
3: 1 同様。ただし空間軸のインターレース検出をスキップ。
- <field_dominance> (DEPRECATED(*非難された?論争中?*))
- tfieldsと同 様。
NOTE:このオプションは将来削除される可能性があります。
その場合は、-field-dominanceで 代用して下さい。
インタレ解除能力は概ねfilmdintよ
り上。解除漏れは僅かで細かい文字等の潰れもほぼ無視できる。またPPCでは、x86専用の感が有るfilmdintより安心して使える。
以前は30/24fps混在アニメに使うと、24fps部分に止め絵のスクロール(カメラパン)でカクツキが発生するケースがあったが、07年04月現在
はほぼ気にならないレベル。
pullupベースのビデオフィルタチェインに比べると、アニメでカクツキを感じるケースは大幅に減
る。
手軽なのでめんどくさかったら全部コレに任せてもいいかも。
時おり映像全体が1ピクセル上下する。おそらくこれが原
因で、ズームイ
ン、ズームアウト、パン(横方向のパン)、ティルト(縦方向のパン)、実写のまばたきや唇の動き、アニメの主線などにpp=mdに似た、しかしもっと細か
い地味なジャギが出
る。「縦方向のジッター」と言うようだ。確かに地味にイライラする。
とくにyadif=3:1,mcdeint=2:1:20などで60fps化するとジッターは
distractingの
レベルになるようだが、これは後述。
ちなみにmcdeintで30fps化する場合でもこのジッターをベースに動き補償を行うので手許では最終画質に大差を感じない。
AviUtil
やAviDemuxで見かける「(自動)フィールドシフト」という概念は、おそらくこの辺をなんとかすんのだと思う。閾値に基づいて適応的にトップフィー
ルドとボトムフィールドの合成手法を弄るとか、そんな感じか?
したがって、純粋性能はAviUtil/AviSynthで使えるも
のに劣ると思われる。
また、pullupベースのビデオフィルタチェインに比べると、x264のSSIMが落 ちる。まだ充分な経験値は溜まっていないが、手許の設定では0.97台後半になるケースが多い。経験上、x264では24fpsだろうが30fpsだろう が60fpsだろうが、skip/directマクロブロックの効果でそうびっくりするほどの差はでないと思っていたが、CPUに言わせりゃジッターは縦 1ピクセルの「ディテイル」だ。数は少なくてもなかなかビットを喰うと思う。全体的な画質に目で見て解る程の違いはないし、時間軸画質の向上を考えるとお 釣りがくるので目くじらを立てる程のもんではないが、アニメが0.98切るのは悔しいな。
作者はmcdeintと同じく
Michael's
Niedermayerさん。ffmpeg、MPlayer、libavcodec、なかんずくSNOWのキーマン。
mcdeint
と同じく、mmxなどへの最適化余地が大きい模様。Altivecもよろしくおねがいします。
-vfm ffmpeg -vf yadif=3,pp=l5,framestep=2,,, -ofps 30000/1001
※-vfチェイン内部は書いた順番に適用されます。
TV放送のフィールドオーダー(トップフィールドとボトムフィールドの順番)は、通常はトップフィールド・ ファーストらしいのだが、なぜか不規則であるらしい(続 フィールドオーダーのナゾ)。
おそらくコレが理由で、yadif=0または2(1フレームを1フレームとして出力)では、映像全体が1ピクセル上下するコマが出る事がある。「縦方向のジッター」と言うらし い。
おそらくこれがびみょ~~~にジャギが残って見える理由だと思う。ズームイ ン、ズームアウト、パン(横方向のパン)、ティルト(縦方向のパン)、実写のまばたきや唇の動き、アニメの主線などで、地味にイラつく事がある。
また同じ理由から、yadif=1または3(フィールドをフレームに展開して60fps化)では、フレームの時間軸スイッチバックが起きる。可能性があ る。
AviUtilには(自動)フィールドシフトという理屈を使ってこのへんを良きに計らってくれるプラグイン があるようだが、当然ながらMacでは使えない。悔しいので一応DLして読めるとこは読んだ。すげぇ巧緻な事をやっている印象を受けた。フィールドシフト はAviDemuxにもある。でもPAL専用だ。MEncoderの-vfにフィールドシフトと解釈できそうな文言は無い。
そこで、だ。
まずyadifで60fpsで吐き、吐いたもんをpp=l5で一律に混ぜちゃえば、バー
チャル・フィールドシフトになりゃしませんか、
と。
yadifで殆どのインタレ縞は取れる。ただし、ジッターとフレームの時間軸スイッチバックが残る。
pp
=l5で一律に混ぜちゃえば、ジッターのズレも混ざる。ボケだからあんま望ましくはないが、ここで混ぜるのは60fpsで吐いた前後フレームだ。悪影響は
30fpsを混ぜるより弱い。
最後にframestep=2でフレームを一個飛ばしで捨てれば、時間軸スイッチバックが消える。
、、、 ハズだ。
pp=l5は単独ではジャギと色合いの劣化が目立つけど、yadifの後ならインタレ縞はほとんど取れ ている。また色情報はYUV4:2:0では前後フレームで共有してるから、60fps化したものを混ぜるならフィールドオーダーがどうだろうと色の混濁は 最小限になる。ハズである。
#!/bin/bash※x264 lossless設定の詳細は、H.264/AVCロスレス~其の弐を参照。
# yadif_test
#070502,charset="UTF-8",LF
for x in `ls *.mpeg`;do
echo "----"
echo "${x}"
echo "${x%.mpeg}".264
echo "START; `date +%m/%d" "%H:%M.%S`"
START_SEC=`date +%s`
mencoder "${x}" \
-vfm ffmpeg \
-nosound \
-ovc x264 -x264encopts qp=0:bframes=1:keyint=0:keyint_min=0:nodeblock:nocabac:subq=1:nointerlaced:threads=16 \
-vf yadif=0,scale=640:480:::3,hqdn3d=2:1:2,harddup \
-sws 9 -zoom \
-fps 30000/1001 -ofps 30000/1001 \
-of lavf -lavfopts format=mp4:i_certify_that_my_video_stream_does_not_use_b_frames \
-o "${x%.mpeg}".yadif=0_.mp4
expr `date +%s` - "${START_SEC}"
echo "END; `date +%m/%d" "%H:%M.%S`"
done
仮番 | -vf | メ モ | サイズ | 時間 |
---|---|---|---|---|
A1 | yadif=0 | 1 フレームを1フレームとして出力。 | 1.45GB | 543(09"03) |
A2 | yadif=2 | 0 同様。ただし空間軸のインターレース検出をスキップ。 | 1.46GB | 537(08"57) |
A3 | yadif=1,framestep=2 | 1 フィールドを1フレームとして出力。 | 1.45GB | 777(12"57) |
A4 | yadif=3,framestep=2 | 1 同様。ただし空間軸のインターレース検出をスキップ。 | 1.46GB | 715(11"55) |
B1 | pp=l5 | 全 ラインを一律に混ぜる(5タップの低域通過フィルタ)。 | 1.50GB | 471(07"51) |
A4+B1 | yadif=3,pp=l5,framestep=2 | 1.46GB | 818(13"38) |
B1 | A4+B1 |
---|---|
![]() |
![]() |
仮番 | -vf | メ モ | サイズ | 時間 |
---|---|---|---|---|
A1 | yadif=0 | 1 フレームを1フレームとして出力。 | 713.8MB | 222(3"42) |
A2 | yadif=2 | 0 同様。ただし空間軸のインターレース検出をスキップ。 | 省略 | 省 略 |
A3 | yadif=1,framestep=2 | 1 フィールドを1フレームとして出力。 | 省略 | 省略 |
A4 | yadif=3,framestep=2 | 1 同様。ただし空間軸のインターレース検出をスキップ。 | 716.3MB | 270(4"30) |
B1 | pp=l5 | 全 ラインを一律に混ぜる(5タップの低域通過フィルタ)。 | 742.6MB | 187(6"07) |
A4+B1 | yadif=3,pp=l5,framestep=2 | 719.8MB | 303(5"03) |
経験上、結果は素材によって非常
にばらつくので、手
許では実験の時だけ死ぬほどコマ送り
で見ます。
でも目が疲れるのでほどほどにしたほうがいいと思った。あとMacだと拡大してもOSがなんか補間してくれるっぽいの
で、素直にピクセルの角が出
ません。
agehaにオリジナル無し
更新履歴