Avisynth 初心者質問スレ Part9 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
Avisynthの初心者質問スレです
・質問する前に
1.まずは、過去ログを読むか検索エンジンなどを使って調べましょう
2.次に同じような質問がないかCtrl+Fでスレッド内を検索しましょう
・VapourSynthの話題はできるだけ専用のスレでお願いします
・荒らし・煽りは綺麗にスルーしましょう
■前スレ
Avisynth 初心者質問スレ Part8
http://echo.2ch.net/test/read.cgi/avi/1463062591/
■関連スレ
・Avisynthを絶讃ιょぅょ Part32
http://echo.2ch.net/test/read.cgi/avi/1486535501/
・お前らのショボイAvisynthスクリプト貼ってください part4
http://echo.2ch.net/test/read.cgi/avi/1486693045/
・VapourSynth Part2
http://echo.2ch.net/test/read.cgi/avi/1488452387/
■外部リンク
・Avisynth wiki(英語)
http://avisynth.nl/index.php/Main_Page
・avisynth.info (旧 AviSynth Wiki、日本語)
http://www.avisynth.info/
・AviSynth ニュース
http://news.avisynth.info/ QTGMCについて質問です。
プリセット等は全部デフォルトの QTGMC() のみで使用すると、ゴースト(ていうのかな?)みたいなのがよく出るんですけど、
これを消すにはどのパラメーターをいじればいいのでしょう
白い横線
ーーーーーーーーーーー
これが
ーー
ーーーーーーーーーーー
ーー
ー
こんな感じみたいなのになるやつです。 # アニメーション用。anime+の動くロゴ&「テレビは離れてみて〜」のテロップをマスキング
function TDecimate24P7A2(clip clip){
video=clip
Interp=video.eedi3(field=-1)
mask_clip=combmask(video,cthresh=10,mthresh=30)
clip_0=video.tdeint(mode=0, tryweave=true,full=false,edeint=Interp)
clip_deblock=clip_0.SmoothD2c(quant=17, num_shift=3, Matrix=12, Qtype=2).SmoothD2(quant=5, num_shift=4,zw=2, Matrix=12, Qtype=3)
filt_clip=MaskedMerge(clip_0, clip_deblock, mask_clip,MI=60)
clip1=video.yadifmod2(mode=0, edeint=interp)
clip2=clip1.mt_lut("0", chroma="128", offx=120, offy=24, w=420, h=230).mt_lut("0", chroma="128", offx=260, offy=920, w=1320, h=80).TDecimate(mode=1,clip2=filt_clip)
return clip2
}
なんかもしかしてテレシネ縞でマスク作ってNRすれば狙い撃ちでNRできるんじゃね?と思い立って作ったら
かなりいい感じに動いたんだけど、スクリプト的になんか不味いところありますか? あと、おすすめNRとかあれば試してみたいので
紹介よろしくお願いします TS初心者勉強会から誘導されて来ました
テレシネされたTSを、手動でキネコするというのはどのようにやるのでしょうか?
いつもAviUtlの自動フィールドシフトで行っているので疑問に思った次第です AviSynthでやるならDoubleWeave()とSelectEvery()やPulldown()を組み合わせて行う
周期を見るためにコーミングマスクフィルタを使ってる人もいると思うよ
多分聞くより調べたほうが早いと思う Avisynthスレに行く前にググれと言っておいたのに全く調べずに来た時点で相手にする価値無し。 AvisynthのスクリプトをUnicodeで書く方法無いかな?
できればUTF-8がいい >>64
手動=AvisynthのDoubleWeave()とSelectEvery()のことかと思って誘導したけど、そうとも限らないのね
早い話が1フレーム内の奇数ラインと偶数ラインを組み合わせて
そのなかから奇麗になるパターンを探すこと
奇数uラインと偶数ラインを組み合わせるだけだから画質の劣化はほぼなし
afsはそんなの手動でやってらんねーってことで色々な仕組みを導入して自動で動くようにしたようなもの
avisynthのtivtc24p2関数は普通にインタレ解除して動きのない2枚のうち一枚を捨てる感じ
ちなみにキネコよりはテレシネ解除のほうがメジャー(ってかキネコなんて誰も使わない) >>62
NRまでするほど画質に拘るなら手動間引き後にNRした方がいいと思う
>>68
tivtc24p2も基本はフィールドマッチング、
それでもコーミングが検出されたときだけインタレ解除だよ >>69
平たーく特徴を説明したほうが違いが分かっていいと思ったので・・
(上の関数について)
いうほど画質にこだわってる訳ではないんですが
たまたま作ったものが想像以上の効果だったので、どんな感じかと意見を聞こうと思いました >>69
> tivtc24p2も基本はフィールドマッチング、
> それでもコーミングが検出されたときだけインタレ解除だよ
これはTIVTC内のTFMの機能では
テレシネ解除するには間引かないと すいません
TDeintを使うスクリプトを触るのが久しぶりで、TFM使わずに解除するときはfullをfalseにしたらダメなの忘れてたので軌道修正中です
そして今はこんな感じになってます
(一応、誰が見ているか分からないので書いておきます)
function TDecimate24P7A2(clip clip){
video=clip
Interp=video.eedi3(field=-1)
mask_clip=combmask(video,cthresh=10,mthresh=10)
clip_0=video.tdeint(mode=0,tryweave=true,aptype=2,ap=20, expand=10)
clip_deblock=video.tdeint(mode=0,tryweave=true,aptype=2,ap=20, expand=10,edeint=Interp).SmoothD2c(quant=17, num_shift=3, Matrix=12, Qtype=2).deblock(quant=16)
filt_clip=MaskedMerge(clip_0, clip_deblock, mask_clip,MI=60)
clip1=video.yadifmod2(mode=0)
clip2=clip1.Framecache(9).mt_lut("0", chroma="128", offx=120, offy=24, w=420, h=230).mt_lut("0", chroma="128", offx=260, offy=920, w=1320, h=80).TDecimate(mode=1,clip2=filt_clip)
return clip2
} 今まで(私の中で)対処法なしだった1ラインごとのコーミングのようなディテールが保存されるようになってた
ずっと昔にこれで質問したら、「○○でマスク作って〜」と言われたのを思い出して数年越しに言われてた意味が分かった
http://imgur.com/a/OSPfI
72の関数は最終的に
video=clip の後ろにFramecache(9)を移動して
smoothD2cの前にVinverseを入れたので落ち着きそうです
(添付の画像はVinverse導入前のもの) どなたかお詳しい方、ご教示ください。
Dither_resize16nr〜でリサイズする際、
色味・コントラストは、従来通り「ColorYUV(gain_y=6〜」をスクリプトに追記すれば動作しますが、
シャープにしたい場合、「UnsharpMask」等では動作してくれません。
自分なりに調べた結果、Sharpen(0.8)であれば問題なく動いたのですが、まったく効果が見られません。
Dither_resize16nr〜と組み合わせて動作するシャープ化フィルターと、
スクリプト記述をご教示いただけると助かります。 もう1つ質問というか、疑問です。
DVD用に動画を704,480にする場合、
横の足らず((720-704)/2=8px)のボーダーを左右に付けないといけないのでしょうか。
単純に704,480のままDVDを作成すれば、再生時にプレイヤー側で勝手に横サイズを引き延ばしてはくれないのでしょうか。 >>74
・16bit対応してないフィルタは8bitクリップの状態で使う。16bitクリップに対して使っても意味がない。
・16bitクリップでシャープ化したいなら16bitに対応したフィルタを使う(何があるのかはよく知らない)
というだけのことだと思うので、Avisynthの16bit hackについて理解しておいたほうがよさそう。
High bit-depth Support with Avisynth - Avisynth wiki
http://avisynth.nl/index.php/High_bit-depth_Support_with_Avisynth
Stack16 - Avisynth wiki
http://avisynth.nl/index.php/Stack16
ただ、そもそも縮小に本当にDither_resize16nrを使う必要があるのか確認したほうがよさそうでもある。
と書いてはみたが、うまくいかないというスクリプトを書いてアドバイスを求めてみてもいいかもね。 8bitに戻してからシャープ掛けるんじゃだめなの?
どのみち最終的に8bitに戻すだろうし
個人的にはDither_resize16使うならシャープなんていらないと思うけど >>74
動画ソフトだと16bit化の意味を説明している所があまりないのでPhotoShopとかの画像用ソフトで16bitと8bitの違いを見たほうがいいよ
リサイズを高精度にする意味もあるが色調変更を8bitでやるとすぐ階調割れするのでこちらの方こそ16bit(バンディング処理→Dither_lut16とか)でやるべき
>>77のリンクを読めばわかると思うがColorYUVとかのDither_toolsに対応してないフィルタは効果が見えないor変化していてもデタラメな結果になってるよ
使えるシャープフィルタはwikiにのってるのしか知らないがこれもシャープ化は8bitでやって合成してるなあ
http://avisynth.nl/index.php/Dither_tools#Filtering_in_16_bits_with_basic_sharpening LSMASHSource_LWLibavVideoSource("○○○.○○")
ChangeFPS(30000,1001)
ColorMatrix(mode="Rec.709->Rec.601",Clamp=0)
ColorYUV(gain_y=6,cont_y=10,cont_u=4,cont_v=6) # 輝度=Y,輝度と青の差=U,輝度と赤の差=V
Sharpen(0.8) #あまり・・・というか効果がわからない
Dither_convert_8_to_16()#色深度を8ビットから16ビットに展開
Dither_resize16nr(704,480,kernel="Lanczos",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) # 左,上,右,下
スクリプトです。
UnsharpMaskとかを使いたいところですが、使うとエラーになります。 順番がおかしい フィルタ1個づつにして動作と効果を確認しましょうよ
あえていうならSharpenの後にDither_resize16nr( 〜,taps=6,noring=true)なんてやってるからシャープ効果が消えてるのを勘違いしてるんじゃない? >>81
sharpenはやはりaddbordersのすぐ前がいいのでしようか?
あと、他に位置がおかしいフィルタ等があれば、ご指摘いただければと思います。 いいか悪いかは個人の好みとソース次第なので実際にやってみて好きな方を選ぶ
自分なら階調が減った映像を16bit化しても精度が落ちるから色調変更はDitherPostの後にするか16bitで行う
Sharpフィルタを使うくらいならDither_resize16nrではなくDither_resize16でnoringもオフにする AutoVFRのfastモードを利用せずに検索させたら
↓のように5フレームだけ60fとされるのだけど、理由に見当つく人いますか?
000000-006449 [24] (5,2,4)
006450-006504 [24] (5,1,3)
006505-006509 [60] f60
006510-006604 [24] (5,0,2)
006605-006699 [24] (5,0,3)
006700-006799 [24] (5,1,4)
006800-006804 [60] f60
006805-006894 [24] (5,0,2)
006895-006899 [24] (5,1,3)
006900-006904 [60] f60
・
・
・
216455-216459 [60] f60
216460-216469 [24] (5,0,2)
mode fps_adjust = on
216470-333850 [24] (5,0,3)
end
(14行から149行まで上のように分割されてる)
ソースは古いフィルム・ソースなので周期が変わってるのだろうとは思ってるんですが
60fが入るのはなぜなんでしょうか >>84
本当に周期が変わっているところなら
うまく逆テレシネ出来ないから60fになるだけだと思うけど 実は出来上がったものの再生確認をしたら映像・音声なしのごみファイルができてました
なので、どこかがおかしかったようです
実写でやるときはMIとか調整したほうがいいのかな・・ >>85
レスありがとうございます
あしたavsなどの確認をしてみます Plusだと今までのプラグイン動かない?
SVP入れたらエラーがでて困ってます 使ってるプラグインとAvisynth+のバージョンの組み合わせを1つずつ試して、自分なりのStableを模索するしかない
各プラグインがAvisynth+に正式対応しているか、対応していても特定のバージョン以降しか対応してないとか色々あるし >>89
多分SVP4を入れたらAvisynth+がインストールされてしまったということなんだと思うけど、
SVP自体は多分まだAvisynthでも動くはずだから、Avisynth+をアンインストールして
Avisynthをインストールするというのも1つの手。(個人的にはAvisynth+への移行を推奨)
ただ、後から「やっぱりSVP4が入れてくれるAvisynth+がいい」と思って
SVP4の「その他のプログラムや機能」でAvisynth+を入れなおそうと思っても、
なんかうまくシステムにインストールしてくれない。(既にインストールされていると判断されてしまう)
この場合は自分でAvisynth+をインストールするか、
SVP4を一度アンインストールして最初から入れなおす必要があると思う。 >>90
LoadPluginExみたいに非plusのプラグインを使えるようにするプラグインはないんですね・・
>>91
SVP使用時にAvisynthのバージョンが違いますみたいなポップアップがでるようになったので
SVP再インストールしたら今までのAvisynthが完全に使えないようになった状態です
ポップアップが出ただけで正常にSVPが使えてるかは確認してませんでした
また今までのAvisynth入れてみてSVPが使えるか確認してみてダメならプラグイン一つ一つ確認してplusに移行するのを試みるしかないみたいですね Avs2pipemod使ってqsvエンコしてるんだけどmtにしてからたまに落ちるようになった。
解決法ってある? >>93
リサイズアルゴリズムは好きに選ぼうぜ
Lanczos系は目を凝らすと輪郭周辺にリンギング乗ってるけどSpline系より全体的にくっきりシャープに仕上がるから俺は好きだよ
>>95
その手の話はネット上のブログ含めて散見されるけど再現するスクリプト携えてChikuzen氏に報告してみるしか無いと思うよ
当然ながらavs2pipemodだけで発生する問題に限るけど・・・ お返事ありがとうございます。
イベントビューアーにエラーログが出ていたので一応載せておきます。
何か詳しいことわかる方いたら教えて頂きたいです。
Avisynthスクリプトは自分で書いたものではないのであまり詳しくないのですが、調べながらSTのものをMT化しました。
MTmodeは2で4スレッドに設定してあります。
関係あるかわかりませんが、
頻繁に落ちるスクリプトにはTdeint_()の記述が有りました。 続き
障害が発生しているアプリケーション名: avs2pipemod.exe、バージョン: 1.1.1.0、タイム スタンプ: 0x57b08eec
障害が発生しているモジュール名: KERNELBASE.dll、バージョン: 10.0.15063.296、タイム スタンプ: 0x28e9cf15
例外コード: 0xc0000005
障害オフセット: 0x000eb802
障害が発生しているプロセス ID: 0xbe18
障害が発生しているアプリケーションの開始時刻: 0x01d306208d5fa2ec
障害が発生しているアプリケーション パス: C:\Program Files (x86)\AutoConvert改\bin\avs2pipemod-1.1.1\avs2pipemod.exe
障害が発生しているモジュール パス: C:\WINDOWS\System32\KERNELBASE.dll
レポート ID: 491070b0-2e41-4300-8518-3edd84751ca8
障害が発生しているパッケージの完全な名前:
障害が発生しているパッケージに関連するアプリケーションID: 質問するなら
・PC環境
・使ってるAvisynthまたはAvisynth+のバージョン
・使ってるプラグインのバージョン
・avsの内容
・実行したコマンドの内容
などの具体的な情報を出さないと話にならないし、
「avs2pipemod 落ちる」でググったら出てくる対処法は試したんだろうかとは思う。 >>67
avisynth本体、及び使用するプラグインをユニコード対応に改造するくらいしかないからやめとけ
そんなことするくらいなら素直にCP932使うか、ASCII以外の文字を使わないことでごまかすほうがまだましやろ
イアンがユニコード対応より互換性を選んだ2010年ごろに、その手のお話は終わってしまったのよ Avisynthってインストールしなくても実行ファイルと同じ場所にAviSynth.dllを置けば作動させられるのね autoVFRでlog結合が上手く動かなかったときはずっと馬鹿正直にログ生成からやり直してたけど
ログ結合前に↓をかませて
:wait
TIMEOUT /T 30
↓でwaitに飛ばすだけで簡単に解決した
FIND "補間" F:\movie\_AutoVfr111\temp2\AutoVfr.def
IF %ERRORLEVEL%==0 GOTO wait
IF %ERRORLEVEL%==1 ECHO 次のステップへ
当時の自分はなぜ思いつかなかったんだろう・・ DeDupの1pass目って手動で1コマずつ送り続けずに
自動で全フレームの解析ログ吐き出させる方法ありますか? いまいち意味がわからないんだけど、最初のフレームから最後のフレームまで走査したいんなら
avs2pipemodなりavs2yuvなりAVSMeterなり適当なツールで実現できる
あとAVSPmodでも出来るはずだな >>105-106
ありがとうございます
早速やってみます Avs2pipemodが落ちるの者です。
環境 i7 3770
Gtx650
Avisynth+の最新バージョンをインストールしてmtの開発版最新バージョンをインストールしています。
スクリプトですが自分で書いたものではなくautoconvert v3.3.0のものを自分で書き換えてmtにしたのですがそれからエラー落ちするようになりました。
症状としてはある程度エンコ進んでから規則性の無いタイミングで「プログラムは動作を停止しました」とでます。 続き
スクリプトです
SetMemoryMax(512)
global Plugins = "__path__\plugins\"
global Scripts = "__path__\avs\"
Import(Scripts + "function.avsi")
# MTの設定読み込み
Import(Scripts + "MT.avsi")
video = __video__
audio = __audio__
AudioDub(video, audio)
DelayAudio(last, __delay__)
#__eraselogo__
#__trim__
TDeint_()
(Width() != 1920) ? BilinearResize(1920, 1080, 0, 0.6) : last
Prefetch(4)
return last エンコ完走するものもあるので原因が全く分かりません。
ちなみにtssplitterなどでいろいろ除去しています。ドロップもありません。
個人的にはMTモードかプラグインあたりが怪しいと思うのですが、、、。
スクリプト続き
# MT.avsi
SetFilterMTMode("DEFAULT_MT_MODE", MT_SERIALIZED)
SetFilterMTMode("NNEDI3", MT_MULTI_INSTANCE)
SetFilterMTMode("TDeint", MT_MULTI_INSTANCE)
プラグイン一覧
# LSMASHSource.dll
# DGDecode.dll
# DGDecodeNV.dll
# aacfaw.aui
# TDeint.dll
# nnedi3.dll
# TIVTC.dll
# mvtools2.dll
# Its.dll
# delogo.dll
# libmfxsw32.dll
# DirectShowSource.dll avs2pipemodのバージョンで落ちたことあったよ
32bitのAviSynth2.6MTだったけど
avs2pipemodは1.1.1で原因がわからないから0.4.2に戻したまま
+は使わないかなと思ったからこれでいいか、程度になってるけどx265(x64)をエンコすると必要になるのかな? avs2pipemodのバージョンで落ちたことあったよ
32bitのAviSynth2.6MTだったけど
avs2pipemodは1.1.1で原因がわからないから0.4.2に戻したまま
+は使わないかなと思ったからこれでいいか、程度になってるけどx265(x64)をエンコすると必要になるのかな? >>108が言ってる「mtの開発版最新バージョン」てなんのことだろ・・・? 1576インスコしてMT版のdllに上書きしたんやろ MT化して問題が起こるんならそらMTが原因だろう
プラグインも特定のバージョンじゃないとMT化して上手く動かなかったりするんでバージョンを調べて見るのもいいと思う
それとavs2pipemod以外のツール(avs2yuvとかavs4x26xとか)でも落ちるかどうか確認したら?
それと本末転倒かもしれないけど不安定さが解消できないならMTは使わない方が良いと思う >>109
ChikuzenさんのBlogにエラーファイルの書き出し方が書かれてる記事があるからそれでログを取ってみたら?
↑Mpeg2Dec_plusで調べたら出てくるはず
64bit版でtivtc使うとエラーが出た気がするけど何bit版使ってるの? プラグイン周りはいじっていないので恐らく32bit版だと思われます。
(Autoconvrt作者のページにavisyinth32bitライブラリの記載)
また作者れどめにmt関数の使用をやめた等の記載があったためもしかしたら作者も不具合発生していたのかもしれません。
MTじゃ無いと番組によってもまちまちですがかなり遅く、プロセッサに余力があり過ぎるのでMT化したら取り敢えず10倍速まで引き上げられました。
QSVがフル活用できないのも悩みどころです。
自動エンコなので安定性はかなり大事なのですが流石に10倍速報となると...て感じです笑 あ、そういやwindowsのイベント ビューアでログ確認してみたら
エラーが出たプラグイン名まで書かれてたはず イベントビューアー確認したところ
AVS2pipemod.exeでエラーは出ているにですが問題場所にkernelbase.dllとか関係無いのが出ていました。
見るところあってるかわからないけど... >>120
たぶんそれだと思うけど、ずいぶんと大雑把やね
自分の時はプラグイン名が出てたからそれの入れ替えで切り抜けれたが・・
とりあえず>>117の方法で除法収集してみては
日本語記事だしaviynthあたり探したらすぐ見つかるはず video = __video__
の部分をLsmashで読み込ませたらMT使わなくても早くなるかもしれない TDeint_()は何をやってるんだろう
nnedi3はjpsdrのなら勝手にNICE_FILTERで登録されなかったっけ?
delogoは+用の使ってる?
あとは確かIts+mvtoolsがうまくいかない場合があった記憶がある 皆さま回答ありがとうございます。
安定にはまだまだ時間がかかりそうです。
地道に解決策を探してみます。
因みにQSVのみとavisynthフィルタ+qsvではやはり画質に差がありますか?
画質も大事なのですがそれ以上に速度と安定性は譲れないので妥協点を探っているところです。
正直エンコさえ完走してくれればいいのでロゴ消し以外の原因になっていそうなフィルタは実行しないようにしようとも考え出しているんですが... あとqsvをocで使っているのですが安定性的によろしく無いですかね?
+0.25mv 1550mhz >>125
怪しいと思うのなら、他のを試す前に暫く辞めてみたら? >>120
同じエラーが出てたけど、パイプ使わずに全て64bit化したら安定するようになった 縮小してmpeg2でエンコするなら
どうせ細部が潰れるからbilinearでいいわ リサイズに使う手法でDitherが高画質って話でmpeg2とは関係ないと思うぞ
確かにDither使う場合は誤差が最小限に抑えられるはずだから高品質に仕上がるのは正しいはず
内容に目を向けるとその人の主観ではSplineがLanczosより優れてると評してるけど俺はシャープに仕上がるLanczosが劣ってるとは思えない
ソースの特性やその状態、各人の好みで主観的に選択されるべきで必ずしもDither&Splineが適しているとはならないわけだ
上で既に言われてるようにどうせ潰れるから必要十分な品質と高速な処理を両立するBilinearもアリかもな
ところでそのブログこのスレで何度か見かけた事あるけど何かあるの? Recomendation for Downsizer required - SOLVED. - Doom9's Forum
https://forum.doom9.org/showthread.php?t=174496 >>128
そのDither_resize16nr()を使ったスクリプトって、絶賛スレの
http://mevius.2ch.net/test/read.cgi/avi/1486535501/95-
とか、このスレの >>74-83 で持ち出されてるんだけど、元は
http://ch.nico●video.jp/wakeup_01/blomaga/ar955171
からのコピペみたいなんだよね。
>>128の記事もこのあたりを読んで試してみたってことなんだろう。
ちなみに1分半のFHDアニメOPで、16bitでの処理と8bitでの処理をAvsMeterで比較すると、以下のようになった。
https://pastebin.com/umJi3J07
いくつか試してみたけど、地味に重さに差が出るし、仕上がりに大した差なんて無さそうだし、
8bitでいいやというのが正直なところ。 データだけじゃダメでしょ
自分のテストではネイティブで作られた感が出ていいと思った
でもふぁいうrサイズが大きくなったから使ってないけど いや、なんというか、
「よくわかんねーけど、これをコピペして16bitリサイズすれば最強なんだな!」
みたいな広まり方はしないほうがいいんじゃないかなあと。
f3kdbもDitherPostも、元記事のパラメータがそのまま使われてるみたいだけど、
DitherPostやf3kdbのdither_algoの説明を見ると、
「Floyd-Steinbergなどのerror diffusion系のディザリング手法は、エンコを考えなければベストな結果になるけど
かなり高いビットレートでエンコしないと、せっかくのデバンド結果がボロボロになる。
Ordered ditheringの方がエンコしてもデバンド結果が残りやすいので、そっちの方がお勧め。
場合によってはディザリング無しにするのもあり。」
みたいなことが書かれてるし、それも含めてちゃんと自分で考えた方がいいんじゃないかなと思う。
ちなみにFloyd-Steinbergを使うなら、DitherPostで8bit化する方が速かったけど、
Ordered ditheringを使うなら、f3kdbでそのまま8bit化する方が速かった。 HEVCの10bitエンコーディングなら細かいこと考えなくてもいい気がする
MPEG2のABRモードや、2Passでやるならその通りだと思う >>136
書いたまんまだが、
AviSynth+、プラグイン、x264の全てを64bit対応させただけ
そうすればパイプさせる必要ないしな
使っているプラグインに32bit版しかなければご愁傷様 DecombUCFについて質問があります。
DecombUCF v3.13( https://pastebin.com/dyzjwfwA )を使用中でavisynth 2.6(32bit)の時は問題なく動いたのですが
avisynth plus r2508にしてからエラーを吐くようになりました。
Script error:Invalid arguments to function 'CFieldDiff'.
([Conditional Filter,Expresion1], line1)
plusになってConditional Filterの仕様が変わったのでしょうか?
解決策を教えていただけませんか >>138
MT使わなければ問題ないはず
(最後のPrefetchを無効にする) >>139
うぉおおおお・・・これは盲点だった・・・
無事エラーでなくなりました。ありがとうございました。 Avisynth 2.60MT から Avisynth+ r2508 MT (32bit) に乗り換えようとフィルターを自前の既存のままエンコ出来る様に
してみた物の、エンコ速度が半分程度になってしまったw
全体的にフィルターの処理が重くて CPU (Ryzen 7 1700) も prefetch = 16 なんてしても大して使われない状態に。
マルチスレッド処理って SetMTMode の方が Avisynth+ のマルチスレッドよりも速いものですか? スクリプト次第なところはあると思うけど(俺は+の方がはるかに速い)
極端に遅いならSetFilterMTModeの設定か入れるプラグインが間違ってるのかもね
+用に書き直されたプラグインが多いからそれ使わないとまともにMT動かないってこともあるはず
スクリプトのっけてくれればよりコメントしやすい >>142
trim, crop, eraselogo 辺りは端折ったけど次の通りです。
プラグイン周りは全部最新かどうかの見直しも込めてダウンロードし直してます。
SetFilterMTMode("DEFAULT_MT_MODE", MT_SERIALIZED)
SetFilterMTMode("DGDecode_mpeg2source", MT_SERIALIZED)
SetFilterMTMode("NNEDI3", MT_MULTI_INSTANCE)
SetFilterMTMode("eedi3", MT_MULTI_INSTANCE)
SetFilterMTMode("TFM", MT_MULTI_INSTANCE) #2 is faster. 1 crashes randomly.
SetFilterMTMode("TDecimate", MT_SERIALIZED) #1 gave error, 2 was slower than 3
SetFilterMTMode("TDeint", MT_MULTI_INSTANCE)
SetFilterMTMode("warpsharp", 2)
SetFilterMTMode("UnsharpMask", 2)
SetFilterMTMode("aWarpSharp2", MT_NICE_FILTER)
続きます 続き
PluginPath = "C:\AviSynth+\plugins+\"
LoadPlugin(PluginPath + "warpsharp.dll")
DGDecode_MPEG2Source("hoge.d2v")
AudioDub(last, WavSource("faw.wav"))
TDeint(mode=0, order=1, type=3, tryweave=true).TDecimate(mode=1, hybrid=0)
Lanczos4Resize(960, 720) # 720p
#UnsharpMask(18, 5, 10)
#WarpSharp(64, 2, 80, -0.6)
aWarpSharp(depth=32.0, blurlevel=1, thresh=0.3, cm=0)
Prefetch(threads=16)
return last
と、大したことはしてないと…おもうw TDecimateはINSTANCEでいけるっぽいよ
自分はMT使ってないけどPintefさんだっけ?
plusに積極的にコミットしてる人がTFMと一緒にINSTANCEだと落ちないって書いてた気がする TIVTC、nnedi3は
https://github.com/pinterf/TIVTC/releases
https://github.com/jpsdr/NNEDI3/releases
こっちのを使ってSetFilterMTModeの記述は削除でOK
MPEG2SourceはChikuzen氏の使ってみるとか http://csbarn.blogspot.jp/
以前はMT_NICE_FILTERが良いってなってたと思うんだけど今ってMT_SERIALIZED推奨になってるのか
またはL-SMASH Works使うか
warpsharpは使ったことはないからわからんのだけど、
あまり重いことしてなさそうだから+のMTの恩恵は薄いかもしれない レスありがとうございます。感謝です。
>>145
Tdecimate を INSTANCE にして試してみたいと思います。
>>146
TIVTC と NNEDI3 は共に提示頂いた物と同じ物を使っていました。
なので SetFilterMTMode の記述を削除する方向でやって見ます。
それと MPEG2Source で .d2v のロードが行けるとか今更ながら初めて知ったので
これも合わせて試してみます。
ちょっと時間的に今すぐ試せないんですが、何れ結果は報告出来ればと思います。 あれこれと試す時間出来たんで HEVC エンコしてみました。ソースはアニメで 34,525 フレーム。
x265.exe への引数は
--crf 19 --preset medium --input-depth 8 --output-depth 10 --aq-mode 3 --aq-strength 0.6 --sar 4:3 --asm avx
です。
まず Avisynth+ で >>143-144 のスクリプトで aWarpSharp 抜きのエンコで 51.14fps。
次に aWarpSharp を有効にしたエンコで 35.52fps
最後に Avisynth 2.60 MT では GPU_Convolution3D, GPU_TemporalSmoother と
更に UnsharpMask, WarpSharp を追加したスクリプトで 46.03fps になりました。
自身のスクリプトで速度と画質を考えるとまだ Avisynth+ には乗り移れないのかなと感じた。
折角助言頂いたのに無念orz >>148
aWarpSharpのdepthをsubpixel用に少数にしてないなら、awarpsharp2の方が高速だよ
変数名がちょっと違うので注意が必要だけど MPEG2sourceとはどういったものですか??
エンコーダ?? Avisynth+ への乗り換えを諦めていたけど、その後もちまちま弄って
スクリプトの行頭「SetFilterMTMode("DEFAULT_MT_MODE", MT_SERIALIZED)」こいつを外したら
かなり速度が改善されました。というかこれが原因だったのかなと。
WarpSharp を入れても満足いく速度が出るようになったけど、無くても良いかなと言うことで
シャープ系は UnsharpMask のみにしたり、ノイズ除去は FluxSmoothST にしてみたりしつつ
64bit に乗り換えたら 50fps 越える速度でエンコ出来る様になりつつ画質は個人的にまぁ満足できました。
その節はご助言ありがとうございました! Avisynthをavs2pipemod使ってqsvで利用してるんですがtdeintが遅くてqsvの意味が無いので代わりになるプラグインありませんか?
MTをtdeintに適応すると早くなるのですがavs2pipemodが落ちてしまうので... 遅いと感じるのは人それぞれ。
qsvデコード使ってqsv側でインタレ解除とかじゃだめなん?
どうしてもavsじゃないといやなら、同時に複数の動画エンコードするとか自分はやってた気がするわ。
1つのavsを分割して同時エンコードしてから結合とかでもいいのかも。 >>153
yadifmod2とnnedi3を組み合わせたものがtdeint並みにお手軽
yadifmod2だけで使うのなら画質的には微妙ではある Tdientをバラエティーや生放送のソースに使うと20fps程度しか速度でませんが、アニメや映画等では90fps以上いきます。
おまけにバラエティーの出来上がったものを見るとカクカクしてしまっています(見れないレベルでは無い)
何が原因でしょうか? mode=0で30fpsに解除されてるのでは?
readmeを分からんながらも眺めればヒントはあるもの >>153
QSVでエンコするなら画質は気にしてないだろうし、AutoDeintあたりで良いと思う Bob化すると元ファイルよりエンコ後の方が大きくなるんだが...
アニメ、映画は24fps ドラマは30fps バラエティーは60fpsなんだよね。
そもそも地デジって30fpsだよな…
アニメとかもbobでいいの?
ジャンルごとに設定変えなきゃいけないのか? そういう人は全部インタレ保持でエンコすればいいと思うよ
サイズは対して縮まないけど ■ このスレッドは過去ログ倉庫に格納されています