Avisynthを絶讃ιょぅょ Part32 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
「AviSynthを絶賛」というのは、聞いたら答えたり報告したりなどギブアンドテイクな作業を指す。
厨と呼ばれて当然の事を、調べもしないで訊くバカが住み着くスレではないので、
avisynth.infoぐらいは読んでおくように。
【前スレ】
Avisynthを絶讃ιょぅょ Part31
http://echo.2ch.net/test/read.cgi/avi/1383985211/
【日本語による解説】
avisynth.info
http://www.avisynth.info/
【実家】
AviSynth
http://avisynth.org/mediawiki/Main_Page >>271
フレーム = 30fps (60iも30fpsのうち)中の1枚
フィールド = 1フレーム中の奇数ラインと偶数ライン http://egg.2ch.net/test/read.cgi/jisaku/1500765326/490-507
490 名前:Socket774[sage] 投稿日:2017/07/26(水) 03:36:29.73 ID:dFG7dSez [1/3]
一般的なマルチスレッドによる処理は平行処理、AVXなどのSIMD命令による処理が並列処理
507 返信:Socket774[sage] 投稿日:2017/07/26(水) 08:17:46.75 ID:dFG7dSez [2/3]
>>505
エンコは典型的なSIMDライクの並列処理、一般的なマルチスレッドはMIMDな平行処理
まあ一般には、並列処理 ⊆ 平行処理 の関係ではある
要するに、並列は同時に平行でもあることが多い、あるいは並列は平行の特殊な場合と考えればわかりやすい あんま詳しく無いから合ってるのか間違っているのか分からんw 最近AVSいじってないせいか、
久しぶりに32bit版のAvsPmodでプレビュー編集してたら
突然エラーを吐いて突然フリーズするようになった。
avsPmodの64bit版って無いんだっけ? ふむ、これのことか
ttp://forum.doom9.org/showpost.php?p=1801766&postcount=1202
ttps://www.mediafire.com/?p2v8zdivvtzu40p 考えてみりゃ当たり前だけどTFFをReverse()するとBFFになるんだな スクリプト関数とかって中で何が使われてるかはよく読まないと分からないけど、
実際に何が使われたかって簡単に分かる方法ない?
Avisynthが構築したフィルタグラフを見れるとうれしいんだけど 自分でAvisynth改造してフィルタグラフ出力できるようにしたわ
SMDegrain()
http://i.imgur.com/56xKzxl.png
QTGMC()
http://i.imgur.com/JMWKKaO.png
SMDegrainは意外とシンプルだね
QTGMCはすごいw >>283
おお・・・面白いねこれ。ツールとして欲しいな。 >>284
githubに上げてきた
https://github.com/nekopanda/AviSynthPlus/releases
AviSynth.dllを置き換える必要があるけど、AvsPmodのバイナリがあるフォルダに入れるとかでもOK
readme.txtにも書いてあるけど、べた書きavisynthスクリプトを出力か、dotファイルを出力か選べる
>>283はdotファイルをgraphvizで変換した画像 >>286
面白いな
MP_PipelineとかScriptcrip内の処理はクオートを外せば見れるようになるけど、
Trimでちがう処理したクリップ同士をつなぎ合わせると、それ以前の経路が省略されちゃうのか
冒頭がこんな感じになっちゃう
digraph avs_filter_graph {
node [ shape = box ];
clip3 [label = "..."];
clip17 [label = "EraseLOGO"];
clip18 -> clip17;
clip16 [label = "spline64Resize"];
clip17 -> clip16; >>286
レス遅くなってしまったけど、ありがとう。 AVSのクリップ変数って大量に定義しまくってメモリを大量に消耗するんだけど
あれってAVSが読まれている間にちゃんとメモリ解放とかするんだっけ? 変数が大量にあってもクリップのインスタンス数が同じならメモリ消費変わらなくね Internaly multi-threaded desampling functions (DeBilinear, DeBicubic,...) - Doom9's Forum
http://forum.doom9.org/showthread.php?t=174846 >>291
Deが付いてるけど
その人が過去に公開しているリサイズMTと何が違うの? >>293
どういう時に使うんだろう?
ちょっと自分には想像できない・・ 可逆ではないんだし、リサイズされた画像を元に戻すと言ってもさらに劣化するだけじゃない? 自分はNRがわりに720pにリサイズとかするから
それを元の解像度に戻す的な感じなのは思いつくけど
再生時でいいやって思っちゃう makediffって2回掛けると元に戻るんだね
rg = src.RemoveGrain(20)
rg.mt_makediff(rg.mt_makediff(src))
makediffってadddiffと対で使うものだとばかり思ってたわw 最新版のNNEDI3バグってるな
NNEDI3(opt=4)は大丈夫だけどNNEDI3(opt=5)だと絵がバグる
最近追加されたAVXパスがダメっぽい NNEDI3をCUDA化してみた
30分のFullHDの動画に適用してみた結果↓
NNEDI3 Core i7-6700
https://i.imgur.com/y3jC2E5.png
CUDA版(KNNEDI3) GeForce GTX 1060 6GB
https://i.imgur.com/Vle0Uhd.png
なんか見たことないフレームレートが出てるなw QTGMCをCUDA化してみた
FullHDの動画に適用してみた結果↓
QTGMC Core i7-6700
https://i.imgur.com/gs5WsEM.png
CUDA版(KTGMC) GeForce GTX 1060 6GB
https://i.imgur.com/kRc7bhg.png
リアルタイム再生できるようになったよw 基本的には同じ
ただ、MAnalyseはそのままだと並列化できなかったから、
meander=false相当で動いてるから、動き検出の精度は若干落ちてる
他のもろもろのフィルタは計算誤差程度の差は出てるけど、
幾つかのフィルタをまとめたりしたから、計算精度は上がってるっぽい
いずれにしても、差のあるフレームでも、違いはは並べて見ても分からなくて、
交互に表示してよく見ないと分からない程度だよ 早く公開するよろし
(いや、本物だったらぜひ欲しいです) NNEDI3がGetParityを実装していない&LWLibavVideoSourceが
範囲外フレーム番号が来るのを想定していないせいで
NNEDI3で2倍fps化するとGetParityがバグるぞ
TFFのはずが、動画の真ん中からBFFになるw
AssumeTFFすればいいんだけど >>301
TFMはどうなのです?
KFMはないのです? 凄いな
Avisynth+にまで手を入れたのか
thx頑張れ ああ、そうそう一つ質問
Avisynth+CUDAのCUDA要素が本家に取り込まれる可能性ってあるんですか? 本家とは?
CUDA対応は注意深く設計したつもりだし、
過去のスクリプトとの互換性を捨てるつもりもないけど、
面倒だからdoom9とかで布教活動する予定はない
もっとテストされて安定してきたらプルリク出しても良いかもしれないが
他の人が取り込むかどうかはその人が決めること
これ作るのに結構時間かけてるから、更新は続けるつもり 4770K / GTX1080 Ti / Win10 64bit / AvsPmod x64 の環境でAviSynth.dllの読み込みはできた(AvsPmod x64は起動した)んだけど、KNNEDI3.dllが上手くロードできない
(Cannot load file "〜/KNNEDI3.dll" Platform returned code 126:)
オリジナルのNNEDI3には拡張命令毎にバージョンが分けられてるけど、>>309のは作者さんがi7-6700(Skylake-S)使っているみたいだから、AVX2_Broadwellのバージョンでビルドしたのかな?
その辺りの互換性の関係でうちの4770Kだと多分動かないんだと思う
それとKTGMC.avsiの中で定義されているはずのKTGMC_Bobって関数が見つからないって怒られた >>314
報告ありがとう
cudartに動的リンクしてたわ。静的リンクにした
zipファイル差し替えたからもう一度落としてくれ KTGMCの方ね。AviSynth.dllは読み込めてるようだから >>312
>これ作るのに結構時間かけてるから、更新は続けるつもり
乙
さらなる高速化に期待 doom9で話題になってるCUDA版Avisynth+&KTGMC Radeonユーザのおいらにとってはガチで無意味な情報だな。 >>318
かぎつけるの早いのなw
しかも、このスレに貼ってあるSSのURLまであるし。 MIOpenでCUDAのコードがOpenCLで動く…そんなふうに考えていた時期が俺にもありました C++AMPならAMDやIntelでも使えると思うんだけどなぁ… QTGMCはbob化ベースだから小さい文字とか潰れるね。TDeintの方がきれいだな >>283でAnimeIVTC()調べるとどんな感じなんだろ Avisynth+CUDA r2519
system32もAvsPmodのフォルダーも試したけどAvsPmodがエラーで起動しない
残念だ Avisynth+ CUDA (x64) いじってたけど、
Itsがうまく動かんなぁ
CUDA化とは関係なさそうだけど どううまく動かないの?
改造元のMT plus+itsでもqtgmcを使うと落ちるとか報告されてたはず >>330
そう、QTGMC
さっきその記載を見たよ ほんとだ。間にいるはずのキャッシュがいなくなってるね
https://i.imgur.com/E3rFgtc.png
インスタンス化するタイミングの問題かな
defファイルじゃなくてスクリプト中でフィルタ呼び出してやれば
とりあえず動くみたい >>332
そういう場合、vfr用のタイムコードどうやって作るの?
x64化、次はVapourSynthにでも挑戦してみるかな >>333
↓こんな感じ
https://i.imgur.com/1D9XpIy.png
(ITS使ったことないからこれが正しい使い方かどうかは知らないw) >>335
おお、ありがとう
OnCPU onCUDA について詳しく調べてなかった...
avsPmodで表示されるけど、シークさせると止まる >>335
AvsPmodでのシークでの問題はThreadRequestを除去したら直った
SetMemoryMax(4096)の第2,3引数を入れるとエラーが出る >>337
Prefetch、OnCPU、OnCUDA以外のスレッドは動かない
多分元々のAviSynth+でもAviSynth+自体のマルチスレッド機構と
バッティングするから完全には動作しないはず
Prefetch、OnCPU、OnCUDAはいくつでも書けるからそれで対応して
> SetMemoryMax(4096)の第2,3引数を入れるとエラーが出る
引数に何入れたの? >>338
なるほど、試してみます
引数は同梱メモに書かれていたもの SetMemoryMaxは少量にしたほうがエンコーダーにメモリリソースをより多く割り当てれるから
快適にエンコ作業を進めれるんじゃね?つかAvsでメモリなんてバカ食いさせて何になるんだって話。 >>339
> SetMemoryMax(4096)
GPUメモリが足りないってことはない?
4GBだと少なくともGTX 1060の6GB以上は必要かな
フルHDのQTGMCでも1.5GBくらいあれば十分だから、
4GB設定してもそんなに食わないと思うけど Avisynth+ CUDAを入れる前の
元のAvisynth+はどこのがおすすめですか? >>342
インストーラーでインストールすればいいよ。↓これ
http://avisynth.nl/index.php/Avisynthplus/Downloads
> AviSynth+ r1576 (January 02, 2014)
改造前のAviSynth+に戻したいときは、AviSynth+の最新版バイナリ落として上書きすればいい >>343
お手数をかけました
ありがとうございます >>341
SetMemoryMaxを盛りすぎても
どうせグラボのメモリしか使わないし・・・なんて考えてるわけないよな?
エンコ中にタスクマネージャとかプロセスマネージャで
グラボ以外のメモリをどれぐらい消耗してるか確認してみるといい。
ま、メモリなんて安いものだからそれに対する負荷なんて特に気にすることでもないが。
もしエンコ速度をあげたいのならavsでのCPU利用/メモリ利用は最小限にした方が
エンコーダ側でより多くのCPU・メモリリソースを専有できるからより加速する。 Avisynth+CUDA (x86)はメインメモリ+GPUメモリ合計で4GBまでなの? >>345
俺に言ってるの???
AviSynth+のキャッシュの仕組みは上限高くしても必要以上のフレームはキャッシュしないよ
そういうキャッシュ制御アルゴリズムが実装されてるからね
上限下げてメモリ使用量をキャップするのは、
キャッシュがあれば省けた計算を再度計算することになるからおすすめしない
メモリが足りてるかどうかは、
SetLogParams("hoge.log", LOG_WARNING)
でログファイル出力して、メモリ不足のwarningが出てないかで分かる
メモリが足りなくて再計算になると、その分無駄に計算リソース食うから
何も嬉しいことないよ。物理メモリが足りないなら仕方ないけど
>>346
そっか32bit版だったか。32bit版でどれくらいGPUメモリ使えるのかは知らない
QTGMCはメモリ食うから不安定になるかもね
プリセット軽くすればメモリ使用量も減るんだけど Avisynth+ x64 で どんなフィルタでも動く Its できないかなぁ・・・ >>349
TIVTC24P2、ivtc_txt60mc(txt60mcHybrid)、QTGMC、tdeint、ivtc_txt60mc48、ivtc_txt30mc
これだけで十分だった、DoubleWeave().SelectEveryメインだからかな
Destripeはダメだし・・・
EasyVFR3modが使えないほうが痛いかもしれない >>350
avspmod でシークしているとフリーズするね
はじめは映るんだけど
力になれなくて申し訳ないが、期待してます
俺もちょこちょこソース見るようにします
ありがとう ちなみに期待しているItsは avisynth+ x64 の 2000番以上で稼働
たとえばCUDA版とか >>352
なんでだろう。こっちではフリーズしないから分からん
とりあえず、デフォルトのマルチインスタンスだとマズそうだからMT_SERIALIZEDにした >>350
横からだけど
ほんとありがとう!
最近エンコード全然してなかったけど
これは試したくなる AvsPmodなのかと思ったらItsなのか!
これは応援せざるをえない
そういや48fpsな外部フィルタが正しく動作しないバグがあるらしいからそれかも?
http://cc.bingj.com/cache.aspx?q=avisynth+putin+its&d=4727953257147094&mkt=ja-JP&setlang=ja-JP&w=TGIDaeoOe5VmBmQ9pinlXd53EX-yvM6a
残念なことにソースはない アドレズがややこしいのは
そのまま読むと文字化けしてたから
bingのキャッシュを読み込んでます putin999氏のIts(x86(通常版))はVFRも大丈夫(AvsPmodは未確認)
これがバグだったはずだからテストした(かなり前にスレで話題になった)
+は未確認(導入タイミングがないっすorz、年末か3月末とでないとソースが溜まるから・・) >>350
avsPmodでシーク中にフリーズする問題だけど、
環境は Avisynth+ 0.1 x64 CUDA 版 r2519
Itsのdef内で使っているのはQTGMC、Auto24FPS, DoubleWeave とかかな
QTGMCのEdiModeでNNEDI3を使ってる >>359に追記
使ってるAvsPmodは
AvsPmod_v2.5.1-90-gfcd7a61 x86_64版
とかいう、どこかで拾ったやつ >>360の続き
KTGMCを遣うとこんなエラーメッセージが出る
https://i.imgur.com/aSrFgOW.jpg
先頭は OnCPU って書いてるはずなのにCPUって関数はないって怒られる >>359
readmeに書いたけど、def内でフィルタをインスタンス化すると止まる
avsスクリプト内でフィルタ呼び出してdefファイルから変数を参照するようにして >>362
その方法でできました
あっという間に要望に答えていただいて
ありがとうございます Avisynth+ CUDAは環境にはシビアでしょうか?
自宅のwindows8で630MのノートだとAvsPmodが起動できない
ネットカフェのwindows7でGTX660はAvsPmodは起動するがプレビューで緑の画面になる
ネットカフェのwindows10でGTX780は動きます
Preset="fast"で30fps以上は出ます
これだけでもPC変えようかと思うほど素晴らしいです
作者さんこれからもバージョンアップお願いします 動作環境書いてある
> compute capability 3.5以上のNVIDIA GPUで動作します。
> お持ちのGPUの対応は https://developer.nvidia.com/cuda-gpus とかで確認してください。
630Mは2.1、660は3.0だからどっちもダメ、780は3.5だからOK AviSynth+CUDAの本体・プラグインのコンパイルに慣れた
自動最適化もかますとくっそはえーな
あのQTGMCやNNEDI3がKになるとサクサクだ
KTGMCのプリセットがうまく動かないのがいくつかあるが コンパイルとか毎回しないと使えないのか・・・めんどくさそうだな。 BS11などの動くロゴを64bit版delogプラグインで処理したいのですが
良い関数などがあれば教えてください >>371
「メモ置き場 透過性ロゴフィルタ」でググって出てくるブログの透過性ロゴフィルタカテゴリの記事とか。 そのdelogo mod、x86版しか無いんだよなあ
ソースも無いしx64に再コンパイルする手段すらなくて、積んでる ソースの公開とまってるものをアップするのは気が引けたが
有用だし元々は別の人のプラグインだしでアップさせてもらうことにした
ソース持ってたからコンパイルしたけど動作確認はしてない
ttps://www.axfc.net/u/3863655 ■ このスレッドは過去ログ倉庫に格納されています