12/09/29 08:32:50.96 4RAcVo/+.net
シャープ君程々にな
122:名無しさん@編集中
13/07/16 NY:AN:NY.AN +zMg1Bfg.net
>16をTDeintに変えたものを保守がてらカキコ
改造元のさらにオリジナルとの差はコマンドを変えやすいことかな
InterlacedYV12ToYUY2_TDeint
function InterlacedYV12ToYUY2_TDeint(clip source)
{
# You might need to change here.
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\TDeint\TDeint.dll")
TD = source.Tdeint(mode=1, type=1, full=false, tryWeave=true).ConvertToYUY2.SeparateFields.SelectEvery(4,0,3).Weave()
source.ConvertToYUY2.MergeChroma(TD)
}
123:名無しさん@編集中
13/07/17 NY:AN:NY.AN PR7RGWpf.net
わざわざTDeint使わんでも
URLリンク(forum.doom9.org)
でよくね?
124:名無しさん@編集中
13/07/17 NY:AN:NY.AN uib/sB1W.net
>>118
それは60pを経由しないので、動きの無い部分の品質は良くない。
125:名無しさん@編集中
14/07/27 14:04:33.14 PRIBVn5g.net
function resize_720i(clip i, "ord", bool "matchfields")
{
ord=default(ord,-1)
matchfields=default(matchfields,false)
i.BicubicResize(1080,1080, 0,0.5)
\ last.TDeint(mode=1,type=1,order=ord,tryweave=matchfields,full=(matchfields==false))
\ last.BicubicResize(1080,720,0,0.5).AssumeTFF().SeparateFields().SelectEvery(4, 0, 3).Weave()
}
とあるサイトに触発されて横リサイズ後Bob化、縦リサイズ&再インタレ化する関数を作ってみたんですが、これで問題ありませんか?
それとTMMのオン/オフも実装したいのですが、やり方を教えてください。
126:名無しさん@編集中
14/07/30 15:14:21.05 zu2Y2YQ8.net
txt60mcHybrid2の縦スクロール版。別途ivtc_txt60mcが必要。
某アニメのために今さら作ってみた。これを使う前に数話、VFRでエンコ済みなので後悔。
"top"がtrueだと左、falseだと右にフィルタが掛かるはず。
function txt60mcHybrid3(clip src,int frame_ref,bool "srcbob",bool "draft",int "txt_area",bool "top",bool "show")
{
w=src.width()
draft=default(draft,false)
srcbob=default(srcbob,false)
show=default(show,false)
top=default(top,false)
txt_area=default((top==false)?w-txt_area:txt_area,1440)
txt_area=(txt_area%2==0)?abs(txt_area):abs(txt_area-1)
crop_c1=(top==false)?0:txt_area
crop_c2=(top==false)?w-txt_area:0
field_ref=(srcbob)?frame_ref:frame_ref*2
field_ref=field_ref%5
invpos=(5-field_ref)%5
c=(srcbob)?src
\:(draft )?src.TDeint(mode=1)
\:src.QTGMC(preset="fast")
c1=c.SelectEvery(5,1-invpos,3-invpos).Trim(invpos/2,0).crop(crop_c1,0,w-txt_area,0)
c2=c.crop(crop_c2,0,txt_area,0).ivtc_txt60mc(field_ref,srcbob=true,draft=draft)
c2=(show==false)?c2:c2.coloryuv(gain_v=32)
return (top==false)?StackHorizontal(c1,c2):StackHorizontal(c2,c1)
}
127:名無しさん@編集中
15/01/05 16:00:52.23 L1Rxa1ej.net
プルダウンした時のANIME+ロゴのコーミングを無理やり潰すの作った(適当)
縞以外にはほとんど影響ない(嘘)
URLリンク(i.imgur.com)
#FilterRangeで使用 例:FilterRange(4022, 4202, "APlogo()")
Function APlogo(clip clip)
{
clip1 = clip
clip1 = clip1.Crop(0, 0, -1220, -780).TDeint(mode=1,full=false,tryweave=true).nnedi3_rpow2(rfactor=2,nsize=6, nns=3, qual=1, etype=0, pscrn=4)
\.AssumeTFF().SeparateFields().SelectEvery(4, 0, 3).Weave().Spline36Resize(700, 300).Crop(4, 4, -4, -4)
return Overlay(clip, clip1, x=4, y=4,mode="blend", opacity=1.0)
}
128:名無しさん@編集中
15/01/06 12:11:26.29 JTe1OpXH.net
>>122
二重化とどう違うのかよくわからん
129:名無しさん@編集中
15/03/30 00:16:53.36 5BlOBuT/.net
酔った勢いで作る羽目になった動画用に寄せ集めて作った60p化モーション補間。
ブロックノイズっぽいのがいやで作成。
関数化するのはコレでいいのかな?
元はこれ。
QTGMC( Preset="Medium", ForceTR=2, SubPel=2 )
super = MSuper(rfilter = 4,pel=2, levels=1)
MFlowFps(super, QTGMC_bVec1,QTGMC_fVec1, num=60000, den=1001)
関数化。
function MFlowFps_QTGMC(clip clip)
{
clip = clip.QTGMC( Preset="Medium", ForceTR=2, SubPel=2 )
super = clip.MSuper(rfilter = 4,pel=2, levels=1)
clip = clip.MFlowFps(super, QTGMC_bVec1,QTGMC_fVec1, num=60000, den=1001)
return clip
}
130:名無しさん@編集中
15/03/30 01:03:29.20 XDV613wF.net
酔いが覚めたら深く、とても深く反省して下さいね。
131:名無しさん@編集中
15/04/11 20:27:39.44 s6Wi9Cpd.net
60p化モーション補間のMFlowFps_QTGMCだと、大きくゆっくり動くシーンなど崩れるときもあったのでMBlockFpsも改良。
function MBlockFps_QTGMC(clip clip)
{
clip = clip.QTGMC( Preset="Medium", ForceTR=2, SubPel=2 )
super = clip.MSuper(rfilter = 4,pel=2, levels=1)
clip = clip.MFlowBlur(super,QTGMC_bVec1,QTGMC_fVec1, blur=23)
super= clip.MSuper(rfilter = 4)
backward_1 = MAnalyse(super, chroma=false, isb=true, blksize=32, blksizev=32, searchparam=2, plevel=0, search=3, badrange=(-24))
forward_1 = MAnalyse(super, chroma=false, isb=false, blksize=32, blksizev=32, searchparam=2, plevel=0, search=3, badrange=(-24))
backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=16, blksizev=16, searchparam=2, search=3)
forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=16, blksizev=16, searchparam=2, search=3)
backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=8, blksizev=8, searchparam=1, search=3)
forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=8, blksizev=8, searchparam=1, search=3)
clip = clip.MBlockFps(super, backward_3, forward_3, num=60000, den=1001, mode=0)
return clip
}
clip = clip.MFlowBlur(super,QTGMC_bVec1,QTGMC_fVec1, blur=23)のblurを0にしてブラー無っぽく使用も出来ます。
132:名無しさん@編集中
15/10/07 11:41:37.44 S6hnwWgv.net
2passTIVTC等で、フレーム間の違いを書きだしたファイルを利用する人用
global radius = 0
scriptclip(last,"duptempsoften(current_frame,radius)")
ConditionalReader("DTSradius.txt", "radius", false)
function duptempsoften(clip clip, int frame,int radius) {
TF=Clip.Trim(frame,frame)
NF=Clip.Trim(frame+1,frame+1)
NF2=(radius>1)?Clip.Trim(frame+2,frame+2):NF
clip2=NF2++TF++NF
clip2=(radius>1)?clip2.TemporalSoften(1,256,256,50,mode=2):clip2.TemporalSoften(1,128,128,50,mode=2)
SF=Clip2.Trim(1,1)
B=Clip.Trim(0,frame-1)
A=Clip.Trim(frame+1,0)
B++SF++A
return last
}
133:名無しさん@編集中
15/11/25 15:51:03.17 wd62HWOj.net
しょぼくてもいいと聞いて。
LoadPlugin("LSMASHSource.dll")
function LSMASHSourceVA(string src, bool "audio")
{
audio = Default(audio, true)
ext = RightStr(src, 3)
isobmff = ((ext=="mp4") || (ext=="mov")) ? true : false
v = isobmff ? LSMASHVideoSource(src) : LWLibavVideoSource(src)
clip = audio ? isobmff ? AudioDub(v,LSMASHAudioSource(src)) : AudioDub(v,LWLibavAudioSource(src)) : v
return clip
}
134:名無しさん@編集中
16/01/29 22:18:07.96 OsMRL5qA.net
とりあえずこちらにも。
知り合いに精度が上がるようにと組んでもらった自動24fpsスクリプト。
PPは4にしてあるけど、7などお好みで。
function TIVTC24P6(clip clip){
sclip = clip.nnedi3(field=1)
Interp = clip.AssumeTFF().eedi3(field=1,sclip=sclip)
Deinted = clip.TDeint(order=1,field=1,edeint=Interp)
clip = clip.TFM(mode=6,order=1,PP=4,slow=2,mChroma=true,clip2=Deinted)
clip = clip.TDecimate(mode=1)
return clip
}
135:名無しさん@編集中
16/03/01 20:15:48.76 qBr77Mfq.net
TIVTC24P2関数に判定除外設定が組み込まれたもの
function TTNTto24p(clip clip, int "order", int "y0", int "y1")
{
order = default(order, -1)
y0 = default(y0, 0)
y1 = default(y1, 0)
matched = clip.TFM(mode=6, order=order, PP=0, slow=2, y0=y0, y1=y1)
interp = clip.AssumeTFF().SeparateFields().SelectEven().NNEDI3(dh=true)
deinted = matched.TDeint(order=order, full=false, cthresh=5, ap=15, aptype=2, mthreshl=2, expand=10, mtnmode=1, blockx=16, blocky=32, edeint=Interp)
ret = y0 == 0 ? deinted.TDecimate(mode=1) : deinted.cropbottom(deinted.height() - y0).TDecimate(mode=1. clip2=deinted)
return ret
}
私のまったく機能していない関数を叩き直してくれた
Avisynth初心者スレPart7の906氏に感謝
Avisynth 初心者質問スレ Part7
スレリンク(avi板:906-909番)
136:名無しさん@編集中
16/05/17 20:46:55.64 Z4oHciE1.net
function TDecimate24P6(clip clip, int "order", bool "plus", bool "PAL25", int "y0", int "y1")
{
order = default(order, -1)
plus = default(plus, false)
PAL25 = default(PAL25, false)
cy = (PAL25==true)? 6 : 5
y0 = default(y0, 720)
y1 = default(y1, 1040)
width = width(clip)
matched = clip.TFM(mode=6, order=order, PP=7, slow=2, y0=y0, y1=y1)
interp = (plus==true)? clip.eedi3(field=order) : clip.nnedi3(field=order)
tfm = (plus==true)? clip : matched
deinted = tfm.TDeint(mode=0, order=order, tryweave=true, full=false, expand=8, edeint=interp)
half = deinted.mt_lut("0", chroma="128", offx=1200, offy=120, w=155, h=850).mt_lut("0", chroma="128", offx=100, offy=118, w=158, h=850).
\ mt_lut("0", chroma="128", offx=270, offy=760, w=910, h=280)
full = deinted.mt_lut("0", chroma="128", offx=1625, offy=120, w=185, h=850).mt_lut("0", chroma="128", offx=100, offy=118, w=168, h=850).
\ mt_lut("0", chroma="128", offx=310, offy=760, w=1300, h=280)
mask2 = (width <= 1440)? half : full
masked = (plus==true)? deinted.mt_lut("0", chroma="128", offx=120, offy=24, w=420, h=230)
\ : mask2
return masked.TDecimate(mode=1, cycle=cy, clip2=deinted)
}
日本語字幕部分を黒くマスクして誤爆しないようにしたもの
初心者スレpart7で改良・助言してくださった方、ありがとうございました
137:131
16/06/15 15:20:48.18 HzGwm0nK.net
実写ソースで間引きをミスしてたから
TFMをTIVTC24P2と同じ並びに変更したもの
(aviutlのafsより高画質だろうと思って使っているのに使いこなすのが難しい・・)
function TDecimate24P6(clip clip, int "order", bool "plus", bool "PAL25", int "y0", int "y1")
{
order = default(order, -1)
plus = default(plus, false)
PAL25 = default(PAL25, false)
cy = (PAL25==true)? 6 : 5
y0 = default(y0, 720)
y1 = default(y1, 1040)
width = width(clip)
interp = (plus==true)? clip.eedi3(field=order) : clip.nnedi3(qual=2, field=order)
deinted = clip.TDeint(mode=0, order=order, tryweave=true, full=false, expand=8, edeint=interp)
clip = (plus==true)? clip : clip.TFM(mode=6, order=order, PP=7, slow=2, y0=y0, y1=y1)
half = deinted.mt_lut("0", chroma="128", offx=1200, offy=120, w=165, h=850).mt_lut("0", chroma="128", offx=100, offy=118, w=158, h=850).
\ mt_lut("0", chroma="128", offx=270, offy=760, w=910, h=280)
full = deinted.mt_lut("0", chroma="128", offx=1625, offy=120, w=195, h=850).mt_lut("0", chroma="128", offx=100, offy=118, w=168, h=850).
\ mt_lut("0", chroma="128", offx=280, offy=760, w=1400, h=280)
mask2 = (width <= 1440)? half : full
masked = (plus==true)? deinted.mt_lut("0", chroma="128", offx=120, offy=24, w=420, h=230)
\ : mask2
return masked.TDecimate(mode=1, cycle=cy, clip2=deinted)
}
138:名無しさん@編集中
16/06/15 15:37:18.52 4SKaI9ZT.net
高画質とか関係ない話
139:名無しさん@編集中
16/11/09 17:41:55.39 uyK6WPYn.net
貼る価値のないようなスクリプトですが・・
ちなみにスクリプトはchikuzen氏のyuy2converter、このスレ>17氏のものです
function ChangeYUY2(clip c)
{
# URLリンク(github.com)
# URLリンク(github.com)
return ConditionalFilter(c,
\ c.YV12To422(interlaced=true, yuy2=true, threads=false, avx2=false, b=0.3, c=0.3),
\ c.YV12To422(interlaced=false, yuy2=true, threads=false, avx2=false, b=0.3, c=0.3),
\ "IsCombed(cthresh=5,MI=60, mthresh=6)", "=", "true")
}
function ChangeYUY2a(clip c)
{
# URLリンク(github.com)
return ConditionalFilter(c,
\ c.InterlacedYV12ToYUY2_Yadifmod2,
\ c.ConvertToYUY2(interlaced=false),
\ "IsCombed(cthresh=5,MI=60, mthresh=6)", "=", "true")
}
function InterlacedYV12ToYUY2_Yadifmod2(clip source)
{
# URLリンク(github.com)
YD = source.Yadifmod2(mode=1).ConvertToYUY2.SeparateFields.SelectEvery(4,0,3).Weave
source.ConvertToYUY2.MergeChroma(YD)
}
140:名無しさん@編集中
17/01/06 11:03:48.59 k1girSuE.net
結局アニメ用と実写用で分けてシンプルに
インタレ解除プラグインを通すとどうしても絵が崩れたのでCombMergeQで保険的に潰すように
function CombMergeQ(clip clip)
{
video=clip
nne=video.nnedi3(field=-1)
mask_clip=combmask(video,cthresh=40,mthresh=6)
decomb=video.yadifmod2(mode=0, edeint=nne)
MaskedMerge(video, decomb, mask_clip,MI=60)
return last
}
function TDecimate24P7(clip clip, bool "PAL25", int "y0", int "y1")
{
PAL25 = default(PAL25, false)
cy = (PAL25==true)? 6 : 5
y0 = default(y0, 720)
y1 = default(y1, 1040)
width = width(clip)
clip2=clip.TFM(pp=0, order=-1, slow=2,y0=y0,y1=y1, mChroma=true)
half = clip.mt_lut("0", chroma="128", offx=1200, offy=120, w=165, h=850).mt_lut("0", chroma="128", offx=100, offy=118, w=158, h=850).
\ mt_lut("0", chroma="128", offx=270, offy=760, w=910, h=280)
full = clip.mt_lut("0", chroma="128", offx=1625, offy=120, w=195, h=850).mt_lut("0", chroma="128", offx=100, offy=118, w=168, h=850).
\ mt_lut("0", chroma="128", offx=280, offy=760, w=1400, h=280)
masked = (width <= 1440)? half : full
masked.TFM(pp=0, order=-1, slow=2).TDecimate(mode=1, cycle=cy,clip2=clip2)
return last
}
function TDecimate24P7A2(clip clip)
{#Clip1 のTDeintに"full=false"を使うと間引きミスが起きたので削除
clip1=clip.TDeint(mode=0, order=-1, tryweave=true, expand=10)
clip2=clip.TFM(PP=0)
masked = clip1.mt_lut("0", chroma="128", offx=120, offy=24, w=420, h=230)
masked.TDecimate(mode=1, clip2=clip2)
return last
}
141:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています