Avisynthを絶讃ιょぅょ Part32 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
「AviSynthを絶賛」というのは、聞いたら答えたり報告したりなどギブアンドテイクな作業を指す。
厨と呼ばれて当然の事を、調べもしないで訊くバカが住み着くスレではないので、
avisynth.infoぐらいは読んでおくように。
【前スレ】
Avisynthを絶讃ιょぅょ Part31
http://echo.2ch.net/test/read.cgi/avi/1383985211/
【日本語による解説】
avisynth.info
http://www.avisynth.info/
【実家】
AviSynth
http://avisynth.org/mediawiki/Main_Page 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すごいけどアニメエンコにしか使ってない・・・ ■ このスレッドは過去ログ倉庫に格納されています