Avisynthを絶賛ιょぅょ PART12 968 :名無しさん@編集中 :03/08/02 23:51 > YV12に於ける各種プラグインの出力について 第 6 版 インターレースとプログレッシブの判定方法が大雑把過ぎると思います。 特殊なソースを元にした特殊な結果だけを元に判断すると間違った結果になります。 974 :kiraru2002 :03/08/03 02:43 >>968 ご意見ありがとうございます。 具体的に何処が不味いとかこういうのを調べた方が良いとか思っていることはありますでしょうか? 一つ私の方から言っておくことは、 別にプログレッシブ、インターレースを見分けようなんて考えは全然無いということです。 オリジナルはインターレースと仮定しても、プログレッシブと仮定して全体を見てもらっても全然かまいません。 (各人の良く使うソースに合わせて見てもらえば良いのです) ただインターレースだと仮定した場合、画面上は正しい画像が表示されていないということを念頭においておけば良いだけです。 (ただ私の考えでは、人まかせにしないでAvisynth自身がYV12,I420,プログレッシブ、インターレースをきちんと 管理すべきだと思っています) 最後のエンコード結果と再生した場合の見え方についてご意見のある方はいないでしょうか? (俺のところではこんなふうに再生されてないぞ、とかでもいいです) 私にはどういった仕組みでこのように見えるのか説明できません。 (私にはXviD MPEG-4 Decoder filterの再生だけがすべての場合が正しく見えていると思われます) 977 :名無しさん@編集中 :03/08/03 22:24 > 974 ソースが IT や Auto24FPS の解除残しになる典型的なパターン (輝度も色差も時間的変動が無く前後フィールドを入れ替えても縞々にならないフレームが構築されない) なので縞々が残っています。 1フレームごとにピンクとみどりが入れ替わるソースを用意してあげるとまた少し違った結果になるかと思います。 (その場合エンコード後の結果がもっと奇奇怪怪になるような気もしますが。試していませんけど) 980 :kiraru2002 :03/08/04 02:24 このスレの残りはもう適当に使ってもいいのかな? >>977 一度試してみます。 ただ、私の知りたいのは縞々が取れる、取れないじゃなく 色差の並び替えが行われるのか行われないのか、なのですけど。 YV12 - 2x2 ピクセルで色差を共有する プログレッシブ - 連続する2ラインが共有 0=1, 2=3, 4=5, 6=7, ... インターレース - 1ラインおきに共有 0=2, 1=3, 4=6, 5=7, ... 前提1:もしインターレースがプログレッシブに変換されるなら、 0=2 -> 0=1 1=3 2=3 処理が入る。つまり 0=a, 1=b なら変換後は 0=1=(a+b)/2, 2=3=(b+a)/2 となるはず。 前提2:上記処理は、インターレース解除/24FPS化等で解除がうまくできようができまいがフィルタとして一定の動作 という前提のもとにテストしたんだけど、この前提が間違ってると全く意味のないテストになるわけで... 981 :kiraru2002 :03/08/04 02:43 前提1が、0=1=a, 2=3=b というように、ブレンド処理じゃなく0ライン目と3ライン目の色差が代表される という考えもあることに気が付いた。(この場合は色差がそのまま) ということは、結果はどっちでも良く気にしないで良い、ということになるのかな? 982 :名無しさん@編集中 :03/08/04 03:11 >980 > 並び替えが行われるのか行われないのか ということならフィルターの実装による、としか言いようがありません。 インターレースかプログレッシブかの違いは L1C1 L2C2 L3C1 L4C2 ... と扱うか L1C1 L2C1 L3C2 L4C2 ... と扱うかという差でしかありません。 巷にある DeInt 系のフィルターはインターレース → プログレッシブ変換をしているわけではなく 出来るだけ見やすいプログレッシブフレームを構築しようとしているだけです。 (変換するだけなら AssumeFrameBased を使います) > というように、ブレンド処理じゃなく0ライン目と3ライン目の色差が代表される > という考えもあることに気が付いた。(この場合は色差がそのまま) ここをどう実装するかがそのフィルターの肝でもあります。 983 :名無しさん@編集中 :03/08/04 03:34 >982 > ということならフィルターの実装による、としか言いようがありません。 しかもフレームごとやドットごとに処理の仕方を変えている場合が多いため それこそある特定のパターンだけ試してもフィルターの性格はわかりません。 > 前提が間違ってると全く意味のないテスト 前提は間違っている気がしますが、あのテストは結構興味深い結果が一覧としてまとまっているため 非常に有用だと思います。(消しちゃわないでね、というお願いだったりします)
| original のAVSをVirtualDubでdirect stream copyしたもの。 YV12.zip (Testは出力前のAVSの段階で実施) |
| ____________________________________________________________ |
I420 | YV12(左のI420を一旦 AVI出力したもの) |
YUY2 ConvertToYUY2(true) |
YUY2 ConvertToYUY2(false) |
|
|
← |
|
|
|
1. YV12toYUY2(true) , YV12toYUY2(false) [YUY2画像] |
|
|
||
|
2. ConvertToYUY2(true).ConvertToYV12() |
|
|||
|
3. TomsMoComp(1,5,1) |
|
← |
|
|
|
4. FieldDeinterlace() |
|
← |
|
|
|
5. Telecide(order=1) |
|
← |
|
|
6. AutoDeint()
|
|
|
|
|
|
7. Auto24FPS(true,24,16,"",false) Auto24FPS(drop=false) Auto24FPS(mode="dot") |
|
← |
|
|
Auto24FPS(mode="blend")
|
|
← |
|
|
|
8. KenkunNR() |
|
← |
|
|
|
9. KenkunNRT() |
|
← |
|
|
|
10. Decimate() |
|
← |
|
|
|
11. IT(24, "TOP", false, diMode=1) IT(fps=30) IT(blend=true) IT(diMode=0) IT(diMode=2) |
|
← |
|
|
|
IT(diMode=3) |
|
← |
|
|
|
12. Convolution3D("animeHQ") |
|
← |
|
|
|
13. VagueDenoiser() |
|
← |
|
|
|
14. WarpSharp(depth=56, blur=2, bump=96, cubic=-0.6) |
|
← |
|
|
|
15. LanczosResize(160,180) |
|
← |
|
|
| エンコード後の AVI file : avi.zip | DivX decorder(overlay)/ XviD decorder(overlay)/ ffdshow(GDI) |
ffdshow(overlay) |
|
1. DivX 5.05 - Progressive encode |
|
|
|
2. DivX 5.05 - Interlaced encode |
|
|
|
3. XviD (koepi 24062003-1) - Progressive encode |
|
|
|
4. XviD (koepi 24062003-1) - Interlaced encode |
|
|
5. DivX 5.05 - Progressive encode (YUY2)
|
|
|
6. DivX 5.05 - Interlaced encode (YUY2)
|
|
|
7. XviD (koepi 24062003-1) - Progressive encode (YUY2)
|
|
|
8. XviD (koepi 24062003-1) - Interlaced encode (YUY2)
|
|
|