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 >>374
ありがとうございます!
AvsPmodとAvisynth+64bit(309さん版)で動作することを確認しました 309さんのavisynth+ x64(r2528-CUDA)と350さんのItsを使っています
環境はcore i7 8700K windows10 pro x64(ver1709)です
defファイルで24fps化を2回呼び出すと次のようなエラーが出ます
Its:Invoke failed. <trim(1,0).p24td>
(Script error: Invalid arguments to function 'trim')
(p24tdはavs中でソースにTFM().Tdecimate()をかけているものです)
defファイルで2回目の24fps化するところを
30fpsにしたり60fpsにすればエラーが起きません
24fps化にはSelectEveryとTFM().tdecimate()
を試しました
また、たとえ一回だけdef中で24fps指示をだすとしても
0フレーム目からでなければ同様にエラーが出ました
問題のavsとdefファイルをアップしました
https://dotup.org/uploda/dotup.org1391442.txt.html
エラーを回避する方法があれば教えてください >>374
ありがとう!まさかソースまでうpしてもらえるなんて思ってなかった。
言ってみるものだなあ >>376
Itsのソース読んでみたけど、24fpsクリップの開始位置(=start)が5の倍数でないときは
start%5フレームだけ先頭を捨てるようになってるみたい
でもこれ必要なのかな。>>376のdefファイルみたいにSelectEveryで手動24fps化してる
とこにこれを適用するとマズそうに見える
Itsのソースから元々想定してた挙動って
video.Trim(start%5, 0).SelectEvery(5, 0, 2)
とかだけど、これstartが5の倍数以外だと手動24fps化の想定してた挙動にならないよね
なんか俺間違ってる?
start%5フレームだけ先頭を捨てるようになってるのがなぜなのか
分かる人いたら教えて欲しい
ともかく、24fpsクリップの開始フレームを5の倍数にすればエラーは出なくなる
0-9708[24] tfm2
9709-27544[60] qtqt
27545-42524[24] tfm2 >>376
p24tdとp60KTGMCを関数化して、defファイルも修正
###################################AVSファイル####################################
Import("C:\Tool64\Plugin\function.avs")
(省略)
video=video.EraseLOGOmod(logofile=movelogo,pos_x=400,pos_y=0,depth=128,start=27691,end=27991,fieldin=0,fieldout=0,logo_start=0,logo_end=-1,interlaced=true)
video
function p24td(clip clip)
{
clip
TFM().tdecimate()
return last
}
function p60KTGMC(clip clip)
{
clip
OnCPU(2).KTGMC().OnCUDA(2)
return last
}
Its(def=SourceDir+src+".def",fps=-1,debug=false,chapter=SourceDir+src+".xml",output=SourceDir+src+".tmc")
return last
###################################AVSファイル#################################### >>374
これ、そもそもどうやって
あの少時間のロゴデータとるんですか? #####defファイル#####
set [24] shu1 = 'DoubleWeave.SelectEvery(5, 0, 2)' #2:3プルダウンされている30fpsソースにおいて、01フレームに縞がある場合
set [24] shu2 = 'DoubleWeave.SelectEvery(5, 0, 3)' #2:3プルダウンされている30fpsソースにおいて、12フレームに縞がある場合
set [24] shu3 = 'DoubleWeave.SelectEvery(5, 1, 3)' #2:3プルダウンされている30fpsソースにおいて、23フレームに縞がある場合
set [24] shu4 = 'DoubleWeave.SelectEvery(5, 1, 4)' #2:3プルダウンされている30fpsソースにおいて、34フレームに縞がある場合
set [24] shu5 = 'DoubleWeave.SelectEvery(5, 2, 4)' #2:3プルダウンされている30fpsソースにおいて、40フレームに縞がある場合
set [24] tfm2 = 'p24td()'
set [60] qtqt = 'p60KTGMC()'
mode fps_priority = 24
default 24 = tfm2
default 60 = qtqt
(省略)
0-9708[24] tfm2
9709-27540[60] qtqt
27541-42524[24] tfm2
#####defファイル##### >>376
関数化させないと、どのクリップに対してフィルタを掛けるのか明示できないんじゃないの
言葉&知識足らずでうまく言えないけど、少なくとも元のavsだとp24pt=video.TFM().tdecimate()となってるから
指定範囲のクリップがItsから呼び出される度にvideo(CMトリムとロゴ消しをしたクリップ)も掛かっちゃうからおかしなことになるんだと思う
それとSelectEvery(5, a, b)の前にはDoubleWeave()が要る >>378
ソースを調べてくれてありがとうございます
キャッシュの取り方が変わったせいなのか
開始フレームを5の倍数にするのが厳格化されているんですね
それとアップしたファイルはうっかり
selecteveryの前にDoubleWeave()かけるの忘れていました
もし参考にする人がいたらご注意下さい >>380
異なる動画ファイルを300個ほど集めて
それを平均化して取得しています >>382
おっしゃる通りだとは思うのですが
350さん版のItsは従来と違って
defファイル内でフィルタをインスタンス化すると
キャッシュが無効になって性能が激落ちするか止まるそうです
現在のavisynth+の仕様だそうです >>381
> 0-9708[24] tfm2
> 9709-27540[60] qtqt
> 27541-42524[24] tfm2
↓
> 0-9708[24]
> 9709-27540[60]
> 27541-42524[24]
そのdefならこれでも同じ処理になるんじゃね? >>389
default設定してるからなるね
もっと省略するなら
0-9708[24]
9709-[60]
27541-[24]
これでも可 0-
9709-27540[60]
これでもいける >>388
ありがとうございます
x64版でItsと動くロゴフィルタさらにQTGMCがGPUで動くようになるとは
そんな日が来るとは思いませんでした >>374のdelogomod(x64)はもう消しちゃいましたか?(T_T) この流れに便乗したいんだけど通常版のdelogo.dllにfieldin&fieldoutオプションを追加したやつのx64版てないですかね
+64bit環境に移行してHalfLogoErase.avs使ってるけどめんどい 便乗出来なかった>>395に謹んで哀悼の意を表します 394だけど流れたの1日か、そこらでしょ?
それを便乗出来なかったは厳しいよ
普通のロゴなら別にいいけどdelogomodはムービングロゴがないとダメだからね
有ると無いとでは全然違う(と思う) delogomodでjoin_logo_scpみたいなやつで自動認識するのってある? >>395 delogomod0009.zipにavisynth+(未確認)ってのが入ってるよ。 なんとなくメモ。
ディレクトリ構成例
━┳x264┳ x264.exe
┃ ┗ ffms.dll ←実行ファイルと同じ場所にプラグインのDLLを置く
┗ test.avs ←別の場所にavsを置く
test.avsの内容
LoadPlugin("ffms.dll") ←フルパス指定しない
FFVideoSource(〜)
x264.exeでtest.avsをエンコードしようとした場合、Avisynth2.6では問題ないが、
Avisynth+(r2508)ではffms.dllがロードされずエラーとなる。
つまりAvisynth+のLoadPluginでは実行ファイルと同じ場所にあるDLLはロードしに行かないらしい。
まあ実行ファイルと同じ場所にプラグインのDLLを置くような使い方は普通しないけど
本来はAvisynth2.6を入れて使う「つんでれんこv2.97」を、Avisynth+(r2508)で使おうとしたら
うまくいかず、なんでだろうと思ったらこういう挙動の違いが原因だったようなので。 .彡⌒ ミ / ̄ ̄ ̄ ̄ ̄
( ´・ω・)< 罫線のズレが、ズラのズレより気になる件。
( ) \_____
│ │ │
(__)_) ここ読んでらっしゃるかわかりませんが。
宛先: RawSourcePlus作者様
内容: yuv420p10なy4mなどが正常に読めなかったのでIssue出しております。
気が向いた時にでもご確認いただければ幸いです。(既にお気づきでしたらすみません)
なおちゃんとコードが読み書きできるわけじゃないのでプルリクは出せない模様。 ズラのズレより気になるズレなんて
女子のブラとパンツ以外には
この地球上には存在しない 誰でも自分PCで稼げる方法など
参考までに、
⇒ 『政道のゴウイウセレイイ』 というHPで見ることができます。
グーグルで検索⇒『政道のゴウイウセレイイ』
4GBGDN1CEL >>Not Found
ちんぽじのズレはめっちゃ気になるだろうがw
嘘つくんじゃないよまったく DecombUCFはAvisynth+のMTで動かないからほかのNR試してみたけど
やっぱDecombUCFは手軽で優秀だは >>407
DecombUCFは俺も使ってるけどかなり優秀に感じる。
ただ、作者の説明にもあるように激しい動きのところで好みの結果にならないから
パラメータを細かく調整してみようかなと思っているところ。
デバッグモードも各パラメータに反映しやすく全部のフレームもログ取れるようにならんかなとか
ノイズが多い場合の片フレームだけ使用する場合にもフィルタ適応できるようならんかなとかもおもう。
あと、このノイズ検出システムを使ったノイズ量に合わせたフィルタのを3つくらい設定できるようになるとか。
そのうち好みの改良加えてmodにしようかとも思ってるけど、皆公表してないだけでmodにして使ってるんだろ?w >>409
NRだけ追加して使ってる
どのみち誤爆したら意味ないから閾値をかなり上げてるけど
より高性能なのを作ってくれるならぜひ公開してくれ masktoolsのFixが来てる
https://github.com/pinterf/masktools/releases/tag/2.2.12
> Changelog
> v2.2.12 (20180107)
>
> Fix: mt_merge 10-16 bits: right side artifacts when clip is non-mod 8 (non-AVX2) or mod16 (AVX2) widths
>
> Earlier changes
> v2.2.11 (20180105)
>
> Fix: mt_merge luma=true: broken output when: 8-16 bits AVX2, 32 bit float: SSE2, AVX
> move project to VS2017, vs141_xp toolset 2passTIVTCの1pass目の出力テキストを使ってフレームアダプティブフィルタリングしてるんだけど、
KFMって2passTIVTCみたいな使い方できるのかな?
できるならグラボ買ってくる >>413
作者だけど、フレームアダプティブフィルタリングが何か分からないとなんとも言えん
KFMは24pと60pを別処理して60pにマージして出力する
聞きたいことがあったら聞いてくれ >>414
ありがとうございます
TFMの様に、フレーム毎のフィールドマッチング、縞判定、縞強度をtxtファイルで出力する事は可能でしょうか?
こういうのです
↓
#TFM v1.0.4 by tritical
field = top
crc32 = 00000000
0 h + [256]
1 p - [2]
2 p - [16]
3 h + [235]
4 h + [256]
5 p - [25]
6 p - [26]
7 c - [21]
8 c - [16]
9 h + [209]
10 p - [36]
11 p - [27]
12 c - [18]
13 c - [34]
14 c - [24]
15 p - [31]
フレーム毎に縞強度等から強度を調節してノイズ除去等を行ってます
(ConditionalReaderとScriptclipで) >>415
txtファイル出力とかの機能はない
あと、中身はTFMとは完全に別物だから期待したものじゃないと思う
TFMは30pを出力するけどKFMの中で30pは一切出てこない
出てくるのは24pと60pだけ LSMASHSourceでTS読み込むと途中で静止画になるバグに悩まされてたけど、
seek_mode = 2, seek_threshold = 0 にしたら問題なくなった。 KSMDegrainを使うにはどのdllをどこにインストールすればいいんでしょうか? >>419
KSMDegrainはAmatsukazeのリリースパッケージにしか入ってない
単体で使いたい場合はKTGMCを入れて、
↓このスクリプト入れて(Amatsukazeのリリースに入ってるのと同じ)
https://pastebin.com/AqywRRmN 新Itsの作者様のnekopanda様へ
Itsを25fpsに対応させることは無理でしょうか?
PAL→NTSC変換に失敗した動画の25fpsパートを
Srestore関数で25fps化しつつ60iテロップ部は60fpsにという動作をさせたいので
触る機会があったら対応お願いします タイムコード側で対応せずにフィルタ側で対応すればいいだけじゃね?
ITSはあくまでタイムコードにあわせて指定したフレームにフィルタを当てるミドルウェアだしな。 >>422
対応版作ってみた
https://github.com/nekopanda/Its/releases
25fpsは240の約数じゃないから内部処理的にかなり改変してて
突貫工事+よく分からないコードはバッサリ消しちゃったから
変なとこあったら教えて >>424
ありがとうございます
今日、明日にでもテストして報告させていただきます とりあえずパッと見ではではおかしなところはなかったと思います
ただ25fpsは240の倍数じゃないのは確かなので
r6までのItsと別プラグインにしていただけませんか?
もし25fpsに対応するためのバグで困る人が出たら心苦しいので
なにか異常がありましたら改めて報告したいと思います
改造ありがとうございました KSMDegrain_MAnalyzeの引数についてお尋ねします
Mvtoolsに対応させると、前の方は予測がついたのですが、後ろの3つがわかりませんでした
KSMDegrain_MAnalyze(super=psuper, isb=False,delta=2,blksize=16,blksizeV=8,overlap=4,?1=False, ?2=True,?3=4)
?1・?2・?3はそれぞれ何に相当するものなのでしょうか
KMDegrain1をthSAD=150で使っても、MDegrain1では残せていた雨が半分ぐらい消えてしまうので、このあたりをいじってみたいのです
MDegrain1は下のように使ってました
super=Msuper(pel=4,levels=1)
superfilt=ColorYUV(levels="TV->PC").Msuper(pel=4)
bv1=Manalyse(superfilt,isb=false, delta=1,truemotion=true,overlap=4)
fv1=Manalyse(superfilt,isb=true, delta=1,truemotion=true,overlap=4)
Mdegrain1(last,super,bv1,fv1,thSAD=150) >>428
関数定義見れば分かると思うけど、後ろ3つは bool truemotion, bool chroma, int batch
truemotionは対応してないから使ってない
雨は試してみたけどブロックサイズ小さくしないとダメっぽいね
KMAnalyseは16x16と32x32しか対応してないから8x8は使えない・・・ >>429
ありがとうございます
ダメですか・・・
色々小細工を考えてみます >>430
8x8対応した
https://github.com/nekopanda/AviSynthCUDAFilters/releases
KSMDegrain(tr=1,blksize=8,thSAD=150,thSCD1=400)で
だいたい同じになるはず。探索アルゴリズムが違うから微妙に違うけど >>431
対応ありがとうございます
早速試したところ、雨がエンコード後も残ってました と思ったのですが、
Script error: Cannot load a 32 bit DLL in 64 bit Avisynth: 'P:/Capture/Amatsukaze/exe_files/plugins64/KTGMC.dll'.
というエラーを吐いて止まってました・・・ >>433
すまん、なぜか壊れてたから作り直して挿し替えた GPUのインタレ解除機能を使ってインタレ解除するフィルタ作った
https://github.com/nekopanda/D3DVP
PCで普通に再生したときと同じ品質でインタレ解除できるはず
速度は、手元のPCだとフルHDサイズの動画で
Skylake CPUで180fps、GeForce 1060 GTXで400fpsくらいだった
ただ、Radeonだと単純なBobしか掛からなくて画質が悪かった
環境の問題なのかプログラムの問題なのか分からん >>437
Radeonで動作確認しました
自分の環境だと一応高度なデインターレースをしているように見えます >>438
動作確認ありがとう!
GeForceとRadeon共存の上にRadeonはディスプレイ出力してないっていう
特殊な環境だったから、おま環だったかな。よかった mp_pipeline経由でKSMDegrainが動くのでD3DVPを試したのですが、
Script error: [COM Error] -2005270524: Unknown error 0x887A0004 at D3DVP.cpp:617
というエラーが出て動きませんでした >>437
Radeon環境だとD3DVPは_GPU25に比べてどっちが高品質? >>440
こっちでは動いてるようにみえるけど、mp_pipeline経由じゃなければ動くの?
GPUは何使ってる? GT1030をモニタ出力なしで使ってます
System32のAvisynth.dllを入れ替えてmp_pipeline無しで使っても同じエラーが出ました
モニタが冷陰極管世代の古いものなので、一部ビデオオプションが出ないのが影響してるかもしれません >>443
なんでだろう。エラーはDirectX11.1で初期化しようとしたところで出てるね
- GPUがDirectX11.1に対応してないから
- Win7使ってるから
- モニタ出力してないから
このくらいしか思いつかん >>443
あ、そもそも、モニタ出力してないってことは、他にモニタ出力してるGPUがあるんだよね
デバイス名を何も指定しなければデフォルトでプライマリディスプレイに繋いでるGPUを使おうとする
そっちがDirectX11.1に対応してないとそういうエラーになるかも Win7だからだ!
りどみでは11って書いてあったので大丈夫かと思ってたけど、11.1対応が必要だったのか avisynth: Avisynth+ r2580MT
プレビュー: AvsPmod v2.5.1 (windows x86-64)
OS: windows10 Home (64bit) fcu
GPU: Radeon RX460
最初、ジャンプ後にエラー出ると報告しようとしたけどMTを無効にしたら問題なく動きました
RadeonのポストプロセッシングもDXVA Checkerで有効にできるのも確認
これはお手軽高速デインタレとして最高かも・・ >>446
Itsといいこれといいお世話になります
thx! >>447
0.1.1でエラーでた?
0.1.0はMTでエラーが出てたから直したつもりだったけど、まだダメだったかな >>446
Win7はちょっと細工が必要だけど対応できるって情報がチラッとあったから、
そのうち対応するかも。待ってね 凄く便利だけど
GPUのインターレス解除ってソフトに比べてどれくらいの品質なんだろうね >>449
す、すいません
ダウンロードとセットアップ&テストにラグがあったので
0.1.0での結果になります
0.1.1はMT有効でも問題ありませんでした >>437
AmatsukazeからNVEncを使うとHWデインターレースが使えなくてバランスが悪かったのだけど
AVS経由で使えるようになって嬉しい
ただ、GeForceが載っているマシンではD3DVP(device="Intel")ではエラーが出て使えなかった
AmatsukazeからQSVEncを呼んだときは--vpp-deinterlaceがちゃんと使えるのだが
HWデインタレはIntelの方がNVIDIAより上というのが以前からの所感だが、いまだに納得がいかない
もう少し遅くてもいいからデインタレの質を上げてくれんかな
他の人の話だとRadeonが一番というが手許にないのでたしかめられない いくら良いと言ってもQTGMC slowに敵うものじゃないし
そういう高度な処理と比べたら大したことないと思う>radeon含むHWデインタレ GPUはCPUをサポートする感じだったが、
昨今はお値段がCPUより高かったりするし、
だったら、DualスロットCPUとかにでもして
CPUのコア・スレッド多くしてQTGMCかけたほうがシンプルで画質もよさそう >>455
あれって結局NNIEDI3メインじゃん
でも、NNEDIってやり過ぎて歪む確率も高いからRadeonの適応ディレクションの方が、俺は好きなんだよね 基本的なことになりますが、出来るだけ高画質にインターレースを除去したい場合、
ここにあるようなQTGMC等を使用するのと、AEプラグインのMagic Bullet Framesや、Re:VisionのFieldsKitを使用するのとどちらが適しているのでしょうか? >>458
そもそも高画質の定義が曖昧で自分自身が見てその「高画質」を決めるんだから、「基本的」なことを言うなら全て試すのが正解 >>459
画質の良し悪しを客観的に評価してくれるサイトってないでしょうか?
元動画のキャプチャと、加工後動画のキャプチャの両方をアップして、解析してくれるような。。 >>460
「オリジナルとの同一度」という意味の指標ならPSNRとかSSIMとかがあるけど
そういった指標での評価は実際に人が見た場合の主観的な評価とは一致しないことも多い。
なるべく主観評価と位置する指標が欲しいということでNetflixがVMAFを考案したりしてるけど、それもまだまだ。
ということ「画質の良さ」については「自分の目で見て決めろ」というしかない。それが基本。
それにインタレ解除の品質を評価する場合は「オリジナル」なんて存在しないんだから
複数方式での解除結果を比べて自分で綺麗だと思うものを選ぶしかないだろう。 インタレ解除の品質を評価したいんだから、
元動画は60pで、それを60iにしたのをインタレ解除させて
一致比較するなら、オリジナルは存在する
それでPSNRとかSSIMとかやるのかなぁ 無理でしょ
それだとただのブレンド解除が一番いいってことになりそう 絵的なものわからないけど、アニメとかフィルタかけまくって
凄い綺麗とか言われてる世界もあるしな 写真だって凄い補正かけて美しくとかあるし、結局は自分が綺麗だと思う映像が正しいんだよ
どうせ、ソースと寸分違わず作り出せないんだから >>452
ごめん、やっぱりWin7対応は無理だった・・・
NV12やYUY2を出力テクスチャにできなかった D3DVP 0.2.0, Win10 1709, GF 750Ti, AviSynth+ r2502MT x64で、>>440同様のエラーで動かない >>467
D3DVP(device="NVIDIA") でダメ? >>457
QTGMCはそのままだと細かい文字とかが潰れるから、単体で使うのは実用的じゃないよ
↓KMergeStatic使うか、
https://github.com/nekopanda/AviSynthCUDAFilters/wiki/KFM
TDeintベースにするか
QTGMC(EdiMode="TDeint")
動いてるところの補間はQTGMCが最強
プルダウン判定と止まってるところの判定がないのが残念なところ >>467
すまん、プログラムの問題だったっぽい。修正したから試してみて >>470
0.2.1動作しました。どうもありがとう nekopanda氏へ
D3DVPで同じデバイス名のGPUを複数枚挿している環境だと
検索して最初に見つかったGPUしか使用できないので
deviceIndexオプションを追加して同じデバイス名のGPUを複数枚挿している場合でも
GPUを選択できるようにしてみたよ
(Radeon RX Vega64 x3枚の環境で動作確認した)
githubのアカウントは持ってないのでロダにソース上げておきます
https://www.axfc.net/u/3886018 ■ このスレッドは過去ログ倉庫に格納されています