なんとなくaviutlのスレを見てると物凄い発見をした
なんとYV12とYUY2を相互に可逆変換できることが判明したらしい
くどいようだがaviutlにはYV12をYUY2に変換する機能がない
YV12ソースは強制的にRGBに変換される
YV12からRGBに変換するのが一番劣化するっぽい
さて本題に入る
具体的には①と②の方法がある
①avs入力フィルタをL-SMASH Works File Readerに任せる
L-SMASH Works File Readerの設定でVideoScalerは
「Nearest Neighbor」にする
②avisynthで変換するならddccかt3dlutの
YV12toYUY2(itype=0,interlaced=false,cplace=0)
のコマンドで変換する
上記の設定でaviutlにソースを読み込ませる
そして以下の条件でx264で出力すればよい
・ソースは必ずプログレッシブなのが前提
・aviutl側のフィルタを一切使用しないこと
x264側の色空間はYV12(NV12)でも可逆になるとのこと
さてこの方法は何を想定しているのかと言うと
自分の場合はaviutlの60fpsフリッカ低減が使いたいからで
Bob化はYadifmodを使用するので問題ない
YUY2変換はL-SMASH Works File Readerの設定が煩雑なので
avs側ですることにする
プラグインはt3dlutのほうがddccを改良したものらしいのでそれで
以下スクリプト例
DGDecode_MPEG2Source("C:¥hoge.d2v")
AssumeTFF
deint = nnedi3(field=-2)
Yadifmod(mode=1, edeint=deint)
YV12toYUY2(itype=0,interlaced=false,cplace=0)
return last
今までは実写YV12ソースはインタレ保持していたのだが
再生環境主にグラボ的な意味で再生時インタレ解除が怪しいことが判明
Yadifmodがなかなか好感触なのでどうにかできなかと思ってたんで
avisynth側に60fpsフリッカ低減の代替えになりそうな
プラグインが見当たらないのもある
60fpsフリッカ低減を使えばテロップのちらつきが抑えられる
フィルタを通しているけどaviutlだろうがavisynthだろうが
フィルタを使用する限り劣化はする
今回の場合はソース読み込み時の再サンプリングにおける劣化を抑えるてるだけ
以下蛇足だけど
本当はx264の出力もYUY2にすれば一番いいんだけど
MP4のYUY2使用は規格違反とかなんとか
いろいろ再生互換などを考えるとやはり現状YV12での出力が無難かなと
YV12ソースをYUY2でx264変換するメリットって
マッハバンドいわゆる階調割れが抑えられるのがメリットなんだけど
割れててもffdshowなどに補正できるフィルタがあるので
それで代用してもいいかなとか・・・






コメントを残す