・vppによるインタレ解除にbob化(60fps化)を追加。--vpp-deinterlace bob。
某所での要望の反映。vppで倍フレームレート化によるインタレ解除を行う。正常に動作していれば、これはGPU側で高速に処理される。
実際にやってみると…
- 解除性能はまあまあ。そんなに綺麗ではないし、もっと言えば全体的に雑。ただ、「全く使えない」レベルのvppの24fps化(it)よりは全然マシで、許容範囲内かなと思う。
- 当たり前だけど容量が膨らむ。
- GPU内でフレームレートが倍になるため、処理速度が跳ね上がる。結果GPU Boostもよりかかりやすくなると思う。
・最大GOP長を"0"とすることでfps×10を自動的に設定するようにした。
QSVEnc ダウンロード>>
スポンサーサイト
映像一時ファイル問題を指摘した者ですが、対応有難うございました。
早速Bob化も試してみましたので、報告しておきます。
速度は出ますね。AviUtlの自動24fpsで80fps前後だったものが、vpp-Bobでは200fpsオーバーと、フレームレートが倍ということを考慮しても速かったです。問題は、画面下部に緑の線が出てしまうことでしょうか。プレイヤーの問題かと思いハード、ソフトを変えて再生しても出ましたので、生成ファイルの問題だと思うのですが。
画面下部の緑の線…ということですが、おそらく解像度によって出たりするのかな…という気がします。
設定等(特に解像度など)を教えていただけないでしょうか。
>rigayaさん
解像度は1280x720ですね。(リサイズフィルタ使用)
設定は
ハードウェアエンコード、ビデオメモリモード
品質=quality
モード=CQP(I=21 P=23 B=25)
GOP長=0
シーンチェンジ検出
連続Bフレーム数=-1
SAR=0:0
フレームタイプ=interlaced(tff)
プロファイル=High、lebel 4
スライス数=0
videoformat=undef
インタレ解除(Bob化)
となります。
以下にキャプチャー画像も貼っておきますので、ご確認下さい。
http://s1.gazo.cc/up/53047.jpg
QSVEncCでAviSynthの直接入力が出来ると(avs2pipemodを使用しない)もう少し高速になると思うのですが、AviUtlのプラグイン版では関係ないので、やはり実装予定はないでしょうか?
>may様
画像確認しました。たしかに緑の線が…。
こちらでも以下のようにしてやってみたのですが、特に問題はなく、よくわからないです。
入力
MPEG2 1440x1080i, lwinput.aui or m2v.aui
Aviutlフィルタ
なし
QSVEnc
ハードウェアエンコード、ビデオメモリモード
品質=quality
モード=CQP(I=21 P=23 B=25)
GOP長=0
連続Bフレーム数=-1
SAR=0:0
フレームタイプ=interlaced(tff)
プロファイル=High、level 4
スライス数=0
videoformat=undef
vpp
インタレ解除(Bob化)
リサイズ 1280x720
出力
mp4, lsmash muxer
1280x720へのリサイズについてですが、リサイズはインタレ解除後に行わないとおかしくなりますので、vppのリサイズフィルタのことでよろしいのでしょうか?
>Avisynthの直接読み込みについて
実は試してみていて、AVI(vfw)経由の読み込みをすることで、QSVEncCがavi/avs/vpyを読めるようにしようとしています。(試行錯誤中…)
速度についてですが、ほとんど速くならないようですorz
・メモリコピーの回数自体は減らない
・パイプの遅さは、入力バッファ + 先読みスレッドで遮蔽されている
ためかな、と考えています。
暫定版を置いておきます。よろしければ遊んでみていただければと。ただ、まだ変な動作をする時もあるので、遊ぶだけにしてください…。もう少し暇を見つけてしっかり調整・テストしたら正式版にしてあげるつもりです。
http://cid-6bdd4375ac8933c6.office.live.com/browse.aspx/QSVEnc/test
QSVEncC[beta版].exe --cqp 23:25:27 -i "input.avs" -o "output.264"
で動くはずです。
>rigaya様
>リサイズはインタレ解除後に行わないとおかしくなりますので
これでした(^^;) 今まで出力プラグインでインタレ解除をしたことがなく、AviUtl=インタレ解除は強制的に最初という思い込みもあり、完全に失念していました。お恥ずかしい。
使っていたのは、nilpo様の「リサイズフィルタ」です。この程度の処理であれば、遊んでいたCPUで補えたため、vppは使用していませんでした。vppに切り替えたところ、件の緑線は発生していません。
vpp-リサイズも思いのほか使えましたので、今後vppを使う場合は処理をこちらに集約したいと思います。この度はお手間を取らせてしまい申し訳ありませんでした。対応感謝します。
beta版の作成お疲れ様です。早速、試してみました。
おっしゃるとおり、あまり速くはならなかったです。
数fpsだけavs2pipemodより速いかな?という感じでした。
メモリのコピー回数を減らすというのは、なかなか手間がかかりそうですね。
AviSynthだと自前でavs_get_frameを呼んで、結果(AVS_VideoFrame?)のデータ部分のポインタをそのままMediaSDKに投げつけるぐらいしか思いつきませんでした
>may様
解決したようで良かったです。CPUでやったほうが速い場合もありますが、vppのリサイズはそこそこ使えるのでぜひ。
>Avisynthの直接読み込みについて
avs_get_frameを使えば、おそらくメモリコピーの回数を今より1回は減らせるとは思うのですが、とある理由によりavisynthの固有APIを使いたくないので、vfwを使用しました。
よく考えると直接APIを叩いてしまうと、64bit版ではAviSynth64を使用しないといけないんですね。ライセンスもGPL互換にする必要が出てIntelのライセンスと共存できずバイナリ配布できなくなってしまうかもですね。