Avisynthを絶讃ιょぅょ Part32 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
「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 過去スレ、プラグインの検索はWiki参照
初歩的な質問は初心者質問スレへ
Avisynth 初心者質問スレ Part9
http://echo.2ch.net/test/read.cgi/avi/1486535720/ https://twitter.com/huruya2100
スクリプト荒らしのhuruyaくーんロック解除してくれやーw BilinearResizeって色が青っぽくずれるんだな 前スレの797です
64bit版を同梱して、ちょっとだけ変更しました
https://www.dropbox.com/s/98bcjuiy2ojkz75/MaskCrop0.1.1.7z?dl=0
マスククリップを直接指定できるようにしました
画面端4pixelをマスクから除外するborder機能を追加しました
デフォルトのマスクを"mt_makediff(last,last.loop(2,0,0), U=3,V=3).mt_lut("x 123 < 255 x 133 > 255 0 ? ?", U=3,V=3).Removegrain(1)"に変更
デフォルトのフィルタを"dfttest(sigma=16,tbsize=1,sbsize=16,sosize=12)"に変更 Avisynth+ r2440-MTリリース
> - New MT mode: MT_SPECIAL_MT. Specify it for MP_Pipeline like filters, even if no Prefetch is used (MP_Pipeline issue, 2 fps instead of 20)
面白そうな試みだ なんかAvisynth+作ってる人がなんか作ってた気がするけど
自分が興味ないから勘違いかも 10-16bit対応後のverだと、私の環境ではメモリ食い尽くすので、2.7.0.22dまでしかフォロー出来てない 最近気づいた事。画質やらノイズやらいろいろこだわり抜いてエンコした動画をVLCで再生させると
AVS抜きでエンコした手抜き動画の画質と大して変わらなかった。 avs2aviやavs2pipemodで中間ファイルを出力しようとしているのですが、
処理が0フレームでなにも出力せずに終了してしまいます。
AvsPでは問題なくプレビューできるのでavsは問題ないと考えているのですが、
何が原因なのでしょうか? AvsP(x86)でプレビューしてるのをavs2pipemod64(x64)で出力しようとしてるとか
単純にコマンドが間違っているとか色々あるだろうけど、
コマンドプロンプトにエラーログが出てるならまずはそれを見たほうがいいんじゃないの すべてx86で統一しています。
avs2aviでは最後の2行が
* Frames: 0 (0 keyframes)
* Size: 0 B
になっています。
avs2pipemodでは
malloc failed at write_planer_frames.
というエラーログがでています。
試しにx264にavsをわたしてみたところ、
avs [error]: Could not allocate video frame. Out of memory. occured while reading frame 0
と表示されました。 hoge(フレーム番号、閾値)という関数で、
フレーム毎に閾値を変えてフィルター処理を行うようにしていたので、
(例:hoge(100,20).hoge(222,10).・・・hoge(n,25))
フィルターの呼び出し回数が多すぎるのかと思い、
呼び出し回数を50回にしてみたところ、エラーは出なくなりました。
どうにか回数を制限せずに一度で処理することはできないでしょうか? >>32
ConditionalReaderとかを使ってみる >>33
閾値の部分がばらばらなので、
異なる閾値の数だけログを書き出すのは
Trimで区切るより煩雑かもしれないです。
すみません。 >>33
閾値の部分がばらばらなので、
異なる閾値の数だけログを書き出すのは
Trimで区切るより煩雑かもしれないです。
すみません。 Ryzen1800Xが欲しいのですがアムダールの法則が作用してエンコはどうなりますか?
単純に速さが4コアの2倍にはならない?
シングル性能が速い7700K買った方がよいのかな? >>36
x264やx265ならこのスレが参考になる
【x264+Avisynth】実用エンコベンチ Part5.1 [無断転載禁止]©2ch.net
http://potato.2ch.net/test/read.cgi/jisaku/1460032466/ >>37
いや私はエンコードにおける多コアCPUはアムダールの法則が作用するかどうかについて聞きたいだけ
作用するとしてどのくらいのロスになるか アムダールの法則とかはまた別の問題だから心配しなくておk
エンコード公邸に限ればほぼリニアに向上する(アーキテクチャが同じなら
ただフィルタや関数のボトルネックのほうが問題としては大きい >>39
エンコードにおいてはグスタフソンの法則通りにコア数に準じて処理速度が上がるのですね
THX!
1800Xに突貫します https://forum.doom9.org/showthread.php?t=174121
みんなここ押さえてるのかな
最新版QTGMCとかNNEDIによるchroma upsampling関数とか目新しい プログラムの事は分からんけど、really, really professional って辺りが移植の難しさを物語ってるのかな バイナリはまだだけどgithubに出来てた
https://github.com/pinterf?tab=repositories
・support YV16/YV24 color spaces (YV12 and YUY2 is supported by the original 1.0.5)
だそうで色空間には注意が必要みたい
ところで今もこのスレ覗いてる人ってみんな高色深度化とかしてるの?
自分は8bitは8bitのままでいいやってやり方とか全然、調べてない >>47
releasesをRSSに登録しといた
最後のデバンド処理だけだね >>47
リサイズとデバンドだけだな
最終出力は8bitだけどね
あと、ノイズ量によってフィルタを個別に指定できるようなスクリプトを
探してるんだけど誰も公開してないのかねー? http://avisynth.nl/index.php/ConditionalFilter#Runtime_Functions
ランタイムファンクション使ってConditionalFilter()などの関数で分岐することだろうけど
そもそもどうやってノイズの量を認識するのかという問題があるな CombMaskの平均輝度とかが使えるかもなあ
でも、60iで盛大に誤爆するのは目に見えてるし >>48,49
thx
ディザはDirect Show(なくてLAVFilterの前進のやつ)でできるしwと余裕かましてる間に乗り遅れた
LAVFilterにしてから気にはなってるんだけど・・
>>49
decombUCF関数が同じようなことしてると思うから参考になるかも >>54
おお、早速VS2017でコンパイルしてバイナリを作った
変化あるかな TIVTC v1.0.5 19.86 FPS
TIVTC v1.0.6 18.34 FPS
TIVTC1stpassをmp_pipelineで3分割処理という変則的な事をしてるが、
CPU使い切れなくなってちょっと遅くなった Doom9にバグ報告しようとしたが、アカウント作っても5日経過しないと書き込めないのか
http://i.imgur.com/m3O8I0N.png ソースにはTDeintまで入ってるのかすげえ頑張ってんな お、ほんとだ
MT Nice Filter化まったなしかな? 似たような経験ある人が居たら聞きたいです。
avs→avs2pipemod(32/64bit)→x264(64bit)
でエンコードしていますが、QTGMCを使ったときにエンコードが始まらずavs2pipemodが落ちる場合があります。
32/64bit共に同じです。
必ず落ちるわけではなく、すぐにエンコードを開始した場合正常に処理されます。(読み込み→エラー→終了→読み込み→処理)
体感では-benchmarkやAvsPmodのプレビューなどavsの読み込みから時間が経つと発生しやすいです。
ただ、batで連続処理してもQTGMC(長時間)→QTGMCだと落ちることがあります。
AvsPmodのプレビューでエラーが起きたことは無いです。
AviSynth+ r1858
QTGMC v3.33s 2016 01 19 >>66
AviSynth MT(32bit)とQTGMCの組み合わせでも同じような感じで落ちたことあるよ。
そのときはMT用にavsをカスタマイズしてやったときだけどね。
シングル用に変更してやると問題なく動いたので、
MTでのプラグイン間データ受け渡し(相性?)かメモリ周りかなーとフィルタの順番入れ替えたりとか
思いつくことやってみたけど不安定だったので自分の技量じゃ無理だとあきらめて
今もQTGMCを使うときはシングルスレッド用にしてやっています・・・
検証する時間と気合がなかなかね・・・ そういや誰かが最新MT版用QTGMC作ってた気がする >>67
そうです
QTGMCに関係する主なプラグインは
mvtools-2.7.17.22
masktools2-v2.2.8
NNEDI3_v0_9_4_40
RgTools-0.95
FFT3DFilter-v2.3
です。
これらの更新履歴を見ると本体の流れと一緒でhigh bit depth対応とありますが、本体古いのが関係しますかね? あると思う
たしかr2008あたりで壁があったはず
最新のプラグインを使ってるなら要確認 >>66 うちはQTGMCは使っていないけど、MVToolsで動き補償してからデノイザを使う時に、
重い処理をすると公式のavs2pipemodだとエンコード開始直後にエラーで落ちていた。
これは VisualStudioで
リンカー → 詳細設定 → ランダム化されたベースアドレス
を「いいえ (/DYNAMICBASE:NO)」にしてビルドしたバイナリを使用したら
AviSynth+ MT r2455でもエラー落ちしなくなった。
ttps://www.axfc.net/u/3802161?key=sage
VisualStudio2017 + Windows10 RS1 でビルドしたのでほかの環境だと動かないかも。 >>72
野良ビルドは使わない主義だが、
SDKは8.1のままにしたほうがいいだろ
そのリンカ設定関係あるかな・・・ 問題の再現が難しいため検証に時間がかかりましたが、一定の成果は得られました。
mvtools2_2.7.0.22dに下げ、いくらかエンコードしても問題は発生しませんでした。
他のプラグインはそのままでも大丈夫でした。
ただし、ただ遡って検証した結果なので実際どこまでバージョンアップできるかは検証していません。
プラグイン等の関係で本体を更新できない人の参考になればと思います。
相談に乗っていただきありがとうございました。
>>72
私の環境(Win7 SP1)でも動きましたが、念のためこちらでビルドしたものを使用してもエラーは発生しました。 avs2pipemodってビルドする時にAvisynth+のソース使うけど、どのバージョンが良いのかな
たまに落ちるのはBufferとかに改善の余地があるのかなぁ
長らく安定していて成功したと思っていても、ある日イキナリ落ちることもあるからなぁ コア数が以前より増えたマシン使ってるけど、
ThreadRequestを馬鹿みたいな値にしても
落ちなくなったな 需要あるか分かりませんが
1年位前から自分用にちまちま開発してたのを試しに公開してみます。
nnedi3oclmod ver0.1.0
https://drive.google.com/file/d/0B8o-zISICm3lWFRoUVgwN3U0TXM/view?usp=sharing
nnedi3oclの機能を拡張したmod版です。
YUY2・RGB24入力、インターレース解除時のDoubleRate出力、使用するGPUの個別指定、
マルチGPU動作による高速化(拡大時のみ)が可能になっています。
拡大時のマルチGPU動作は最大4GPUまで可能、個別では最大11GPUまで扱えます。
詳しい使用方法等はreadme.txtをよく読んでください。 >>78
なかなかユニークなことできるのね
しっかしx86のみというのは・・ >>78
こういうのが出来ると、
GPUを2~4台買ってみようか、
という人が出るから侮れない
素晴らしいね voltaのTITANXは15Tflopsだから待て >>78
安っすくて薄いロープロファイルの 1050 Ti が出たのに合わせたか?
これなら個人でも手が出るし、4枚ぐらい・・・ nnedi3oclmod ver0.1.1
https://drive.google.com/file/d/0B8o-zISICm3lUnU5TExJQzlvQ2c/view?usp=sharing
・nnedi3ocl_rpow2 関数(2.6/+版)にて、拡大と同時にChromaアップスケーリングを行えるようにした。(chroma_upscaling パラメータと cus_422 パラメータを追加)
・Chromaアップスケーリングのみを行う nnedi3ocl_chroma_upscaling 関数を追加(2.6/+版のみ)
Chromaアップスケーリングは入力の色空間がYV12, YV16, YV411, YUY2の時のみ使用可能、出力の色空間は入力の色空間にかかわらずYV24(4:4:4)となります。
ただし、YV12, YV411に関しては cus_422 パラメータを有効にすることによりYV16(4:2:2)での出力も可能。
>>79
x86にしか対応できない理由についてはreadme.txtの下の方に書いてあります
>>82
別にそういうわけではないですw
公開したのはただなんとなくw ついでに
2GPUでの速度比較
PC環境
CPU : Core i7 6950X@4.3GHz
MEM : DDR4-3400 16GB (4GBx4)
GPU : Radeon R9 Fury X x3 (2GPUのみ使用)
OS : Windows7 Pro SP1 64bit
Avisynth : Avisynth+ r2455 x86
ソースは下記のスレで配布されているx264ベンチに付属の1920x1080 29.970fpsのmpeg2動画(1920.ts)
https://egg.2ch.net/test/read.cgi/jisaku/1460032466/
下記のスクリプトをavs2pipemodのBenchmarkで測定
SetFilterMTMode("nnedi3ocl_rpow2",MT_MULTI_INSTANCE)
mpeg2source("1920.d2v")
trim(0,999)
nnedi3ocl_rpow2(rfactor=2,nns=4,qual=2,nsize=0,cshift="Spline64Resize") #3840x2160に拡大
Prefetch(x)
return last
1GPU、Prefetch(8)
7.544fps (100%)
2GPU、Prefetch(8)
13.812fps (183%)
2GPU、Prefetch(12)
14.392fps (190%)
2GPU、Prefetch(14)
14.493fps (192%) >>83
> x86にしか対応できない理由
分かってます
プラグイン開発ありがとう バグがあったので
nnedi3oclmod ver0.1.2
https://drive.google.com/file/d/0B8o-zISICm3lcE1BLXhJMHp3TDg/view?usp=sharing
・nnedi3ocl_rpow2 関数(2.6/+版)と nnedi3ocl_chroma_upscaling 関数において、入力の色空間が YUY2 の時にChromaアップスケーリングが正常に動作しないバグを修正。
>>83のver0.1.1のリンクは削除しました グラボ無しなので試せないけど、mp_pipelineでx86呼び出せば使える?
MP_Pipeline("""
LWLibavVideoSource("source.ts",dr =true)
### prefetch: 16,0
### ###
### platform: win32
nnedi3oclmod()
### prefetch: 16,0
### ###
dfttest()
### prefetch: 16,0
### branch: 3
### ###
""") >>87
使えますよ
nnedi3ocl_rpow2 関数と nnedi3ocl_chroma_upscaling 関数に関しては、
modeパラメータを指定することにより拡大とリサイズ・シフト処理で処理を分割できるので
MP_Pipelineを使い、拡大はx86を使用、リサイズ・シフト処理はx64を使うといったことも出来ます。
MP_Pipeline("""
### platform: win32
SetFilterMTMode("nnedi3ocl_rpow2",MT_MULTI_INSTANCE)
AVISource("hoge.avi")
nnedi3ocl_rpow2(rfactor=2,nns=4,qual=2,mode=1)
Prefetch(8)
### lock threads to cores
### ###
### platform: win64
SetFilterMTMode("DEFAULT_MT_MODE",MT_NICE_FILTER)
nnedi3ocl_rpow2(rfactor=2,fwidth=1920,fheight=1080,cshift="Spline64Resize",mode=2)
Prefetch(8)
### lock threads to cores
### ###
""")
return last
あと動かすだけならIntel iGPUでも動きますよ
まあ速度は普通にCPU版使ったほうが早いと思いますが それと、>>86のver0.1.2のrarにnnedi3ocl_ld.dllとnnedi3oclmod.iniを入れ忘れていたのでファイルを更新しておきました。
この書き込みよりも前にDLした人は再DLするか、>>78のver0.1.0に同梱されているものを使用してください
(上記2ファイルについては、ver0.1.0と0.1.2で同じバイナリが同梱されています) >>87
すみません、
>MP_Pipelineを使い、拡大はx86を使用、リサイズ・シフト処理はx64を使うといったことも出来ます。
というのは間違いです。
寝ぼけてましたw
分割する場合はリサイズ・シフト処理もx86しか使用できません DivX ;-) を絶讃ιょぅょ
通常版(非VKI)
DivX ;-) Codec 3.11 (v4.1.0.3927) [R3]
https://www.axfc.net/u/3808307.zip
DivXc32.dll (v4.1.0.3927) [R3] ※コアDLLのみ(MP3コーデックは無し)
https://www.axfc.net/u/3808308.zip
MP3コーデック (NT、9X対応)
https://www.axfc.net/u/3806179.zip
超画質&高圧縮 VKI版(必要なDLLをリネームして使用して下さい) ※Nundubでは使用できません
Microsoft MPEG-4 VKI Codec and DivX ;-) MP4VKI Video Codec (v4.1.0.3927)
https://www.axfc.net/u/3808309.zip >>23です
久しぶりにDoom9を見たらデバッグモードでビルドされてるぞと怒られていたので直しました
https://www.dropbox.com/s/8c4rxlwbs020ib1/MaskCrop0.1.2.7z?dl=0
Doom9's Forumのアカウントをお持ちの方がいらっしゃいましたら、StainlessS氏のスレッドにリンクをお知らせいただければ幸いです
(私もアカウントを作ったのですが、sanction状態でログインすると何もできなくなってしまうので・・・)
https://forum.doom9.org/showthread.php?t=174585 出来る限り高画質にHD(1920x1080)をSD(DVD用)にリサイズする場合のスクリプトについてですが、
無意味な部分、無駄な部分や、更にこうすればもっと高画質になるというアドバイスがあれば、
ご教示よろしくお願いします。
LSMASHSource_LWLibavVideoSource("sample.mp4")
ColorMatrix(mode="Rec.709->Rec.601",Clamp=0)
ColorYUV(gain_y=6,cont_y=10,cont_u=4,cont_v=6) # 輝度=Y,輝度と青の差=U,輝度と赤の差=V
Crop(0,2,-6,-2) # 左,上,-右,-下
Dither_convert_8_to_16()#色深度を8ビットから16ビットに展開
Dither_resize16nr(704,480,kernel="spline36",taps=6,noring=true)#色深度16ビットリサイズ&リンギング抑制
f3kdb(range=15,Y=56,Cb=40,Cr=40,grainY=0,grainC=0,keep_tv_range=true,input_mode=1,input_depth=16,output_mode=1,output_depth=16,random_algo_ref=2,random_algo_grain=2)#色深度16ビット バンディング処理
DitherPost(mode=6)#色深度を16ビットから8ビットに戻す&バンディング処理2
AddBorders(8,0,8,0) # 左,上,右,下 ColorMatrixはDither側にその手のオプションがあった気がする
あとmp4ならLWLibavVideoSourceじゃなくてLSMASHVideoSourceで良いと思うよ
俺は解像度最後に弄りたい派だからデバンド掛けるならリサイズより前にするかな
それと似たような効果を持つフィルターを複数使わなくていい状況なら1つで済ましとくと良いと思うぞ ColorYUVとCropが謎。
f3kdbとDitherPostを重ねてるのもちょっと謎。(ディザリングの好み?) >>96
早々のご回答ありがとうございます。
ご教示いただいた内容で修正してみました。
ただ、「ColorMatrix(mode="Rec.709->Rec.601",Clamp=0)」に代わるオプションがどうしてもわかりませんでした。
もしご存じであれば、アドバイスよろしくお願いします。
>>97
Cropは、ソースとなる動画に不要な部分があったからで、一般的には無意味なものです。
ColorYUVも同様に若干コントラストを強めるためのものです。 LSMASHVideoSource("sample.mp4")
ColorMatrix(mode="Rec.709->Rec.601",Clamp=0)
Dither_convert_8_to_16()#色深度を8ビットから16ビットに展開
f3kdb(range=15,Y=56,Cb=40,Cr=40,grainY=0,grainC=0,keep_tv_range=true,input_mode=1,input_depth=16,output_mode=1,output_depth=16,random_algo_ref=2,random_algo_grain=2)#色深度16ビット バンディング処理
Dither_resize16nr(704,480,kernel="spline36",taps=6,noring=true)#色深度16ビットリサイズ&リンギング抑制
DitherPost(mode=6)#色深度を16ビットから8ビットに戻す&バンディング処理2
AddBorders(8,0,8,0) # 左,上,右,下 >>95
コメント欄まで同じスクリプトを使っている人がいたw
LSMASHVideoSource("sample.mp4")
ColorMatrix(mode="Rec.709->Rec.601",Clamp=0)
ColorYUV(gain_y=6,cont_y=10,cont_u=4,cont_v=6) # 輝度=Y,輝度と青の差=U,輝度と赤の差=V
Dither_convert_8_to_16()#色深度を8ビットから16ビットに展開
Dither_resize16nr(704,480,0,2,1914,1076,kernel="spline",taps=6,noring=true)#色深度16ビットリサイズ&リンギング抑制
f3kdb(range=15,Y=56,Cb=40,Cr=40,grainY=0,grainC=0,keep_tv_range=true,input_mode=1,input_depth=16,output_mode=1,output_depth=16,random_algo_ref=2,random_algo_grain=2)#色深度16ビット バンディング処理
DitherPost(mode=6)#色深度を16ビットから8ビットに戻す&バンディング処理2
AddBorders(8,0,8,0) # 左,上,右,下
kernel="spline",taps=6でspline144相当になるのでそれ以上はプラシーボ領域だと思う
今はf3kdbの汎用アニメ向け数値も変えて使っているし、
気持ち程度のデバンド向上を望むならGradFun3を使うかな あとアスペクト比まで気にするなら
w = Float(Width())
h = Float(height())
w_offset = -3.0
h_offset = 2.0
cut_w = 8.0
cut_h = h*cut_w/w
Dither_resize16nr(704, 480, w_offset+cut_w/2, h_offset, w-cut_w, h-cut_h,kernel="spline",taps=6,noring=true)
今回の場合はこれでいいかな?アスペクト維持だと左右6ドット削るなら上下3.375ドット分しか削れないので
左右8ドット分削って上下4.5ドット削れるようにしたくらい。
デバンドのほうは好みで2回かけてるけどf3kdbのみで満足できるのなら
DitherPost(mode=-1)に置き換えてもいいし、デバンド自体をかけなくてもよい。
エンコードの醍醐味は自分好みの解像度、画質、サイズの動画を作るところにあるので
いろいろ試してみたほうがいいよ。 あー馬鹿だね、俺も
こっちの計算がいいのか
w = Float(Width())
h = Float(height())
cut_w = 8.0
cut_h = h*cut_w/w
w_offset = 1.0#左右均等はcut_w/2
h_offset = 2.0
Dither_resize16nr(704, 480, w_offset, h_offset, w-cut_w, h-cut_h,kernel="spline",taps=6,noring=true) >>98
あれっと思って今調べたけど見つからなかったわ すまない
どうもRGB化してプレビュー表示に使ってたときの関数と間違えたらしい
f3kdbはデフォルト値だと細かい模様のパターンが潰れる気がするからなぁ 要調整のフィルターではあると思う
GradFun3は目立つバンディングを目立たなくしつつ思ったより弊害が少なそうなのが良い
何れも個人の感想 元のスクリプトの出所を探してみたらニコ動BAN人のブロマガだったでござる。
>>101
> デバンドのほうは好みで2回かけてるけどf3kdbのみで満足できるのなら
> DitherPost(mode=-1)に置き換えてもいいし、デバンド自体をかけなくてもよい。
デバンドを2回かけてるんじゃなく、f3kdb()でデバンドだけして、DitherPost()でディザリングしてるのでは。
f3kdb()だけにするなら
f3kdb(range=15,Y=56,Cb=40,Cr=40,grainY=【適当】,grainC=【適当】,keep_tv_range=true,input_mode=1,input_depth=16,output_depth=【8】)
にして、f3kdbでディザリングと8bit化もしてしまえばよいだけでは。
f3kdb()のデフォのディザリング手法もDitherPost()のmode=6もFloyd-Steinbergらしいけど、そんなに違い出るのかな。 >>100
コピペでそのまま使用可能なお手本ありがとうございます!
>>101
アスペクト比については、仮にリサイズ後のHをあらかじめ決めたとして、
リサイズ後のWは、
(元動画のW×リサイズ後のH)÷元動画Hに0.825を掛けて出しています。
リサイズ後のHの決め方として、
元動画W÷元動画Hの数値と、(リサイズ後W×40)÷(リサイズ後H×33)が出来る限り近づくよう、
エクセルを使って値を計算しています。
>>102
なんだかすごく複雑な式ですが、いとも簡単にスクリプトを書き上げ、Avisynthを使いこなせてる方は尊敬します。 >>103
プラグインの種類が多すぎて、試行錯誤の末に自分なりの答えを導き出すしかないですよね。。
>>104
Dither_resizeについてはほとんど無知で、より高精度なリサイズの方法を調べてたとき、どこかに掲載されたスクリプトを見つけ、そのまま使用してみたのがきっかけです。
それにしても奥が深すぎますね。。Dither沼にはまってしまいそうです。
リサイズの精度、画質がどの程度のものか比較する方法としては、どのようなやり方をしておられるのでしょう。
私の場合、スクリプトを用いて書き出した比較対象の動画を、すべてPremiere CCに取り込んで、レイヤーで並べ、同タイムの1フレームをそれぞれのレイヤーからキャプチャしています。
それをphotoshopで400倍に拡大し、細部を比較しています。 Dither_convert_rgb_to_yuv()
でmatrixを601にすればいいのかなと
ソースを読むときにRGBとして読むか、事前にDither_convert_yuv_to_rgb()でRGBに変換する必要あるけど >>106
http://i.imgur.com/qnasLYl.png
AVSPmodってソフトが楽だよ
上下左右に並べて比較したり、差分をとったりなどなどその場で確認出来る
https://avspmod.github.io/
あと、400%? >>104
DitherPostのほうは思い違いしてました。
パラメータの違う方法を2回行って好みのデバンド結果にしてるだけなので。
>>105
avisynthだと小数点クロップができるので正確にやらないのはもったいないなと。
このサイズだとたいてい整数クロップをした時点でアスベクト比が微妙に狂うので。
あとGradFun3ですが個人的に気に入ってるけどf3kdbに比べるとかなり重いので
普段はf3kdbでいいかなって感じ。
それとAVSPmodでプレビュー確認も必要だけどエンコーダを通した後だと、
見た目の感じが変わってくることもあるので最終出力後の確認も重要。 f3kdbでググったら最新バージョンのバイナリはないみたいだけど
みんな自分でビルドして使ってるの?
ICCでビルドするのが本筋みたいだけど >>110
最新版(2.0.0-1)をICL(ICC)16でビルドしたの使ってるよ
ほしい人はどうぞ
flash3kyuu_deband 2.0.0-1 ICL(ICC)16ビルド
https://drive.google.com/file/d/0B8o-zISICm3lMkNNZ2tCZ3RPaWs/view?usp=sharing
・Avisynth2.6/Avisynth+専用です。(Avisynth2.5.xでは動作しません。)
・Avisynthのヘッダファイルは、Avisynth+の 20170310 版を使用しています。
・Vapoursynthネイティブ対応用のコードは削除してあります。 >>111
AviSynth(x86)2.6MT SEt氏ビルドは動きますか? WScriptで質問です。http://www.avisynth.info/?WScriptの
for文を使って入力された数値を合計(PerlScript)
をやってみましたが、最新のActivePerlでは動きません。
たまたま旧バージョンのActivePerlを入手できたので動作確認ましたが
最新のバージョンで動かす方法わかる人おられます?
ActivePerl以外のperlで動かす方法もわかればお願いしたいです。 warpsharp.dllがレガシー過ぎてここ数年は触ってすら無かった
使ってる環境を先に書いたほうが良いと思うよ
AviSynth、ActivePerl、warpsharpのバージョンとビット数と実際に使ってるスクリプト
ところでWScriptを使うスクリプトってEasyVFR 0.3ぐらいかな?
絶対に必要って訳じゃないなら諦めるって手も・・・有志がかつて移植してくれたwarpsharp x64にはWScript無いんだよな >>115 失礼いたしました。
AviSynth(x86)2.6MT SEt氏ビルドでActivePerl-5.12では動作確認済み。
ActivePerl-5.24では無理でした。
>>ところでWScriptを使うスクリプトってEasyVFR 0.3ぐらいかな?
本命はそっちですけどね、まあActivePerl-5.12ではEasyVFR 0.3ちゃんと動いたので
いいのですけど。最新のActivePerlではなぜ動かないのか謎なので質問したしだいです。 書き忘れ。
warpsharpはwarpsharp_20080325.rar使ってます。 >>116
ちょっと気になったからAvisynth+ r2480 x86、ActivePerl 5.24、warpsharp 20080325で揃えてやってみたけどうちでも動かなかったよ
最近のバージョンでダメなのかと思って調べてたんだけど
Perlについての質問箱 63箱目
http://echo.2ch.net/test/read.cgi/tech/1392820583/617
の書き込みにWSHで使えないから古いバージョン使ってると書かれてる
WScriptはWSHを利用するはずだからActivePerl自体に問題がありそう
解決にならなくて済まないがこれ以上は分からない >>118 ありがとうございます。そのスレで旧バージョンのActivePerl入手先も載ってるので早速ブックマークしました。
私も、少し調べたらWSHを使うには、ActivePerlはOLE (すなわちActiveX) に対応したPerlでないとダメみたいです。
一人で調べててもラチあかなかったのでいい情報得られて大変役立ちました。 >>95
AVSで余計なことしないで、x264のパラメータに--vf "resize:720,480"とか加えてみたら? いやResizeとDebandingとDitherとCropとColorMatrix諸々の処理なんだからavs側でやるべきだろ avsでやる処理なんてせいぜいtrim()とロゴ抜きぐらいでいいんじゃね?
最近の映像ソースなんて、VHS全盛の頃みたいに鬼劣化してないし、画質なんて大して変わらないだろ さらに言えば、avsでゴリゴリにフィルタ加工しても
x264やx265でしょっぱいパラメータにしてしまうとpsnrやssimも低迷してすべて台無しになるしな HDをDVD用のSDにリサイズする手順の話をしてるのに
お前は何を言ってるんだ? だからリサイズする手順なら122の方法が最適だろと。
SD -> FHDのアプコンならavsフィルタに頑張ってもらう必要はあるが >>127
FHD->SD縮小の話だし、デバンドのついでとはいえ、リサイズについては
16bitで縮小して目に見える効果があるかというとほぼ無さそうな気はするけど、
--vf resizeのデフォルトmethodはbicubicだし、せめてsplineとか指定した方がいいんじゃないかとは思う。
ただ、>>95のケースはAddBorder()すると言ってるんだし、--vf resizeじゃ駄目だろ。
「元が高画質なら縮小であまり面倒な処理しなくてもいいんじゃね?」までならわかるけど、
「avsでやるより--vfでやる方が最適」って、何を根拠に言ってるんだかさっぱりわからんな。
avsでリサイズ結果を確認できたほうがいいと思うんだが。 あ、>>128で--vfに言及したのはx264でエンコする場合でもという話であって、
元がDVD化の話なのを忘れてるわけじゃないっす。念のため。 x264で出力するとも決まってないのに--vf resize使えって言ってる時点で論外でしょ
リサイズアルゴリズムの話は置いておくにしてもエンコーダーに渡される前の処理結果を見られるほうが都合が良いし
何を以って>>122の方法が最適と思ったのか気になる 今回は他にフィルター掛けるようだしな
あと細かいことを指摘するようだけどx264のresizeはlavfをリンクしないと使えないはずなのでx264によっては使えない事がある ちょっとミスがあったので訂正 最後の行はlavfではなくswscaleだな TIVTC New Build 1.0.9
Filters autoregister themselves as MT_SERIALIZED for Avisynth+, except MergeHints (MT_MULTI_INSTANCE)
Note: for proper serialized behaviour under Avisynth+ MT, please use avs+ r2504 or later. 遅ればせながら >>111 氏 有り難く頂戴しましたthx
差し支えなければビルド時に使用したソースコードって公開可能ですか?
うちでも 2.0.0-1 をビルドしてみようとしたけれど上手く行かないので
比較してみたいのです。よろしくお願いします。 >>134
多少いじらないとVisualStudio2015以降では多分ビルドできないです
(>>111はVisualStudio2015 Community Update3 + ICL16でビルドしています)
オリジナルからの変更点
・namespaceを使っていると何故かビルドエラーが出るのでavisynth.hとavisynth_plugin.hppからnamespace AVS_NSを削除
・avisynth_plugin.hppの拡張子を.cppに変更し、avisynth_plugin_legacy_26.cppとavisynth_plugin_v6.cppをプロジェクトから除外
・vapoursynth用のコード(plugin.cpp, plugin.def.h, plugin.h, VapourSynth.h, VSHelper.h)をビルドから除外
・avisynthヘッダファイルの入れ替え
https://drive.google.com/file/d/0B8o-zISICm3ld3ZyRjRnRlJUMEk/view?usp=sharing >>135 おおおありがとうございます! 差分比較してみたところ
当方では namespace AVS_NS の書き換えがちゃんとできていなかったのが
ビルド失敗の直接原因だったのですが、ビルド環境の構築に失敗していた
可能性もあったのでその切り分けができて とても助かりました!thx m(_ _)m
L-SMASH Worksに、VFR->CFRがうまく動かないケースがあるという問題があるので報告。
詳細はAviUtlスレに書いたのだけど、開発者のmuken氏が気づかないかもしれないので一応こちらにも。
検証してくれた人によると問題が起きるのはr838からの模様。
http://egg.2ch.net/test/read.cgi/software/1489813428/796- 逆ポーランド記法とかやめてほしいな。読みにくくて
"x threshold > 0 255 ?"
逆ポーランド記法で3項演算子とか変態すぎるだろw mt_binarize(threshold, true)だよ
ドキュメントにある例そのまま貼っただけ
最初、?の説明見ても項の並びが分からなくて、この例見てやっと理解した
"x 7 scalef + y < x 2 scalef + x 7 scalef - y > x 2 scalef - x 51 * y 49 * + 100 / ? ?"
このスレの人たちはこれくらいスラスラ読めたりするの?
俺はまだAvisynth勉強し始めて1週間くらいのペーペーだから、
いちいち中置記法に直さないと読めないわ スラスラとは読めないが最初から順番に読んでいけば無理なく理解できる程度 VapourSynthってAviSynth+と比べて何がいいの? >>143
・マルチスレッド標準対応
・様々な色空間のサポート
・8bitを超えるビット深度へのネイティブ対応
・Python由来の柔軟で多機能なコーディング環境(AviSynthみたいな不自由さが無い)
・VFRに対応しようとしてるところ(1フレームごとにdurationが付いてる)
・1つのVapourSynthスクリプトが複数の出力を持てること(現状では恩恵が少ない)
・公式に64bit対応がなされている
・Windows環境以外にも対応してる
致命的にダメなのが音声に対応してないところ
あと将来的なGPUサポートの話を何処かで小耳に挟んだ気がするけどVapourSynthのことじゃなかったかもしれない
AviSynthみたいに複数のプロジェクト(本家、AviSynth+、SEtビルドなど)が乱立して互換性問題が出たり、
後から実装されたマルチスレッド対応版が不安定だったり、後から高ビット深度へ対応したAviSynthよりは色々優れてるんだけど
音声に対応してないところとかx264などのツールが標準対応してなかったりするところが残念で主流にはまだなれないと思う
個人的には音声が正式に対応したら本格的に移行したいけど何時になるやら・・・ avs併用したらいいとはよく言われてたけど、そこまでして・・という気がしたまま未だにメインに使ってない >>145
うぉぉ横からだけどありがとう
音声未対応は確かに困るね アニメのエンドロールが60iの時ってどう処理してる? インタレ保持、インタレ解除して60p、または24p、好きなの選べばいい >>149
エンドロールの場合の24p化ってどうやってる?
変にカクカクしない? 俺はやってないけど>>150使えばいいんじゃない? >>148
QTGMCかivtc_txt60mc
ivtc_txt60mcは周期が変わると出来ないはず 音声に対応しないの使って欲しいのか使って欲しくないのかよくわからんな。 Vapourじゃないなら、videoの処理が終わった後にaudio読み込んで処理してAudioDubすれば >>153
- QTGMCで60p化してからSelectEveryでフレーム間引いて24p化
- ivtc_txt60mc
どっちでやってもカクカクしないけど、一体何をやったからカクカクするんだろうか。
ivtc_txt60mcは60pから補間して24pにするの頑張ってるらしいけど、
俺のPCだと60pからフレーム間引いて24pにしたのとあまり変わらなかったぞ
確かにivtc_txt60mcの方がきれいに流れてる気がするかもれしれない・・・
単に間引くだけじゃダメな理由があるのか? 音声は対応する気がないわけではなくて単に優先度が低い事と
音声を内部的にどうやって扱うか良いアイデアが浮かんでないみたいだけどね
開発者が「音声は重要ではない AviSynthでも音声周りは貧弱でフィルターの数も少ない
音声は後から処理したものとmuxすればいい」
みたいなことを何処かで発言してたと記憶してる
他には音声に対応するために掛かる時間と労力のコストが大きい点についても
発言してたと記憶してる
一人のユーザーからすりゃ貧弱でも良いから音声使えるようにして欲しい
って思うんだけどこればかりはどうしようもないなって思ってるよ
一応dambっていうプラグインで音声をReadしてカット処理してWriteすることはできるんだけど
間引いたり色々弄ってるとWriteした時のデータがおかしくなるんで
最初にカット処理した段階でWriteしておかないとダメなのが地味に不便
てなわけでまだしばらくはAviSynthをメインに使ってるわ >>158
ダメじゃないんだけどテロップやエンドロールのテキストが一定周期で欠けてるからその部分がカクカクしてるように見える
どうでもいいって言うなら60pにした後24pにしていいと思うよ
あと24pに使うフィルター次第だとテロップやエンドロールのテキストが原因で間引き処理が誤爆してしまうことがある
TDecimateとか利用する関数だと体感だけど60iや30pのテロップやエンドロールが混じってると誤爆する感じるが高いように感じる
SelectEveryとか使って一定周期で間引くのなら関係ないんだけどな TDecimate使うならhybridとかのややこしい事しないといけなくなる
派手なスクロールが30pに誤認識されたりする ×感じるが高いように感じる
○確率が高いように感じる avsファイルの中に組み込んで使う方法もあるから、それなら音声の問題はクリアできる
が、vsって日本語ファイルやディレクトの扱いに制限があったはずだけど、もうクリアされてる? >>160
一定周期で欠けるってよく分からん。そもそも60iを24pにしてるからどうやっても元動画に比べたらカクカクするわけで
単純に間引くとフレームごとに移動距離が違うのが問題なんじゃないの?
それも、そもそもPCから出力してる時点で60pに変換されるから原理的にどんな違いが発生するのかよく分からん
TDecimateで誤爆って、60iを含むところをTDecimateで間引くってのが、そもそも無理なんじゃ?
フィールドマッチングでマッチできなくて縞が残ったフレームは、
60p化してSelectEveryで24p化したフレームを入れるっていうのが普通のやり方だと思ってたけど、
これだと品質or速度的に厳しいってこと? むっちゃヘヴィで20fpsしか出てないガクガク状態のゲーム動画を60fpsで録画すれば
60fpsのヌルヌルになるかっていったらならないから、そういうこと
最近は60iのソースを扱ってないから記憶にないけど、TFMのPPで解除したものと置き換えるのが基本かと
おそらくSelectEveryを設定する手間をかける人は最初から最後までそれですると思う >>163
極初期除いてとっくの昔にクリアされてるはず
avsファイルに組み込むってことはVSEval、VSImport、AVISource、HBVFWSource
のどれかだろうけどどれも自由度下がるからなぁ
vspipeやpython側から引数渡すときとか
>>164
元が24pな映像が3:2プルダウンされて60iになってる状態にテロップやエンドロールが乗っかってると
元の映像に合わせて24pに戻すと今度はテロップやエンドロールの移動距離が一定じゃなくなってカクカクするのよ
そこら辺気にしないなら60p化してSelectEveryで24p化していい
>TDecimate(以下略)そもそも無理なんじゃ?
それであってる 土台からして無理があるんだけど
面倒くさくて妥協したりそのシーンを見逃した時にTFM+TDecimateでやると盛大に誤爆する
最後に書いた通りQTGMC+SelectEveryとかしてるなら問題ないしできるならそうするべきだと思うよ
あとivtc_txt60mcを使うとか >>166
なるほど。サンクス
まぁ、そもそもソースが60iなら60pにするのが一番無難なんだよな >>158
ivtc_txt60mcは60p+補完で120pにしてから24pに間引く あ、そうかSelectEveryの前はdoubleweaveである必要はないのか
手動間引きは数年に1回ぐらいしか使わないから忘れてたは 一応60iソース+TDecimateでもオプション駆使すれば手動間引きとほぼ同じように間引けるけどね
>>167
綺麗に視聴したいならVFRにしない方がいいからテロップだけ60iならテロップも24pにする方が無難
テロップ60pにしても24pソースのものを60Hzで再生したくないし >>170
24pソースを60Hzで再生すると綺麗に見れないの? >>168
そうだね。120pって倍速テレビみたいだね
うちのテレビも4倍速付いてるけど、動きの激しいところとか盛大に破綻したりするから、
周期間違えるとヤバそうだな >>171
24pを60Hzで再生すると2 3 2 3...ってフレームがかさ増しされて
各フレームの表示時間が一定じゃなくなるから違和感を感じるかもしれない
具体的にはスクロール部分でチラつきを感じるとかね
各人の主観で気になるかどうかが重要 俺は気にしないことにしてる >>173
俺のディスプレイ60Hzだから24pの動画再生しても、結局60pになっちゃうよ
24pにこだわってる人ってディスプレイのリフレッシュレート24Hzにしてるのか?
というか、PCだと再生時のフレームタイミングってどうしようもないところがあるから、
そういうのにこだわるんだったら、家電で再生するしかないと思うんだよね
でも、そういう家電って24pが乗った60pの映像とか、ちゃんと認識して再生してくれるから
結局、24pってどうなんだろうっていうのが、疑問
PCだとFluid Motionとかが24pにしないとちゃんとヌルヌルにならないから、
そのためっていうのはあるかもしれない
家電だと、24pを60pでエンコした動画を、例えばブラビアのモーションフロー「なめらか強」にすると、
普通にヌルヌルになるから、やっぱり意味ないんだよなぁ その120Hzだの144Hzのモニタなんて一般的とは言えない状況だろって話なのを理解できる? >>174
ビデオのフレームレートとディスプレイのリフレッシュレート差によるガタツキは
必ず発生するものではないから同列に語るのは間違い 便乗なんだけどディスプレイって60.00hzなんでしょ?
いわゆる60iとかpは59.94fpsだよね?その辺のズレは問題にならんの? >>180
12000分のいくつだったっけかまあエンコ時にそれを計算にいれて処理するから問題ないよ >>179
ガタツキって何のこと?ティアリング?
>>180
1001フレーム中1フレーム重複するだけだから16.6秒に1回。人間が認識するのは無理だと思う >>174
MadVRに再生時のみ動画のfpsに合わせて自動でリフレッシュレート変える機能あるから
それ使ってる人は結構いるんじゃないかな。24000/1001だったり48000/1001だったり
60iテロを60pにする(VFRにする)のが一番無難 って意見に対して
VFRの欠点をちょっと挙げてみたかっただけなので、
170で60Hzで再生したくないとは言ってみたものの、60Hz固定で気にしないならそれでいいと思う
>>180
ちゃんと1001で割った方のリフレッシュレートに設定できるよ >>180
そこまではっきりしてるのはモニタのリフレッシュレートで選べるはず
曖昧なところは、レンダラちゃんが同期をどうこうするってのでそこそこに処理してくれるような気がしてたんだけど んー
要はゲームで言う「垂直同期信号」ってやつでしょ?この話題。
必ずしも再生されている動画がモニタのリフレッシュレートに合わせて再生されているわけではない>つまり同じ動画でもカクついて見えることもあるかも
って話
モニタの更新に合わせて次のフレームを表示すればこの問題は起きない
そうなるとmadVRのような機能が必要になるわけだ 1000か1001かは映像的には殆ど認識できないので、音ズレに影響してくるだけな気がする >>182
上下で絵がズレるわけじゃないからティアリングではない(少なくとも目視では)
その箇所をもう一度再生すると問題ないから
誤差の蓄積的な理由で発生してるのかと思ってたけどティアリングなんだろうか? >>187
ティアリングじゃないけど、たまにあるよね、そういうの
あれ?って思ってシークしてもう1回同じとこ再生すると、今度はなめらかに再生されたり
PAFFのインタレ動画再生してるとよくなってた
PS3とかの家電だと、そういうの全く発生してなかったから、PCの限界かなって思ってたよ
>>183
俺の使ってるPCモニタだと、画面設定から選べるリフレッシュレートに24Hzがないんだが、
そんなモニタでも24Hzにしてくれるのか?
NVIDIA G-SYNCとかに対応したモニタなら、どんなfpsにでもできそうだね
>>185
「モニタの更新に合わせて次のフレームを表示」はmadVRじゃなくても普通にやってるよ
madVRがリフレッシュレートを変えるっていうのは、「次のフレームに合わせてモニタの表示を更新」でしょ 試してみた
アニメのスクロールしてるところ10秒程、TFM+TDecimateで24p化して、そのまま24pでエンコしたやつと、
SelectEvery(2, 0, 0, 1, 1, 1)で2:3プルダウンして60p化してエンコしたやつを作って、
ブラビア、アニメモードで再生。ちゃんと24pや2:3プルダウンした映像なら240pに補間されて
超ヌルヌルで表示されるから、カクツキが分かりやすい
PCで再生すると24pの方はちゃんとヌルヌルなんだけど、
60pにした方はランダムに10秒に1回程度、カクつく
カクつく箇所はランダムで、同じとこ再生してもカクついたりカクつかなかったり
PS4とUB90(パナのUHD-BDプレーヤー)でも再生してみたんだけど、
両機とも24p、60pとも全くカクつかなかった
24pと60pで違いが本当に全くなかったわ
で、俺が思うに、60pでカクつくのって映像のフレームレートの問題じゃなくて、
60pをちゃんと60pで表示できてなくて、単にフレーム落ちしてんじゃないかな
PCの環境にもよるのかもしれんが、少なくとも俺の環境だと60pダメだわ
madVR使えば改善するかな madVR使ったらだいぶ改善されたわ。まだ若干カクつき残っているような気もするけど
なんで24pにしたいかっていうと、PCの再生環境の問題ってことでいいのかな
家電だと24pと60pは全く同じように再生できるけど、PCだとフレーム落ちによってカクつくことがある
俺はずっとPS3を再生機器に使ってきてインタレ保持でやってたから60pでいいじゃんって思ってたわ
PCでの再生はいろいろと難しいよね この話自体はテレシネソース+60iなスタッフロール or 60iテロップはどうしてる?が最初だったはずだから
x265ではインタレ保持で逃げれないからの質問かもね
あるいはAMDグラボのフレーム補完するやつを利用したいとか x265はインタレ保持できないから、60p化か24p化のどっちかだよね
俺は60p化。フレーム補間はテレビでやるからFluid Motionはいらないし
CMや実写まで含めて全部処理を統一したいからね 高速再生したいから24pよりも更に削ってタイムコードで辻褄合わせる派は小数か? >>190
最近はもう絶滅しただろうけど、VFR読めない機器が昔はあった
PCに限らず再生互換の面でVFRを避けるって風潮が少しはあったかもしれない 最初から最後まで全部60pにしちゃえばVFRにする必要ないよ CMなんて60pは無駄だろ
切り分けて30pにしとけ VLCがmkv timecode v2にちゃんと対応してなくて草生える Avisynth_258+seraphy_MT_07のavisynth.dllをSySWOW64のavisynth.dllに上書きして使ってましたが、
Win10 ver1703をクリーンインストールしたら使えなくなりました。
258MTはリンクが切れてます・・・
http://forum.doom9.org/showthread.php?t=148117 >>198
いつまでもそんな古いものにしがみついてないで、Avisynth+に移行すればいいと思うよ。 AviSynth 2.5なんてもう骨董品だから捨てていいよ
今はAviSynth 2.6 公式版かAviSynth+を使ったほうが良いと思う >>199
+や2.6だと動かないプラグインがありますし、x64は再構築の必要ががが
Win7の時にプラグインのバックアップは取っておいたのですが
それ以降MaskToolsやRemoveGrainをMT化してたのでLoadPluginExで読まないとか(その件は解決しました。)
こまめにバックアップは取るものですね・・・
258MTのバイナリかライブラリビルドのミラーサイトを教えてください。 ありがとうございます。tsc氏のビルド発見してなんとか使えました。 具体的に2.6系(avs+含)で動かないプラグインって何よ?
2.6系じゃないと動かないプラグインも出てるし2.5系はとっくに切捨てられてるでしょ
258MTは多分SEtビルドだろうけど本人も2.6使えって言ってるじゃん 2.6で動かないプラグインがあるってのを見落としてたけど
2.6で動かないプラグインってなに? >>205
http://freesoft.tvbok.com/movie_encode/avisynth/avisynth26andrecent.html
>2.GPUプラグインはまだまだ未対応
>FFT3DGPUや_GPU25を利用すると、エラーが出てAviSyhthは強制終了。この辺りはまだまだこれから対応なのかも。恐らく3DNR系のプラグイン全般これからっぽい。
私の環境で2.6を利用するのはまだ速いみたい。
速攻で2.5.8に戻しました(^_^;
私はEDCBのMOD版でチューナーの自動空き指定が上手くいかなかったので
EDCB本家の最終版を使ってます。
多機能より安定、枯れてる方を好みます。(人それぞれと思いますが) GPU系か・・
そっち(NR)系はアナログ時代ほど需要がないから
更新・移植は望み薄のような気がする 今のバージョンのavs+は知らないけどちょっと前のavs+ではFFT3dGPU動いてた気がするけど動かなかったっけ?
それとその記事古くてアルファ版のAviSynth 2.6じゃん NLmeans系のでGPU対応してるのあったはず
FFT系のと比較してみては 今ちょっと確認した感じavs+ r2506だとFFT3DGPUのx86版は動いてるように見える 昔と変わらずx64版は動かない
他に使えるGPUNRは既に出てるNLMeans系のKNLMeansCLかな これは今も開発が活発 他にDeathrayも確か動いたはず
ここ最近NRフィルター自体を使う機会が無くなってしまった 今でも積極的に使ってるのってアナログキャプチャ民ぐらいじゃないのか?
_GPU25は何年も前に2.6アルファ版に乗り換える時に手元で幾つかテストした感じ2.6アルファ版と比べて一部除いて大きな優位性はなかったと記憶がある >>212
それはすまなかった
>>213
うちの環境だと同じくごく稀に緑色のフレームが挟まれたりするから動かないって書いた
x86版は今のところ問題ないようにみえる >>214
私が試した感じだとx86版も怪しい。OpenCLのデノイザーはちゃんと動くので、FFT3DがDX9を使うからなのか GPU系って環境依存というかドライバ更新でおかしくなったりしそうなので使ったことない。 synthはにーやんのHPが閉鎖した時にやれることはやり尽くした感がある >>78氏 遅ればせながら nnedi3oclmod 有り難く頂戴しました。
当方の環境でも問題なく動いております。ありがとうございます。
実はそのWrapperプラグインを作成する腕を見込んでお願いがあるのですが,
「waifu2x by Caffe for VapourSynth」のAvisynthへの移植は難しいでしょうか?
ttps://github.com/HomeOfVapourSynthEvolution/VapourSynth-Waifu2x-caffe
主な処理はcaffeに丸投げなのでクリップの色空間と色深度の入出力を
Avisynth互換にすればいけるかなーと素人目に思ったものでして…。
ご検討頂けましたら嬉しいです。よろしくお願いします。 LSMASHSourceがAvisynth+のカラーフォーマット(YUV420P10とか)に対応してくれると嬉しいな〜、
作者の更新モチベが上がると嬉しいな〜、または誰かパッチ送ってくれる人がいると
嬉しいな〜(酷い他力本願)などと思ったので書いてみるテスト。
ソース動画をD&Dしたら、それを読み込むavsを作ってavs2pipemodでy4mにしてエンコーダに渡すという
単純なバッチを作ってるだけなんだけど、例えば10bit 4:2:0の動画を読み込む場合、
FFMS2-2.23.1ではAvisynth+のカラーフォーマットに対応しているので自動的にYUV420P10になるけど、
LSMASHSourceだと16bit hackなYV12になるので、深度を指定したConvertFromDoubleWidth()が必要になってしまい、
うまいこと自動で深度を判定する方法を思いつけない。
Avisynth+の現状はまだちゃんと把握できてないのだけど、HighBitDepthなプラグイン類って、
まだ16bit hackだけのものが多くて、新カラーフォーマットに対応してるものは少ないんでしょうか? もう1つ質問なのですが、Avisynth+のYUV420P10などのフォーマットの
プレビューに対応したAvsPmodって無いのでしょうか?
今はサイトにも載ってる
https://forum.doom9.org/showpost.php?p=1801766&postcount=1202
を使っているのですが、YUV420P10をプレビューしようとすると「Error trying to display the clip」となります。
(とりあえずConvertを入れてしのいではいるのですが。) LSMASHWokrsなら今パッと思いついたものなら、
a = LWLibavVideoSource(stacked=False)
b = LWLibavVideoSource(stacked=True)
a.height == b.height ? 8bit : 8bit超
って感じかな
8bitならstackedがTrueでもFalseでも同じ縦解像度だけど8bit以外だとstacked=Trueだと2倍にるからそれで判定 >>221
その方法だと、HighBitDepthだという判断はつくのですけれど、
10/12/16bit等を区別できないので、ConvertFromDoubleWidth()の
ビット指定をどうすればよいかという問題が残ってしまうのですよね。 >>222
LSMASHWorks側のformatを16bit決め打ちで読み込む
そもそも高ビット深度ってAviSynthは使えないからね AviSynth+が独自に拡張してるからそこら辺無理が生じてくる
本当はVapourSynth使うべきなんだろうけどあっちはあっちで音声使えないんだよな
あとプレビューしないでエンコーダに渡すのならffmpegとかから渡してもいいと思うんだけど
Trimするにしてもプレビューするでしょ? 無理が生じてくるというかLSMASHWorksが対応すればいいだけの話
VapourSynthには高ビット対応したんだからAviSynth+の高ビット対応も手間はあまり変わらんだろ https://www.axfc.net/u/3822129.zip
AvsPmodかどうかを判定するプラグイン作った
AvsPmodのときだけ別処理できるよ! こうしとけばOKかな
IsAvsPmod() ? ConvertTo8bit() : last GetProgramNameで既に出来なかったっけ?
GetProgramName() == "AvsPmod,exe" ? Trueの処理 : Falseの処理
応用で、
GetProgramName() == "AvsPmod,exe" ? AvsPmodの処理 : GetProgramName() == "avs2pipemod.exe" ? avs2pipemodの処理 : それら以外の処理
もできるはず >>228
https://pastebin.com/a3VNWKJB
ライセンスが明記されてなかったから勝手に弄くらせて貰って済まないけど
IsAvsPmod("AvsPmod.exe")
と言うように判定する名前を変えられるようにしてみた
原作だと大文字・小文字まで判定するから、IsAvsPmod("avspmod.exe")でFalseになるけど、
IsAvsPmod("avspmod.exe", insensitive=false)で大文字・小文字の違いを無視して判定させるようにしてみた
AviSynthプラグインは今まで書いたこと無いからこれで良いか分からん
そもそもC++なんて齧ったことしかなくて殆ど無知だわ
あと関数名変えたほうが良いかもな >>229
おぉ、いいじゃん。case sensitiveはマズかったね。直さないと。
ライセンスだけど、AviSynthのプラグインってGPL以外でもいいのかな >>230
MITライセンスのプラグインもあったりするけどどうせソース同梱にするならGPLでも良いんじゃない?
あと気づいてると思うけどオプション名がinsensitiveになってるからsensitiveにして(このままだとinsensitive=Trueでcase sensitiveになっちゃう)、
28行目のif文のインデントが崩れちゃってるところと原作のソースのインデントを盛大に4文字スペースに変えちゃってるところはそちら側で直してくれると助かる >>225-231
ありがとう。そういうアプローチもあるんですね。ググってみたけど
前スレ131でProgramNameのx64版ビルドをしてくれた人の
https://otsukemono.blogspot.jp/2014/03/avisynth-user-defined-functions.html
でも紹介されてる手法のようですね。拡張子の有無など注意点もあるようです。
これ、当時見かけたけどAvisynth+を使うようになったら読めばいいやとか思って
すっかり忘れてた記事だ・・・。
>>226
ConvertTo8bit()はdeprecatedのようなので、ConvertBits(8)がベターみたいです。 >>223
詳細は省いてしまったのですが、
http://mevius.2ch.net/test/read.cgi/avi/1486130737/297-335
でやったようにD&Dしたソース動画をQSVEnc等でエンコして
SSIM/ビットレート/エンコード速度などを調べるバッチを改良しようとしています。
強制16bit読み込みも考えたのですが、8/10bit読みと比べると
エンコード速度が結構低下するので、やめたほうがよさそうかなと。
「--avqsv等でのHWデコード渡し」でもやるんですけど、上で何故かffmpegによるSSIM計測が
うまくいかないケース(ソースのフォーマットにも関係あり?)があったので、
一度LSMASHSourceを通して「avs->y4m渡し」をして、SSIM計測も
「入力avs」「出力ファイルを読みこんだavs」とで計測すればもしかしたら安定するかなと。
入出力で深度等が異なる場合は両方RGB48に変換して計測すればいいのかな?色々試行錯誤中。
できればMP4等ではindex生成を省略できるし読み込みも信頼できそうなLSMASHSourceを使いたかったのですが、
とりあえずはAvisynth+のカラーフォーマットに対応してるFFMS2でも大丈夫だろうか。 >>234
昨日はQSVEnc使うとか知らなかったけど、昨日時点で俺が考えてたffmpegから渡すっていうのは
ffmpeg -i input -f yuv4mpegpipe -strict -1 - | (以下略
って言うやつだったんだけどこれじゃダメなの?
AviSynth通さないから若干速度速いだろうし10bitだと尚更速い気が思う
ところでQSVEncの--avqsvがダメなら--avswはどうなの?
AviSynthのFFMSで問題なければそれで良いと思うけども貼ってくれたURL覗いた限り
不特定多数に検証させるなら出来るだけシンプルのほうが良いと思うけどどうだろう 8bitを超える深度だと、SSIM計測がうまく行かなかった記憶がある
crf0でも、SSIMが変な値を返してきたような >>236
x264 10bitの--crf 0は8bitと違って可逆圧縮にはならないけど、それとは違う話? >>238
8bitのqpは0〜69、crfは0〜51
10bitのqpは0〜81、crfは-12〜51
--qp 0は8bitも10bitも可逆圧縮、--crf 0は8bitなら可逆圧縮、10bitは--crf -12が必要のはず
http://up-cat.net/x264%252Dchangelog%252Djp%2Br1700%252Dr1799.html
詳しくはここのr1764で 8bitも--qp 0でしか可逆にならないのかと思ってた >>235
1.SSIM計測で入力順を変えると異なる結果が出た。入出力ともに8bitだし本来なら入力順を変えても一致するはず。
QSVEncC --avqsv h264_pcm.m2ts -o h264.mp4
ffmpeg -i h264_pcm.m2ts -i h264.mp4 -lavfi "ssim;[0:v][1:v]psnr"
ffmpeg -i h264.mp4 -i h264_pcm.m2ts -lavfi "ssim;[0:v][1:v]psnr"
2.avqsv用のバッチも作るが、x26xも使うので共通して高深度も渡せるy4m方式で別途バッチを作る。選択肢は以下。
A.ffmpegにソースを渡しy4mにする
B.avsを作りavs2pipemodでy4mにする
3.ffmpegに直接動画を渡すと変なSSIMが出たということは前にもあり、
その時はavsをかますと安定してた気がする。ffmpegのコマンドが悪いだけかもしれないが
ffmpegによるデコードはなるべく避けてavsを使う形にということでBを選択。
4.avs内でのデコードと処理はどうしよう・・・ということで>>219、>>234へ至る。 なお>>234の"RGB48にしてSSIM計測"は色々変なので再調査中。 >>207
prefetch(0)にすれば解消するけど? mvtools2のMDegrainってノイズ除去としてどう?
アニメとの相性はかなりいいように見えるけど、あまりmvtoolsでノイズ除去って聞かないよね
ノイズ除去だとFFTやNL-means系が有名だけどかなり輪郭ボケるからmvtoolsの方がいいように思うけど SMDegrainを試してみたら?
ManalysisとかMsuperとか気にしないでもとりあえずは使えるし
SMDegrain_KNLMeansCLとかいうゴッツいのもあるし SMDegrainは関数名のとおりフィルムグレインや演出のグレインが入ってるところがごっそりとツルツルになっちゃうからなぁ
グレインが乗ってない部分へのNRとしてはMPEG由来のモスキートノイズとか目立たなくなる感じだから優秀だとは思う contrasharpのオプションを使えばツルツルにならないよ 天使の3PEDって、グレインノイズエフェクトの生成がところどころ止まるんだな
MDegrain使ってるからアーティファクトかと思ったが 止まってるね。てかTSの時点で圧縮ノイズなのかグレインノイズなのか分からん状態になっているがw TFMのmodeってどれがいいの?
ググると1と6がよく使われてるみたいだけど、VIVTCだと6ないよね Tdeint+TFMはさすがにもう使わなくなったな TdeintはQTGMCとかあるから分かるけど、TFM使わなかったら何使うんだ? TFMはDVDとかBDクラスの品質でないと誤爆するイメージ 普通にインタレ解除したらいい
そもそもフィールドマッチングで誤爆したんじゃ意味ねぇと思って使うのをやめた(ノイズの多いシーンチェンジやシーンで前の絵が2回続く) あー、そういうことか
http://www.eizo.co.jp/eizolibrary/other/itmedia02_06/
> I/P変換には、大きく分けて2種類の手法がある。1つは「動き適応型」、もう1つは「2-3プルダウン型」だ。
> 両者ではI/P変換の仕組みがまったく違うが、どちらが優秀というわけではなく、表示する映像ソースに
> 応じた使い分けが重要になる。 これらのI/P変換に対応した再生機器やディスプレイでは、自動で変換の
> 手法を使い分けていると考えてよい
インタレ解除って、動き適用型(QTGMC)と2-3プルダウン型(TFM+TDecimate)を組み合わせて使うもんだと思ってる
ノイズの多いシーンとかでフィールドマッチングがうまくできないときは動き適用型に切り替えればいいと思ってるけど、
それだと何か問題あるの? できないと思う。したいんだったらSelectEveryで自分でやればいい TFMってYプレーンの一番上の行の左64ピクセルの下位1ビットにヒント情報埋め込んでるから
この64ピクセルは下位1ビットに変なデータが入るんだな。すげー気持ち悪い 気持ち悪いけど面白いねそれ
>>259
そのリンク先の説明ってあんま良くないな
動き適応は動きがあるかないかで解除方式を切り替えるってことだからbob系処理がベースのQTGMCは動き適応ではないよ
(細かいことを言うと解除済みソース専用のProgSADMaskっていう動き適応オプションがあるにはあるけど)
>>260
60→24とかは無理だね
ただFPSDivisorオプションを使って1/整数に間引いて出力することなら可能 >>263
確かにこの説明足りなすぎるな。
動き適用型って動くところはフィールド内補間だからbob化で、
最新のやり方だと、動きベクトルを検出して補間するからQTGMCは動き適用型ってことで
60→24はSelectEvery(5,1,3)とかやればいいんじゃないの? ちょっとややこしいけどQTGMCは動き「適応」じゃなくて動き「補償」
これはプログレッシブ化したあとのチラつきを抑えるために動き「補償」付きの時間軸平滑化を掛けますよってお話であって
プログレッシュブ化の方式自体を動きによって切り替えるってことではないから、動き「適応」のIP変換ではないんだよね TDeintも動き適応型だったはずだから
なんかおかしいと思ってたらそういうことか 分かったよ。動き補償型ね。motion "adaptive"じゃなくてmotion "compensation"ね
それはそうとして、24pがプルダウンされたやつをQTGMCにかけると、
24pフレームの間のフレームが捏造されるから、2-3プルダウン型も必要だよね 今で知らなかったけど、「bob」って「ひょいと(上下に)動くこと,急に引く動作[こと].」って意味で
上下に動くあのチラつきは「bobbing artifact」って言うんだね
「bob化」の意味が未だに分からないんだけど、素直に解釈すると
フィールド内補間するから、bobbing artifactが大量に乗った映像にするってことでいいの?
QTGMCをbob化というのは、かなり失礼だなw そのチラつきを抑えるために動き「補償」付きの時間軸平滑化を掛けますよってのが
(Quick) Temp Gauss Motion Compensated というフィルタ名のそのまんまの意味であり由来でもある
QTGMC(tr1=0, tr2=0)ってしてみるとIP変換のコアの部分がbob系というのがよくわかるよ >>268
Bob化ってのは60i → 60p にすることを指す言葉で
それを行うための課程(処理の複雑さなど)は関係ない いやそれは分かるよ。MAnalyzeで動き検出してMDegrainで時間軸平滑化してるのはソースみれば分かる。
tr1=0,tr2=0にすれば時間軸方向を全く使わなくなるから、ただのbob?になるのも
俺が言いたかったのは、2-3プルダウン型だけでも、動き補償型だけでも、ダメで
組み合わせる必要があるってこと
>>270
そうだよね。サンクス
でも、そうすると>>269の「bob系(処理)」ってなんだろう。60i → 60p系?
bob化は2倍fps化のことで、ただのbobは単純にフィールド内補間すること、って理解でいいのか あ、QTGMCのQってQuickだったのか!全然Quickじゃない気がするが・・・(遅いよ) >>262こんなハックしないで、ちゃんとフィルタ間でデータのやり取りができるように
VapourSynthのプロパティが必要だな。VFRにも対応できるようになるし
音声殺して音声のパラメータ入れるところにポインタいれたりとか、いろいろハックしすぎw >>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 >>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 >>469
VapourSynthのQTGMCでスクリプトをいじって、
最初のフィールドを分離する所のBobをTDeintMod+nnedi3に、
後のedi1でそれをそのまま使うようにしてる。 >>374のdelogomod x64再アップお願いできませんか。 KTGMCで、薄っすらと前後のコマが残る場合があるようです
https://i.imgur.com/EQBXdfB.png
上:Deinterlace(mode24=2, preset="faster", cuda=true).selectevery(2,0)
下:TFM(mode=5,PP=0,order=-1,slow=2,mChroma=true,chroma=true)
口に薄っすらと残っています。fastとslowでは出ませんでした
QTGMCでも既知の現象なのでしょうか? >>478
cuda=falseにすればQTGMCで動くよ 前後のフレームをマージしてるから、原理上はありえる動作
ただ、QTGMCとKTGMCで全く同じ結果になるとは限らないから
それはやってみないと分からない
他にも、口とかの小さい動きは、動きが捉えられて、
本来は存在しない中間フレームが生成されたりする
これはslowでやっても改善しない
ただ、そういうのは動画で見たらほとんどの人は気づかないと思う
だけど、ソースに存在しないフレームが生成されるのは嫌だから、
24p部分は24p判定しようと頑張ってる
24pだって分かってるソースは逆テレシネするのが一番きれいだよ FFmpegに帯域削減後のBSに使われてるフィールドピクチャが
正常にデコードできないバグがあったから直した
これ使ってL-SMASH Worksビルドしたから配布
https://github.com/nekopanda/FFmpeg/releases
ビルドけっこう大変だったからおかしいところあったら教えて >>483
ありがとうございます。
質問なのですが、ffmpeg本家への報告は考えてらっしゃいますでしょうか?
今後のことを考えると、できれば本家にも修正が反映されると良いなと思うのですが。 AmatsukazeでTDecimateを使うと途中で止まってしまいます
コンソールのログは↓で止まります
> AMT [info] 音ズレ: 平均 1.99ms 最大 1.99ms
メインを
Import("AMTFilterFunctions.avs")
src = IsProcess("AmatsukazeCLI.exe") ? AMT_SOURCE : LWLibavVideoSource("T:\sandbox\t28\ts\test.ts")
src.Deinterlace(mode24=3, preset="Faster", cuda=true).selectevery(2,1).Assumefps(29.97003)
ポストを
src = IsProcess("AmatsukazeCLI.exe") ? AMT_SOURCE : LWLibavVideoSource("T:\sandbox\t28\ts\test.ts")
src.PostFilter(cuda=True,edge=False)
IsProcess("AvsPmod.exe") ? ConvertBits(8, dither=0) : last
TDecimate()
にして、エンコードしようとしました
TDecimate()無しで30fpsでエンコードする場合は正常にエンコード完了します いっそnekopanda氏に一言伝えて、Amatsukazeスレとか作ればいいのに。 >>489
そこは10bitだからマズい気がする
TDecimate()は10bit対応してたっけ ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ http://putin999.blog.fc2.com/ (←fc2を半角にしてね)
ここのサイトのプラグイン、ほとんどリンク切れになってる… D3DVPめっちゃ便利やね
環境維持重視だった録画兼エンコPCもWin10にしたくなったわ D3DVPのデフォルトはbobらしいけど
どのくらいの品質なんでしょうか GPUやソースによっても変わるんだし、自分で試すしかないんじゃないの。 >>496
GPU使って動画再生したときと同じ品質のはずだから、
PCでインタレ動画再生して確かめればいい >>498
NVIDIAが載ってるノートPCとMPCとLAVで十分綺麗に観れてますから
満足な品質だと理解しました
ありがとう >>494
その場所知りたい
片フィールドロゴ除去系のプラグイン探してるんだけど
サイト消滅、リンク切れで見つからない >>500
ごめん
firefoxをインストールしてブクマ確認してみたけど登録してなかったは
Itsのx64版とかいろいろあったと思ったんだけど・・ CUDA対応とか盛り上がってるんでplus 64bitに移行してみたんだが
avs名が長かったり2バイト文字を含んでると、ScriptFile()が尻切れの値を返してきて分岐処理が出来にゃい…
詰んだorz >>309
Windows8.1 64bit GeforceGTX750環境で
Avisynth+(r2636)で完走するavsで
Avisynth+CUDAに代えたところ
QTGMCがエラーを出します
log
ERROR: Assert: assertion failed
(C:/Program Files (x86)/AviSynth+/plugins64+/QTGMC.avsi, line 1096)
QTGMC.avsi, line 1096
try { Assert( !Replace && defined(Eval(globalName)) ) }
同様にKTGMCの場合もエラーを出します
log
ERROR: Assert: assertion failed
(C:/Program Files (x86)/AviSynth+/plugins+/KTGMC.avsi, line 1065)
KTGMC.avsi, line 1065
try { Assert( !Replace && defined(Eval(globalName)) ) } >>504
うちだと、そのエラーはAvisynth+(r2636)でも出るし、QTGMCでもKTGMCでもAvisynth+CUDAで完走する >>434
ビルドしたら用意されてて、うお!って思ったけど、
Device unmatch: oncuda[CUDA] does not support [CPU] frame
のエラーで使えないです nekopandaさんの
KTGMCとか以前と結構変わったのかな?
ただのKTGMCとかなくなって、KTGMC_Bobとか他にもいっぱいあるんだけど
とりあえずKTGMC_Bobはあまり綺麗にならない KTGMCやKNNEDI3はビルドしないで普通にreleaseされてるのを使えば問題なかったです・・・ >>506
用意した覚え無かったけど、なんかあるねw
多分中身はnnedi3_rpow2と同じだわ
>>507
KTGMCはKTGMC.avsiにある
KTGMC.dllにあるKTGMC〜は内部で使ってる関数 >>509
ありがとうございます
仕組みがわかりました
AvsPModでKTGMC使ってもすごい速さでシークできるので
可能性を感じます・・・が結構落ちます・・・
グラボのメモリとかが足りないのか、故障してるのか
イベントビューアに WHEA-Logger 17 いっぱい出てるし >>510
GPUのメモリ使用量はGPU-Zとかで見れるよ。Win10ならタスクマネージャーでも見れるかな
そのエラーはHWかドライバあたりっぽいね Avisynth+ CUDA 安定してきました。
KTGMC、KNNEDI3は全然CPUパワー食わないので
CPUパワーを他のことに使えますね
高画質化とか高速化とか? GPUガンガン回して時間当たりの消費電力が増えても全体で見れば凄い省電力ってのは精神衛生上大変よろしい そういう意味じゃ、D3DVPは圧倒的な消費電力低減につながるな CUDAは無理だが、D3DVPはRadeonでも使えるだろw MDegrainのGPU化物凄く助かる
マジ感謝
ラップは作れないですけど・・・ D3DVPはRadeon買ってみたくなるな
でもインタレ解除は、30fpsになっちゃうけど、
K(Q)TGMC(slower)でBOBってSelectEvenしてる
圧縮してもたいして容量変わらないし、なんか綺麗だから
誤爆とかそういう概念もなくなるし
変? ぶっちゃけradeonは大したことないよ
D3DVP側からオプション変えられないし使いにくい
KTGMC(QTGMC)でslowerが高速に動くなら
それに越したことはない ttp://linino.dip.jp/quintrokk/?p=1768
にも書かれてるんだけど
>なぜかD3DVPフィルタを適用すると、 先頭フレームが2フレーム重複して表示→以降1フレーム遅れ→最終フレーム欠落 となってしまいました。GPUが悪いのか、ドライバが悪いのか…
って感じで1フレームずれるんだけど、仕様ですか? >>521
いや、うちはNVIDIAでやってるからね KTGMCでBOBしてselectevenして、
間引きとかはもうしてないなー
誤爆とは縁が切れた
今は30fps固定のインタレ解除だけしたCFR
似たフレームなら圧縮されるだろうし
出来上がりサイズはたいしてかわらんし >>520
DGdecNVに、読み込み時と単体のHWデインタレースフィルタの3種類が用意されていたので試してみた
CUDA経由のDGBob(mode=0)とPureVideo経由のPVBob(mode=0)はズレないが
古いDGSource(〜deinterlace=1,use_D3D=true)でD3D経由インタレ解除してスキップしたりフレームを戻すと1フレずれる
Win7+GTX660環境なんでD3DVPが使えず同じ現象かは分からんが、D3Dの仕様に何か罠があったりするんかな? そういやnvidia専用のDGdecodeもあったね
懐かし 1フレームずれる分、音ズレに気をつけないといけないんだろうか EDCBスレで話題になってるVS2017のコンパイルしたものの動作不良を引き起こすバグ(仕様)が気になる
3月の頭にnnedi3とか自ビルドした間の悪さよ・・ 昨年末くらいにAvisynth+スレでもVS2017おかしくね?って話が出てたよ。
https://forum.doom9.org/showthread.php?t=168856&page=192
書き込みにもあるけど、x265のバイナリを配布してる海外の人が
VS2017 15.5はクソだなっつってV2015に戻したりもしてる。
http://msystem.waw.pl/x265/
今のpinterf氏のAvisynth+ってVS2017ビルドだよね?
ランタイム入れるのめんどいって思って最近全然更新してないや・・・。 ああ、あれってそういう話だったのか
開発も自ビルドしないからコンパイラなんて関係ないやってスルーしてたは KFMの32bit版でKFMSwitchが動かない
引数のthswitchやthpatchを設定するも引数エラーが出る
64bit版はOK >>530
CUDAが32bit版サポートしなくなってビルドできなくなってた
紛らわしいから32bit版は消しておいたわ >>531
サポート終了とは残念だが回答ありがとう
更新頂いたバージョンのリンクが0.3.1になってるので最新のお願いね
aviutlから乗り換えで別の編集用ソフト探すかな まぁ、実際のところ、作者様は
色々なバージョンを作成管理する義務はないし、
自分の時間だって欲しいはず プラグイン作者は、著作者を名乗ったりHPのリンクとか貼らなければいいんだよ。
ビルドが終わったら斧にでもアップして、一切のサポートをシカトすれば気も楽だろ。
どうせavsのプラグイン開発なんて1円も儲からない分野だしな >>520
先頭フレームの解除漏れとフレームのずれに対処するオプション追加した
border="blank",adjust=1 ってすればどっちも解決できるはず
1フレームずれるのが仕様なのかどうかは知らん
Radeon環境や、NVIDIAでもmode=0だとずれてなかった >>536
環境や、もしかしたらドライバによっても違うってことですかねえ
ちゃんと確認してからやらねばいけないね AviSynth+CUDAいじってるけどおもろいね
電気代と1080ti欲しくなるなぁ・・・ >>536
元絵とかと比較して自動アジャストとか出来ないかなー conditionalfilterフィルタがCUDAを使うと動かなくなるようで
再現性あったのでサンプルスクリプト書いてみました
SetMemoryMax(2048, type=DEV_TYPE_CUDA)
BlankClip(length=100, width=1920, height=1080, pixel_type = "YV12", fps=30000, fps_denominator=1001).KillAudio()
AssumeFrameBased()
conditionalfilter(last, last, last, "10","<", "128" )
ConvertBits(14).OnCPU(2).KDeband().OnCUDA(2).ConvertBits(10, dither=0)
return last 普通のPlusでもMT有効でconditionalfilterを使うとエラー出るし
もっと根本的なところに原因がありそう ConvertBits(14).KDeband().ConvertBits(10, dither=0)で動いたから修正できたら嬉しいのだけど
別の原因かもしれないのか。。
DecombUCFが動かなくて、conditionalfilterまで行きついた。
DecombUCF自体はconditionalfilter無しで動かすように改造して回避して
内部呼び出しのTDeintをKTGMCに変えてさらに高画質化できたよ Avisynth+CUDA専用でないならどこかにアップしてくれない?>conditionalfilter無しのdecombUCF 自信無いがこんな感じ、decombUCF v3.13が元
conditionalfilter(c
から
\, "CFieldDiff(nt=0,chroma=true)*100.0/"+String(Width(c)*Height(c)),"<", String(fd_thresh) )
まで削除
変わりに
c
追加
第一次判定をスキップするので重くなる可能性あり
以下利用サンプルではTFMでインターレース判定があった場合のみ実行することで負荷低減
#pp=0とpp=4は変えないほうが良い、インターレース判定のcthresh, MIはお好みで
Deinted = TFM(mode=6, order=-1, pp=0, slow=2, mChroma=true, MI=40, display=false)
Deinted = Deinted.DecombUCF()
TFM(mode=6, order=-1, pp=4, slow=2, mChroma=true, clip2=Deinted, cthresh=7, MI=40, display=false)
TDecimate(mode=1) スマソ、一次判定の結果が間違ってたので修正だわ。decombUCF v3.13が元
conditionalfilter(c
から
\, "CFieldDiff(nt=0,chroma=true)*100.0/"+String(Width(c)*Height(c)),"<", String(fd_thresh) )
まで削除
変わりに
c.ScriptClip(string1+string2+string3)
追加 ちょうど今日やろうとしてたところで
情報更新thx Plane Difference: This filter can only be used within run-time filters
([ScriptClip], line 4)
がMT有効だと常に表示されるは
conditionalfilterだけが問題ではないみたい@plus r2636 確認どうも
再現したのでScriptClipも回避できるか見てみるかの DecombUCFはLumaDifference系のフィルタが必要でこれもMTと合わせて利用ができないよう
リクエスト修正出てるからいずれは修正されるのかな
https://github.com/pinterf/AviSynthPlus/pull/10
CUDAの方はimportスクリプト内含め全てをOnCPU(0).OnCUDA(0)とすればMT無効と同条件でDecombUCFが動作することがわかったわ >>552
調査ありがとう
それ、去年の4月からの放置なのか・・
Avisynth+はSE't氏のMTより高度なMT処理を実装してるんだろうけど
ちょっとちょっと未成熟なのよね
プラグイン側は精力的なアップデートでかなり良くなってるんだけども あぁ、Avisynth+はScriptClip系をマルチスレッドで使うとデッドロック不可避だった
ソース見ると直そうとした形跡はあるけど、
最近のバージョンではエラーにしてるとこ見ると、もう諦めてるのかな
CUDAはOnCUDAが1つだけなら大丈夫っぽいけど、複数あるとデッドロックしそう UtVideoで吐きだしたaviファイルをフィールドピクチャ対応のL-SMASHで読み込んでいるのですが、
その最終フレームをFreezeFrameで1つ前のフレームで置き換え、
AvsPmodで表示しようとすると
Error requesting frame 34524
WindowsError: exeption: access violation reading 0x00000068
というエラーが表示されます。
以下、例。
LWLibavVideoSource("hoge.avi")
FreezeFrame(34524, 34524, 34523)
return last
この例だとAvsPmodで34524フレーム目をピンポイントでプレビューに表示(更新)させると上記のエラーが表示されます。
ただ、他のフレームをプレビューに表示してから最終フレームまでシークしていくとエラーは出ません。 AVISource()で読み込んだほうが早くね?
UTVideoの本家のデコーダーが使えるしL-SMASH Worksが内部で利用しているffmpegのデコーダーは本家の更新にすぐに追従してアップデートするわけじゃないからな 以前、AVISource()を使ってみたら
緑一色のフレームが混じることがあったのでL-SMASHを使うことにしています。
フィールドピクチャ対応のL-SMASHに変えるまでは
最終フレームの置き換えでエラーが出なかったので報告してみました。 >>557、>>559
ありがとうございます。
AVISource("hoge.avi", pixel_type = "YV12" )でやってみます。 >>558
ffmpegは動いてたのがバージョンアップで動かなくなるとかざらにあるからね・・・ AVISourceで緑のフレームが混じるって報告は前にもどこかであったけど、
野良ビルドを使ってたり、
pixel_typeを指定してるかわからなかったりだったかな
どうしてもL-SMASHが使いたいなら、
aviファイルの読み込みだけ前に使ってたやつを使えばいいんじゃない? >>561
ありがとうございます
凄いや。OnCUDA(2)やPrefetch(4)のMT環境でDecombUCFが動くのを確認できた
一度だけエラー出ましたが繰り返しすぐ起動したのが影響あったのかも。。
OnCUDA(2)で継続して使用しますね CUDA無しでも動くようでMT対応として使ってみるとか >>565
OnCUDA()が使えない環境なのに、KAnalyzeとKMergeStatic+QTGMCを使いたいが為にSynth+cudaを使ってる俺も居る
今までMask使って試行錯誤してたのがアホらしくなるくらい結果が良くてちょっと悔しい
ただ、KFM-0.3.1では問題なかったKRemoveCombeが、0.3.3でエラー吐くようになってしまって
その内切り捨てられるのではないかと内心ビクビクしてるわw うちはGTX750のCUDA環境なのにQTGMCもKTGMCも使えないから使ってない
ERROR: Assert: assertion failed だから理由もわからないし
PLUSは普通に使えるから移行しようがないんだよね ScriptClipでの異常に対応したんだ
Pluginレベルでアカンのかと思ってたけど、Avisynth自体の問題だったんだな DecombUCF、SmoothCustomやめてmt_lutにすると少し速くなる
str_y = mt_polish("(x==128)? 128 : ((x<128)? ( (((127-"+String(range_y)+")<x)&(x<(128-"+String(nmin_y)+")))? 0 : 56 ) : ( (((128+"+
String(nmin_y)+")<x)&(x<(129+"+String(range_y)+"))) ? 255 : 199 ))")
str_uv = mt_polish("(x==128)? 128 : ((x<128)? ( (((127-"+String(range_uv)+")<x)&(x<(128-"+String(nmin_uv)+")))? 0 : 56 ) : ( (((128+
"+String(nmin_uv)+")<x)&(x<(129+"+String(range_uv)+"))) ? 255 : 199))")
eval_y = Select(chroma, 3, 2, 3)
eval_u = Select(chroma, 2, 3, 3)
eval_v = Select(chroma, 2, 3, 3)
return c.mt_lut(yExpr=str_y,expr=str_uv,Y=eval_y,U=eval_u,V=eval_v) ts開発かどっかで聞いたけどスルーされたのでここでも質問
join_logo_scpで作ったカット編集ずみavsは5の倍数だとかテレシネパターンを一切考慮に入れてないみたいだんだけど
autoVFR(Fastではない全検索)による SelectEvery形式でのテレシネ解除の影響はないと考えていいの?
昔、テレシネ解除にTIVTC24P2関数を使ってた時はテレシネパターンをまたいだカット編集で誤爆った記憶があるから
手動カット編集するときは注意してたんだけど、どうなの? ScriptClipで複数のクリップを使いたいときって、どうやるんだ?
function MyFunction(clip c1, clip c2) {
return c1.ScriptClip("c2.subtitle(string(current_frame))")
}
src = LWLibavVideoSource(...)
MyFunction(src, src)
これだと動かない
DecombUCF見ると変数をglobalにしてるけど、グローバル変数使うしかない?
複数回呼び出されたときに動かなくなるから使いたくないんだが・・・ StackVerticalなどで一つのクリップにするという方法もある https://github.com/pinterf/AviSynthPlus/releases
最近のAviSynth+はインストーラからMT仕様ですか?
※現在はまだr1576(x86)を入れて動作確認しただけです(一度同時にx64も入れましたが優先がx86みたいなのでx86で様子見) >>576
なんか分かってないようだけど 64bit の方は呼び出すアプリも 64bit じゃないと使われないぞ。 >>577
MTっていうことですよね?
ありがとうございます
>>578
AvsPmodはx86もx64もあるので編集は出来ます(x64は未確認)
バッチファイルは作り直さないといけませんが(今までx264(x64)はパイプで読み出していたので) _GPU25のx64版DLLが無いからAvsPModはx86版しか使わなくなった >>580
使ってるフィルター次第だろうけど俺も同じような状態から
他のフィルターに乗り換えて _GPU25 はもうつかわんくなった。 Dup.dllのx64ってないですか?
Clean_SC(シーンチェンジフレーム置換).avsi
で必要なのですが・・・ >>583
Dup.dllのソースコードは何処かにあったはずなんだけど、そのソースコードはinline asmと呼ばれる書式で記述されている
そのinline asmはMSVCではx64でビルドすることができないのでx64に移植するのは少々規模の大きな手直しが必要になる
以上の理由で今の所x64版が無いのかもしれない というか前にも似たような話題が出て答えた気がする >>586
ソースがあるのは知ってるけど
x64ように書き換えないとダメ
誰かがやってくれるのを待つか自分でやるか・・・ >>586
他の方も言ってるけどソースをちょっと大きな手直しが必要なんだ
asm言語をintrinsic SIMD命令に書き換えるかasmをソースから切り離すかしないといけない
はっきり言うと、諦めるか自分でやるしかない それか親切な方が現れるのを待つか・・・
あんまりしつこいとクレクレ君って言われるよ 数年前までそういうやつがいてスレが少しばかり荒れてたことがあった >>588
あったらラッキー程度に聞いてみた話です
だから>>586 時点で無いと答えをもらったので「了解です」と答えてます x64でインラインasmを使いたいならインテルコンパイラを使えば?って婆ちゃんが言ってた >>589
それはすまねぇ・・・
過去にソースの入手先を張って作れだの言いまくってたやつ思い出して過度に反応してしまった
>>590
AviSynth2.58の64bit版を開発してたJoshyD氏が公開してた64bitプラグインはICLでビルドされてたはずだな ただ高いんだよな・・・
ソース見る限りC++なコード自体が残ってなさそうなのが移植の難易度上げてる気がするな いや、それ、232aだと大部分はコメントアウトされてるし、
唯一使われてるのはblend(デフォルトオフ)で使われてるだけだから
全部消しちゃってOK
それよりDupとDup1はどっちがいいんだ?
Clean_SCはDupを使ってるみたいだけどDup1だとダメなのかなぁ そういうものなのか
ビルドした記憶はあるけど、Clean_SCの調整(誤爆なくゴミ消せる)の追い込みが難しくてお蔵入りしたは >>592
現在使用しているのはDup 2.30です
Dup1は所持していませんので自分はわかりません >>592
その話聞いてオリジナル版と232aのソース見比べたら確かに大部分が呼び出されてないね
blendの部分も無視しちゃえば移植できるかも ただオリジナル版と比べて速度的な違いはどれほどなんだろ
DupとDup1の違いが分からないけどオリジナルのDupと衝突しないように名前分けてるだけなら使えると思う
Clean_SCもblend=trueは使ってないようだし限定的ながらx64化できるかもしれない 後日ちょっと見てみるわ 後日と言いつつ即日
AviSynth Dup1 x64
ttps://www.axfc.net/u/3901359
これで動くかなぁ?
Clean_SCのDup関数をDup1にしてね
MT有効化したときとかそういうの一切チェックしてないけどどうかな?
ICLでビルドしたものが出てくるまでか代替品ができるまでの繋ぎになってくれればいいけど >>595
AvsPmod(x64)で見ることはできました(DupをDup1にファンクションを変更)
r1576なのでMTは未確認(r2664他どれを入れてもフリーズなのはメモリー不足?)です
※メモリは8GBと今時としては少ない? 私8GBだけどMT使えてる
なんかの命令セットが古すぎるとかでは
>>596
thx >>597
>>555
Avisynth+でMT有効にしてScriptClip,ConditionalFilter使うとデッドロックするのは既知の問題 メーカー品じゃないからねぇ
常識ってどっかにまとまってるのかな?
くらい無意味な質問だ DecombUCFの注意点見つけました
複数clipからDecombUCFをコールするとclipが混ざることがあるようです
DecombUCF中のglobal変数を変えて、DecombUCF2とか別関数を定義して回避できた
>>571
DecombUCFの改良使わせていただいてます >>602
だれか>571で置き換える箇所をもう少し詳しく書いてくれる人いませんか? >>571の置換えはこんな感じで使ってる
function Limitter(内の以下箇所
str_y = "(Y==128)? 128 : (Y<128)? ( ((127-"+String(range_y)+"<Y)(Y<128-"+String(nmin_y)+"))? 0 : 56 ) : ( ((128+"+String(nmin_y)+"<Y)(Y<129+"+String(range_y)+")) ? 255 : 199 )"
から
return c.SmoothCustom(eval_y, eval_u, eval_v, false, 0, 0, -1)
まで7行かな 以前、UtVideoで吐きだしたaviファイルを読み込ませるのは
LWLibavVideoSource) よりも AVISource() のほうがいいと助言を頂いた者です。
あれからAVISource()を使っているのですが、速度が安定しません。
AvsPmod上の解析パスを走らせるときは最初から最後まで安定しているのですが、
batファイルで、avs2pipemodのbenchmarkを使ってログをとるときや
ノイズ除去などの補正処理を施したaviファイルをUtVideoで出力するときに、
速度の最高値を100とすると、60あたりから始まって非常にゆっくりと100まで上昇していくという状況です。
ですが、10秒ほどAvsPmod上の解析パスを走らせた後で
batファイルを実行すると最初から100の速度で安定して処理を行えています。
何が原因なのでしょうか? ショボスクリプトのスレ無くなったんで、ここ借ります。
縞なし24(5フレーム中2フレームが重複)の周期判定に使うスクリプト
# 例
# S1 : 1 1 2 3 4 | 1 1 2 3 4 | ... SelectEvery(5, 1, 2, 3, 4)
# S2 : 1 2 2 3 4 | 1 2 2 3 4 | ... SelectEvery(5, 0, 2, 3, 4)
# S3 : 1 2 3 3 4 | 1 2 3 3 4 | ... SelectEvery(5, 0, 1, 3, 4)
# S4 : 1 2 3 4 4 | 1 2 3 4 4 | ... SelectEvery(5, 0, 1, 2, 4)
# DoubleWeave後、10フレーム毎に特定部分を抽出した時に縞が出ない周期を見つける
# DoubleWeave().SelectEvery(10, 1) #S1
# DoubleWeave().SelectEvery(10, 3) #S2
# DoubleWeave().SelectEvery(10, 5) #S3
# DoubleWeave().SelectEvery(10, 7) #S4
DoubleWeave().SelectEvery(10, 1) #S1
この状態で周期変化すればその部分だけ縞になるから、後はその縞を検出するスクリプトなりプラグインなりで判定 >>607の補足1
#S1 DoubleWeave().SelectEvery(10, 1)
1......1......2......3......4......1......1......2......3......4......1
1 1 1 2 2 3 3 4 4 1 1 1 1 2 2 3 3 4 4 1
1 1 1 1 2 2 3 3 4 4 1 1 1 1 2 2 3 3 4 4
0[1]2 3 4 5 6 7 8 9 0[1]2 3 4 5 6 7 8 9
#S2 DoubleWeave().SelectEvery(10, 3)
1......2......2......3......4......1......2......2......3......4......1
1 2 2 2 2 3 3 4 4 1 1 2 2 2 2 3 3 4 4 1
1 1 2 2 2 2 3 3 4 4 1 1 2 2 2 2 3 3 4 4
0 1 2[3]4 5 6 7 8 9 0 1 2[3]4 5 6 7 8 9 >>607の補足2
#S3 DoubleWeave().SelectEvery(10, 5)
1......2......3......3......4......1......2......3......3......4......1
1 2 2 3 3 3 3 4 4 1 1 2 2 3 3 3 3 4 4 1
1 1 2 2 3 3 3 3 4 4 1 1 2 2 3 3 3 3 4 4
0 1 2 3 4[5]6 7 8 9 0 1 2 3 4[5]6 7 8 9
#S4 DoubleWeave().SelectEvery(10, 7)
1......2......3......4......4......1......2......3......4......4......1
1 2 2 3 3 4 4 4 4 1 1 2 2 3 3 4 4 4 4 1
1 1 2 2 3 3 4 4 4 4 1 1 2 2 3 3 4 4 4 4
0 1 2 3 4 5 6[7]8 9 0 1 2 3 4 5 6[7]8 9
失礼しました。 QTGMC(Preset="Faster")で縦1080のクリップ処理すると下端8ピクセルの色がおかしいんだけどおま環?
8ピクセル足して処理すれば正常になる
AddBorders(0,0,0,8)
QTGMC(Preset="Faster")
Crop(0,0,0,-8)
ピクセル数が (Blocksize - Overlap) の倍数じゃないとダメなのかな なんか聞いたことがあるよな、ないような・・
無印Avisynth使ってる? L-SMASH使った読み込みで dr=true にしてるとか
縦の画素数が1088 になるやつ 色がおかしいって表現は適切じゃなかった
下端8ピクセルは補間されないでNNEDI3の出力がほぼそのまま出てるからボビングが激しい
MDegrainがブロックの半端部分はコピーするようになってるからQTGMCの仕様っぽい >>606の解決法わかる人いないかな?
avs2aviとUtVideoを使って、処理を分けた中間ファイルを何度か出力するようにしてるんだが、
>>606の通りにAvsPmodの解析パスをちょっと走らせた後だと
当該avsの中間ファイルの出力が早くなって全体で1時間も短縮できてしまった
bat叩くだけの何か解決法ないかな? うちでは起きてないから答えようがない
もっと詳細な環境情報や再現する簡潔で最低限な方法は書き出せないの? Avisynth+ r1718
avs2aviとUtVideoは最新版
以下、avsの内容
AviSource("hoge.avi",false,"YV12")
return last
以下、batの内容
"avs2avi.exe" "input.avs" "output.avi" -c ULH0
これでもAvsPmodで解析パスを少し走らせる前と後で数十fpsも違ってくる なんでr1718なんや…
avs2pipemodのベンチマークを10秒走らせた後ではどうなの?
それで大丈夫ならavs2pipemodのTrimオプション使って10秒ベンチマーク→本番
これでバッチ1つでできるようになると思うが、根本的な解決ではないな >avs2aviとUtVideoは最新版
こういう書き方止めてくれ
UtVideoは恐らく20.0.0だろうけどavs2aviは派生版含めていくつかあるからこういう書き方されると混乱を招くだけ
>Avisynth+ r1718
x86なのかx64なのかそれとも両方なのか不明
とりあえずAviSynthを新しいバージョンに上げてみて再現するか調べようか
間違ってる可能性も方が高そうだけど、エスパーするとHDDのヘッドが退避してる状態でバッチ呼び出すと遅くなるとか?
解析パスだの実行してaviファイルの入ったHDDから読み出そうとした後バッチを実行するとすでにヘッドが動いてるから最初から高速で読み出せるとか
流石に全体で1時間も短縮できるって所見るにあり得なさそうだけどさ >>614
OSはWin7?
中間aviの出力先はHDD?
もしWin7でHDDなら出力先をSSDに変えたら速くなるかな?
SSDに変えて極端に速くなったならavs2aviの問題
avs2aviは内部の書き込み用バッファが少ない(512KBしかない)ので出力先がHDDの場合、非圧縮や可逆フォーマットで
それなりの解像度の場合データ量が多いのでHDDの書き込みが追いつかなくなって速度がでない
(SSDなら書き込みが速いのでバッファが少なくてもあまり問題にはならない)
自分は書き込み用バッファを増やせるようにソース書き換えて使ってる
バッファを64MBまで増やすとHDDでもそれなりに速度が出るようになる
Win10だとバッファ512KBでもあまり速度低下しない
(Win10だとバッファの設定変えても速度にあまり変化がない、WriteFileAPIの動作が変わって内部でディスクに書き込む前にバッファリングするようになったのかも?)
Win8は持ってないので分からない r1718(x86)から最新版に更新してみたけど
AccessViolationが出てしまう
1年ぐらい前も同じだったのでこのままr1718で行こうと思います。
avs2aviはAvisynth.infoのアーカイブのv1.40aです。
avs2pipemodのbenchmarkを少し走らせた後で
中間ファイルの出力を行っても速度は遅かった。
で、AvsPmodで解析パスではなく単なるプレビューをしてAvsPmodを終了させずに
中間ファイルの出力を行うと速度が速かった
もしかしたら解析パスとプレビューのどちらでもいいのでどちらかを行った後、
AvsPmodを終了させなければいい(メモリから解放しなければいい?)と予想して、
batを叩くだけで済ませたかったのでavs2pipemodのbenchmarkの途中で中間ファイルの出力を始めると、
benchmark中はそちらに速度を持っていかれるが、benchmarkが終わってから速度が最大あたりで安定した。 OSはWin7
出力先はHDD
SSDはまだ手を出していないので試せないです。
申し訳ない。 >>620
> AccessViolationが出てしまう
VC++2015/2017のランタイムを入れてないだけじゃないの? 自分ももしかしたらと思って確認したけど
インストール済みだった
念のため再インストールしたけど変わらなかった あれじゃね
plusの高深度カラー非対応なフロントエンド使ってるのでは ttp://csbarn.blogspot.jp/2016/07/blog-post.html
古いプラグイン使ってるなら更新したほうが良いと思うよ とりあえずプラグインフォルダをほぼ空にしてみたところ、エラーは出なくなった
でも中間ファイル出力については変化なかった
今のところは>>620のやり方でやるしかないか... autoVFRの1passの解析の時に
異常に遅いときがあるからそれのことかなとは思う
もっとも最初から最後まで遅いから違うと思うけど 自分の場合は>>606を見るまで意識してなかったけど
実際にやってみたら再現できてしまった
LWLibavVideoSourceだと>>620のような処理も必要とせずに速度が最大辺りで安定してるのも同じだった 上でplus MT環境でdecombUCFやConditional Filter使うとエラー文が表示されると書いたものだけど
GRunTのセットアップ(自動読み込みフォルダへ入れる)でエラーがでなくなった
まだ通してはエンコードしてないけどsrestore、decombUCF、保健用デインタレ関数では、とりあえずエラー無く動いてるもよう
本体は、Avisynth+ r2664 (20180328) 頻繁に使うプラグインならまだしもそうじゃないプラグインはオートローディングしないものだよ と思ったけどオートローディングフォルダに入れて正常で、手動でLoadPluginしたらエラーでたのかな?
何が起きてるか分からねぇ GRuntを入れずにMTを使うと>550 の状態になってたけど
GRuntを読み込むと、そのエラー文が表示されなくなった Dither_add_grain16を使ってみたのですが
マスククリップのような緑色のクリップができてしまいます。
LWLibavVideoSource()
Dither_convert_8_to_16()
Dither_add_grain16()
DitherPost()
return last
ditherはAvisynth wikiのDither toolsの
Downloadのリンク先のもの(v1.27.2)です
何が原因でしょうか? DitherのRequirementsに書かれてるmasktoolsとかのバージョンが古いとか? tp7氏のものからpinterf氏のものへ入れ替えたところ
正常に表示できるようになりました。
ありがとうございました。 家だけかもしれないが、Windows 10 1803にしてから、
AvsPmod(x64版)でF5のプレビュー画面を出そうとするとクラッシュする様になった >>637
win10の文句はmicrosoftに言え。 flash3kyuu_debandがダウンロードしようしたらリンク切れでどうしようかと思ったけど
HDD内を探したらあったので再配布
http://fast-uploader.com/file/7083408071468/
アーカイブ内のテキストによると2.6系専用だそうです
x64のは動いたのを確認したけど自己責任でどうぞ
(作者様&ビルドしてくれた人thx) こ、これは・・
本家のほうに送ったほうが良いような気がする >>573
Neoなら↓これでOK
function MyFunction(clip c1, clip c2) {
return c1.ScriptClip(function[c2](){c2.subtitle(string(current_frame))})
} TVTestで保存したTXのtsの大半が
l-smash worksで読み込んでも無音…
まぁ、murdoccutなり、tssplitterで頭切ると読めるようになるんだけど…ね Doom9見るとよく分からないけどpinterf版>>640で大きな変更があったのかな AvisynthNeo試してみた。KFMDeintでお手軽に使えてよいね。
一方チャプタファイルの作成でTrimCleanを改造したのを使ってるんだけど
AvisynthNeoだとWriteFileStart関数が文字列変数を指定しても見つからなくてエラーになるようだ。 AvisynthNeoのWriteFileStart修正ありがとです 初心者質問スレで、AvisynthNeoのクラッシュ報告が有るみたいです。 NeoってCUDA系のプラグイン使えないと思ってた
>>649を見る限り、使えるのかな?
これからビルドしてみよう Neoをビルドして、CUDAフィルタ群もビルドして使ってみたら
KTGMC.avsiでエラーが出るようになった
Invalid Property request.
KTGMC.avsi line 451
なんだろう。 >>654
一度に本体もPluginも変えちゃだめだったね。
Pluginの方はCUDA1.0の方でもちゃんと動く
本体の方をNeoにするとエラーが出るようだ NeoはCUDA動かないってなってなかったっけ?ってgithub見に行ったら
KFMにDecombUCFを移植ってあるやん
魅力的凄すぎる・・ 最近のインタレ解除はKTGMCのBOBとSelectEvenで30fpsのCFRにしてたけど
>>656みたいのが出てくるとKFMのほうがやっぱり効率的かもしれないなー AvisynthNeo+64bit版AvsPmod改でQTGMCを使うと、初回プレビューやシーク時にエラー
なお32bit版は問題なし
Traceback (most recent call last):
File "./avsp.py", line 11704, in OnFocusVideoWindow
File "./avsp.py", line 13933, in SetVideoStatusText
File "./avsp.py", line 14082, in GetVideoInfoDict
File "./avsp.py", line 17272, in FormatTime
TypeError: %d format: a number is required, not float
プラグインのバージョンは以下の通り
MaskTools2 2.2.14
MVTools2 2.7.31
nnedi3 0.9.4.51
RgTools 0.96
nnedi3はjpsdr版、それ以外はpinterf版
AvisynthNeoは0.4.0で、AvsPmodは2.5.1-90-gfcd7a61に以下のサイトのファイルに差し替えた改
https://github.com/nekopanda/AviSynthPlus/files/2108666/AvsPmod_neomod_x64.zip あと、BCS使うと486ではなく488になってしまうことも確認 ここで配布しているavisynthプラグイン、持ってる人いない?(ソース含む)
色々探したんだけど、見つけられなかった…
avisynth.nlにもなかった
http://putin999 blog.エフシーツー.com >>661のリンクがおかしかったのでこっちが修正版
http://putin999.blog.エフシー2.com
エフシーをfcに要修正(NGワード対策のため) どのプラグインがいるのさ
Its 64bit版はnekopanda氏が公開してくれてるし
他に代用の利かないものってあったっけ? >>663
ロゴ関係
エッジレベル調整
スムージング
は欲しい delogomod.dllはx64は作者も作ってない
>>374 で配布した人がいるけど自分は間に合わなかった
ソースは全て配布対象外だったような気がする 32bit版はプラグインフォルダに入ってるけど
ソースがどっかに行っちゃったのかもともとなかったのか ttps://www.axfc.net/u/3916389
元のdelogoの作者とmoodの作者に感謝しながらDLしような >>667
tnks!!
そーいや、GTX 1080 Ti 買ってしもうた
これからの nekopanda氏 に期待して つか、avisynthはx86とx64でそんなに差はないだろ。
エンコ速度が変わるのはx264やx265の話だしな。
avisynthはrawでわたしてやれば特に違和感なくエンコされるはずだぜ?
動作検証すらほとんどされてないx64の野良ビルドとか正直怖すぎだぜ >>673
どのレスに対してのレスなんだ?
野良ビルドってどのこと?
>>667のことだったら、ソース入りだぞ >>673
今後、4k, 16bit/sampleとか扱うのにメモリに制限のある32bit版では心もとない気もする >>676
あがるよな
だから皆64bitバイナリの無いプラグインを必死でソース探してきてビルドしたり代替プラグイン探してるのにな >>676-677
違いが出るとすれば速度よりも扱えるメモリアロケーションがx86とx64で大きく異なるぐらいだが
メモリ量が増えればそれだけ負荷がハードウェアへ増大するわけで、必ずしも速度向上につながるとは言い切れんよ warpsharpやfft3dあたりが昔から重くさせるから、それらを軽量の設定にするか使わなければ我慢はできるかも。
インタレ解除とかはグラボ支援のやつで任せておけば、x86やx64に関係なくちゃちゃと終わらせてくれるしさ アマレココで吐いたaviはaviutlでは編集も再生もエンコも不自由なくできるけど
avspmodで編集するとプレビュー時にエラーで固まることがあるのな。
MPC-HCでAMV類のプレビュー再生できないのもやっぱり便利悪い。
スレチだなさーせn。 アマレココでAMV使うからそうなるわけで
Ut_videoとか使えば問題ない >>680
グラボ支援のインタレ解除プラグインってどれ?
今までTFM、TDeint使ってた。 >>680
何がいいたいのか解読できん。avisynthはrawでわたしてやれば特に違和感なくエンコされるはずだぜ? ←これもだが
ハードウェアの負荷が増大するなら、ハードをより使ってるってことだから速度向上じゃねーか
君には32bitOSで32bitのAviSynthと32bitのx264/x265を拡張命令切って使うことをおすすめするよ
>>683
D3DVP インタレ解除=24fps の意味で使ってるならそのままのほうがいい >>667
ぐわー、10分前に公開期限切れだ
>>500だけど、ワンチャン欲しい >>684
D3DVPなんてのがあったとは。
ありがとうございます。 >>686
ttps://www.axfc.net/u/3916838 >>688
ヘ⌒ヽフ
( ・ω・) dddddddddddddd
/ ~つと)
諦めムードだったけど
ようやくゲットできた
ありがとう KFM
-2パス逆テレシネを実装
キターと思ったが、TFMみたいなテキストファイルの出力は無しか >>690
中間ファイルは吐くよ。バイナリだけど。テキストだと嬉しいの? KFMはAmatsukazeのためにあるものなのかな?
色々機能あるみたいだけど単体で使う感じじゃなさそう
TFMがKFMになったわけじゃなさそう >>692
ドキュメントにある通り元々Amatsukaze用だけど、
Amatsukazeがないとできないのは、
VFRのタイムコードを吐くことくらいだと思う
個々のフィルタはあまり単体で使う設計になってないから、
使い方が少し面倒だけど、そこはKFMDeint使って >>691
TFMのoutputで吐くものと同等のテキストだと、とても嬉しい >>694
前にもそういう人いたけどアルゴリズムが違うから無理
余談だけどTFMのコーミング判定メトリックは誤爆しまくるから、あまりいいものではないと思う
KFMは全く違うアルゴリズムでコーミング判定してる >>693
はい、ご丁寧にありがとうございます
色々探ってみます フレーム番号とフィールドマッチと縞度を知れればそれでも嬉しい 最新のNeoとプラグインを全部ビルドし直したんだが
なんか動かないな。KTGMC.avsiとかでAccess Violationとかのエラーが出る
nvcc の最適化を切ったらまたメッセージが変わった
なんだろうな >>695
>TFMのコーミング判定メトリックは誤爆しまくるから、あまりいいものではないと思う
同感
放送波ソースではアテにならないイメージ そのための2passだと思うんだけどね
エンコーダにおくるzonesの設定にも使えるから、マルチパス化した方が良い気がするけど Neoはまだうまく動かず使いきれてないけど、
CUDAは素晴らしいですね
1080Tiがあると鬼に金棒ですわ
KNNEDI3とKTGMCが速いのが嬉しいですね KFMがどんどんパワーアップしているのに、
何かの整合性が悪いのか、Neo64bitで
KTGMCが動かない・・・
足りないプラグインが多いのかなぁ・・・
今日はひとまず諦めた neo-r2739 で、Auto_VFR ver 0.1.0.6 がエラーを吐くなぁ
>>649 さんの症状と同様に、ScriptClipのfilterに渡した文字列の中のWriteFile関数で文字列変数を指定しても見つからなくてエラーになるみたい
以下のように書き換えればいいようだけど、合ってるのかな
(current_frame==0)?WriteFile(last,file,"str_total",append=false):nop
↓
(current_frame==0)?WriteFile(last,file,function[str_total](){return str_total},append=false):nop
(crnt==0)?WriteFile(last,file,"str_dtotal",append=true):nop
↓
(crnt==0)?WriteFile(last,file,function[str_dtotal](){return str_dtotal},append=true):nop
(show==false)?WriteFile(last,file,"string(result)",append=true,flush=false):last
↓
(show==false)?WriteFile(last,file,function[result](){return string(result)},append=true,flush=false):last >>703
Amatsukazeのリリースパッケージに動く環境一式入ってるから参考になるかも
あれはWindowsインストール直後の素の状態でも動くようになってるから
>>704
修正はそれでOKだと思う。または、単にWriteFileをWriteFileStartに変えるだけでいいかも
あと、関数の最後のreturnは省略できる。 e.g. function[str_total](){str_total}
WriteFileStart/WriteFileEndはドキュメントに外の変数が読めると明記されてるから、バグだということで直した
> The expressions are evaluated exactly once, at the location of the filter in the script.
実行時の評価する系(ScriptClip,WriteFile,WriteFileIf,ConditionalFilter,ConditionalSelect,FrameEvaluate)は
グローバル変数以外の変数は読めなくなってるけど、元の「怪しい挙動」に戻すつもりはないから、
頑張って書き換えてくれ >>705
詳しい説明ダンケ、助かります
仕様としてはそれが正しいですね、了解しました Neo64bit版ビルドして、フィルタも最新のをビルドして試行錯誤していますが、
例えばKTGMC_Bobとか使うと
avisynth.cpp の ScriptEnvironment::GetProperty のところで
"Invalid property request." のエラーが出ます
NeoはCUDA-stable に比べて prop のCase文が少なく、
// Neo additionals
AEP_NUM_DEVICES = 901,
AEP_FRAME_ALIGN = 902
というのが追加されているけど、ここら辺になにか理由があるのでしょうか・・ >>708
そこは+CUDAとNeoで変わってるから本体かフィルタのどっちかが古いんじゃない?
デバッガアタッチしてるなら、dllのパス確認してみて(デバッグ→ウィンドウ→モジュール)
それでも解決しないなら、ビルドに使った2つのソースのリビジョン教えて >>709
CUDAFiltersの方は bb29861、 本体は Neoブランチの a953c51
です。現時点の最新だと思います
CUDAFiltersをビルドするときはNeoの avisynth.h と avisynth.cpp を使ってます
それ以外の関連するフィルタの作り方がいけないような気がしてきました。
インクルードさせる avisynth.h と avisynth.cpp が色々違うので。
別件ですが
"KFMDeint.avsi" にバージョン書いていただけると嬉しいです。
TestScriptフォルダ内とRelease-ZIP内で違うので。
ReleaseZIP内のほうを使うべきだとは思っていますが >>710
いやだから古いフィルタが混ざってるんじゃないかって。
ScriptEnvironment::GetPropertyのとこで、"Invalid property request." のエラーが出るんだったら、
- GetPropertyでリクエストしたプロパティ(引数prop)は何だったのか?
- それを呼び出してるフィルタは誰なのか?
を調べればすぐ分かること
これで分からなかったら、プラグインフォルダを一旦まっさらにして、
大人しくビルド済みバイナリを入れて使ってくれ >>710
今見てみたけど、KTGMC-0.4.0.zipに入ってるKFMDeint.avsiと、
リポジトリ bb29861 のTestScripts/KTGMC.avsi は同じだったよ
コードが古い? 訂正
KTGMC-0.4.0.zipに入ってるKFMDeint.avsiと
↓
KTGMC-0.4.0.zipに入ってるKTGMC.avsiと KFMDeint.avsiの方か、すまん見間違えた >>710
あと、フィルタのビルドにavisynth.cppは必要ないぞ。avisynth.hだけあればいい
avisynth.hは+CUDAのやつじゃなければ古いバージョンのでもOK
古いバージョンだと新しい機能がなかったりするから
新しい機能使ってるフィルタはビルドでエラーが出るけど、
ビルドが通ればだいたいOKだと思う >>711-715
色々とご指摘ありがとうございます
プラグインフォルダを1から作り直してみます。
ちゃんと問題の切り分けをしてから書くようにします。すみません。 >>715
おっしゃる通り、うまくうごかなかったのは
+CUDAの avisynth.h をつかってビルドしたプラグインが結構混じっていたようです
今はイチから作り直して順調にNeoが動いています! ありがとうございました。 おかげさまでNeoで使えるプラグイン一通りそろった
本格的に使ってくぞ!KFM覚えなきゃ >>504、>>568さんと同じネタだが
Neo-r2739 で QTGMC 3.358s 使うと、ログに
ERROR: Assert: assertion failed
が記録されるんだね(QTGMC.avsi, line 1113)
まぁ、完走するしPlus-MT-r2664でも同じエラーが記録されるから
気にしなくてもいいと言えばそうなんだが、ログが荒れるのがちょっと…
ということで、ソース見たらif文が使えないからAssertで代用(Tricky logic)してるんだね。
なので
try { Assert( !Replace && defined(Eval(globalName)) ) }
catch (e)
{
↓
#try { Assert( !Replace && defined(Eval(globalName)) ) }
#catch (e)
#{
if ( Replace || !defined(Eval(globalName)) ) {
に書き換えればいいかな pinterf氏
Avisynth+ r2728
Masktools2 v2.2.16
FFT3DFilter v2.5
RgTools v0.97 Neo, 大きな改修おつかれさまです
いまソース読んでるところ >>571のDecombUCFの修正を行い、AvsPmodで見てみたら60テロップ処理(txt60mcHybrid)で
シーンチェンジ時に縦線が入りました、AviSynthNeor-r2739(x64)で気付きましたが+のr1576(x64)でも出たので原因はAviSynthではないと思います
DecombUCFをコメントにしたら縦縞も消えました、どなたかご教示お願いします
AVS
LWLibavVideoSource
Trim
Its
Clean_SC(b_dup_th=10,d_dup_th=2)
DecombUCF(th_mode=3,namax_thresh=90) ※少々汚い
Spline36Resize(1280,720)
ConvertToYV12()
defファイル
set [24] DwS1 = 'DoubleWeave().SelectEvery(10,0,2,5,8)'
set [24] txt1 = 'txt60mcHybrid(1)'
0-[24] DwS1
2135-[24] txt1
3035-[24] DwS1
画像
h ttps://i.imgur.com/CK4Hc4n.jpg >>719
その書き換えだとglobalNameが存在しなかったらそのままエラーになっちゃうから
Tricky logicの代用には全くなってない
だけど、そもそも正しい使い方をしてる限りReplace=Falseにはならないから、
Tricky logic自体が必要なくて、後ろをごっそり消しちゃえばいいんじゃね
if ( Replace ) {
これでスッキリする あ、そもそも常にReplace=Trueなんだから、if文自体消しちゃえばいいのか ずっとXPでDirectShowSourceだったけどWindows10になってLWLibavVideoSourceとLWLibavAudeoSourceを覚えたよ Avisynth+ x64で、bt.709からbt.601に変換する一番良い方法ってなんでしょうか。
x64版のColorMatrixを使ったところ落ちてしまいまして。 >731
一応コード見てみたのですがアセンブラはさっぱりでした。 convertYV12(colorMatrix=bt.601)
こんな感じでいけるんじゃね >>730
mp_pipelineでColorMatrix部分だけ32bit化してみるとか >>730
入出力とも8bitのTVスケールとしたらこれでいけるで
Matrix(from=709, to=601, rg=1.0, gg=1.0, bg=1.0, a=16, b=235, ao=16, bo=235, bitdepth=8)
https://web.archive.org/web/20160604220510/http://media.snovidenie.com/plugins/HDRMatrix.7z >>737
RGB画像を元にしてBT.601⇔BT.709の相互変換を試してみたけどColorMatrixより誤差がでかくなった。
RGBに戻した時にColormatrxiだと最大誤差2ってとこなのが、HDRMatrixだと最大誤差4くらい。 KDeblockすごいな
Avisynthでもソースプラグイン作れば使えるようになりそうだし、
ブロックノイズマスクもできるのかな
ソース
https://i.imgur.com/FJsm9du.jpg
KDeblock()(デフォルト値)
https://i.imgur.com/Jvz7b3u.jpg >>741
いつもAvisynthでやってる画質と比べるためにエンコしたので
あと、KDeblockは場所ごとにフィルタ強度が変わるのに、こんな全面的に悪いのを出すのはサンプルとして良くなかったな
こっちのが良さそう
https://i.imgur.com/7gfxNGx.jpg
https://i.imgur.com/HMrE39e.jpg つーか、MXのロゴ解析にしくじってね?透過ロゴのノイズのこってる風に見えるけど。 >>743
ロゴ消ししたことないの?
動きの激しいシーンとかはノイズでロゴがはっきり出なくて
消しても残像が残るのは普通だぞ
モノによっては残像残ってたらその周辺だけボカして目立たなくする機能があったりするけど >>742
珍しい解像度でエンコしてるなって感じだがそれはおいておいて
どうせ比較するならDeblockやDeblock_QEDとも比較したほうがいいんじゃ? あと、気になったのはKDeblock以外のフィルタ使ってないかね?輪郭補正系の
もし使っているなら比較対象のフィルタ以外を外さないと意味が薄れる気がするんだが MXの某フレームで比較
ソースフィルタとデブロッキングフィルタだけ
他のフィルタは一切なし
オリジナル
https://i.imgur.com/VIc3X40.png
KDeblock(thr=28) <- Amatsukaze中設定
https://i.imgur.com/YP9K8If.png
MPEG2Source(ソース, cpu=6)
https://i.imgur.com/on8TZce.png
MPEG2Source(ソース, cpu=4)
https://i.imgur.com/K0igyLK.png
DeBlock_QED()
https://i.imgur.com/w93vbkd.png
ソースQP値が取得できないDeBlock_QEDはちょっとかわいそうな気がする DGIndexのバージョンが悪いのか高さが1080で16の倍数じゃないからだと思うけど
MPEG2Sourceは下の方にバグっぽいアーティファクトが出てるな BlindPPとDeblockの結果も貼っておく
BlindPP(quant=6)
https://i.imgur.com/AVSXdlA.png
BlindPP(quant=15)
https://i.imgur.com/pfd5ljf.png
BlindPP(quant=31)
https://i.imgur.com/MuuaQeY.png
Deblock(quant=25)
https://i.imgur.com/DgliaSt.png
Deblock(quant=40)
https://i.imgur.com/NxnYip5.png
Deblock(quant=60)
https://i.imgur.com/HSfZfr6.png
※BlindPPは高さが16の倍数でなければならないので高さ1088で処理
PointResize(1440,1088,0,0,1440,1088).BlindPP(quant=?).Crop(0,0,1440,1080) >>748,750
お疲れ
ブロックノイズが出る汚いフレームは大抵、一瞬だから
ボケボケでも対して気にならないのよね
自分はradeon使いだからavisynth+cudaっ使えないのが残念だけど・・
ちなみに自分はSmoothD2をDecombUCFに組み込んで使ってる >>747
そういえば使ってた
>>744
Avisynthでも色が変わるのにずっと悩まされてたから、
全く違うフィルタを使ってるAmatsukazeでも色が変わるということは
x264のオプション指定が悪いんだろうな・・・
後で試してみよう ついでに質問
ブロック・ノイズを検出しやすいプラグインってある?
関数内のコメントは↓。よく分からないからデフォのまま使い続けてる
# make diff # (検出したいノイズを特異的に変化させる)
function Affect_Noise(clip c){
c.binomialblur(3,3,chroma_y,chroma_uv,chroma_uv) #0.5,1.5が早い #好きなNRもしくはSharp。検出したいノイズに特異的に反応するものが良い。 ノイズの検出って、もうソースのQP値使うのが一番確実なんじゃないかって思ってる
DecombUCFが検出する汚いフィールドもQP値で見れば一発で分かるし
↓連続3フレームの映像(右)と対応するQPテーブル(左)(DecombUCFが汚いフィールドと判定する典型例)
https://i.imgur.com/5OcqEDS.png
↑のスクリプト
AMTSource(ソース)
w = Width()
h = Height()
q = Merge(ShowQP(nonb=False), ShowQP(nonb=True)).PointResize(w,h+8).Crop(0,0,w,h).ConvertToYV12(matrix="PC.601")
t = StackHorizontal(q, last).PointResize(w/3*2,h/3)
return StackVertical(t, t.DeleteFrame(0), t.DeleteFrame(0, 1)) >>745
大方、aviutlのロゴ解析で偏った色情報しか解析できてないんじゃね? ロゴデータ生成した環境と、ロゴ解除している環境でデコードが同一じゃ無いのでは?
インタレ解除の処理具合でフレームの細部違ってくるんだから、ロゴの輪郭部で細部に差が出ているんだろ 通常、インタレ解除はロゴを抜いてからするもんじゃねーの?
解除してからロゴを抜いてもゴミが残ってうまくいかないと思うけどな。 >>750
> PointResize(1440,1088,0,0,1440,1088).BlindPP(quant=?).Crop(0,0,1440,1080)
今更ながらこの BlindPP の使い方は全く思いつかなかったわ。
高さ 16 の倍数になってないとエラー吐くってんで 1080p でエンコするときは deblock にしてた。
BlindPP の方が好みなのでまんま使わせて貰います。多謝 D3DVPとRadeonの現行世代を使ってインターレース解除した2K60Fなテスト動画、どこかにないものかな?
現行世代のRadeonでインターレース解除した場合の情報が検索しても出てこないから判断に困る
QTGMCを使おうかと思っていたが、>>469の細かい字が潰れる問題とか>>478-480の残像問題とか考えてたら、
もうなんか面倒くさくなってきてハードウェアインターレース解除でいいかと思えてきたり…
有料でいいから簡単かつきれいにインターレース解除できるソフトないんかね? >>759
KFMでOK。簡単に使いたいならAmatsukaze
>>469の問題はKMergeStatic使って解決されてるし、
>>478-480の問題はKFMのフレームレート認識で解決されてる >>760
KFMとな?
検索しているのだが、どこから何をダウンロードすればいいのかよくわからん
Github使うの苦手だ
Amatsukazeはts信号しか入力できないからムリ よくわかってないんだけど、AvisynthNeoとかAvisynthCUDAFiltersって、
NVIDIA環境以外でも何らかのメリットが得られるの? NeoはPlusを拡張して、prefetchがいくつでも書けたり、functionの新しい構文が書けたりする
AvisynthCUDAFiltersはCUDA用に書かれたフィルタだけど、CPUでも同じ処理が動くから(遅いけど)、使えなくはない
KFMとか上のKDeblockとか使いたいなら、CUDA動かなくてもこれ使うしかない NV向けのフィルタでCUDA使えないって何の拷問だよw 再生環境で Fluid Motion 必須の俺。
エンコ環境では CUDA 欲しくて咽び泣く。 1080Ti+Neoで Q(K)TGMC で30fpsとか出てる >>762
この「KFM」を使いたい場合、
「Avisynth+」と「AvisynthCUDAFilters」と「KFM」の3つを用意すればいいの?
readmeに使い方すら書いていないからさっぱりわからん >>768
そういう感じだと、素直にAmazukaze使ったほうがいい気がするです >>768
readmeにリンクが書いてあるんだから読めばいいじゃん・・・と思ったけど、
AvisynthCuDAFiltersのREADME.mdにある
CUDA対応の専用AviSynth+が必要です。
という文言だと、どこにあるかわかりにくいから、AvisynthNeoのリリースページにリンク張った方がいいかなとは思った。
https://github.com/nekopanda/AviSynthPlus/releases >>769
あれは使途を限定しすぎだろ
入力信号はTS信号のみとか中途半端すぎだ
おまけにGUIもぜんぜんイケてないし
ソフトウェアの評価なんて9割方UIの出来で決まるんだぞ
>>770
Avisynth+じゃなくてAvisynthNeoのほうかよ
しかもAvisynth+をインストールしたあとで手動でAviSynth.dllを差し替えるとかなんなの、このめんどくさいの >>772
そうかもね
NeoはCUDA ToolkitとかVS2017とか入れて
Avisynth.dllからフィルタ一式、AVSPModとか
最適化自ビルドするのに結構時間かかったな ずっと32bitだったので、64bitアプリやフィルタ群を一式作るのも面倒くさかった KSMDegrainがTDecimateと併用できれば良いんだがなあ >>772
このスレやドキュメントを読めば普通にわかっただろうに、
それを棚に上げて不平不満ばかり垂れ流すってのはピエロ度高すぎじゃね。
>>773-774
いや、それNeo導入の面倒くささじゃなく自ビルドが面倒くさかったってだけじゃん・・・w CudaだけとかNvidia優遇かよーってガッカリした
RadeonならOpenCL Radeon でもまともに使えそうなフィルタって D3DVP と FFT3DGPU とかこのくらいじゃないかな。
もっと Radeon 特化なフィルタもほしいよなぁ CUDA 強すぎですわ。 >>776
わかればいい、できればいいって問題じゃない
めんどくさすぎる!
まるで整理整頓のできない、出来損ないの行動を見ているかのようだ >>780
> 整理整頓のできない、出来損ないの行動
お前の行動そのものじゃん・・・ DTVツール64bit版一式揃えるのは大変だったけど、
色々なところからソースを収集してくる過程で
神作者のDTVにかける熱意と歴史を感じた どうでもいいよw
簡単確実に使えたほうが10000倍うれしい avisynth.dllの置き換えすらおっくうってレベルのなまぐさものなら
エンコードって行為自体をためたほうが幸せになれるな
上のほうで?、neo、CUDAFilterについて解説してくれてる人thx そういえば調べてまとめるのを優先してしまって、>>764にお礼を言うのを忘れていた。
ありがとう。 system32にあるやつ差替じゃなくてavisynth.dllを利用するアプリに直接配置はどうなの >>771
今日pinterF/avisynthplusをcloneしてビルドしたら
avisynth_version 2.600 / AviSynth Neo 0.1 (r2818, Neo, i386)
と出る。
avisynthplusがavisynth neoに改名したんじゃないの?
それともnekopanda氏のブランチを取り込んだのか? >>789
pinterf氏のとこのMTブランチは2か月前のr2752で止まってるように見えるが。
pinterf氏のとこのをcloneしたつもりが、実際にはnekopanda氏のとこをcloneしただけじゃないの? >>790
今nekopanda/neoをcmakeしたらcuda tool kitがないってエラーが出たからそれはない。 >>791
そうは言うけどpinterf氏のところでNeoをとりこんだ様子はないし、そちらで何かミスってるんだと思うよ。 git コマンドぶったたいて commit 情報みればいいんでないかい >>778
D3DVPでエンコしてみたけど、なんかTdeint+TFMのやつにくらべて
アニメソースは仕上がりがモヤ〜っとしててすっきりしないな。 そりゃそうだ
D3DVPは逆テレシネ用に使うもんじゃないでしょ 半年ぶりにNeoをr2818にして、プラグイン一式リビルドした
VC2017もバージョン上がってたし、CUDAToolKitも10が出てたし
たまにやらないと忘れてしまう アナログキャプチャ時代のファイルがあるのですが、見れば判ると思いますが
縞模様のノイズが酷く、このままエンコするより
なにかノイズ除去をしてエンコしたいのですが
この手のノイズ除去が出来るフィルタとかないでしょうか?
パスは板名です。
https://www.axfc.net/u/3944007 >>798
見たことないしフィルタも知らない
一般的なノイズじゃないと思う
機材の故障系じゃないの? >>798
ん〜、奇麗に除去すんのは難しいね
https://www.axfc.net/u/3944052
元画像のディテールを出来るだけ残すならsampleA.mp4
開き直って色味質感無視ってノッペリさせてもsampleB.mp4あたりが限界だった
上がMCTemporalDenoiseをかなり強烈に掛けてて、下はそれ+適当にデバンドとか2DNRとかLSFmodとか Neoすごいけどアニメエンコにしか使ってない・・・ >>804
ソースは変更されているけど、バイナリは作成されていない、のかな? >>805
どうだったかな
Amatsukazeのリリースの中にはいつもバイナリが入ってるみたいだけど
11/11更新のプラグインが2つあった Neo用のAvsPmodでaWarpSharp2使うと落ちる
おま環なのだろうか 1060から2070に乗り換えたらKTGMCがPreset="Faster"以外にすると
[CUDA Error] 4: unspecified launch failure @366
で落ちるようになったんだけど、おま環かな? POP氏ビルドの L-SMASH Works r935-2(r935 release2) で、
AltRefを利用しているVP9.webmがまともにデコードできなくなっていたので、
従来から発生していた問題も含めてIssue出しておきました。
VP8_and_VP9.webm problems - Issue #79 - VFR-maniac/L-SMASH-Works
https://github.com/VFR-maniac/L-SMASH-Works/issues/79 最新のNeoに対応しているAvsPmodいただけないでしょうか・・・
どうしてもきちんと動くのが作れなくて・・・ すまん、AviSynth.dllを新しくしないと動かなくなってた
Neo-r2822アップしたから更新してくれ >>812
こっちも動きました
ありがとうございました 2070でNeo類動かしてみたい・・・・
高いなぁ ネットカフェのRTX2080でNeo-r2822がエラー出ました
前は1060が付いてて普通に動いたんですけど
いつの間にか2080に代わってたんで試したらエラーでした ぉ、KFMがタイムコード吐いてくれる様になってる(∩゚∀゚)∩
しかし3パスか、、ううむ めんどくさくて30fpsCFRばっかりだったけど
またVFRにもどりたくなるな 早速 KFM で VFR する単純スクリプト組んでみました
pass=3 にすると間引き入って総フレーム数はもちろん減るけど
encスピードが結構落ちますね、32fpsぐらい出てたのが26fpsぐらい
それだけ解析精度が高いからかな KFMDeint3pass、いい!
違うソースでやってみよ
CFRは安定感あるけど、
VFRは無駄がない感じでやっぱりそれはそれでいい 対応入力フォーマット
?コンテナ: MPEG2-TS 188バイトパケット
?映像: MPEG2, H264
?音声: MPEG2-AAC
これだけです。
って書いてるから >>828
ここはAvisynthのスレであって、Amatsukazeのスレじゃねえよ。 Amatsukazeの話をするなってことじゃなく、Amatsukazeの名前も出さずに
唐突に>>826みたいな書き方で質問をするのはさすがに頭が悪すぎるだろうってことな。
もう一度言うけど、ここはAvisynthスレなんだよ。 十分唐突やろ。
まあこうやって意見が割れる時点で、勘違いを生むってことだ ずっとamatsukazeレスが続いてるのに無理あり過ぎ AvisynthNeoやAvisynthCUDAFiltersの話はしてるけど、Amatsukazeの話はしてないでしょ。
というか忘れてたけど、Amatsukazeについては専用板に専用スレがあるよ。
>>771とあわせて次スレのテンプレに入れた方が良さそうだね。
---
■Amatsukaze(AvisynthNeoを使っているTSトランスコーダソフト)の話題は専用スレへ
Amatsukaze その1
http://jbbs.shitaraba.net/bbs/read.cgi/computer/44736/1530904083/ きっとamatsukazeのレスが減った頃に、HandBrakeとか、aviutlの話が混ざってくるんだよな 縞なし24fps[30fps]と縞なし30fpsを自動でうまくVFRにする方法ない?
ソースは舞台なんだけど↑にテレシネされて縞あり24fpsも混ざってるという混沌ぶり・・ KFMDeint 3pass は
昔の4:3のSDを引き伸ばして両脇黒縁でうめたようなソースに対しては
60fpsになってしまうようだ 結構厳密に判定するから昔のアニメとかブレがあるやつは60fps判定しちゃう >>842
デジ絵じゃない4:3のSDアニメなんかは
AviUtlの afs でやったほうが綺麗に仕上がるわな
KFMDeintは最近の地デジ番組に使わせていただくよ おま環かもしれないけど、
NeoのCUDAとCPUのバランスも少しづつつかめてきた
プリフェッチのフレーム数は結構大きめにとっても大丈夫だけど
スレッド数(パイプライン数?)は1とか十分だね
処理をCUDAばかりにやらせてて全然CPU使ってないことに気づいた
x265の --pools とかをもっと上げても大丈夫そう・・・ Neo用のAvsPmodなんですが、
はじめにF5を押して表示させた後、
ソースを少し変えてF5を押し直すと
フリーズしてしまします
おま環でしょうか・・・ >>845
はじめにF5を押して表示させた後、
→[ビデオ(V)]→[全てのビデオをメモリから解放]
→ソースを少し変えてF5を押し直す
としても駄目? >>846
できました!ありがとうございます。
マクロ化できないかとマニュアルを見てます
ShowVideoFrame(framenum=None, index=None, forceRefresh=False)
forceRefresh=Trueにすればいいのか試しているところです doom9でAvisynth neoが話に出てるじゃん
ここでフィルタチェインの可視化画像を見て凄いと思ったけど
向こうの人にも珍しかったもよう 今年もクリスマススクリプト来てたのか・・・w
I wish you a merry christmas (2018 script) - Doom9's Forum
https://forum.doom9.org/showthread.php?t=175966 AviUtlのaupを読み込んでみようと思ったんだけど、
LoadVFAPIPlugin()って、Avisynth+だと使えないんだね。(pinterf版r2772で確認)
1st October 2013, 21:22
Avisynth+ - Page 4 - Doom9's Forum
https://forum.doom9.org/showthread.php?p=1646295#post1646295
> - LoadVFAPIPlugin() is out of order for now. I'm not planning on removing it, I just need some info how to correct it.
削除予定は無かったけど、修正方法がわからないままなので使えない状態がずっと続いてるってことなのかな? そんなことするぐらいならAviUtlプラグインのソースコードを、AvisynthのSDKに沿って移植すればいいんじゃね?
AviUtlプラグインの大半はソースコードも配っているだろう。 そんな大げさな話ではなく、AviUtlスレでaupをA's Video Converterに読み込んで
Fluid Motionによるフレーム補間エンコをしたいという話があったので試してみただけだよ。
https://egg.5ch.net/test/read.cgi/software/1524957646/984-
まあLoadVFAPIPlugin()が使えるAvisynth2.6に変えてA'sへの読み込みまではうまくいったものの、
エンコしたら何故か幅500前後、縦56に縮小されるという問題が出てうまくいかなかったけどね・・・。 >>854
> まあLoadVFAPIPlugin()が使えるAvisynth2.6に変えてA'sへの読み込みまではうまくいったものの、
> エンコしたら何故か幅500前後、縦56に縮小されるという問題が出てうまくいかなかったけどね・・・。
一応報告しとくと、この問題はうちの環境に変なDirectShowフィルタが登録されてるのが原因だった。
それに対処すれば問題なくうまくいった。 その変なDirectShowフィルタについも書こう >>857
変なDirectShowフィルタというか、LavieノートにプリインストールされていたRoxio Creator LJってソフトが
oggcodecsのFlacやらVorbisやらのDirectShowフィルタ類を変な形でレジストリに登録していて、
それが原因でA'sがうまくフィルタグラフを構築できなかった模様。
作者さんに相談したら対応版を作って下さったので正常に処理できるようになった。
http://bluesky23.blog.shinobi.jp/entry/201812221 ふぇぇぇ久しぶりに混在ソースとか扱ったらどの段階でどのコマンドで
timecode埋め込むとかすっかり忘れてて困ったよぉ DGIndexのd2vファイル生成高速化ver.
https://github.com/299792458m/DGIndex_mod
作者さんのBlog
http://299792458m.blogspot.com/2019/03/dgindex.html#more
まだ実際には運用してないけど
VC++内の「実行可能ファイル ディレクトリ」にNASMのパスを追加したらビルドできた
*ビルド時に「安全な例外なんちゃら」が出たからリンカーの「例外パンドラ―を含むイメージ"」を「いいえ」にした >>862
面白そうってビルドしてためしてみたけど
既存の物だと 30.6 秒かかるところをこれは 21.3 秒で終わらせてくれたよ
確かに速くなるぽいねー 連投すまん
30 分アニメの TS ファイルをローカルの SSD に置いてやってみた。
DGIndex = 26.3 秒
DGIndex mod = 11.2 秒
なんて感じに倍以上速くなった
ネットワーク越しだとうちは 1Gbps だから頭打ちなって >>862 に書いた程度の向上しかしていなかったみたい。 いいね!
GUI使ってないからさっさと置き換えたらいいんだけど
万一のために新しくセットアップしようと考えてたら
なかなか使ってみれない 今までaviutlにavs読み込ませて使ってたけど
x64のavs2avi使ったら凄い早く処理終わってビックリした お財布の中身と相談しながらTGMCの速度アップのために
NVidiaのグラボを買ってKTGMCを利用しようと思うんですが、
GPUだけに関して言えばCUDAコア数以外でスペックのどの辺りに
KTGMCの速度は大きく依存するのでしょうか? >>867
コア数、メモリバンド幅、世代とか普通のGPUの性能で見ていいと思う
ただ、今の所1280コア以上はコア数が増えてもあんま速くならない
この先最適化が進んで速くなるかもしれないが >>867
あと、設定可能オプションに制限あるのでKTGMCの仕様をよく確認しとくと良いと思うよ。 質問者じゃないけど貴重な情報thx
なんだか最近、radeonのディスカウントが多いらしいけど
CUDAが動かないから残念 868、869さんありがとうございます。
コア数1280な1060 6GBのITX向けショートサイズなのがあるので
それを買おうと思います。 NVENCの進化もあるし、Optical Flow SDK や NGX SDK を使ったフレーム補間フィルタとか
スケーリングフィルタとかが出てくるかもしれない(誰かが作ってくれればだけどw)から
Turingが安くなるのを待つのもいいかもしれない。 すんません、AvisynthNeo-r2824とKTGMC/KFM 0.50はバイナリ無いんでしょうか(;´Д`) >>874
KTGMC/KFM 0.50ならAmatsukazeのバイナリ版に入ってるよ
AvisynthNeo-r2824はまだみたい >>875
Amatsukazeに含まれているDLLがそのまま使えるんですね
早速DLしてみます!ありがとうございましたm(_ _)m yahooジオシティ終了でDLできなくなりそうなプラグインあるね
今はまだinternet archivesで落とせるけど ものすごい久しぶりにx265更新してみたけど
昔はx265だと色がおかしかったけど今はまともになってるんだな
比較用にavs作って試したらx265の方がよくなってる印象だわ Avisynth-Neo2824、とプラグイン一式、久々にビルドした
VC++2019じゃうまくいかないものもあったね
CUDA Toolkit 10.1 をつかうやつは VS2017でビルド
AvsCUDA.dllだけ 8.0でビルド
疲れた 24fpsソースに60iじゃなく30fpsなテロップを被せられると
Func_6to2が正しく機能しない。なんかいい手は無いものか・・・ Neo64bit+KFMを1080Tiで使ってたけど、720pのエンコ、
r2824になってさらに6〜8fpsぐらい速度上がった気がする
気がするだけ >>879
どうかお願いします。AvisynthNeo-r2824とKTGMC/KFM 0.50のビルドが欲しいです。
どうやってもあがいても自分にはビルドできない。
nekopanda氏はなんでReleaseしてくれないんだろう。 >>882
>>879でえんこしたのみたら、
最初の1秒ちょいノイズが入るね
もとの環境に戻した
まだ完璧じゃないのかも
ビルド方法も自己流だし原因わからん
なにがうまくいかなくてビルドできないの? ビルドの仕方によって、エンコ精度が変わるの??
同じプログラムなのに Intel環境でビルドするのと、AMD環境でビルドするのとでは
対応可能な拡張命令の違いで何かの機能が無効になるとかあるんじゃね?知らんけど >>884
コンパイラのバージョンやSDKのバージョンによって何が起きているかはわからん
もちろん自動ベクトル化とかの設定でスピードは相当変わるだろうし、
浮動小数点の扱いとかを雑にすれば速度アップしたりする
今回のNeoの更新はcuda::Streamの話みたいだったが・・・ decombucf有効にしてると、先頭部分がノイジーなソースだと前からノイズ載ってたけど、それとは別? つまりnekopanda氏によるビルドを待てってことでしょ >>887
WinSDK勝手に最新にしたり、VS2019使ったり、
CUDAのKITも勝手に最新にしたり, BOOSTも最新にしたり
とりあえず最新で試すところ
あとは/MTが好き >>890
それ、自己流っていうのか?
ソースコードを自己流に書き換えているとかならへ〜って関心できるけどさ >>888
その話は知らなかった
KFMDeint で ucf は True で使ってるけど
特に先頭部分でノイズは入ってなかったよ >>892
先頭フレームからノイズ判定が出るソースだと、謎の白いノイズ出る事あるよ。
先頭に数秒間、何かを追加して後で切り取れば回避出来てたけどね。
先頭にから数秒しか起こらないから。 それは元からあったノイズじゃないの?先頭だとフレーム置き換えがうまくいかなくて残っちゃうとか >>894
> それは元からあったノイズじゃないの?先頭だとフレーム置き換えがうまくいかなくて残っちゃうとか
先頭フレームの置き換えを試みて、上手く行かない場合にのみ発生するんだと思う。(先頭フレームからdecombucfが必要と判定されるようなゴミソースや、ノイズ演出のあるソース意外では発生したこと無いです。) KFMDeint(mode=2)とIT(fps=24,diMode=1)を比較検証してます。
KFMDeintは確かにITだと綺麗に解除できない60iテロップや、たまに
取りこぼしてしまう小さな縞もちゃんと解除してくれて強力なんだけど、
唯一シーンチェンジ破綻のフレームまで馬鹿丁寧に拾いすぎてしまうのが悩みです。
(オリジナルのQTGMCでも同様なので、KFMDeint固有の問題ではないですが)
ucf=trueや2pass処理をしても有意な効果はありませんでした。
皆さんどうやって対処してるのでしょうか? シーンチェンジ破綻というものが何かよく分からないけど
decombUCFでダメなら諦めたほうがいいと思う >>898
対処なんてしない
そこまで質にこだわるなら最初からKFM使ってないな
BOBしてそのまま60fpsで保存しておけばいいんじゃ
同じ内容のフレームはx26xでうまく圧縮されるだろうし こういうのです
http://imepic.jp/20190615/686770
KFMDeint(mode=2,pass=0, preset="Slower", ucf=true, nr=false ,cuda=true)
KFMDeint(ucf=true)やオリジナルQTGMC+オリジナルDecombUCFだとどうしても上記のような
ノイズが残るんですが、DoubleWeave.SelectEvery()+オリジナルDecombUCFだと綺麗に消えてくれます。
恐らくQTGMC内部の2次元方向処理のせいでDecombUCFがまともにノイズ検出できなくなってるのだと
思いますが、それだとKFMDeintになんでucfオプションを付けたのか疑問が残ります。 別に例外パターンじゃなければUCFあったっておかしくない気がするけど タチの悪いぶんか・・
破綻ポイントが分かってるなら下手に悩まず
FreezeFrameで前後の黒フレーム引っ張ってきたほうが時短になると思う あくまでフィルタなのでPSNRみたいな数値化できる評価軸じゃないし、
常に最良の出力結果が得られる訳ではないのは分かってるんですが、
今回のケースだとKFMDeint(ucf=true)はノイズ部分の明度が元より
あがって却って汚く見えるんですよねぇ・・・個人的にはfalse推奨。
丁寧に作業するときはDoubleWeave.SelectEvery()使ったりもしますが、
あくまで全自動で通す場合の話なので。
KFMDeintだとDecombUCF対処は難しいということで一応納得です。 >>904
それって Neo_r2824では出て、r2822では出ない問題のやつだっけ? http://avisynth.nl/index.php/AviSynth%2B_x64_plugins
TDeintの64bitって古いプラグインしかないのね・・・
ソースはpinterf氏がTIVTCと同梱して公開してけど、そのままx64でビルドしようとするとエラー出る(x86は問題なし) >>905
?よくわからないです
ちなみに今使ってるのがgithubのreleaseで公開されてる r2822 Neo i386 >>907
Neo-r2822+CUDAFilters-0.46 の x86_64 ではUCF絡みのノイズ出たことないと思う
Neo-r2824+CUDAFilters-0.50 の x86_64 ではノイズが出たことある 丁寧にエンコしても一度見たら倉庫で永久保存。もしくはポイ捨て。 透過性ロゴフィルタ(改造版) [Avisynth]delogo0004
スムージングフィルタ [Avisynth]smoothing0004
エッジレベル調整+スムージングフィルタ [Avisynth]edgelevelSmooth0004
誰か持ってないかな?
エッジレベル調整はrigaya氏の物があるので外した smoothing0005 と edgelevelSmooth0005 ならあるんだが・・・ >>916
あら、新しいの出てたのか・・・
UPお願いします。 >>914と>>918のプラグインがavisynth.nlにアーカイブされますように KTGMC俺流高画質設定メモ
KTGMC(Preset="Slower", tr2=2, NNeurons=2, EdiMaxD=12, SLRad=3, Search=5, SourceMatch=3, Lossless=2) avisynthを通すと通さないとでどのぐらい高画質になるのか正直わからんな。
結局エンコードの設定次第でどうにでもできそうな気もするし MDegrain3とかでがっつりノイズ除去したのに最終的に暗部にグレインノイズ付加したりしてると
高画質とは何ぞやという気分にはなる そのままx64でビルドできないかなとやってみたら、asmの修正が必要っぽい >>921
余計なお世話だったらすまん
K(Q)TGMCは単品で使うと結構情報が欠落しちゃうから
OnCPU()
KMergeStatic(KTGMC(), last, KAnalyzeStatic(last))
OnCuda()
な感じで補間してやると良いかも Neo r2824+AviSynthCUDAFilters 0.5.0の組み合わせで、
OnCPU(2)
KMergeStatic(KTGMC(Preset="Slower", TR2=2, SourceMatch=3, Lossless=2), last, KAnalyzeStatic(last))
OnCUDA(2)
とやると、AvsPmodでプレビューしようとするとフリーズする。
ので、r2822+0.4.6の組み合わせに戻した。
Amatsukazeだと、r2822+0.5.0っぽいんだけどね >>927
> K(Q)TGMCは単品で使うと結構情報が欠落しちゃう
どういう情報が欠落するの?
単品で使ってたので気になる >>931
https://i.imgur.com/bhoxmSQ.png
片フィールド補完のnnedi3をベースに使ってるから、こういうふうに細かいところがたまにおかしくなる
EdiModeを片フィールド補完じゃないTDeintとかにすれば大丈夫だけど、そうすると全体的に汚くなるから、
KMergeStaticの方がいいと思う amatsukazeのdelogoフィルタとかデブロックが試した感じかなりいいけど
普通のavisynth版がないのが残念だなぁ
amaのロゴデータでそのままdelogo出来るプラグイン欲しい
既存のに比べて凄く精度良い気がする >>938
同感
これができればaviutlと卒業できるのに いや取得の楽さの話をしてるんじゃなくて
ログ除去の適用性能が高いって言ってるんだよ
今のAvisynthにあるdelogoだと一律にかけることしかできないけど
Amatsukazeのdelogoは状況によって強弱かけてるでしょ ああ、"ama"って"amatsukaze"のことだったのね
amaっていうロゴ配布サイトでもあるのかと思ってたわ Ryzen Zen2がエンコ方面も爆速になってるのを見ていよいよ買い替えの機運が高まってきたけど、どのモデル買うか迷う。
エンコーダーはスレッド数に応じてほぼリニアに速度あがるけど、どう考えても先にネックになるのは
常用してるシングルスレッドしか対応してないAvisynthフィルタのどれかなんだよな。 フィルタがボトルネックになる分、エンコ設定重くできるよ! cuda対応のvapoursynth neoなんて出ないかな? neoとCUDAフィルタ入れてみた
PV4ファイルエンコにKFM使えるなんて胸熱 KFMDeint(mode=2, cuda=true)とSelectField()併用すると、画が壊れる事がある。よくわからん。 ちょっとだけわかってきた。SelectField()使うとフィールドオーダーがKFMDeintに渡らなくなるのか
全編で動くシーンの画が壊れるけど、SelectField()の後に再度フィールドオーダー明示してやると
ちゃんとインタレ解除してくれる。
オリジナルのQTGMCでも若干画が壊れるけどKFMDeintの方が圧倒的に顕著。他のデインタレフィルタだと
こうした症状は無いっぽいです。 >>952
初めて聞きました。ソース情報もらえますか? SelectField()ってこれ?
function SelectField(clip clip, int num, string "order") {
fc=clip.framecount-1
order=Default(order,"bottom")
T1=clip.Trim(0,num-1)
T2=clip.Trim(num,-1).SeparateFields()
T2=order=="top"?T2.SelectEven().nnedi3(dh=true):T2.SelectOdd().nnedi3(dh=true)
T3=clip.Trim(num+1,0)
return (num>=fc)?T1++T2:(num>0)?T1++T2++T3:T2++T3
}
当然この関数自体フィールドフラグがなくなると思うが すいません、SelectField()がユーザー定義関数なことすっかり失念してました(Avisynth内部関数だとばかり…)。
SelectField()を使う場合デインタレの直前にフィールド指定するか、SelectField()自体をフィールドオーダー
引き継げるよう改造するしか無さそうですね。 DoubleWeave()にまつわる話かと思ったら違った・・ 多分SeparateFields()とnnedi3のdh使わないようにするだけで望みの挙動になると思う
function SelectField(clip clip, int num, int "order”) {
fc=clip.framecount-1
order=Default(order,clip.GetParity() ? 1 : 0)
T1=clip.Trim(0,num-1)
T2=clip.Trim(num,-1)
T2=T2.nnedi3(field=order)
T3=clip.Trim(num+1,0)
return (num>=fc)?T1++T2:(num>0)?T1++T2++T3:T2++T3
}
これで問題おきなくなるんじゃないかな。orderは1でtop、0でbottom、省略でクリップのTFF、BFFの設定引き継ぎ おぉ自分で改悪したの添削してもらおうと思ったら、先に優れたものを作ってくださったお方が。かたじけないです orz
供養
function SelectField(clip clip, int num, string "order") {
fc=clip.framecount-1
orgorder=clip.GetParity()
order=Default(order,"bottom")
T1=clip.Trim(0,num-1)
T2=clip.Trim(num,-1).SeparateFields()
T2=order=="top"?T2.SelectEven().nnedi3(dh=true):T2.SelectOdd().nnedi3(dh=true)
T3=clip.Trim(num+1,0)
joinclip=(num>=fc)?T1++T2:(num>0)?T1++T2++T3:T2++T3
return (orgorder==true)?joinclip.AssumeTFF():joinclip.AssumeBFF()
} 俺のテストしてないんで供養せずにそっち使ってください
なんか出過ぎた真似してしまって申し訳なす
>>956
多分理屈は同じじゃないかな エンコードする場合の前処理と本エンコード用のavsファイルを分けて使用しているんですが、
「前処理avsファイル」上で手書きした処理のうち共通部分を「本エンコavsファイル」ファイルに都度転記するのは
面倒なので共通部分だけ「共通avsファイル」に切り出して上記2つのavsファイルにImportしようと思ってます。
ただそうすると今度は編集時に「前処理avsファイル」と「共通avsファイル」の2つを同時に開いて作業することに
なるので、それはそれで面倒です。
編集作業にはAvsPmodを使用していますが、理想としてはImport部分の中身をエディタ上展開/編集できるようになると
嬉しいです。そういった機能はありませんか?
↓この画像の5番みたいなイメージです
https://support.content.office.net/ja-jp/media/dbc7679a-443d-4297-8601-38664e8c740d.gif エンコード時にD&Dするbatで
echo Import("前処理avs.avs") >>本エンコavs.avs
みたいにして本エンコavsファイル作れば? >>962
「前処理avsファイル」で使用した書式のうちいくつかは「本エンコavsファイル」では使用してはいけないので、
共通部分だけまとめたavsファイルを別途作成してImport(しかも複数箇所)しないと実現できなそうです。 どんなavsか分からないから何に困ってるのかよくわからないけど、前処理+共通の全部書いたテンプレのavs作って
状況に応じて行頭コメントアウトしたり文字置換等をバッチ若しくは手動でするのは無理なの? >>963
その本エンコavsに不要な書式は固定なんか? >>963
前処理用にリネームしたavs2pipemodを用意して、
スクリプト内ではGetProgramName()で分岐させるのが良いと思う フラグになる変数定義して if 文でどうのとかはだめなん?
俺は AvsPmod でトリミングするときは処理を軽くするためにフィルタを解除したり、
編集おわったらフィルタ全適用したりってやるのに変数適当に定義して if 文でまわしてる。
どういう処理されてるかさっぱり分からないからみんな「それならこうした方が良い」ってのが
言い出せないかと思う いろいろコメントありがとうございます>各位
GetProgramName()で分岐とか環境変数で制御とか思いつかなかったなぁ。
無理に呼び出し元バッチで何とかしようとせず、avsファイルを一つに
まとめて、スクリプト内で制御した方が賢いかもしれない。
ちなみに現在使用している環境のイメージとしては以下のような感じです。
(作業が発生する度共通部分をpre→mainに転記している)
前処理用フィルタは固定ですが、共通部分とかメイン用フィルタは
都度内容や使用件数が変わるものとお考え下さい。
# pre avs
MPEG2Source("source.d2v", upConv=1)
AssumeTFF()
UserDef1() #共通部分1
UserDef2() #共通部分2
UserDef3() #共通部分3
PFilterA() #前処理用フィルタ
return last # main avs
MPEG2Source("source.d2v", upConv=1)
AssumeTFF()
UserDef1() #共通部分1
MFilterA() #メイン用重いフィルタ
UserDef2() #共通部分2
UserDef3() #共通部分3
MFilterB() #メイン用スゴク重いフィルタ
return last
>>964>>966
ホンマそれ。だけどメンドイし、手動によるミスも多いです… >>970
そういうスクリプトだとしたら俺ならこうするかなー
変数切り替えて使うww
HOGE = 1 # 1 = Pre, 2 = Main
MPEG2Source("source.d2v", upConv=1)
AssumeTFF()
UserDef1() #共通部分1
if ( HOGE == 2 ) {
MFilterA() #メイン用重いフィルタ
}
UserDef2() #共通部分2
UserDef3() #共通部分3
if ( HOGE == 2 ) {
MFilterB() #メイン用スゴク重いフィルタ
} else if ( HOGE == 1 ) {
PFilterA() #前処理用フィルタ
}
return last 同時編集する必要性が分からないんだけど・・
普通にメイン部分を無効で登録しておき編集して「前処理フィルタ」実行
処理が終わったら「前処理フィルタ」を無効にして「メイン用重いフィルタ」の調整としたほうが
流れるように作業できラクなはず 自分は高度なこと分からない人だから
type pre.avs | find /v "PFilterA" >pre2.avs
type pre2.avs | find /v "return" >pre3.avs
みたいに転がして後は文字列の置き換えてメインフィルター追記して
main.avsで出力みたいなのしか発想できない Anime4kはリアルタイムでアップスケールして再生するためのものだから
Avisynthにかませる理由があまりないでしょ
nnedi3_rpow2でも使えばよい nnedi3_rpow2より速そうだし出来も良さそうだなって思ったんだけど
やっぱないかあ 早いだろうけど出来は及ばないでしょ
あくまでもリアルタイムにしてはすごいってだけで avisynthのプラグインは「調整が決まれば」という但し書きが付くけどね それはAnime4Kはもっとそうで
得意な映像なら、なんだよ
不得意なパターンも報告されてるわけでね
リアルタイムだからどうしようもない部分はある レス数が950を超えています。1000を超えると書き込みができなくなります。