|
shinkiroo
Стаж: 14 лет 11 месяцев Сообщений: 357
|
shinkiroo ·
26-Дек-20 17:17
(3 года 10 месяцев назад, ред. 26-Дек-20 17:54)
Tempter57 писал(а):
80639291shinkiroo
Было бы неплохо, есть бы вы привели ещё и набор своих готовых скриптов по разделу аниме для различных типов исходников, поскольку я аниме не занимаюсь от слова совсем + большинство анимешников полностью перешло на VapourSynth.
Ну грубо говоря у меня только один универсальный скрипт и он по большей части чудовище Франкенштейна слепленного и из частей ваших скриптов результат которых мне больше всего нравился где-то подкручено где-то убрано с закоментированными вариантами фильтров что-бы выбрать какой где лучше подходит.
Если интересно то вот это чудо
скрытый текст
Код:
DGSource("VTS_01_1.dgi")
setmemorymax(3072)
#~ setmemorymax(6144)
#~ setmemorymax(8192)
#~ setmemorymax(10240)
#~ SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
ChangeFPS(last,last,true) # initiate a small forward buffer
CR=2 # Количество используемых потоков процессора () #===== Удаление радуги и плавающих точек=====
#~ Bifrost(interlaced=true)
#~ TComb(mode=0,fthreshL=4,othreshL=5,scthresh=1.3)
#~ DeCrow2() # На основе checkmate точки убирает хоошо но мылит картинку
#~ DeCrow3() # На основе DeDot
#~ DeDot(luma_2d=12,luma_T=28, chroma_T1=0, chroma_T2=255)
#~ fft3dfilter(bw=32,bh=32,ow=16,oh=16,bt=2,sigma=2.0,sigma2=2.5,sigma3=2.0,sigma4=2.0,plane=3,ncpu=1, interlaced=true) #===== Варианты Деинтерлейса===== TFM(mode=5,pp=5,MI=26,display=false, order=-1,field=-1,slow=1,cthresh=12,mthresh=3,chroma=false,ubsco=true,hint=true,opt=4,metric=0).TDecimate(mode=2,m2PA=true) #~ QTGMC(EdiMode="BWDIF+NNEDI3",ThSAD1=1500,MatchTR2=2,tr2=2).TDecimate(mode=2,m2PA=true)
#~ QTGMC(EdiExt=BWDIF(-2,edeint=nnedi3(-2)).Vinverse_avsi(),ThSAD1=1500,MatchTR2=2,tr2=2).TDecimate(mode=2,m2PA=true)
#~ QTGMC(preset="placebo",Lossless=2,SourceMatch=2,MatchPreset="placebo",MatchPreset2="placebo",MatchEdi="EEDI3+NNEDI3",EdiMode="EEDI3+NNEDI3",Edithreads=CR).TDecimate(mode=2,m2PA=true)
#~ QTGMC(preset="Slower",Lossless=0,SourceMatch=3,MatchPreset="Slower",MatchPreset2="Slower",MatchEdi="NNEDI3",EdiMode="BWDIF+NNEDI3",ThSAD1=350,MatchTR2=2,ThSAD2=256,tr2=2,Edithreads=CR,Sharpness=0.0).TDecimate(mode=2,m2PA=true)
#~ QTGMC(preset="Slower",Lossless=0,SourceMatch=1,MatchPreset="Fast",MatchPreset2="Medium",MatchEdi="NNEDI3",EdiMode="BWDIF+NNEDI3",ThSAD1=350,ThSAD2=250,MatchTR2=2,tr2=3,Edithreads=CR,Sharpness=0.0).TDecimate(mode=2,m2PA=true)
#~ QTGMC(preset="Medium",Lossless=0,SourceMatch=0,MatchPreset="Medium",MatchPreset2="Medium",MatchEdi="BWDIF+EEDI3",EdiMode="BWDIF+EEDI3",Edithreads=CR,FPSDivisor=2).TDecimate(mode=2,m2PA=true)
#~ QTGMC(preset="Medium",Lossless=0,SourceMatch=0,MatchPreset="Medium",MatchPreset2="Medium",MatchEdi="EEDI3+NNEDI3",EdiMode="EEDI3",Edithreads=CR,FPSDivisor=2).TDecimate(mode=2,m2PA=true) #~ bifrost(interlaced=true).ChubbyRain3(thr=12,expand=10,str=12) # DeRainbow
#~ o = last
#~ y = o.TFM(mode=1,pp=5,MI=50,display=false, order=1,field=1,slow=1,cthresh=11,mthresh=4,chroma=false,ubsco=false,hint=false,opt=4,metric=0) # order=0 if BBF
#~ qtgmc = o.QTGMC(preset="Placebo", Lossless=0, SourceMatch=0, MatchPreset="Fast", MatchPreset2="Medium",\
#~ EdiMode="EEDI3+NNEDI3", MatchEdi="TDeint", MatchEdi2="TDeint", MatchEnhance=0.10,\
#~ ThSAD1=215, ThSAD2=115, MatchTR2=1, tr0=2, tr1=2, tr2=2,\
#~ EZDenoise=0.0, EZKeepGrain=0.0, Sigma=0.5 ,Denoiser="dfttest",\
#~ Edithreads=CR, Sharpness=0.4, TrueMotion =true)
#~ qtgmc.Srestore(frate=23.976,dclip=y) #===== Шумодав помогает убрать Ghost эффект=====
#~ MCTemporalDenoise(settings="very low", edgeclean=true, ecrad=3, stabilize=true, maxr=2) # : 9.4fps
#~ MCTemporalDenoise(settings="low",edgeclean=true, ecrad=4,stabilize=true, maxr=3) # : 4.8fps
#~ MCTemporalDenoise(settings="medium", edgeclean=true, ecrad=2, stabilize=true, maxr=1) #: 3.4fps
#~ MCTemporalDenoise(settings="high", edgeclean=true, ecrad=3, stabilize=true, maxr=2) #: 2.6fps
#~ MCTemporalDenoise(settings="very high", edgeclean=true, ecrad=3, stabilize=true, maxr=2) #: 0.5fps
#~ TemporalSoften(4, 4, 4, 12, 2) #~ ChromaShiftSP(X=0, Y=0) #~ Trim(0, 0) #===== Восстановление информации по краям кадра=====
#~ c=last
#~ edgefix2(-4,16,0,0,0)
#~ F=FillMargins(9, 0, 7, 0)
#~ MergeChroma(f, chromaweight=1.00)
#~ quadratura(c.edgefix2(50,1,0,1,0),last,0,2,0,-2) #===== Upscale=====
#~ W = 960 H = 720
#~ W = 1280 H = 720
W = 1920 H = 1080
#~ W = 3840 H = 2160 #~ nnedi3_rpow2(rfactor=2, nsize=0, nns=4, qual=2, etype=0, pscrn=4, cshift="spline64resize", threads=8)
#~ aWarpSharp2(depth=4)
#~ Blackmanresize(W/2, H/2, taps=4) nnedi3_rpow2(rfactor=2, nsize=0, nns=4, qual=2, etype=0, pscrn=4, cshift="spline64resize", threads=CR)
aWarpSharp2(depth=4)
Blackmanresize(W, H, taps=4,0,0,-0,-0) #===== Upscale на основе нейронных сетей (тест)=====
#~ AiUpscale(Factor=2, Luma="Fast", Chroma="Lanczos", Width = 0, Height = 0, Double=0, Mode="Illustration", CPlace="MPEG2", OutDepth=8)
#~ AiUpscale(Factor=2, Luma="medium", Chroma="Lanczos", Width = 0, Height = 0, Double=0, Mode="Illustration", CPlace="MPEG2", OutDepth=8)
#~ AiUpscale(Factor=2, Luma="VDSR", Chroma="Lanczos", Width = 1920, Height = 1080, Double=0, Mode="Illustration", CPlace="MPEG2", OutDepth=8)
#~ AiUpscale(Factor=2, Luma="HQ", Chroma="Lanczos", Width = 1920, Height = 1080, Double=0, Mode="Illustration", CPlace="MPEG2", OutDepth=8)
#~ AiUpscale(Factor=2, Luma="HQ Sharp", Chroma="Lanczos", Width = 1920, Height = 1080, Double=0, Mode="Illustration", CPlace="MPEG2", OutDepth=8) # ==== Удаление Маскитног шума ====
#~ BlindPP(quant=28, cpu2="ooooxx")
#~ conv=MosquitoBuster_Get (freqflag=False)
#~ freq=MosquitoBuster_Get (freqflag=True)
#~ filtered=freq.smdegrain (tr=6,thsad=400,lsb_in=true,mode=-1,pel=1).smdegrain (tr=6,thsad=400,pel=1).smdegrain (tr=6,thsad=1200,pel=1,lsb_out=true)
#~ MosquitoBuster_Go (last, conv, freq, filtered) #===============Основной шумодав==============
#============ набор необходимых масок===========
source = last
src16 = source.U16()
mthr = 32 #~ m_edge = mt_edge("sobel", 7, 20).mt_inflate()
#~ m_edge = mt_edge("sobel",7,7,5,5).mt_inflate()
#~ m_edge = mt_edge("roberts",0,4,0,4).mt_inflate()
#~ m_edge = mt_edge("prewitt",0,255,0,0).mt_lut("x "+string(mthr)+" <= x 1 >> x 1.4 ^ ?").RemoveGrain(4,-1).mt_inflate()
m_edge = TEMmod(link=2, preblur=false).mt_lut("x "+string(mthr/5)+" <= x 1 >> x 4 << ?", U=1, V=1).mt_deflate().RemoveGrain( (w>1100) ? 20 : 11, -1 )
#~ m_edge = TCannyMod (mode=1, sigma=0.6, t_h=8.0, t_l=1.0, sobel=false, chroma=0, gmmax=255.0, opt=-1).mt_lut("x "+string(mthr)+" <= x 1 >> x 1 << ?", U=1, V=1).RemoveGrain((w>960) ? 20 : 11, -1).mt_inflate()
m_aa = m_edge.mt_expand() # маска для антиайлиазинга
m_halo = m_aa.mt_expand().mt_lutxy(m_edge, "x y -") # маска для DeHalo #~ # ==== варианты антиайлиазинга ====
aa_clp = source.maa2(mask=1, chroma=true, ss=2.4, aa=20, aac=12, threads=CR, show=0)
#~ aa_clp = source.TAAmbk(aatype=1, preaa=-1, postaa=false, sharp=0, mtype=0, cycle=0, dark=0.0)
#~ aa_clp = source.ediaa()
#~ aa_clp = source.HiAA(aa="nnedi3", mthr=17)
#~ aa_clp = source.daa()
#~ aa_clp = source.aaSW(multipler=2.0,mtype="prewitt",aa=24,expnd=true,extype="square",showmask=false,threads=CR)
#~ aa_clp = source.SantiagMod(type="nnedi3", strh=1, strv=1) #~ # ==== варианты DeHalo ====
#~ dh_clp = source.YAHR().DeHalo_alpha(2.5, 2.5, darkstr=0.2, brightstr=1.0, highsens=50, lowsens=50)
#~ dh_clp = source.YAHR().DeHalo_alpha(2.2, 2.2, darkstr=0.5, brightstr=0.8, highsens=100, lowsens=30)
#~ dh_clp = source.DeHalo_Alpha(2.4, 2.4, darkstr=0.2, brightstr=1.5, ss=1.5)
#~ dh_clp = source.DeHaloH(2, 20, Maska=false)
dh_clp = source.FineDehalo(rx=3.0, ry=3.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
#~ dh_clp = source.FineDehalo(rx=2.2, ry=2.2, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.4, brightstr=1.0, showmask=0, contra=0.0, excl=true) # Самый толковый дехало # ==== шумоподавление ====
tr=3
pre = source.dfttest(sigma=10,tbsize=1,dither=1,lsb=true,threads=CR).DitherPost(mode=6)
psuper = pre.MSuper(pel=2, sharp=2, rfilter=4, mt=true)
ssuper = MSuper(source, pel=2,sharp=2,levels=1,mt=true)
multi_vec = MAnalyse (psuper, delta=tr, blksize=8, overlap=2, truemotion=true, lambda=1000, mt=true, multi=true)
den = source.MDegrainN (ssuper, multi_vec, tr, thSAD=256, thSAD2=130, thSCD1=300, thSCD2=112, limit=135, lsb=true, mt=true) non_hl = Dither_merge16_8(den, aa_clp.U16, m_aa, U=3, V=3) # — смешивание aa_clp клипа с шумодавленным
Dither_merge16_8(non_hl, dh_clp.U16, m_aa, U=3, V=3) # — смешиание Dehalo клипа с non_hl # ==== HQDering ====
HQDeringmod(mrad=1, mthr=40, minp=2, incedge=true, sharp=1, Y=3, U=3, V=3, lsb_in=true, lsb=true) # ===== Варианты DeBanding =====
#~ f3kdb(dynamic_grain=false, input_mode=1, output_mode=1,grainY=0, grainC=0) # Без зерна
neo_f3kdb(sample_mode=3,y=80, cb=80, cr=80, grainy=80, grainc=80,range=20,dynamic_grain=true) #~ f3kdb(dynamic_grain=true, input_mode=0, output_mode=0,grainY=64, grainC=64)
#~ f3kdb_mod()
#~ GrainFL(g1str=10, g2str=7, g3str=0, g1size=1.3, g2size=1.0, g3size=0.7, g1soft=3, g2soft=3, g3soft=3, th1=24, th2=64, th3=96, th4=160, lsb=true, lsb_in=true) # ==== повышение резкости ====
#~ vsMSharpen(threshold=4.0, strength=34.0, mask=false, luma=true, chroma=false)
#~ FineSharp(mode=-1,sstr=0.3,xstr=0.11,lstr=1.49,pstr=1.272) LSFmod(strength=40, Smode=3, Smethod=2, kernel=11,
\ secure=false,
\ Szrp= 16, Spwr= 4, SdmpLo= 4, SdmpHi= 48,
\ Lmode=1,
\ soft=0, soothe=true, keep=48,
\ edgemode=1, edgemaskHQ=true,
\ defaults="fast") # ==== Дополнительный Antialiasing ====
#~ maa2(mask=1, chroma=true, ss=2.4, aa=20, aac=12, threads=CR, show=0)
#~ TAAmbk(aatype=1, preaa=-1, postaa=false, sharp=0, mtype=0, cycle=0, dark=0.0)
#~ HiAA(aa="nnedi3", mthr=17) #~ U16() # при подключении установить lsb_in=true в параметрах TAAmbk
#~ TAAmbk(lsb_in=false , lsb_out=true, aatype=1, preaa=-1, sharp=0, aarepair=24,postaa=true, mtype=1)
#~ TAAmbk(lsb_in=false , lsb_out=true, aatype=-3, preaa=-1, postaa=false, sharp=200, mtype=3, cycle=1, dark=0.0) # для пунктирных чёрных линий
#~ TAAmbk(lsb_in=false , lsb_out=true, aatype=1, preaa=0, postaa=false, sharp=50, mtype=0, cycle=0, dark=0.0) # мягкий
#~ TAAmbk(lsb_in=false , lsb_out=true, aatype=5, preaa=0, postaa=false, sharp=0, mtype=3, cycle=0, dark=0.0) # мягкий
# ==== варианты с шумоподвлением, затемнением и утончением контурных линий ====
#~ TAAmbk(lsb_in=false , lsb_out=true,aatype=-3, sharp=0.3, preaa=0, mtype=5, aarepair=0, nnedi3ocl=false, dark=0.2, thin=10, stabilize=1, cycle=0)
#~ TAAmbk(lsb_in=false , lsb_out=true,aatype=-3, sharp=90, preaa=0, mtype=5, aarepair=24, nnedi3ocl=false, dark=0.2, thin=10, stabilize=2, cycle=0)
#~ TAAmbk(lsb_in=false , lsb_out=true,aatype=-3, sharp=120, preaa=0, mtype=5, aarepair=24, nnedi3ocl=false, dark=0.2, thin=10, stabilize=3, cycle=0) # ==== Дополнительный Dehalo ====
#~ DeHaloHmod(Radius=2, Str=3, Maska=false, strong=true, mode=3, thr=140, analog=false, dirty=false, smooth=false)
FineDehalo(rx=2.2, ry=2.2, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.2, showmask=0, contra=0.0, excl=true) # ==== Затемнение линий =====
ConditionalFilter(last.FastLineDarkenMod(strength=28,threshold=1, thinning=10,luma_cap=200).aWarpSharp2(thresh=18, depth=24), last, "AverageLuma()",">","50")
#~ mToon(0.4) # clean some edges
#~ proToon()
#~ SuperToon(power=0.2)
#~ vmToon(strength=8, luma_cap=191, threshold=4, thinning=24, sharpen=false, mask=true, show=false, showclip="lines", ssw=4, ssh=4, xstren=255, xthresh=255) #===== Колор матрица=====
ColorMatrix(mode="Rec.601->Rec.709")
#~ z_ConvertFormat(colorspace_op="2020:st2084:2020:limited=>709:709:709:limited", pixel_type="YV12", dither_type="none")
#~ z_ConvertFormat(colorspace_op="709:709:709:limited=>2020:st2084:2020:limited", pixel_type="YV12", dither_type="none")
#~ ConvertToYV12(matrix="Rec2020") # ==== Раздельное применение колорматрица ,для цветности и яркости ====
#~ ConverttoYUY2()
#~ U = UToY8().ConverttoYV12().ColorMatrix(mode="Rec.601->Rec.709", clamp=0).ConverttoYUY2()
#~ V = VToY8().ConverttoYV12().ColorMatrix(mode="Rec.601->Rec.709", clamp=0).ConverttoYUY2()
#~ YToUV(U, V, last)
#~ ConverttoYV12() # ==== ресайз 16-битного видео ====
Dither_Resize16nr(W, H, kernel="spline36", noring=true) OUTPUT_BIT_DEPTH = 8 # изменить 10 на 8 при отладке или установить 16 без обрезани§ верхних битов скриптом (OUTPUT_BIT_DEPTH == 16) ? Eval("""
Dither_convey_yuv4xxp16_on_yvxx() # 16-бит
""") : (OUTPUT_BIT_DEPTH == 10) ? Eval("""
Down10(10, stack=false, dither=-3) # 10-бит
""") : Down10(8) # 8-бит #~ Prefetch(CR) # for AviSynth+
#~ Prefetch (SI_PhysicalCores ()/2) # for AviSynth+
Он кстати довольно часто обновляется, тут тема на doom9 недавно удобную фичу прикрутили, можно седать скриншот повесить его на горячую клавишу после чего изменит скрипт и быстро сранивать новый результат с тем что было, плюс наконецто начали адаптироват интерфейс под 4К мониторы, а то он совсем мелкий был. Можно нормально просматирвать скрипт с 10 битным выходом.
Tempter57 писал(а):
Смотрю, конечно, памяти Avisynth+64 тянет немеряно, лучше сразу 64 GB ОЗУ ставить или 32 GB, да и проц , как минимум Ryzen 7 2700 или Intel® Xeon® e5 2678 v3. Небожители с forum.doom9 сидят сейчас в основном на AMD Ryzen 9 3950X и круче...
У меня какраз Ryzen 7 2700Х и 16 гб оперативы и мой монстроскрипт с таким x265-ым
скрытый текст
Код:
avs2yuv64 -depth 10 "VIDEO- 01.avs" -o - | x265 - --y4m --profile main10 --level-idc 4.1 --output-depth 10 --crf 16.0 --deblock -1:-1 --b-adapt 2 --bframes 8 --ref 6 --min-keyint 24 --keyint 240 --qpmin 0 --qpmax 60 --qpstep 4 --qcomp 0.8 --aq-mode 3 --aq-strength 0.75 --no-cutree --me umh --merange 57 --subme 7 --psy-rd 2.00 --psy-rdoq 1.00 --rc-lookahead 240 --sar 1:1 --frame-threads 16 --colorprim bt709 --transfer bt709 --colormatrix bt709 -o "VIDEO- 01.hevc"
выдает 1,07fps
Я гдето читал что ависинту доступно тольок 1/4 от имеющейся оперативы но так и не опнял почему, возможно из-за этого у меня и крошится часто.
CHESNOK-sama писал(а):
80641464Подскажите, пожалуйста, как скачать программу.
Прохожу по ссылке в шапке, попадаю на страницу для скачивания установщика. Нажимаю Download, но ни чего не происходит. Не пойму в чем проблема.
XviD4PSP_5.10.346.0_(2015-04-07)_rc34.2.exe
|
|
CHESNOK-sama
Стаж: 14 лет 9 месяцев Сообщений: 617
|
CHESNOK-sama ·
26-Дек-20 17:27
(спустя 10 мин.)
shinkiroo, спасибо.
А еще подскажите пожалуйста чем отличаются версии программы? Я уже очень дано здесь не был забыл уже что было. Вот например на сайте winnydows.com есть и 6 и 7 и 8 версия и здесь вот пятая. Чем отличаются?
Помню, вроде бы которая здесь, какая-то самобытная с комплектом фильтров и пресетов. На на сайте winnydows.com вроде бы разработчик пошел дальше развивать в своем направлении. Что-то типа того. Или как оно все?
|
|
-Drakon-
Стаж: 16 лет 8 месяцев Сообщений: 337
|
-Drakon- ·
26-Дек-20 22:45
(спустя 5 часов, ред. 27-Дек-20 20:43)
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
27-Дек-20 12:11
(спустя 13 часов, ред. 27-Дек-20 12:11)
shinkiroo писал(а):
80638960Только вот при переходе на 64 бита я рассчитывал что AviSynth сможет использовать больше 3,5 Гб оперативы, а по факту он постоянно вылетает как только переваливает за этот размер и очень часто, за долбало уже.
Да, погорячился я. AviSynth+х64 v3.6.1 в совокупности с довольно тяжёлыми скриптами, точно не про моё старое железо на intel i5-3470 c 8GB ОЗУ. Можно, конечно, поприкалываться в конверторе готовить скрипты, у 10 битных скриптов править финишные строки, сохранять скрипты и открывать их для кодирования в 32 битном ffmpeg-4.3.1-win32-static, чтобы избежать ошибок GUI, но особого смысла в том нет: ffmpeg тоже довольно капризен, лучше уже кодировать через командную строку без него, передавать скрипт кодеку, например, с помощью avs2pipemod64.exe. Короче, надо, пока не обновлю железо на современное, ровно сидеть на заднице .
|
|
Мазизов
Стаж: 7 лет 5 месяцев Сообщений: 1129
|
Мазизов ·
27-Дек-20 14:20
(спустя 2 часа 9 мин., ред. 27-Дек-20 17:46)
Tempter57
Почитал последнюю дискуссию, подумал, и вернул назад третий пост.
Чувствую, скоро советами этой темы смогут воспользоваться 5-10 % пользователей программы, имеющие современное мощное железо.
А что делать остальным, у кого максимум 4-6-ти ядерные процессоры, и 8-16 GB памяти ? Ставить чудо-систему Windows 10, и вместо того, чтобы нормально работать, выгребать бесконечные проблемы ?
А потом напичкать эту систему какой-нибудь хернёй х64, сидеть, облизываться, и ждать когда появятся деньги на новое железо ?...
Думаю, мой пост ещё актуален для многих пользователей программы.
Tempter57 писал(а):
80632764Кстати по версиям AviSynth+: на MT v.2772 LWLibavVideoSource и FFmpegSource2 открывали исходники с Bit Depth >8bit без ошибки в окне просмотра при наличии автоматического подключения в скрипт строки ConvertYV12(), и её приходилось закрывать, чтобы не срезать битность до 8
Так ConvertYV12() не должна изменять битность, она только конвертирует цвет в YUV 4:2:0
Это неправильно. Если программа действительно 64 бита, она должна ставить свои компоненты в папки C:\Program Files и C:\Windows\System32. Только из этих папок будут правильно работать плагины х64, и система будет правильно выделять им память и обеспечивать многопоточность. Если плагины встают в другие папки, то это туфта, а не 64 бита. johnowenemmet
Цитата:
в топ-10 грустных новостей года
Вы рано начали грустить.
Закрыть программу может только её автор fcp, он пока таких заявлений не делал. Считаем, что он в длительном творческом отпуске.
Но даже если XviD4PSP 5.10.346 окажется последней версией, программа ещё долго будет востребована у тех, кто хочет нормально работать с видео, а не выпендриваться с обновками.
К тому же, компоненты программы можно обновлять вручную, на действительно актуальные версии. Правда, всё надо тестировать, т.к. некоторые вещи могут работать неправильно.
Вот Вы ставили AviSynth+, и функция с запуском заданий стала работать неправильно. Вопрос этот конечно спорный, всё ли Вы правильно обновили, но звоночек есть.
|
|
shinkiroo
Стаж: 14 лет 11 месяцев Сообщений: 357
|
shinkiroo ·
27-Дек-20 19:35
(спустя 5 часов, ред. 27-Дек-20 19:35)
shinkiroo писал(а):
80638960Только вот при переходе на 64 бита я рассчитывал что AviSynth сможет использовать больше 3,5 Гб оперативы, а по факту он постоянно вылетает как только переваливает за этот размер и очень часто, за долбало уже.
Все таки это какой-то отдельный plugin косячит. Сейчас вот по экспериментировал с таким скриптом
скрытый текст
Код:
DGSource("VTS_01_1.dgi")
setmemorymax(8192) SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
ChangeFPS(last,last,true) # initiate a small forward buffer CR=16 TFM(mode=1,pp=1,MI=20,display=false, order=-1,field=-1,slow=1,cthresh=11,mthresh=4,chroma=false,ubsco=false,hint=false,opt=4,metric=0).TDecimate(mode=2,m2PA=true)
AiUpscale(Factor=2, Luma="HQ", Chroma="Lanczos", Width = 1920, Height = 1080, Double=0, Mode="Illustration", CPlace="MPEG2", OutDepth=16)
ConvertToStacked()
SMDegrain(tr=4,thSAD=400, thSADC=200, prefilter=0, contrasharp=false, refinemotion=true, lsb_in=true, lsb_out =true, chroma=true, plane=0) TAAmbk(aatype=1, preaa=-1, postaa=false, sharp=0, mtype=0, cycle=0, dark=0.3, lsb_in=true , lsb_out=true) # вариант 2 мягкий FineDehalo(rx=2.6, ry=2.6, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
neo_f3kdb(sample_mode=3,y=90, cb=90, cr=90, grainy=100, grainc=100,range=10,dynamic_grain=true) z_ConvertFormat(colorspace_op="470bg:601:470bg:full=>709:709:709:full",dither_type="none")
#~ ColorMatrix(mode="Rec.601->Rec.709")
# ==== ресайз 16-битного видео ====
OUTPUT_BIT_DEPTH = 10 # изменить 10 на 8 при отладке или установить 16 без обрезани§ верхних битов скриптом
(OUTPUT_BIT_DEPTH == 16) ? Eval("""
Dither_convey_yuv4xxp16_on_yvxx() # 16-бит
""") : (OUTPUT_BIT_DEPTH == 10) ? Eval("""
Down10(10, stack=false, dither=-3) # 10-бит
""") : Down10(8) # 8-бит Prefetch(CR) # for AviSynth+
#~ Prefetch (SI_PhysicalCores ()/2) # for AviSynth+
Так он без проблем жрет 13 гигов памяти и грузит на 90% все 16 потоков, Красота!
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
27-Дек-20 21:43
(спустя 2 часа 8 мин., ред. 29-Дек-20 08:17)
shinkiroo
1. Почему временной шумодав на векторном анализе SMDegrain после апскейла? Это же очень долго, площадь обработки огромна
2. Апскейл на интелектуальных нейросетях AiUpscale вряд ли для данного конвертора, по крайней мере интересно послушать, как вы его адаптировали
3. Всегда считал FineDehalo.avsi 8-ми битным скриптом, поэтому слегка удивился, увидев его в 16 битном подключении, на мой взгляд так поступать нельзя.
Поскольку AiUpscale - мечта для многих со старым железом и для проeкта XviD4PSP5.10 , то прочим пользователем могу предложить всего лишь скрипт с апскейлом nnedi3_resize16.avsi, можно, конечно, и с тормознутым EDIResize16.avsi или SuperRes
скрытый текст
Import("C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\functions\AudioFunctions.avs")
Import("C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\functions\VideoFunctions.avs")
LoadPlugin("C:\Program Files (x86)\XviD4PSP 5\apps\DGMPGDec\DGDecode.dll")
LoadPlugin("C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\TIVTC.dll")
LoadPlugin("C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\SplineResize.dll") MPEG2Source("E:\Тесты\test.demuxed.index\test.demuxed.d2v", cpu=0, info=3) ConvertToYV12(interlaced = true)
TFM(order=1).TDecimate(hybrid=1) ###[FILTERING]###
XviD4PSPPluginsPath = "C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\"
LoadPlugin(XviD4PSPPluginsPath + "RGTools.dll")
LoadPlugin(XviD4PSPPluginsPath + "Sysinfo32.dll")
LoadPlugin(XviD4PSPPluginsPath + "masktools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "medianblur2.dll")
LoadPlugin(XviD4PSPPluginsPath + "SangNom.dll")
LoadPlugin(XviD4PSPPluginsPath + "SangNom2.dll")
LoadPlugin(XviD4PSPPluginsPath + "fturn-26.dll")
LoadPlugin(XviD4PSPPluginsPath + "deen.dll")
LoadPlugin(XviD4PSPPluginsPath + "dfttest.dll")
LoadPlugin(XviD4PSPPluginsPath + "ColorMatrix.dll")
LoadPlugin(XviD4PSPPluginsPath + "EEDI2.dll")
LoadPlugin(XviD4PSPPluginsPath + "EEDI3.dll")
LoadPlugin(XviD4PSPPluginsPath + "nnedi3.dll")
LoadPlugin(XviD4PSPPluginsPath + "nnedi3ocl.dll")
LoadPlugin(XviD4PSPPluginsPath + "DeBlock.dll")
LoadPlugin(XviD4PSPPluginsPath + "AddGrainC.dll")
LoadPlugin(XviD4PSPPluginsPath + "awarpsharp2.dll")
LoadPlugin(XviD4PSPPluginsPath + "warpsharp.dll")
LoadPlugin(XviD4PSPPluginsPath + "variableblur.dll")
LoadPlugin(XviD4PSPPluginsPath + "Fluxsmooth.dll")
LoadPlugin(XviD4PSPPluginsPath + "vinverse.dll")
LoadPlugin(XviD4PSPPluginsPath + "RemovegrainHD.dll")
LoadPlugin(XviD4PSPPluginsPath + "mvtools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "SmoothAdjust.dll")
LoadPlugin(XviD4PSPPluginsPath + "dither.dll")
LoadPlugin(XviD4PSPPluginsPath + "KNLMeansCL.dll")
LoadPlugin(XviD4PSPPluginsPath + "TCanny.dll")
LoadPlugin(XviD4PSPPluginsPath + "TCannymod.dll")
LoadPlugin(XviD4PSPPluginsPath + "TEMmod.dll")
LoadPlugin(XviD4PSPPluginsPath + "TEdgeMask.dll")
LoadPlugin(XviD4PSPPluginsPath + "Toon-v1.1.dll")
LoadPlugin(XviD4PSPPluginsPath + "MSharpen.dll")
LoadPlugin(XviD4PSPPluginsPath + "avsresize.dll")
LoadPlugin(XviD4PSPPluginsPath + "flash3kyuu_deband.dll")
LoadPlugin(XviD4PSPPluginsPath + "neo-f3kdb.dll")
LoadPlugin(XviD4PSPPluginsPath + "Shader.dll")
Import(XviD4PSPPluginsPath + "aa.avs")
Import(XviD4PSPPluginsPath + "Dither.avsi")
Import(XviD4PSPPluginsPath + "ContraSharpen_mod.avsi")
Import(XviD4PSPPluginsPath + "O16mod.avsi")
Import(XviD4PSPPluginsPath + "ALMerge.avsi")
Import(XviD4PSPPluginsPath + "TAAmbk_0.8.avsi")
Import(XviD4PSPPluginsPath + "Soothe.avs")
Import(XviD4PSPPluginsPath + "Zs_RF_Shared.avsi")
Import(XviD4PSPPluginsPath + "HQDeringmod.avsi")
Import(XviD4PSPPluginsPath + "nnedi3_resize16.avsi")
Import(XviD4PSPPluginsPath + "GrainFactoryLite_v1.2.avsi")
Import(XviD4PSPPluginsPath + "mt_xxpand_multi.avsi")
Import(XviD4PSPPluginsPath + "SmDegrain.avsi")
Import(XviD4PSPPluginsPath + "LumaDB_v0.7.avsi")
Import(XviD4PSPPluginsPath + "LSFmod.avsi")
Import(XviD4PSPPluginsPath + "FineDehalo.avsi")
Import(XviD4PSPPluginsPath + "DeHalo_alpha_mt2.avsi")
Import(XviD4PSPPluginsPath + "Shader.avsi")
Import(XviD4PSPPluginsPath + "AiUpscale.avsi") setmemorymax(3000) ChangeFPS(last,last,true) # initiate a small forward buffer # ==== деинтерлейс ========
#TFM(mode=1,pp=1,MI=20,display=false, order=-1,field=-1,slow=1,cthresh=11,mthresh=4,chroma=false,ubsco=false,hint=false,opt=4,metric=0).TDecimate(mode=2,m2PA=true) #ColorMatrix(mode="Rec.601->Rec.709") # # меняем матрицу колориметрии 8bit вариант 1 # toon(0.2) # затемнение линий # ===== шумодав ========
SMDegrain(tr=4,thSAD=400, thSADC=200, prefilter=0, contrasharp=false, refinemotion=true, lsb_in=false, lsb_out =true, chroma=true, plane=0) # ==== апскейл ===========
nnedi3_resize16(1920,1080, qual=2, nsize=4, nns=4, sharp=30, matrix="709", lsb_in=true, lsb=true, threads=1) # насчёт matrix="709" надо уточнить, где же будем менять /*
AiUpscale(Factor=2, Luma="HQ", Chroma="Lanczos", Width = 1920, Height = 1080, Double=0, Mode="Illustration", CPlace="MPEG2", OutDepth=16)
ConvertToStacked()
SMDegrain(tr=4,thSAD=400, thSADC=200, prefilter=0, contrasharp=false, refinemotion=true, lsb_in=true, lsb_out=true, chroma=true, plane=0)
*/ # ==== антиайлиазинг 16bit ====
TAAmbk(aatype=1, preaa=-1, postaa=false, sharp=0, mtype=0, cycle=0, dark=0.3, lsb_in=true , lsb_out=true) # ==== Dehalo ====
aa = last
f = aa.DitherPost (mode=-1) # 16 -> 8
dh = f.FineDehalo(rx=2.6, ry=2.6, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true) # 8 -> 8
mask = mt_lutxy (dh, f, "x y != 255 0 ?", u=0, v=0) # 8, 8 -> 8
dh16 = dh.ConvertBits(16). ConvertToStacked() # 8 -> 16
Dither_merge16_8 (aa, dh16, mask) # 16, 16, 8 -> 16 #==== Debandig 16 bit =====
neo_f3kdb(sample_mode=3,y=90, cb=90, cr=90, grainy=100, grainc=100,range=10,dynamic_grain=true) # меняем матрицу колориметрии 16bit вариант 3
# z_ConvertFormat(colorspace_op="470bg:601:470bg:full=>709:709:709:full",dither_type="none") # ==== Выход 16-битного видео ==== OUTPUT_BIT_DEPTH = 10 # изменить 10 на 8 при отладке или установить 16 без обрезания верхних битов скриптом
(OUTPUT_BIT_DEPTH == 16) ? Eval("""
Dither_convey_yuv4xxp16_on_yvxx() # 16-бит
""") : (OUTPUT_BIT_DEPTH == 10) ? Eval("""
Down10(10, stack=false, dither=-3) # 10-бит
""") : Down10(8) # 8-бит
P.S. AiUpscale всё таки запустился на конвертере Он мне показался хуже, чем с nnedi3_resize16(1920,1080, qual=2, nsize=4, nns=4, sharp=30, matrix="709", lsb_in=true, lsb=true, threads=1) . Наблюдаю просто жуткий звон на контурах!!!
Мазизов писал(а):
80646348Так ConvertYV12() не должна изменять битность, она только конвертирует цвет в YUV 4:2:0
это утверждение или всё же сомнение? Поставьте уже AviSynth+ 3.5.1, чтобы увидеть это предупреждение от автора, чтобы вы случайно не срезали битность. Просто в ранних версиях сам AviSynth+, когда натыкался на строку в скрипте ConvertYV12(), снижал битность клипа до 8 автоматически, поскольку цветовое пространство YV12 поддерживает только 8-ми битные исходники. Теперь автор установил предупреждение и вы сами вправе принять решение, как поступать в зависимости от ваших задач, типа: СТОЙ, ЧУВАК. ОСТАНОВИСЬ И ПОДУМАЙ, ЧТО ДЕЛАТЬ ДАЛЬШЕ!
Вы до сих пор не поняли с чем я долблюсь прежде всего на скриптах HDRtoSDR и ProRes?
Мазизов писал(а):
80646348Вот Вы ставили AviSynth+, и функция с запуском заданий стала работать неправильно. Вопрос этот конечно спорный, всё ли Вы правильно обновили, но звоночек есть.
например ? Если речь о верхнем скрине, то это скорее предупреждение от pinterf для пользователей, о том, что вы имеете дело с исходником, у которого Bit Depth >8 и надо открыть скрипт и закрыть\убрать строку ConvertYV12() (или дописать над ней CovertBits(8) и работать дальше), которую автор конвертера winnydows вбил в скрипт автоматом и даже не догадывался, что когда-то конвертер будет работать с исходниками высокой битности. Другой соавтор проекта fcp эту проблему тоже не исправил и покинул проект в 2015 году. Если вы великий программист, то вам и все карты в руки... Или, как говорит DTL: "Не царское это дело"...
Вообще к вам просьба: в начале разберитесь с сутью вопроса, а потом уже давайте ту или иную оценку.
Более подробно о проблемах конвертера и задачах по их устранению я привёл https://rutr.life/forum/viewtopic.php?p=79643159#79643159
|
|
shinkiroo
Стаж: 14 лет 11 месяцев Сообщений: 357
|
shinkiroo ·
27-Дек-20 23:02
(спустя 1 час 18 мин., ред. 28-Дек-20 00:18)
Tempter57 писал(а):
80648270shinkiroo1. Почему временной шумодав на векторном анализе SMDegrain после апскейла? Это же очень долго, площадь обработки огромна
Хороший вопрос. Грубо говоря да медленней но результат разный на апскейле он лучше убирает ненужный шум и оставляет нужные детали. Ну или это я рукожоп и не могу настроить на SD как нужно.
Tempter57 писал(а):
2. Апскейл на интеллектуальных нейросетях AiUpscale вряд ли для данного конвертера, по крайней мере интересно послушать, как вы его адаптировали
Да я особо и не предлагал использовать в данном конвертере, просто забыл в какой теме нахожусь, я то ей не пользуюсь здесь просто много полезной инфы по скриптам
Tempter57 писал(а):
3. Всегда считал FineDehalo.avsi 8-ми битным скриптом, поэтому слегка удивился, увидев его в 16 битном подключении, на мой взгляд так поступать нельзя.
real.finder говорил здесь что уже портировал его в HBD, я особо не искал есть ли другие 16 бит дехало (FineDehalo меня очень устраивает), вроде бы нет если судить по wiki.
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
27-Дек-20 23:37
(спустя 35 мин., ред. 27-Дек-20 23:37)
shinkiroo писал(а):
80649256real.finder говорил здесь что уже портировал его в HBD, я особо не искал есть ли другин 16 бит дехало (FineDehalo меня очень устраивает), вроде бы нет если судить по wiki.
Скорее всего подразумевалась его адаптация типа
Код:
ConvertBits(16)
FineDehalo()
ConvertToStacked()
или для вашего скрипта в том месте, где он стоит
Код:
ConvertFromStacked()
FineDehalo()
ConvertToStacked()
поскольку функция FineDehalo не имеет параметров lsb_in и lsb_out. Хотя не уверен, что прав, но для меня FineDehalo.avsi 1.1 mod8.78 формально пока 8bit скрипт, может просто real.finder в нём просто выполнил очередной хак, который работает, но не имеет полноценный 16 битный вход и выход. Хотя и пакет dither по сути тоже хак, который работает, и к которому все уже давно привыкли. В общем консультируйтесь у анимешников.
|
|
торрент иваниваныч
Стаж: 14 лет 11 месяцев Сообщений: 1158
|
торрент иваниваныч ·
27-Дек-20 23:46
(спустя 8 мин.)
shinkiroo
Я как раз искал 16битный дехало, получается, он подходит? Его так же, как и 8битный подключать? Можно как-то определить по содержимому фильтра, поддерживает ли он 16бит?
|
|
shinkiroo
Стаж: 14 лет 11 месяцев Сообщений: 357
|
shinkiroo ·
28-Дек-20 00:14
(спустя 27 мин.)
торрент иваниваныч писал(а):
80649628shinkiroo
Я как раз искал 16битный дехало, получается, он подходит? Его так же, как и 8битный подключать? Можно как-то определить по содержимому фильтра, поддерживает ли он 16бит?
Ну я заглянул внутрь, ничего не понятно но очень интересно :). Судя по тому, что там применяется 8 битные RemoveGrain, Medianblur и бог знает что еще, то можно считать что он 16и битный с костылем. Что имеем тому и рады, не первый костыль и не последний.
Особых настроек для подключения не требуется.
|
|
3000000003
Стаж: 15 лет 7 месяцев Сообщений: 35
|
3000000003 ·
28-Дек-20 01:31
(спустя 1 час 17 мин., ред. 28-Дек-20 01:31)
Tempter57
Мазизов
Я пошел другим путем, добавил битрейта там где требовалось.
скрытый текст
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference : 4 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 3 min 44 s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Writing library : x264 core 161 r3018 db0d417
Encoding settings : cabac=1 / ref=4 / deblock=1:-3:-3 / analyse=0x3:0x133 / me=umh / subme=11 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-2 / threads=6 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=16 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc=crf / mbtree=0 / crf=17.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / pb_ratio=1.30 / aq=3:0.70 / zones=000,302,crf=17/303,412,crf=16/413,466,crf=16.3/467,485,crf=15.5/486,526,crf=15/527,547,crf=16.3/548,562,crf=15.8/579,591,crf=17/592,609,crf=11.6/610,641,crf=12.3/642,651,crf=11.8/652,689,crf=17/690,719,crf=16/720,737,crf=16.6/836,863,crf=17.5/864,901,crf=11.8/902,906,crf=16.7/907,1019,crf=16/1020,1049,crf=16.5/1050,1084,crf=16/1085,1132,crf=13.8/1133,1143,crf=16.6/1144,1183,crf=16/1441,1490,crf=16.6/1491,1529,crf=16.9/1647,1687,crf=16.9/1721,1746,crf=15.9/1747,1773,crf=16.2/1870,1920,crf=17/1921,1942,crf=15/2133,2172,crf=11/2256,2270,crf=17/2271,2288,crf=14.3/2289,2308,crf=14.9/2377,2382,crf=17.3/2383,2415,crf=11.8/2416,2466,crf=13.9/2550,2558,crf=17/2559,2599,crf=13.5/3717,3754,crf=15/3755,3819,crf=17/3842,3863,crf=17/4025,4044,crf=17
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
При crf18 кодек давал всего 7500, а для этих мест нужно около 20000, при данных настройках. В общем
бандинга нигде нет, не считая того, который был в исходнике. Можно конечно меньше зон выделить, но тогда размер выходного файла был бы больше.
А вот еще немного безобразия из другого прореса.
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
28-Дек-20 13:30
(спустя 11 часов, ред. 29-Дек-20 15:51)
торрент иваниваныч
shinkiroo
Мне интересно, а почему вы не пытаетесь применять 16 битный HQDeringmod.avsi ?
И вообще ещё раз взглянул на скрипт и думаю: классическая схема апскейла
1. Деинтерлейс, правильный
2. Создание масок
3. создание клипа антиайлиазинга
4. Создание клипа dehalo, если требуется
5. Временной шумодав
6. наложение клипа aa на клип после шумодава по маске aa
7. наложение клипа dh по маске для дехало, если требуется
8. Апскейл ресайзом типа nnedi3_rpow2 \ SuperRes \ nnedi3_resize16.avsi \ AiUpscale
9. Dehalo(rx=1.5, ry=1.5) или FineDehalo
10. Сильный шарпенинг, кстати LSFmod тоже адаптирован к HBD по аналогичному костылю, как и FineDehalo.avsi, но не забываем о ContraSharpen_mod_16.avsi
11. Антиайлиазинг TAAmbk_0.8.avsi (тоже имеет свой шарпер, так, что предыдущий пункт можно совместить в нём) повторный, первый должен быть ещё на SD материале
12. двух, трёх уровневый дебандинг типа
Код:
GradFun3(smode=1, thr=0.61, elast=1.50, ampn=0, radius=12, ampo=0.9, dthr=0.011, lsb=true, lsb_in=true, mask=0)
#f3kdb(range=8, Y=48, Cb=36, Cr=36, grainY=0, grainC=0, input_mode=1, output_mode=1)
F3kdb(range=15,Y=64, Cb=64, Cr=64, grainY=0, grainC=0, input_mode=1, output_depth=16, output_mode=1)
13. Генератор зерна для сцен с разной степенью освещённости GrainFactory3mod_v1.2.avsi, типа
GrainFL(g1str=12, g2str=10, g3str=0, g1size=1.3, g2size=1.1, g3size=0.9, g1soft=3, g2soft=3, g3soft=3, th1=24, th2=64, th3=96, th4=160, lsb=true, lsb_in=true)
14. 16 битный выход
скрытый текст
setmemorymax(3000) ChangeFPS(last,last,true) # initiate a small forward buffer # ==== деинтерлейс ========
TFM(mode=1,pp=1,MI=20,display=false, order=-1,field=-1,slow=1,cthresh=11,mthresh=4,chroma=false,ubsco=false,hint=false,opt=4,metric=0).TDecimate(mode=2,m2PA=true) #ColorMatrix(mode="Rec.601->Rec.709") # # меняем матрицу колориметрии 8bit вариант 1 # набор необходимых масок
mthr = 32
# m_edge = mt_edge("sobel", 7, 20).mt_inflate()
m_edge = mt_edge("sobel",7,7,5,5).mt_inflate()
# m_edge = mt_edge("roberts",0,4,0,4).mt_inflate()
# m_edge = mt_edge("prewitt",0,255,0,0).mt_lut("x "+string(mthr)+" <= x 1 >> x 1.4 ^ ?").RemoveGrain(4,-1).mt_inflate()
# m_edge = TEdgeMask(link=2, preblur=false, valon=-1).mt_lut("x "+string(mthr/5)+" <= x 1 >> x 4 << ?", U=1, V=1).mt_deflate().RemoveGrain( (w>1100) ? 20 : 11, -1 )
# m_edge = tcanny(sigma=1.2, mode=1).mt_lut("x "+string(mthr)+" <= x 1 >> x 1 << ?", U=1, V=1).RemoveGrain((w>960) ? 20 : 11, -1).mt_inflate() m_aa = m_edge.mt_expand() # маска для антиайлиазинга
m_halo = m_aa.mt_expand().mt_lutxy(m_edge, "x y -") # маска для DeHalo aa_clp = aaSW(multipler=2.0,mtype="prewitt",aa=24,expnd=true,extype="square",showmask=false,threads=1) # антиайлиазинг
dh_clp = aa_clp.YAHR().Dehalo_alpha(rx=0.5,ry=0.1,ss=2) # подавление ореолов
aa_clp16 =aa_clp.ConvertBits(16). ConvertToStacked() # 8 -> 16
dh_clp16 =dh_clp.ConvertBits(16). ConvertToStacked() # 8 -> 16 # ===== шумодав ========
dn = last.SMDegrain(tr=4,thSAD=400, thSADC=200, prefilter=0, contrasharp=false, refinemotion=true, lsb_in=false, lsb_out =true, chroma=true, plane=0)
Dither_merge16_8 (dn, aa_clp16, m_aa) # 16, 16, 8 -> 16
Dither_merge16_8 (last, dh_clp16, m_halo) # 16, 16, 8 -> 16 # ==== апскейл ===========
nnedi3_resize16(1920,1080, qual=2, nsize=4, nns=4, sharp=30, matrix="601", lsb_in=true, lsb=true, threads=1) # Dehalo + утончение контурных линий WarpSharp
up = last
f = up.DitherPost (mode=-1)
dh = f.FineDehalo(rx=2.6, ry=2.6, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true).WarpSharp(90,6,170,0) mask = mt_lutxy (dh, f, "x y != 255 0 ?", u=0, v=0) # 8, 8 -> 8
dh16 = dh.ConvertBits(16). ConvertToStacked() # 8 -> 16
Dither_merge16_8 (up, dh16, mask) # 16, 16, 8 -> 16 # ==== антиайлиазинг 16bit ====
TAAmbk(aatype=1, preaa=-1, postaa=false, sharp=0, mtype=0, cycle=0, dark=0.3, lsb_in=true , lsb_out=true) HQDeringmod(mrad=2, mthr=60, minp=1, sharp=1, Y=3, U=2, V=2, lsb_in=true, lsb=true) # HQDering # Debandig 16 bit
GradFun3(smode=1, thr=0.61, elast=1.50, ampn=0, radius=12, ampo=0.9, dthr=0.011, lsb=true, lsb_in=true, mask=0)
f3kdb(range=8, Y=48, Cb=36, Cr=36, grainY=0, grainC=0, input_mode=1, output_mode=1)
#F3kdb(range=15,Y=64, Cb=64, Cr=64, grainY=0, grainC=0,sample_mode=2,dynamic_grain=false, input_mode=1, output_depth=16, output_mode=1) F3kdb(range=15,Y=64, Cb=64, Cr=64, grainY=64, grainC=64,sample_mode=2,dynamic_grain=false, input_mode=1, output_depth=16, output_mode=1)
# GrainFL(g1str=12, g2str=10, g3str=0, g1size=1.3, g2size=1.1, g3size=0.9, g1soft=3, g2soft=3, g3soft=3, th1=24, th2=64, th3=96, th4=160, lsb=true, lsb_in=true) # не подключил из-за слабого железа # меняем матрицу колориметрии 16bit вариант 2
z_ConvertFormat(colorspace_op="470bg:601:470bg:full=>709:709:709:full",dither_type="none") # ==== ресайз 16-битного видео ====
OUTPUT_BIT_DEPTH =10 # изменить 10 на 8 при отладке или установить 16 без обрезани§ верхних битов скриптом
(OUTPUT_BIT_DEPTH == 16) ? Eval("""
Dither_convey_yuv4xxp16_on_yvxx() # 16-бит
""") : (OUTPUT_BIT_DEPTH == 10) ? Eval("""
Down10(10, stack=false, dither=-3) # 10-бит
""") : Down10(8) # 8-бит
P.S.А ещё почитайте пояснения работы фильтров HBD с костылями на этой странице https://forum.doom9.org/showthread.php?t=174121&page=24
|
|
ED.LARIN
Стаж: 14 лет 10 месяцев Сообщений: 69
|
ED.LARIN ·
28-Дек-20 13:41
(спустя 11 мин.)
Может кто подскажет - у меня проблемма с FFmpegSource2 декодером - первый проход примерно как и второй - скорость примерно одинаковая (стоит синт+) и загрузка проца 50-60 процента- кодирую в AVC 1024x) - кодирую в основном без фильтров - может что в скрипт прописать или на декодере побольше потоков декодирования выставить? Проц 4 ядра- 4 потока - да на других декодерах этой проблеммы нет!
|
|
Мазизов
Стаж: 7 лет 5 месяцев Сообщений: 1129
|
Мазизов ·
28-Дек-20 15:46
(спустя 2 часа 4 мин., ред. 28-Дек-20 15:46)
Tempter57
Мазизов писал(а):
80646348Вот Вы ставили AviSynth+, и функция с запуском заданий стала работать неправильно. Вопрос этот конечно спорный, всё ли Вы правильно обновили, но звоночек есть.
Вы очевидно не заметили, но это я писал не Вам, а johnowenemmet, на вопрос которого отвечал - https://rutr.life/forum/viewtopic.php?p=79974892#79974892
Что касается ошибки "ConvertYV12() разрешена только на исходниках 8 бит" в AviSynth+ на исходниках более 8 бит, если правильно понимаю, на таких исходниках реализован другой способ конвертации цвета, нежели ConvertYV12(). Только из Ваших скриптов не понял, что это за способ.
Возьмём к примеру скрипт в этом посту.
Вы декодером LWLibavVideoSource загружаете автоматом в скрипт 10 бит 4:2:2, делаете дебандинг, и подаёте на кодер опять же 10 бит 4:2:2, но нам нужен цвет 4:2:0 . Получается, кодер будет делать ресайз цвета 4:2:2 в 4:2:0 ?
|
|
shinkiroo
Стаж: 14 лет 11 месяцев Сообщений: 357
|
shinkiroo ·
28-Дек-20 17:41
(спустя 1 час 55 мин., ред. 29-Дек-20 00:32)
Tempter57 писал(а):
80650616торрент иваниваныч
shinkiroo
Мне интересно, а почему вы не пытаетесь применять 16 битный HQDeringmod.avsi ?
И вообще ещё раз взглянул на скрипт и думаю: классическая схема апскейла
1. Деинтерлейс, правильный
2. Создание масок
3. создание клипа антиайлиазинга
4. Создание клипа dehalo, если требуется
5. Временной шумодав
6. наложение клипа aa на клип после шумодава по маске aa
7. наложение клипа dh по маске для дехало, если требуется
8. Апскейл ресайзом типа nnedi3_rpow2 \ SuperRes \ nnedi3_resize16.avsi , о вот AiUpscale оставил у меня самые негативные впечатления!!! см. выше, где скрипт
9. Dehalo(rx=1.5, ry=1.5) или FineDehalo
10. Сильный шарпенинг, кстати LSFmod тоже адаптирован к HBD по аналогичному костылю, как и FineDehalo.avsi, но не забываем о ContraSharpen_mod_16.avsi
11. Антиайлиазинг TAAmbk_0.8.avsi (тоже имеет свой шарпер, так, что предыдущий пункт можно совместить в нём) повторный, первый должен быть ещё на SD материале
12. двух, трёх уровневый дебандинг типа
Код:
GradFun3(smode=1, thr=0.61, elast=1.50, ampn=0, radius=12, ampo=0.9, dthr=0.011, lsb=true, lsb_in=true, mask=0)
#f3kdb(range=8, Y=48, Cb=36, Cr=36, grainY=0, grainC=0, input_mode=1, output_mode=1)
F3kdb(range=15,Y=64, Cb=64, Cr=64, grainY=0, grainC=0, input_mode=1, output_depth=16, output_mode=1)
13. Генератор зерна для сцен с разной степенью освещённости GrainFactory3mod_v1.2.avsi, типа
GrainFL(g1str=12, g2str=10, g3str=0, g1size=1.3, g2size=1.1, g3size=0.9, g1soft=3, g2soft=3, g3soft=3, th1=24, th2=64, th3=96, th4=160, lsb=true, lsb_in=true)
14. 16 битный выход
скрытый текст
setmemorymax(3000) ChangeFPS(last,last,true) # initiate a small forward buffer # ==== деинтерлейс ========
TFM(mode=1,pp=1,MI=20,display=false, order=-1,field=-1,slow=1,cthresh=11,mthresh=4,chroma=false,ubsco=false,hint=false,opt=4,metric=0).TDecimate(mode=2,m2PA=true) #ColorMatrix(mode="Rec.601->Rec.709") # # меняем матрицу колориметрии 8bit вариант 1 # набор необходимых масок
mthr = 32
# m_edge = mt_edge("sobel", 7, 20).mt_inflate()
m_edge = mt_edge("sobel",7,7,5,5).mt_inflate()
# m_edge = mt_edge("roberts",0,4,0,4).mt_inflate()
# m_edge = mt_edge("prewitt",0,255,0,0).mt_lut("x "+string(mthr)+" <= x 1 >> x 1.4 ^ ?").RemoveGrain(4,-1).mt_inflate()
# m_edge = TEdgeMask(link=2, preblur=false, valon=-1).mt_lut("x "+string(mthr/5)+" <= x 1 >> x 4 << ?", U=1, V=1).mt_deflate().RemoveGrain( (w>1100) ? 20 : 11, -1 )
# m_edge = tcanny(sigma=1.2, mode=1).mt_lut("x "+string(mthr)+" <= x 1 >> x 1 << ?", U=1, V=1).RemoveGrain((w>960) ? 20 : 11, -1).mt_inflate() m_aa = m_edge.mt_expand() # маска для антиайлиазинга
m_halo = m_aa.mt_expand().mt_lutxy(m_edge, "x y -") # маска для DeHalo aa_clp = aaSW(multipler=2.0,mtype="prewitt",aa=24,expnd=true,extype="square",showmask=false,threads=1) # антиайлиазинг
dh_clp = aa_clp.YAHR().Dehalo_alpha(rx=0.5,ry=0.1,ss=2) # подавление ореолов
aa_clp16 =aa_clp.ConvertBits(16). ConvertToStacked() # 8 -> 16
dh_clp16 =dh_clp.ConvertBits(16). ConvertToStacked() # 8 -> 16 # ===== шумодав ========
dn = last.SMDegrain(tr=4,thSAD=400, thSADC=200, prefilter=0, contrasharp=false, refinemotion=true, lsb_in=false, lsb_out =true, chroma=true, plane=0)
Dither_merge16_8 (dn, aa_clp16, m_aa) # 16, 16, 8 -> 16
Dither_merge16_8 (last, dh_clp16, m_halo) # 16, 16, 8 -> 16 # ==== апскейл ===========
nnedi3_resize16(1920,1080, qual=2, nsize=4, nns=4, sharp=30, matrix="601", lsb_in=true, lsb=true, threads=1) # Dehalo + утончение контурных линий WarpSharp
up = last
f = up.DitherPost (mode=-1)
dh = f.FineDehalo(rx=2.6, ry=2.6, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true).WarpSharp(90,6,170,0) mask = mt_lutxy (dh, f, "x y != 255 0 ?", u=0, v=0) # 8, 8 -> 8
dh16 = dh.ConvertBits(16). ConvertToStacked() # 8 -> 16
Dither_merge16_8 (up, dh16, mask) # 16, 16, 8 -> 16 # ==== антиайлиазинг 16bit ====
TAAmbk(aatype=1, preaa=-1, postaa=false, sharp=0, mtype=0, cycle=0, dark=0.3, lsb_in=true , lsb_out=true) HQDeringmod(mrad=2, mthr=60, minp=1, sharp=1, Y=3, U=2, V=2, lsb_in=true, lsb=true) # HQDering # Debandig 16 bit
GradFun3(smode=1, thr=0.61, elast=1.50, ampn=0, radius=12, ampo=0.9, dthr=0.011, lsb=true, lsb_in=true, mask=0)
f3kdb(range=8, Y=48, Cb=36, Cr=36, grainY=0, grainC=0, input_mode=1, output_mode=1)
#F3kdb(range=15,Y=64, Cb=64, Cr=64, grainY=0, grainC=0,sample_mode=2,dynamic_grain=false, input_mode=1, output_depth=16, output_mode=1) F3kdb(range=15,Y=64, Cb=64, Cr=64, grainY=64, grainC=64,sample_mode=2,dynamic_grain=false, input_mode=1, output_depth=16, output_mode=1)
# GrainFL(g1str=12, g2str=10, g3str=0, g1size=1.3, g2size=1.1, g3size=0.9, g1soft=3, g2soft=3, g3soft=3, th1=24, th2=64, th3=96, th4=160, lsb=true, lsb_in=true) # не подключил из-за слабого железа # меняем матрицу колориметрии 16bit вариант 2
z_ConvertFormat(colorspace_op="470bg:601:470bg:full=>709:709:709:full",dither_type="none") # ==== ресайз 16-битного видео ====
OUTPUT_BIT_DEPTH =10 # изменить 10 на 8 при отладке или установить 16 без обрезани§ верхних битов скриптом
(OUTPUT_BIT_DEPTH == 16) ? Eval("""
Dither_convey_yuv4xxp16_on_yvxx() # 16-бит
""") : (OUTPUT_BIT_DEPTH == 10) ? Eval("""
Down10(10, stack=false, dither=-3) # 10-бит
""") : Down10(8) # 8-бит
Ну так я почти так всегда и делю, за исключением того что я апскейл до фильтрации ставлю и HQDeringmod там есть.
Если убрать все лишнее из моего типичного скрипта из этого поста то он такой
скрытый текст
DGSource("VTS_01_1.dgi")
setmemorymax(8192)
#~ SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
ChangeFPS(last,last,true) # initiate a small forward buffer
CR=8 # Количество используемых потоков процессора () #===== Удаление радуги и плавающих точек=====
#~ Bifrost(interlaced=true)
#~ DeCrow2() # На основе checkmate точки убирает хоошо но мылит картинку
#===== Варианты Деинтерлейса===== TFM(mode=5,pp=5,MI=26,display=false, order=-1,field=-1,slow=1,cthresh=12,mthresh=3,chroma=false,ubsco=true,hint=true,opt=4,metric=0).TDecimate(mode=2,m2PA=true)
#~ QTGMC(preset="Medium",Lossless=0,SourceMatch=0,MatchPreset="Medium",MatchPreset2="Medium",MatchEdi="EEDI3+NNEDI3",EdiMode="EEDI3",Edithreads=CR,FPSDivisor=2).TDecimate(mode=2,m2PA=true) #===== Upscale=====
W = 1280 H = 720 #~ nnedi3_rpow2(rfactor=2, nsize=0, nns=4, qual=2, etype=0, pscrn=4, cshift="spline64resize", threads=8)
#~ aWarpSharp2(depth=4)
#~ Blackmanresize(W/2, H/2, taps=4) nnedi3_rpow2(rfactor=2, nsize=0, nns=4, qual=2, etype=0, pscrn=4, cshift="spline64resize", threads=CR)
aWarpSharp2(depth=4)
Blackmanresize(W, H, taps=4,0,0,-0,-0) #===============Основной шумодав==============
#============ набор необходимых масок============
source = last
src16 = source.U16()
mthr = 32 m_edge = TCannyMod (mode=1, sigma=0.6, t_h=8.0, t_l=1.0, sobel=false, chroma=0, gmmax=255.0, opt=-1).mt_lut("x "+string(mthr)+" <= x 1 >> x 1 << ?", U=1, V=1).RemoveGrain((w>960) ? 20 : 11, -1).mt_inflate()
m_aa = m_edge.mt_expand() # маска для антиайлиазинга
m_halo = m_aa.mt_expand().mt_lutxy(m_edge, "x y -") # маска для DeHalo #~ # ==== варианты антиайлиазинга ====
aa_clp = source.maa2(mask=1, chroma=true, ss=2.4, aa=20, aac=12, threads=CR, show=0)
#~ # ==== варианты DeHalo ====
dh_clp = source.FineDehalo(rx=3.0, ry=3.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
# ==== шумоподавление ====
tr=3
pre = source.dfttest(sigma=16,tbsize=1,dither=1,lsb=true,threads=CR).DitherPost(mode=6)
psuper = pre.MSuper(pel=2, sharp=2, rfilter=4, mt=true)
ssuper = MSuper(source, pel=2,sharp=2,levels=1,mt=true)
multi_vec = MAnalyse (psuper, delta=tr, blksize=8, overlap=2, truemotion=true, lambda=1000, mt=true, multi=true)
den = source.MDegrainN (ssuper, multi_vec, tr, thSAD=256, thSAD2=130, thSCD1=300, thSCD2=112, limit=135, lsb=true, mt=true) non_hl = Dither_merge16_8(den, aa_clp.U16, m_aa, U=3, V=3) # — смешивание aa_clp клипа с шумодавленным
Dither_merge16_8(non_hl, dh_clp.U16, m_aa, U=3, V=3) # — смешиание Dehalo клипа с non_hl # ==== Затемнение линий =====
ConditionalFilter(last.FastLineDarkenMod(strength=28,threshold=1, thinning=10,luma_cap=200).aWarpSharp2(thresh=18, depth=24), last, "AverageLuma()",">","50") # ==== HQDering ====
#~ HQDeringmod(mrad=2, mthr=40, minp=2, incedge=true, sharp=1, Y=3, U=3, V=3, lsb_in=true, lsb=true)
# ===== Варианты DeBanding =====
#~ f3kdb(dynamic_grain=false, input_mode=1, output_mode=1,grainY=0, grainC=0) # Без зерна
neo_f3kdb(sample_mode=3,y=80, cb=80, cr=80, grainy=80, grainc=80,range=20,dynamic_grain=true) # ==== повышение резкости ====
LSFmod(strength=40, Smode=3, Smethod=2, kernel=11, secure=false, Szrp= 16, Spwr= 4, SdmpLo= 4, SdmpHi= 48, Lmode=1, soft=0, soothe=true, keep=48, edgemode=1, edgemaskHQ=true, defaults="fast")
# ==== Дополнительный Antialiasing ====
#~ maa2(mask=1, chroma=true, ss=2.4, aa=20, aac=12, threads=CR, show=0)
TAAmbk(aatype=1, preaa=-1, postaa=false, sharp=0, mtype=0, cycle=0, dark=0.0, lsb_in=true, lsb_out=true) # ==== Дополнительный Dehalo ====
FineDehalo(rx=2.2, ry=2.2, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.2, showmask=0, contra=0.0, excl=true) # ==== ресайз 16-битного видео ====
Dither_Resize16nr(W, H, kernel="spline36", noring=true)
OUTPUT_BIT_DEPTH = 8 # изменить 10 на 8 при отладке или установить 16 без обрезани§ верхних битов скриптом
(OUTPUT_BIT_DEPTH == 16) ? Eval("""
Dither_convey_yuv4xxp16_on_yvxx() # 16-бит
""") : (OUTPUT_BIT_DEPTH == 10) ? Eval("""
Down10(10, stack=false, dither=-3) # 10-бит
""") : Down10(8) # 8-бит #~ Prefetch(CR) # for AviSynth+
#~ Prefetch (SI_PhysicalCores ()/2) # for AviSynth+
А с AiUpscale я буквально на той недел только эксперементировать начал и если будет "Г" получатя на этом все и закончится, хтоя должен сказать в некоторых местах оно вполне неплохо спрвляется, например хорошо восстанавливает мелкие линии, типа на ресницах или волосаз где они остро сходятся (Это все исключительно в применении к Аниме).
Спасибо почитаю, и ваш вариант скрипта попробую что то гдет от у себя наверния скорректирую.
К стати результат этого z_ConvertFormat(colorspace_op="470bg:601:470bg:full=>709:709:709:full",dither_type="none") кое где отличается от того что выдает это ColorMatrix(mode="Rec.601->Rec.709") сравнение
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
28-Дек-20 18:28
(спустя 47 мин., ред. 14-Янв-21 08:49)
Мазизов писал(а):
80651861Что касается ошибки "ConvertYV12() разрешена только на исходниках 8 бит" в AviSynth+ на исходниках более 8 бит, если правильно понимаю, на таких исходниках реализован другой способ конвертации цвета, нежели ConvertYV12(). Только из Ваших скриптов не понял, что это за способ
Это не ошибка, а предупреждение по типу того, что даёт конвертер при подключении фильтра AnmeIVTC, сообщая, что конвертер сам подключил штатный деинтерлейс и, пользователь, ты давай отключи его, если хочешь, чтобы сработал Anime IVTC. Я выше пояснил это детально, не понимаю, что вам неясно?
Мазизов писал(а):
80651861Вы декодером LWLibavVideoSource загружаете автоматом в скрипт 10 бит 4:2:2, делаете дебандинг, и подаёте на кодер опять же 10 бит 4:2:2, но нам нужен цвет 4:2:0 . Получается, кодер будет делать ресайз цвета 4:2:2 в 4:2:0 ?
1. Начну с того, что х264 всё по барабану, даже если на него подать 10bit 4:2:2 , то даже если у вас стоит High Profile и i420, он сделает на выходе 8bit i420 и просто допишет в командной строке --input-depth 10. То есть всё дальнейшее зависит у вас от настроек х264, хотя правильно будет поступать, как я скажу ниже для х265
2. Для х265 надо только подключать ту цветовую субдискретизацию, которая заложена скриптом или батнике для кодирования в ffmpeg -pix_fmt yuv420p10le, в противном случае получим крах с ошибкой при кодировании. Для решения вашей задачи надо просто сменить формат в скрипте:
скрытый текст
setmemorymax(3000) /*
W=1280 H=720
z_spline36resize(W, H, 0, 0, -0, -0)
*/ ConvertBits(16)
#z_ConvertFormat(pixel_type="YUV420P16") # подключить при кодировании c Chroma subsampling 4:2:0, если на входе 4:2:2 или 4:4:4
ConvertToStacked() # ==== DeBanding ==== GradFun3(smode=0, radius=20, thr=0.5, thrc=0.45, mask=0, lsb_in=true, lsb=true, Y=3, U=3, V=3) # for films
# SmoothGrad(radius=16, thr=0.75, elast=1.0, y=3, u=3, v=3).SmoothGrad(radius=8, thr=0.75, elast=1.0, y=3, u=3, v=3)
f3kdb(range=8, Y=48, Cb=36, Cr=36, grainY=0, grainC=0, input_mode=1, output_mode=1)
f3kdb(15, 64, 52, 52, 20, 20, dynamic_grain=true, input_mode=1, output_mode=1) /*
GradFun3(smode=1, thr=0.5, radius=32, lsb=true, lsb_in=true) # for anime
# SmoothGrad(radius=16, thr=0.75, elast=1.0, y=3, u=3, v=3).SmoothGrad(radius=8, thr=0.75, elast=1.0, y=3, u=3, v=3)
f3kdb(range=8, Y=48, Cb=36, Cr=36, grainY=0, grainC=0, input_mode=1, output_mode=1)
f3kdb(15, 64, 52, 52, 24, 0, dynamic_grain=false, input_mode=1, output_mode=1)
*/ OUTPUT_BIT_DEPTH = 10 # изменить 10 на 8 при отладке или установить 16 без обрезания верхних битов скриптом (OUTPUT_BIT_DEPTH == 16) ? Eval("""
Dither_convey_yuv4xxp16_on_yvxx() # 16-бит
""") : (OUTPUT_BIT_DEPTH == 10) ? Eval("""
Down10(10, stack=false, dither=-3) # 10-бит
""") : Down10(8) # 8-бит Prefetch (SI_PhysicalCores ()/2) # for AviSynth+
или поступить по-старому и изменить формат цветовой субдискретизации в декодере video = LWLibavVideoSource("E:\AVI_DVD\katy perry ft. Juicy J - Dark Horse.mov", stream_index=-1, cache=true, dr=false, format="YUV420P10").AssumeFPS(23.976)
|
|
Мазизов
Стаж: 7 лет 5 месяцев Сообщений: 1129
|
Мазизов ·
28-Дек-20 18:30
(спустя 1 мин.)
Tempter57 писал(а):
80652901z_ConvertFormat(pixel_type="YUV420P16")
Теперь понятно.
|
|
shinkiroo
Стаж: 14 лет 11 месяцев Сообщений: 357
|
shinkiroo ·
28-Дек-20 19:05
(спустя 34 мин., ред. 31-Дек-20 12:37)
______________Мой вариант _________________________________Ваш вариант _____________________________________AI
Мой вариант
DGSource("VTS_01_1.dgi")
setmemorymax(3072)
ChangeFPS(last,last,true) # initiate a small forward buffer #===== Варианты Деинтерлейса=====
TFM(mode=5,pp=5,MI=26,display=false, order=-1,field=-1,slow=1,cthresh=12,mthresh=3,chroma=false,ubsco=true,hint=true,opt=4,metric=0).TDecimate(mode=2,m2PA=true) #===== Upscale=====
W = 1920 H = 1080
nnedi3_rpow2(rfactor=2, nsize=0, nns=4, qual=2, etype=0, pscrn=4, cshift="spline64resize", threads=CR)
aWarpSharp2(depth=4)
Blackmanresize(W, H, taps=4,0,0,-0,-0) #============ набор необходимых масок===========
source = last
src16 = source.U16()
mthr = 32 m_edge = TEMmod(link=2, preblur=false).mt_lut("x "+string(mthr/5)+" <= x 1 >> x 4 << ?", U=1, V=1).mt_deflate().RemoveGrain( (w>1100) ? 20 : 11, -1 )
m_aa = m_edge.mt_expand() # маска для антиайлиазинга
m_halo = m_aa.mt_expand().mt_lutxy(m_edge, "x y -") # маска для DeHalo #~ # ==== варианты антиайлиазинга ====
aa_clp = source.maa2(mask=1, chroma=true, ss=2.4, aa=20, aac=12, threads=CR, show=0)
#~ # ==== варианты DeHalo ====
dh_clp = source.FineDehalo(rx=3.0, ry=3.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true) den = src16.SMDegrain(tr=4, thSAD=400, thSADC=200, prefilter=2, contrasharp=false, refinemotion=true, lsb_in=true, lsb_out=true, chroma=true, plane=0, pel=1, subpixel=2, blksize=8) # Fore HD
non_hl = Dither_merge16_8(den, aa_clp.U16, m_aa, U=3, V=3) # — смешивание aa_clp клипа с шумодавленным
Dither_merge16_8(non_hl, dh_clp.U16, m_aa, U=3, V=3) # — смешиание Dehalo клипа с non_hl # ==== HQDering ====
HQDeringmod(mrad=1, mthr=40, minp=2, incedge=true, sharp=1, Y=3, U=3, V=3, lsb_in=true, lsb=true) # ===== Варианты DeBanding =====
f3kdb(range=8, Y=48, Cb=36, Cr=36, grainY=0, grainC=0, input_mode=1, output_mode=1)
neo_f3kdb(sample_mode=3,y=80, cb=80, cr=80, grainy=80, grainc=80,range=20,dynamic_grain=true) # ==== повышение резкости ====
LSFmod(strength=40, Smode=3, Smethod=2, kernel=11, secure=false, Lmode=1, soft=0, soothe=true, keep=48, edgemode=1, edgemaskHQ=true, defaults="fast")
# ==== Дополнительный Antialiasing ==== FineDehalo(rx=2.2, ry=2.2, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.2, showmask=0, contra=0.0, excl=true)
# ==== Затемнение линий =====
ConditionalFilter(last.FastLineDarkenMod4(strength=28,threshold=1, thinning=10,luma_cap=200).aWarpSharp2(thresh=18, depth=24), last, "AverageLuma()",">","50") #===== Колор матрица=====
z_ConvertFormat(colorspace_op="470bg:601:470bg:full=>709:709:709:full",dither_type="none") # ==== ресайз 16-битного видео ====
OUTPUT_BIT_DEPTH = 10 # изменить 10 на 8 при отладке или установить 16 без обрезани§ верхних битов скриптом (OUTPUT_BIT_DEPTH == 16) ? Eval("""
Dither_convey_yuv4xxp16_on_yvxx() # 16-бит
""") : (OUTPUT_BIT_DEPTH == 10) ? Eval("""
Down10(10, stack=false, dither=-3) # 10-бит
""") : Down10(8) # 8-бит
Ваш вариант
DGSource("VTS_01_1.dgi")
setmemorymax(3000)
ChangeFPS(last,last,true) # initiate a small forward buffer
# ==== деинтерлейс ========
TFM(mode=1,pp=1,MI=20,display=false, order=-1,field=-1,slow=1,cthresh=11,mthresh=4,chroma=false,ubsco=false,hint=false,opt=4,metric=0).TDecimate(mode=2,m2PA=true)
#ColorMatrix(mode="Rec.601->Rec.709") # # меняем матрицу колориметрии 8bit вариант 1
# набор необходимых масок
mthr = 32
# m_edge = mt_edge("sobel", 7, 20).mt_inflate()
m_edge = mt_edge("sobel",7,7,5,5).mt_inflate()
# m_edge = mt_edge("roberts",0,4,0,4).mt_inflate()
# m_edge = mt_edge("prewitt",0,255,0,0).mt_lut("x "+string(mthr)+" <= x 1 >> x 1.4 ^ ?").RemoveGrain(4,-1).mt_inflate()
# m_edge = TEdgeMask(link=2, preblur=false, valon=-1).mt_lut("x "+string(mthr/5)+" <= x 1 >> x 4 << ?", U=1, V=1).mt_deflate().RemoveGrain( (w>1100) ? 20 : 11, -1 )
# m_edge = tcanny(sigma=1.2, mode=1).mt_lut("x "+string(mthr)+" <= x 1 >> x 1 << ?", U=1, V=1).RemoveGrain((w>960) ? 20 : 11, -1).mt_inflate()
m_aa = m_edge.mt_expand() # маска для антиайлиазинга
m_halo = m_aa.mt_expand().mt_lutxy(m_edge, "x y -") # маска для DeHalo
aa_clp =maa2(mask=1, chroma=true, ss=2.4, aa=20, aac=12, threads=8, show=0) # антиайлиазинг
dh_clp = aa_clp.YAHR().Dehalo_alpha(rx=0.5,ry=0.1,ss=2) # подавление ореолов
aa_clp16 =aa_clp.ConvertBits(16). ConvertToStacked() # 8 -> 16
dh_clp16 =dh_clp.ConvertBits(16). ConvertToStacked() # 8 -> 16
# ===== шумодав ========
dn = last.SMDegrain(tr=4,thSAD=400, thSADC=200, prefilter=0, contrasharp=false, refinemotion=true, lsb_in=false, lsb_out =true, chroma=true, plane=0)
Dither_merge16_8 (dn, aa_clp16, m_aa) # 16, 16, 8 -> 16
Dither_merge16_8 (last, dh_clp16, m_halo) # 16, 16, 8 -> 16
# ==== апскейл ===========
nnedi3_resize16(1920,1080, qual=2, nsize=4, nns=4, sharp=100, matrix="601", lsb_in=true, lsb=true, threads=1)
# Dehalo + утончение контурных линий WarpSharp
up = last
f = up.DitherPost (mode=-1)
dh = f.FineDehalo(rx=2.6, ry=2.6, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true).WarpSharp(90,6,170,0)
mask = mt_lutxy (dh, f, "x y != 255 0 ?", u=0, v=0) # 8, 8 -> 8
dh16 = dh.ConvertBits(16). ConvertToStacked() # 8 -> 16
Dither_merge16_8 (up, dh16, mask) # 16, 16, 8 -> 16
# ==== антиайлиазинг 16bit ====
TAAmbk(aatype=1, preaa=-1, postaa=false, sharp=0, mtype=0, cycle=0, dark=0.3, lsb_in=true , lsb_out=true)
HQDeringmod(mrad=2, mthr=60, minp=1, sharp=1, Y=3, U=2, V=2, lsb_in=true, lsb=true) # HQDering
# Debandig 16 bit
GradFun3(smode=1, thr=0.61, elast=1.50, ampn=0, radius=12, ampo=0.9, dthr=0.011, lsb=true, lsb_in=true, mask=0)
f3kdb(range=8, Y=48, Cb=36, Cr=36, grainY=0, grainC=0, input_mode=1, output_mode=1)
#F3kdb(range=15,Y=64, Cb=64, Cr=64, grainY=0, grainC=0,sample_mode=2,dynamic_grain=false, input_mode=1, output_depth=16, output_mode=1)
F3kdb(range=15,Y=64, Cb=64, Cr=64, grainY=64, grainC=64,sample_mode=2,dynamic_grain=false, input_mode=1, output_depth=16, output_mode=1)
# GrainFL(g1str=12, g2str=10, g3str=0, g1size=1.3, g2size=1.1, g3size=0.9, g1soft=3, g2soft=3, g3soft=3, th1=24, th2=64, th3=96, th4=160, lsb=true, lsb_in=true) # не подключил из-за слабого железа
# меняем матрицу колориметрии 16bit вариант 2
z_ConvertFormat(colorspace_op="470bg:601:470bg:full=>709:709:709:full",dither_type="none")
# ==== ресайз 16-битного видео ====
OUTPUT_BIT_DEPTH =10 # изменить 10 на 8 при отладке или установить 16 без обрезани§ верхних битов скриптом
(OUTPUT_BIT_DEPTH == 16) ? Eval("""
Dither_convey_yuv4xxp16_on_yvxx() # 16-бит
""") : (OUTPUT_BIT_DEPTH == 10) ? Eval("""
Down10(10, stack=false, dither=-3) # 10-бит
""") : Down10(8) # 8-бит
#~ Prefetch(CR) # for AviSynth+
#~ Prefetch (SI_PhysicalCores ()/2) # for AviSynth+
Что я наколупал с AI, пока без масок и всякого такого
DGSource("VTS_01_1.dgi")
ChangeFPS(last,last,true) # initiate a small forward buffer
SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
CR=16 TFM(mode=4,pp=6,MI=20,display=false, order=-1,field=-1,slow=2,cthresh=12,mthresh=6,chroma=false,ubsco=false,hint=false,opt=4,metric=0).TDecimate(mode=1,m2PA=false)
SMDegrain(tr=6,thSAD=400, thSADC=200, prefilter=3, contrasharp=false, refinemotion=true, lsb_in=false, lsb_out =false, chroma=true, plane=0, pel=2, subpixel=3, blksize=8) # Fore SD
AiUpscale(Factor=2, Luma="HQ", Chroma="Lanczos", Width = 1920, Height = 1080, Double=0, Mode="Illustration", CPlace="MPEG2", OutDepth=16)
ConvertToStacked()
#~ SMDegrain(tr=4, thSAD=400, thSADC=200, prefilter=2, contrasharp=false, refinemotion=true, lsb_in=true, lsb_out=true, chroma=true, plane=0, pel=1, subpixel=2, blksize=8) # Fore HD
vsMSmooth(threshold=1.8, strength=2.0, mask=false, luma=true, chroma=false)
# ==== шумоподавление ==== ConditionalFilter(last.FastLineDarkenMod2(strength=38,threshold=4, thinning=10,luma_cap=191).aWarpSharp2(thresh=18, depth=24), last, "AverageLuma()",">","50")
FineDehalo(rx=2.6, ry=2.6, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
neo_f3kdb(sample_mode=3,y=90, cb=90, cr=90, grainy=100, grainc=80,range=20,dynamic_grain=true) z_ConvertFormat(colorspace_op="470bg:601:470bg:full=>709:709:709:full",dither_type="none") # ==== ресайз 16-битного видео ====
OUTPUT_BIT_DEPTH = 10 # изменить 10 на 8 при отладке или установить 16 без обрезани§ верхних битов скриптом
(OUTPUT_BIT_DEPTH == 16) ? Eval("""
Dither_convey_yuv4xxp16_on_yvxx() # 16-бит
""") : (OUTPUT_BIT_DEPTH == 10) ? Eval("""
Down10(10, stack=false, dither=-3) # 10-бит
""") : Down10(8) # 8-бит
Prefetch(CR) # for AviSynth+
#~ Prefetch (SI_PhysicalCores ()/2) # for AviSynth+
upd: Мой вариант и AI На скринах перепутал местами. Сейчас как надо
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
28-Дек-20 19:15
(спустя 10 мин., ред. 29-Дек-20 13:50)
shinkiroo писал(а):
80653144vsMSmooth(threshold=1.8, strength=2.0, mask=false, luma=true, chroma=false)
ConditionalFilter(last.FastLineDarkenMod2(strength=38,threshold=4, thinning=10,luma_cap=191).aWarpSharp2(thresh=18, depth=24), last, "AverageLuma()",">","50")
FineDehalo(rx=2.6, ry=2.6, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
Вот эти три строки в 16bit скрипте меня напрягли, ладно с FineDehalo уже разбирались (хотя я остался при своём мнении), но верхние...
Цитата:
Dither_merge16_8(non_hl, dh_clp.U16, m_aa, U=3, V=3) # — смешиание Dehalo клипа с non_hl
а здесь не та маска применена
|
|
shinkiroo
Стаж: 14 лет 11 месяцев Сообщений: 357
|
shinkiroo ·
28-Дек-20 21:14
(спустя 1 час 59 мин.)
Tempter57 писал(а):
80653178
shinkiroo писал(а):
80653144vsMSmooth(threshold=1.8, strength=2.0, mask=false, luma=true, chroma=false)
ConditionalFilter(last.FastLineDarkenMod2(strength=38,threshold=4, thinning=10,luma_cap=191).aWarpSharp2(thresh=18, depth=24), last, "AverageLuma()",">","50")
FineDehalo(rx=2.6, ry=2.6, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
Вот эти три строки в 16bit скрипте меня напрягли, ладно с FineDehalo уже разбирались (хотя я остался при своём мнении), но верхние...
vsMSmooth написано 16 бит потдерживает
FastLineDarkenMod2 я тоже скачал у real.finder поэтому решил что он тоже окостылен, поищу замену
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
28-Дек-20 21:48
(спустя 34 мин., ред. 29-Дек-20 12:18)
shinkiroo
vsMSmooth "Входной клип для обработки. Он должен быть в 8..16-битном планарном формате". Собственно, как и многие скрипты real.finder, включая FineHalo.avsi и DeHalo_alpha_mt2.avsi .
Строку ConvertToStacked() в скрипте перенесите ниже z_ConvertFormat(colorspace_op="470bg:601:470bg:full=>709:709:709:full",dither_type="none") поскольку Finedehalo (по хаку) и neo-f3fdb может поддерживать высокобитный планарный формат , а z_ConvertFormat по идее тоже нужен планарный формат, надеюсь и строке затемнения линий тоже, но не уверен. И уберите строку #~ ColorMatrix(mode="Rec.601->Rec.709") со среды 16 битной обработки, не расстраивайте меня совсем. Её место где-то там выше, сразу после деинтерлейса
|
|
shinkiroo
Стаж: 14 лет 11 месяцев Сообщений: 357
|
shinkiroo ·
29-Дек-20 04:32
(спустя 6 часов, ред. 29-Дек-20 14:06)
Tempter57
Интересно почему дехало клип именно такой сделан YAHR().Dehalo_alpha(rx=0.5,ry=0.1,ss=2)? может тоже использовать FineDehalo?
Дело в том что я уже не однократно сталкивался с тем что YAHR() линии корежит и лучше его не использовать, как тут https://slow.pics/c/CvCfe2Sn
Покрутил ваш вариант скрипта, линии получаются мыльноватыми, решил поставить ресайзер в самом начале перед масками как я обычно делал, и результат стал гораздо лучше сравнение.
В итоге пришёл к тому что виновата маска, на апскейле она получается гораздо более точной с гладкими линиями, а если ресайз ставить после масок то получается такая вот кривая вся со ступеньками. SD версия____________________________________________HD версияm_edge = mt_edge("sobel",7,7,5,5).mt_inflate()________________m_edge = mt_edge("sobel",7,7,5,5).mt_inflate()
___________
Перепробовал все варианты масок и только с такой
Код:
TCannyMod(sigma=2.2, mode=1,sobel = false).mt_lut("x "+string(mthr)+" <= x 1 >> x 1 << ?", U=1, V=1).RemoveGrain((w>960) ? 20 : 11, -1).mt_inflate()
результат, ресайза после масок, стал практически таким как нужно, но глядя на маску меня берут сомнения в таком варианте, как то она не особо много чего выделяет.
а если sigma уменьшать становится хуже, больше размытых зон.
Мне кажется лучше все таки ставить апскейл в самом начале.
р.s. буду дальше ваш вариант пробовать.
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
29-Дек-20 16:08
(спустя 11 часов, ред. 30-Дек-20 10:10)
shinkiroo
shinkiroo писал(а):
80654956Интересно почему дехало маска именно такая сделана YAHR().Dehalo_alpha(rx=0.5,ry=0.1,ss=2)? может тоже использовать FineDehalo?
Это не дехало маска , а клип dehalo , думаю вы просто оговорились.
По поводу вариантов с YAHR().Dehalo_alpha(rx=0.5,ry=0.1,ss=2) применять его или нет на меня особо не рассчитывайте, пробуйте подключить в скрипт другие варианты:
# ==== варианты DeHalo ====
dh_clp = aa_clp.DeHaloHmod()
# dh_clp = aa_clp.DeHalo_alpha_mt(rx=2.0,ry=2.0,darkstr=1.0,brightstr=1.0,ss=1.5)
# dh_clp = aa_clp.YAHR(warpdepth=32).DeHalo_alpha_mt(darkstr=1.0,brightstr=1.4,rx=2.4,ry=2.4,highsens=100,lowsens=30)
# dh_clp = aa_clp.YAHR3(depth=32,radius=6,useawarp4=false).FineDehalo(rx=2.0, ry=2.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
# dh_clp = aa_clp.DeHaloH(2, 10, Maska=false)
/*
dh_clp = aa_clp.FineDehalo(rx=2.0, ry=2.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true).\
YAHRmask(expand=5, warpdepth=32).\
YAHR3(depth=32, radius=6)
*/
Собственно подходящий вариант надо подобрать под конкретный исходник.
На счёт контурных линий: не забывайте, что в вашем скрипте есть строка
ConditionalFilter(last.FastLineDarkenMod4(strength=28,threshold=1, thinning=10,luma_cap=200).aWarpSharp2(thresh=18, depth=24), last, "AverageLuma()",">","50")
которая затемняет, утончает и делает контурные линии по-резче.
Выполните также вариант двухступенчатого апскейла по типу:
W =1920 H=1080
nnedi3_rpow2(rfactor=2, nsize=0, nns=4, qual=2, etype=0, pscrn=4, cshift="spline64resize",threads=1)
WarpSharp(56,6,170,0)
# Blackmanresize(W/2, H/2, taps=4)
# SincLin2ResizeMT(W/2, H/2, taps=4, threads=1)
JincResize(W/2, H/2, tap=4) nnedi3_rpow2(rfactor=2, nsize=0, nns=4, qual=2, etype=0, pscrn=4, cshift="spline64resize",threads=1)
WarpSharp(56,6,170,0)
# BlackmanResize(W,H,taps=8)
# SincLin2ResizeMT(W, H, taps=8, threads=1)
JincResize(W, H, tap=8)
Просто вариант с применением nnedi3_rpow2(rfactor=2) дважды, лучше, чем один раз nnedi3_rpow2(rfactor=4)
Можно выполнить это сделать с 16 битным апскейлом nnedi3_resize16 сначала в 1280х720, а потом уже в 1920х1080
Только сделайте это и с AiUpscale, вы выполняете в нём с Factor=2 в размер Width = 1920, Height = 1080, а его ведь недостаточно
AiUpscale(Factor=2, Luma="HQ", Chroma="Lanczos", Width = 1920, Height = 1080, Double=0, Mode="Illustration", CPlace="MPEG2", OutDepth=8)
например , входной клип 720 х 408, вдвое это 1440 х 816, что далеко от 1920 х 1080. Вопрос: чем дальше растягиваете? Если одноступенчатый апскейл, то должен быть rfactor=4, а при rfactor=2 делайте апскейл дважды до разрешения Full HD.
И с клипами 16 битными планарными и стыковочными разобрались? А то промолчали в последнем своём посту. В вашем скрипте здесь https://rutr.life/forum/viewtopic.php?p=80653144#80653144 надо править не только это, но и порядок фильтров нарушен, например, LSFmod стоит после дебандера с генератором зерна, дебандер должен стоять последним в любом скрипте.
скрытый текст
setmemorymax(3000) ChangeFPS(last,last,true) # initiate a small forward buffer # ==== деинтерлейс ========
#TFM(mode=1,pp=1,MI=20,display=false, order=-1,field=-1,slow=1,cthresh=11,mthresh=4,chroma=false,ubsco=false,hint=false,opt=4,metric=0).TDecimate(mode=2,m2PA=true) #ColorMatrix(mode="Rec.601->Rec.709") # меняем матрицу колориметрии 8bit вариант 1 MergeChroma(aWarpSharp2(chroma=4)) W = width(last)
H = height(last) # набор необходимых масок
mthr = 32
# m_edge = mt_edge("sobel", 7, 20).mt_inflate()
# m_edge = mt_edge("sobel",7,7,5,5).mt_inflate()
# m_edge = mt_edge("roberts",0,4,0,4).mt_inflate()
# m_edge = mt_edge("prewitt",0,255,0,0).mt_lut("x "+string(mthr)+" <= x 1 >> x 1.4 ^ ?").RemoveGrain(4,-1).mt_inflate()
# m_edge = TEdgeMask(link=2, preblur=false, valon=-1).mt_lut("x "+string(mthr/5)+" <= x 1 >> x 4 << ?", U=1, V=1).mt_deflate().RemoveGrain( (w>1100) ? 20 : 11, -1 )
m_edge = tcanny(sigma=1.2, mode=1).mt_lut("x "+string(mthr)+" <= x 1 >> x 1 << ?", U=1, V=1).RemoveGrain((w>960) ? 20 : 11, -1).mt_inflate() m_aa = m_edge.mt_expand() # маска для антиайлиазинга
m_halo = m_aa.mt_expand().mt_lutxy(m_edge, "x y -") # маска для DeHalo aa_clp = aaSW(multipler=2.0,mtype="prewitt",aa=24,expnd=true,extype="square",showmask=false,threads=1) # антиайлиазинг
dh_clp = aa_clp.FineDehalo(rx=2.2, ry=2.2, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true).YAHRmask(expand=3, warpdepth=24)#, blur=2, useawarp4=true)
aa_clp16 =aa_clp.U16() # 8 -> 16
dh_clp16 =dh_clp.U16() # 8 -> 16 # ===== шумодав ========
dn = last.SMDegrain(tr=4, thSAD=400, thSADC=200, prefilter=2, contrasharp=false, refinemotion=true, lsb_in=false, lsb_out=true, chroma=true, plane=0, pel=2, subpixel=2, blksize=8)
Dither_merge16_8 (dn, aa_clp16, m_aa) # 16, 16, 8 -> 16
Dither_merge16_8 (last, dh_clp16, m_halo) # 16, 16, 8 -> 16
ConvertFromStacked() z_ConvertFormat(colorspace_op="170m:601:170m:full=>709:709:709:full",dither_type="none") # меняем матрицу колориметрии 16bit вариант 2
# z_ConvertFormat(colorspace_op="240m:601:240m:full=>709:709:709:full",dither_type="none")
# z_ConvertFormat(colorspace_op="470bg:601:470bg:full=>709:709:709:full",dither_type="none") # ==== апскейл =========== /*
W = 1920 H=1080 SuperResXBR(MatrixIn="Rec709")
#z_lanczosresize(W/2,H/2, taps=4)
#SincLin2ResizeMT(W/2, H/2, taps=4, threads=1)
JincResize(W/2, H/2, tap=4) SuperResXBR(MatrixIn="Rec709")
#z_lanczosresize(W,H, taps=4)
#SincLin2ResizeMT(W, H, taps=4, threads=1)
JincResize(W, H, tap=4)
*/ AiUpscale(Factor=4, Luma="HQ", Chroma="Lanczos", Width = 1920, Height = 1080, Double=0, Mode="Illustration", CPlace="MPEG2", OutDepth=16) vsMSmooth(threshold=1.8, strength=2.0, mask=false, luma=true, chroma=false) # пространственный сглаживатель FineDehalo(rx=2.4, ry=2.4, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true) # Dehalo # ==== Затемнение линий , обязательно в скрипт подключать только awarpsharpMT.dll =====
ConditionalFilter(last.FastLineDarkenMod4(strength=28,threshold=1, thinning=10,luma_cap=200).aWarpSharp2(thresh=18, depth=24), last, "AverageLuma()",">","50") ConvertToStacked() # ==== антиайлиазинг 16bit ====
TAAmbk(aatype=1, preaa=-1, postaa=false, sharp=200, mtype=0, cycle=0, dark=0.0, lsb_in=true , lsb_out=true) # вариант 2 мягкий # ==== Debandig 16 bit ====
GradFun3(smode=1, thr=0.5, radius=32, lsb=true, lsb_in=true)
# SmoothGrad(radius=16, thr=0.75, elast=1.0, y=3, u=3, v=3).SmoothGrad(radius=8, thr=0.75, elast=1.0, y=3, u=3, v=3)
f3kdb(range=8, Y=48, Cb=36, Cr=36, grainY=0, grainC=0, input_mode=1, output_mode=1)
f3kdb(15, 64, 64, 64, 64, 64, dynamic_grain=false, input_mode=1, output_mode=1) # ==== ресайз 16-битного видео ====
OUTPUT_BIT_DEPTH = 10 # изменить 10 на 8 при отладке или установить 16 без обрезани§ верхних битов скриптом
(OUTPUT_BIT_DEPTH == 16) ? Eval("""
Dither_convey_yuv4xxp16_on_yvxx() # 16-бит
""") : (OUTPUT_BIT_DEPTH == 10) ? Eval("""
Down10(10, stack=false, dither=-3) # 10-бит
""") : Down10(8) # 8-бит
|
|
shinkiroo
Стаж: 14 лет 11 месяцев Сообщений: 357
|
shinkiroo ·
29-Дек-20 16:18
(спустя 9 мин., ред. 29-Дек-20 16:18)
Tempter57 писал(а):
Это не дехало маска , а клип dehalo , думаю вы просто оговорились.
По поводу вариантов с YAHR().Dehalo_alpha(rx=0.5,ry=0.1,ss=2) применять его или нет на меня особо не рассчитывайте, пробуйте подключить в скрипт другие варианты:
# ==== варианты DeHalo ====
dh_clp = aa_clp.DeHaloHmod()
# dh_clp = aa_clp.DeHalo_alpha_mt(rx=2.0,ry=2.0,darkstr=1.0,brightstr=1.0,ss=1.5)
# dh_clp = aa_clp.YAHR(warpdepth=32).DeHalo_alpha_mt(darkstr=1.0,brightstr=1.4,rx=2.4,ry=2.4,highsens=100,lowsens=30)
# dh_clp = aa_clp.YAHR3(depth=32,radius=6,useawarp4=false).FineDehalo(rx=2.0, ry=2.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
# dh_clp = aa_clp.DeHaloH(2, 10, Maska=false)
/*
dh_clp = aa_clp.FineDehalo(rx=2.0, ry=2.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true).\
YAHRmask(expand=5, warpdepth=32).\
YAHR3(depth=32, radius=6)
*/
Собственно подходящий вариант надо подобрать под конкретный исходник.
Да пардонте, оговорился 3 часа ночи как ни как :x. ну собственно я так и думал буду подбирать.
Tempter57 писал(а):
На счёт контурных линий: не забывайте, что в вашем скрипте есть строка
ConditionalFilter(last.FastLineDarkenMod4(strength=28,threshold=1, thinning=10,luma_cap=200).aWarpSharp2(thresh=18, depth=24), last, "AverageLuma()",">","50")
которая затемняет, утончает и делает контурные линии по-резче.
Про нее я всегда помню, в любом случае если ставить ресайз в начали уже ни чего почти уточнять не нужно, вон даже здесь я силу затемнителя и варпшарпа почти на минимум поставил, часто вообще не нужен бывает.
Tempter57 писал(а):
Просто вариант с применением nnedi3_rpow2(rfactor=2) дважды, лучше, чем один раз nnedi3_rpow2(rfactor=4)
Можно выполнить это сделать с 16 битным апскейлом nnedi3_resize16 сначала в 1280х720, а потом уже в 1920х1080
Только сделайте это и с AiUpscale, вы выполняете в нём с Factor=2 в размер Width = 1920, Height = 1080, а его ведь недостаточно
AiUpscale(Factor=2, Luma="HQ", Chroma="Lanczos", Width = 1920, Height = 1080, Double=0, Mode="Illustration", CPlace="MPEG2", OutDepth=8)
например , входной клип 720 х 408, вдвое это 1440 х 816, что далеко от 1920 х 1080. Вопрос: чем дальше растягиваете? Если одноступенчатый апскейл, то должен быть rfactor=4, а при rfactor=2 делайте апскейл дважды до разрешения Full HD.
Ах да я об это не упоминал но конечный результат у меня будет 1280х720 так что rfactor2 будет достаточно. Но инфа полезная спасибо.
По этому же я из этого куска только нижнюю половину всегда использовал.
Tempter57 писал(а):
Выполните также вариант двухступенчатого апскейла по типу:
W =1920 H=1080
nnedi3_rpow2(rfactor=2, nsize=0, nns=4, qual=2, etype=0, pscrn=4, cshift="spline64resize",threads=1)
WarpSharp(56,6,170,0)
# Blackmanresize(W/2, H/2, taps=4)
# SincLin2ResizeMT(W/2, H/2, taps=4, threads=1)
JincResize(W/2, H/2, tap=4) nnedi3_rpow2(rfactor=2, nsize=0, nns=4, qual=2, etype=0, pscrn=4, cshift="spline64resize",threads=1)
WarpSharp(56,6,170,0)
# BlackmanResize(W,H,taps=8)
# SincLin2ResizeMT(W, H, taps=8, threads=1)
JincResize(W, H, tap=8)
Единственное когда я первый раз пробовал этот двухступенчатый ресайз, то на мой вкус два раз WarpSharp делать не очень хорошо, слишком утончаются линии и кое где немного геометрия искажается. А так как я DVD апскейлю максиму до 1280х720 то результат только нижней половины мне очень понравился.
Только смотрю тут у вас добавились два вариант каких то новых ресайзеров SincLin2ResizeMT и JincResize есть какие-то особенности плюсы минусы по ним?
Tempter57 писал(а):
И с клипами 16 битными планарными и стыковочными разобрались? А то промолчали в последнем своём посту. В вашем скрипте здесь https://rutr.life/forum/viewtopic.php?p=80653144#80653144 надо править не только это, но и порядок фильтров нарушен, например, LSFmod стоит после дебандера с генератором зерна, дебандер должен стоять последним в любом скрипте.
Сложно сказать разобрался я или нет, как я понял планарные 16 бит это честные вроде YUV420P16, а стыковочные это YV12 8 битный костыль, выглядит как раздвоенный кадр, сверху обычный, снизу напоминающий какую-то кашу с доп информацией. В итоге имеем плагины которые поддерживаю либо планарные 16 бит либо стыковые, на счет поддержки и того и другого не уверен. Ну и собственно от этого зависит где нужно применять ConvertToStacked(), а где сам плагин может это делать (параметры lsb_in=true, lsb_out=true как раз для этого).
из всего выше сказанного упрощенная схема будет выглядеть так (но я не уверен.)
8бит исходник
8бит деинтерлей
8бит какой ни буть фильтр
конвертация в честные 16 бит
16 бит фильтр
конвертация в стековые 16 бит ConvertToStacked()
16бит стековый фильтр
конвертация в честные 16 бит ConvertFromStacked()
конвертация в 10бит кодирование в x265 10bit
|
|
торрент иваниваныч
Стаж: 14 лет 11 месяцев Сообщений: 1158
|
торрент иваниваныч ·
29-Дек-20 16:45
(спустя 26 мин.)
Фильтры лучше работают на высоком разрешении, поэтому апскейл лучше делать в начале. nnedi3_resize16 хуже для апскепйла, чем nnedi3_rpow2.
По дехало, можно ставить несколько подряд.
Для 720-480:
Код:
FineDehalo(rx=2.0, ry=2.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
YAHRmask(expand=3, warpdepth=24) # blur=2, useawarp4=true
Для 1280-720:
Код:
FineDehalo(rx=2.0, ry=2.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
YAHRmask(expand=5, warpdepth=32) # blur=2, useawarp4=true
YAHR3(depth=32, radius=6) # blur=2, honly=true, lumaonly=true, useawarp4=true
Также можно ставить фильтры между nnedi3_rpow2 и ресайзером, например:
Код:
nnedi3_rpow2(rfactor=2, cshift="spline36resize", nns=4, qual=2, threads=4)
TAAmbk(aatype=-3, preaa=-1, postaa=false, sharp=200, mtype=3, mthr=32, thin=0, aarepair=0, stabilize=0, cycle=0, dark=0.0)
FineDehalo(rx=2.0, ry=2.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=0.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
YAHRmask(expand=5, warpdepth=32) # blur=2, useawarp4=true
YAHR3(depth=32, radius=6) # blur=2, honly=true, lumaonly=true, useawarp4=true
blackmanresize(1280, 720, taps=8)
Два раза подряд nnedi3_rpow2 идея интересная. Есть хороший вариант для аа обычных рипов:
Код:
nnedi3_rpow2(rfactor=4, cshift="spline36resize", fwidth=960, fheight=640, nsize=3, nns=4, pscrn=2, threads=4)
maa2(mask=1, chroma=true, ss=2.4, aa=20, aac=12, threads=4, show=0)
Spline64Resize(720, 480)
Здесь можно попробовать заменить.
Если подать на новый FineDeHalo 16bit stak, он действительно будет работать в 16 бит, или сделает внутри себя преобразование 16бит -> фильтр 8бит -> 16бит?
Есть ли дехало для интерлейса?
|
|
neurologkhv
Стаж: 12 лет 6 месяцев Сообщений: 317
|
neurologkhv ·
30-Дек-20 01:10
(спустя 8 часов)
-Drakon- писал(а):
80643541del
Зря удалили.
Если кадр разделить на несколько участков, то к этим участкам можно применять разные настройки?
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
04-Янв-21 14:47
(спустя 5 дней, ред. 11-Янв-21 20:18)
Отредактировал многие скрипты аниме, обновил свой архив со второго поста темы.
|
|
sergka71
Стаж: 12 лет 7 месяцев Сообщений: 13
|
sergka71 ·
09-Янв-21 16:49
(спустя 5 дней)
Простите, не осталось ли у кого старого архива plugins_filtering? Конкретно интересуюсь фильтром Anime HD MDeGrain3??? (вроде он так назывался). В новом архиве не нашел его, а старые архивы у меня погибли.
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
09-Янв-21 17:07
(спустя 17 мин., ред. 09-Янв-21 17:07)
sergka71
скрытый текст
#avstp.dll
#RGTools.dll
#mvtools2mod.dll
#masktools2.dll
#SmoothAdjust.dll
#medianblur2.dll
#flash3kyuu_deband.dll
#Dither.dll
#SangNom2.dll
#fturn-26.dll
#maa2.avsi
#Dither.avsi
#minblur.avs
#mt_xxpand_multi.avsi
#FastLineDarken 1.4x MT MOD.avsi # setmemorymax(1024)
ChangeFPS(last,last,true) # initiate a small forward buffer super_search = MinBlur(2,1).MSuper(rfilter=4,pel=1,hpad=16,vpad=16,chroma=false) bv3 = super_search.MAnalyse(isb = true, delta = 3, overlap=8, blksize=16, truemotion=false,chroma=false)
bv3 = super_search.MRecalculate( bv3, thSAD=200, overlap=4, blksize=8, truemotion=false,chroma=false)
bv2 = super_search.MAnalyse(isb = true, delta = 2, overlap=8, blksize=16, truemotion=false,chroma=false)
bv2 = super_search.MRecalculate( bv2, thSAD=200, overlap=4, blksize=8, truemotion=false,chroma=false)
bv1 = super_search.MAnalyse(isb = true, delta = 1, overlap=8, blksize=16, truemotion=false,chroma=false)
bv1 = super_search.MRecalculate( bv1, thSAD=200, overlap=4, blksize=8, truemotion=false,chroma=false)
fv1 = super_search.MAnalyse(isb = false, delta = 1, overlap=8, blksize=16, truemotion=false,chroma=false)
fv1 = super_search.MRecalculate( fv1, thSAD=200, overlap=4, blksize=8, truemotion=false,chroma=false)
fv2 = super_search.MAnalyse(isb = false, delta = 2, overlap=8, blksize=16, truemotion=false,chroma=false)
fv2 = super_search.MRecalculate( fv2, thSAD=200, overlap=4, blksize=8, truemotion=false,chroma=false)
fv3 = super_search.MAnalyse(isb = false, delta = 3, overlap=8, blksize=16, truemotion=false,chroma=false)
fv3 = super_search.MRecalculate( fv3, thSAD=200, overlap=4, blksize=8, truemotion=false,chroma=false) MDegrain3(MSuper(levels=1,pel=1,hpad=16,vpad=16,chroma=false), bv1, fv1, bv2, fv2, bv3, fv3, plane=0, thSAD=400, lsb=true) F = DitherPost(Mode=-1)
aa = F.maa2(aa=48,ss=2.0,chroma=true,threads=1)
S = aa.FastLineDarkenMod()
D = MT_MakeDiff(S,aa).Dither_Convert_8_To_16()
Dither_Add16(Last,D,Dif=True,U=2,V=2) GradFun3(Radius=16,Lsb_In=True,Lsb=True).F3kdb(range=15,Y=52, Cb=36, Cr=36, grainY=28, grainC=10, input_mode=1, output_depth=16, output_mode=1) DitherPost(mode=6)
SmoothLevels(0,1.0,255,0,255, useopt=0, HQ=true, useMT=1) # Назначение: для обработки аниме и Cartoon с повышенным уровнем шума
# Подавление радужности изображения по умолчанию: нет
# Тип затемнения линий по умолчанию: FastLineDarkenMod
# Тип антиайлизинга по умолчанию: нет
# Тип шумоподавителя: на основе векторного анализа оценки движения и его функций MDegrain3
# Тип шарпера: нет
# Наличие фильтра DeBanding по умолчанию: GradFun3 + F3kdb
# Скорость обработки: медленная
Потребуется переименовать #mvtools2mod.dll на #mvtools2.dll и для maa2 надо подключить #Zs_RF_Shared.avsi
|
|
|