|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
14-Мар-21 07:51
(3 года 8 месяцев назад, ред. 14-Мар-21 07:51)
neurologkhv
Там просто 16 битный стековый выход после шумодава MDegrainN (rdr_super, multi_vec, tr, thSAD=500, thSCD1=550, thSAD2=170, limit=230, plane=0, lsb=true) . Его легко можно убрать, но всю концовку скрипта необходимо сделать классической 8 битной. Ну и стабилизация от мерцания по яркости там безусловно лучше, поскольку она заложена в предварительном фильтре для векторного анализа. Я сразу говорил об этом.
|
|
neurologkhv
Стаж: 12 лет 6 месяцев Сообщений: 317
|
neurologkhv ·
14-Мар-21 08:13
(спустя 22 мин., ред. 14-Мар-21 08:14)
Tempter57
Просто СУПЕР-ПРЕВОСХОДСТВО!
lsb=false и всё отлично. Можно ли к этому фильтру наложить маску (движения), в результате, фильтр к двигающим объектам применяться не будет или будет применяться с другими значениями?
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
14-Мар-21 08:30
(спустя 17 мин.)
neurologkhv
Можно, откройте, например, DVD MDegrain2 DLS и посмотрите, как это делается
|
|
edich2
Стаж: 17 лет 7 месяцев Сообщений: 30374
|
edich2 ·
14-Мар-21 08:31
(спустя 45 сек.)
прошу помочь с одной проблемкой.
недавно установил вид10... установил клайт пак, прогу XVID4PSP... все нормально, вот только не хочет работать с файлами MP4....
Например в XVID4PSP когда вставляю файл и нажимаю извлечь звук то такая вот ошибка
Прошу подсказать почему такая ошибка и как решить дя быстрого извлечения дороги из MP4? Что то ведь не хватает в системе?
|
|
neurologkhv
Стаж: 12 лет 6 месяцев Сообщений: 317
|
neurologkhv ·
14-Мар-21 09:25
(спустя 53 мин.)
Tempter57
DVD MDegrain2 DLS делает "блок-чейны" и куда вставить строки (спойлер) из DVD RemoveDirt Dither?
скрытый текст
dark = 16
bright = 196
mask1 = mt_lut(source,"x "+string(dark)+" < 255 x "+string(bright)+" > 255 0 ? ?",U=1,V=1).removegrain(19,-1,-1) min = 16
max = 255
mask2 = mt_lutxy(source,filtered,"x y - abs "+string(min)+" < 0 x y - abs "+string(max)+" > 0 255 ? ?",U=1,V=1).removegrain(19,-1,-1)
rdr = mt_merge(source,filtered,mt_logic(mask1,mask2,"min"),luma=true)
preNR_super = filtered.MSuper(pel=1, sharp=2, rfilter=2)
rdr_super = rdr.unsharpmask(70,2,0).MSuper(pel=1, sharp=2, levels=1)
tr = 6
multi_vec = MAnalyse (preNR_super, multi=true, delta=tr, blksize=8, overlap=4, chroma=true, truemotion=false)
chroma = rdr.MDegrainN (rdr_super, multi_vec, tr, thSAD=500, thSCD1=600, thSAD2=260, limit=255, plane=3)
rdr.MDegrainN (rdr_super, multi_vec, tr, thSAD=500, thSCD1=550, thSAD2=170, limit=230, plane=0, lsb=false)
|
|
торрент иваниваныч
Стаж: 14 лет 11 месяцев Сообщений: 1158
|
торрент иваниваныч ·
14-Мар-21 10:06
(спустя 41 мин.)
edich2
Думаю, что у файла сменили расширение. Что говорит MediaInfo? Если файл действительно mp4, попробуйте сменить декодер или перепаковать в mkv.
|
|
edich2
Стаж: 17 лет 7 месяцев Сообщений: 30374
|
edich2 ·
14-Мар-21 10:16
(спустя 9 мин.)
торрент иваниваныч писал(а):
81092450попробуйте сменить декодер или перепаковать в mkv
Менял все варианты декодеров видео. Не помогает.
...ну перепаковка постоянно это тоже лишние долгие телодвижения.... раньше было просто ... раз и все.
|
|
Handino
Стаж: 13 лет 7 месяцев Сообщений: 2983
|
Handino ·
14-Мар-21 12:09
(спустя 1 час 53 мин.)
edich2
что-то не так с mp4box, либо с самим файлом mp4.
Можно открыть прогу напрямую:
C:\Program Files\XviD4PSP 5\apps\MP4Box
Запустить граф. оболочку Yamb.exe - не запустится, значит версия mp4box не катит.
Запустится:
Редактирование (колонка слева) - Разделение потоков из файлов (колонка справа)
Далее загрузите свой файл mp4, попробуйте извлечь потоки аудио или видео. Выдаст ошибку при извлечении, значит проблемы с файлом...
Была у меня такая штука, файл mp4 битый попался - ничего не извлекалось, может у вас то же самое...
|
|
edich2
Стаж: 17 лет 7 месяцев Сообщений: 30374
|
edich2 ·
14-Мар-21 12:14
(спустя 5 мин.)
Handino писал(а):
81093152Запустить граф. оболочку Yamb.exe - не запустится, значит версия mp4box не катит.
Запустится:
Редактирование (колонка слева) - Разделение потоков из файлов (колонка справа)
Далее загрузите свой файл mp4, попробуйте извлечь потоки аудио или видео.
Подскажите, там есть только 3 варианта:
Извлечь в виде Raw
Извлечь в MP4
All Extract Streams to Raw format
а что, нельзя извлечь как там есть? например .aac ???
|
|
торрент иваниваныч
Стаж: 14 лет 11 месяцев Сообщений: 1158
|
торрент иваниваныч ·
14-Мар-21 12:16
(спустя 2 мин.)
edich2
МедиаИнфо-то что говорит?
|
|
edich2
Стаж: 17 лет 7 месяцев Сообщений: 30374
|
edich2 ·
14-Мар-21 12:18
(спустя 1 мин.)
Да файлы не бытые... у меня их разных в папке полно. разные пробовал.
|
|
Handino
Стаж: 13 лет 7 месяцев Сообщений: 2983
|
Handino ·
14-Мар-21 12:20
(спустя 2 мин.)
Выделить мышью поток аудио, например. Далее Извлечь в виде Raw Если поставить All Extract Streams to Raw format - прога извлечёт и аудио и видео Если поставить Извлечь в MP4 - упакует в контейнер mp4
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
14-Мар-21 12:31
(спустя 10 мин.)
neurologkhv
Применение масок движения для обработки ваших исходников оказалось очень плохой идеей. Поэтому пока применил такой скрипт
скрытый текст
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\dlls\AviSynth\plugins\LSMASHSource.dll")
LoadPlugin("C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\SplineResize.dll") LWLibavVideoSource("C:\Users\Alex\Downloads\0059.mov", stream_index=-1, cache=true, dr=false).AssumeFPS(18.000)
convertbits(8)
ConvertToYV12()
#Mod16xMod8 protection
Spline144Resize(1104, 816) ###[FILTERING]###
XviD4PSPPluginsPath = "C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\"
LoadPlugin(XviD4PSPPluginsPath + "Sysinfo32.dll")
LoadPlugin(XviD4PSPPluginsPath + "RemoveGrainSSE209.dll")
LoadPlugin(XviD4PSPPluginsPath + "RGTools.dll")
LoadPlugin(XviD4PSPPluginsPath + "masktools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "autolevels_x86.dll")
LoadPlugin(XviD4PSPPluginsPath + "Warpsharp.dll")
LoadPlugin(XviD4PSPPluginsPath + "mvtools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "medianblur2.dll")
LoadPlugin(XviD4PSPPluginsPath + "fft3dfilter.dll")
LoadPlugin(XviD4PSPPluginsPath + "neo-f3kdb.dll")
LoadPlugin(XviD4PSPPluginsPath + "FluxSmooth.dll")
LoadPlugin(XviD4PSPPluginsPath + "AddGrainC.dll")
LoadPlugin(XviD4PSPPluginsPath + "SmoothAdjust.dll")
Import(XviD4PSPPluginsPath + "GrainFactory3.avs")
Import(XviD4PSPPluginsPath + "LSFmod.avsi")
Import(XviD4PSPPluginsPath + "medianblurt0002.avs")
Import(XviD4PSPPluginsPath + "Zs_RF_Shared.avsi") # autolevels() # ==== Двухкаскадный временнОй и пространственно-временнОй шумоподавитеь ====
rest = last
w = rest.width()
h = rest.height() temporalsoften(12,66,0,32,2)
calm = clense(grey=false).repair(last,1) LOP = calm.bicubicresize(w/4,h/4).bicubicresize(w,h,1,0)
HIP = rest.bicubicresize(w/4,h/4).bicubicresize(w,h,1,0) HIP = mt_makediff(rest,HIP)
mix = LOP.mt_adddiff(HIP,U=2,V=2) psup = mix.removegrain(11).MSuper(pel=1, sharp=2, rfilter=2)
rsup = rest.MSuper(pel=1, sharp=2, levels=1)
vb2 = MAnalyse(psup, isb=true, truemotion=false, delta=2, blksize=16, overlap=8, dct=5, mt=false,chroma=false)
vb1 = MAnalyse(psup, isb=true, truemotion=false, delta=1, blksize=16, overlap=8, dct=5, mt=false,chroma=false)
vf1 = MAnalyse(psup,isb=false, truemotion=false, delta=1, blksize=16, overlap=8, dct=5, mt=false,chroma=false)
vf2 = MAnalyse(psup,isb=false, truemotion=false, delta=2, blksize=16, overlap=8, dct=5, mt=false,chroma=false) cf1 = MCompensate(rest, rsup, vf1, thSAD=3000, thSAD2=800, mt=false)
cb1 = MCompensate(rest, rsup, vb1, thSAD=3000, thSAD2=800, mt=false)
cf2 = MCompensate(rest, rsup, vf2, thSAD=3000, thSAD2=800, mt=false)
cb2 = MCompensate(rest, rsup, vb2, thSAD=3000, thSAD2=800, mt=false)
interleave(cb2, cb1,rest, cf1, cf2)
temporalsoften(2,255,0,15,2)
# medianblurt0002()
MedianblurTemporal(0,0,0,2)
SelectEvery(5,2) # ==== DEBANDING ====
DB = last.neo_f3kdb(15, 72, 72, 72, 0, 0, dynamic_grain=true, dither_algo=3, mt=false) # ==== SHARPENING ====
Sclp = DB.LSFmod(defaults="slow", preblur="ON", strength=90)
Tmax = rest.mt_logic(cf1,"max",U=1,V=1).mt_logic(cb1,"max",U=1,V=1)
Tmin = rest.mt_logic(cf1,"min",U=1,V=1).mt_logic(cb1,"min",U=1,V=1)
Sclp.mt_clamp(Tmax, Tmin, 0, 0, U=1, V=1) # ==== AddGrain ====
GrainFactory3(11,12,16,60,66,80,1.5,1.2,0.9,0,0,0,0,0,25,56,128,160) # ==== LEVELS =====
/*
# ==== цветокоррекция при преобладании жёлто-зелёных цветов ====
str=4 # значение подобрать
thr=32
SmoothCurve(Ucurve="0-0;"+string(128-2*thr)+"-"+string(128-2*thr)+";"+string(128-thr)+"-"+string(128-thr+str)+";128-128;"+string(128+thr)+"-"+string(128+thr-str)+";"+string(128+2*thr)+"-"+string(128+2*thr)+";255-255"\
,Vcurve="0-0;"+string(128-2*thr)+"-"+string(128-2*thr)+";"+string(128-thr)+"-"+string(128-thr-str)+";128-128;"+string(128+thr)+"-"+string(128+thr+str)+";"+string(128+2*thr)+"-"+string(128+2*thr)+";255-255")
*/ # SmoothCurve(Ycurve="0-0;16-16; 255-235", Ucurve="0-0;77-67;127-127;167-177;255-255", Vcurve="0-0;77-67;127-127;167-177;255-255", interp=100, limiter=false, TVrange=0, dither=-1) # На входе предполагается 16-255, на выходе 16-235, поднята насыщенность
# SmoothCurve(Ycurve="0-0;16-0;235-255;255-255", Ucurve="0-0;16-0;240-255;255-255", Vcurve="0-0;16-0;240-255;255-255", interp=100, mode=100, dither=50, HQ=True)
# SmoothLevels(0,1.0,255,0,255, useopt=0, HQ=true, useMT=1) # 0 -automatic choice, 1- SSE2 CPU, 2 - Sandy Bridge CPU
http://sendfile.su/1599143
Собственно сменил предварительный фильтр для векторного анализа.
|
|
neurologkhv
Стаж: 12 лет 6 месяцев Сообщений: 317
|
neurologkhv ·
14-Мар-21 12:58
(спустя 26 мин., ред. 18-Мар-21 23:09)
Tempter57
Классно!!!
Только перед GrainFactory3 хорошо бы провести апскейл в HD или 4К, естественно удалю вручную пятно в 44 кадре.
Так как фильм 1914 года, то вероятно можно разместить на Амазаоне, а то видеокарту нужно менять, да можно и квартиру
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
14-Мар-21 13:30
(спустя 32 мин., ред. 14-Мар-21 13:30)
Пятно было белым, оно просто приобрело теперь цвет рамы и немного растянулось. Не было бы там рамы, вы бы и не заметили, оно бы исчезло. Просто пятно оказалось в приграничных землях и приобрело цвет рамы.
По поводу апскейла лучше и не заморачиваться с другими вариантами, для подобных исходников вариант с
Код:
W = 1440 H=1080
nnedi3_rpow2(rfactor=2, cshift="LanczosResize", nsize=0, qual=2, threads=1).SincLin2ResizeMT(W, H, taps=8, threads=1)
Dehalo_alpha(rx=1.5, ry=1.5)
MedSharp2(str=2)
будет хорошим выбором. Для SincLin2ResizeMT в скрипт надо подключить ResampleMT.dll
|
|
neurologkhv
Стаж: 12 лет 6 месяцев Сообщений: 317
|
neurologkhv ·
14-Мар-21 13:38
(спустя 7 мин.)
Tempter57
А при очень быстрых движениях в кадре, какие значения можно поменять, естественно и thSAD=3000?
|
|
Мазизов
Стаж: 7 лет 5 месяцев Сообщений: 1129
|
Мазизов ·
14-Мар-21 14:27
(спустя 48 мин., ред. 14-Мар-21 16:22)
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
14-Мар-21 14:39
(спустя 12 мин., ред. 14-Мар-21 14:39)
neurologkhv писал(а):
81093692thSAD=3000
neurologkhv
Это значение подобрано, как раз для удаления пятна на 44 кадре, то есть именно под этот исходник, измените его на 2000, чтобы увидеть разницу. Кроме того возможно надо снижать 255 в Temporalsoften(2,255,0,15,2) до 60...70, если на движении появятся бленды
|
|
neurologkhv
Стаж: 12 лет 6 месяцев Сообщений: 317
|
neurologkhv ·
14-Мар-21 14:48
(спустя 9 мин.)
Tempter57
Спасибо! Понял.
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
14-Мар-21 20:56
(спустя 6 часов, ред. 15-Мар-21 20:39)
neurologkhv
Вот финальный скрипт с апскейлом и радиусом векторного анализа всё же 3
скрытый текст
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\dlls\AviSynth\plugins\LSMASHSource.dll")
LoadPlugin("C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\SplineResize.dll") setmemorymax(3000)
LWLibavVideoSource("C:\Users\Alex\Downloads\0059.mov", stream_index=-1, cache=true, dr=false).AssumeFPS(18.000)
convertbits(8)
ConvertToYV12()
#Mod16xMod8 protection
Spline144Resize(1104, 816) ###[FILTERING]###
XviD4PSPPluginsPath = "C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\"
LoadVirtualDubPlugin(XviD4PSPPluginsPath + "ccd.vdf", "ccd", 0)
LoadVirtualDubPlugin(XviD4PSPPluginsPath + "ACOBW.vdf", "ACOBW", 0)
LoadPlugin(XviD4PSPPluginsPath + "Sysinfo32.dll")
LoadPlugin(XviD4PSPPluginsPath + "RemoveGrainSSE209.dll")
LoadPlugin(XviD4PSPPluginsPath + "RGTools.dll")
LoadPlugin(XviD4PSPPluginsPath + "masktools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "nnedi3.dll")
LoadPlugin(XviD4PSPPluginsPath + "average2.dll")
LoadPlugin(XviD4PSPPluginsPath + "Depan.dll")
LoadPlugin(XviD4PSPPluginsPath + "DepanEstimate.dll")
LoadPlugin(XviD4PSPPluginsPath + "autolevels_x86.dll")
LoadPlugin(XviD4PSPPluginsPath + "Warpsharp.dll")
LoadPlugin(XviD4PSPPluginsPath + "mvtools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "medianblur2.dll")
LoadPlugin(XviD4PSPPluginsPath + "fft3dfilter.dll")
LoadPlugin(XviD4PSPPluginsPath + "ResampleMT.dll")
LoadPlugin(XviD4PSPPluginsPath + "AddGrainC.dll")
LoadPlugin(XviD4PSPPluginsPath + "flash3kyuu_deband.dll")
LoadPlugin(XviD4PSPPluginsPath + "SmoothAdjust.dll")
Import(XviD4PSPPluginsPath + "Dehalo_alpha_mt2.avsi")
Import(XviD4PSPPluginsPath + "LSFmod.avsi")
Import(XviD4PSPPluginsPath + "medianblurt0002.avs")
Import(XviD4PSPPluginsPath + "ChromaShiftSP.avsi")
Import(XviD4PSPPluginsPath + "GrainFactory3.avs")
Import(XviD4PSPPluginsPath + "Zs_RF_Shared.avsi") # ColorYUV(gain_y=0,cont_y=0,cont_u=0,cont_v=0,gain_v=0,gain_u=-0,off_y=0,off_u=-0,off_v=-0)
# ColorYUV(autogain=true, autowhite=false)
# autolevels() # ==== Подавление цветового шума и радужности изображения ====
# fft3dfilter(bw=32,bh=32,ow=16,oh=16,bt=2,sigma=3.0,sigma2=2.5,sigma3=16.0,sigma4=6.0,plane=3,ncpu=1) # вариант 1 ConvertToRGB32()
ccd(5,0)
ACOBW(30,0,0)
ConvertToYV12() # Удалить VHS colorshift (цветовой сдвиг)
# ChromaShiftSP(x=0.0,y=0.0) # подберите свои параметры /*
# Частичная стабилизация изображения
dxmax=20
dymax=16 source = last # stab_reference = source.crop(dxmax*2,dymax*2,-dxmax*2,-dymax*2).mt_binarize(threshold=80,upper=true,U=-128,V=-128)
# mdata = DePanEstimate(stab_reference,trust=3.0,dxmax=dxmax,dymax=dymax)
# DePanStabilize(source,data=mdata,cutoff=1.0,dxmax=dxmax,dymax=dymax,pixaspect=1.094,method=0,mirror=15) # or pixaspect=0.911 for NTSC Super = source.MSuper(pel=2)
vectors = MAnalyse(Super, isb=false, blksize=8, delta=1, search=5, mt=false)
globalmotion = MDepan(source, vectors, pixaspect=1.094) # or pixaspect=0.911 for NTSC
DepanStabilize(source, data=globalmotion, cutoff=1.0, damping=0.9, initzoom=1.0, addzoom=false, prev=2, next=2, mirror=15, blur=300, \
dxmax=dxmax, dymax=dymax, zoommax=1.05, rotmax=0.5, subpixel=2, pixaspect=1.094, fitlast=0, tzoom=3.0, info=false) crop(dxmax,dymax,-dxmax,-dymax)
*/ # ==== Двухкаскадный временнОй и пространственно-временнОй шумоподавитеь ====
rest = last
w = rest.width()
h = rest.height() # calm = rest.temporalsoften(1,255,255,32,2).merge(rest,0.25).repair(rest,1).removegrain(11)
# calm = calm.temporalsoften(1,255,255,16,2).merge(calm,0.25) temporalsoften(6,36,36,28,2)
calm = clense(grey=false).repair(last,1) LOP = calm.bicubicresize(w/4,h/4).bicubicresize(w,h,1,0)
HIP = rest.bicubicresize(w/4,h/4).bicubicresize(w,h,1,0) HIP = mt_makediff(rest,HIP)
mix = LOP.mt_adddiff(HIP,U=2,V=2) psup = mix.removegrain(11).MSuper(pel=1, sharp=2, rfilter=2)
rsup = rest.MSuper(pel=1, sharp=2, levels=1)
msup = mix.removegrain(11).MSuper(pel=1, sharp=2, rfilter=2, levels=1)
vb3 = MAnalyse(psup, isb=true, truemotion=false, global=true, delta=3, blksize=32, overlap=8, dct=5, mt=false) #, chroma=false)
vb2 = MAnalyse(psup, isb=true, truemotion=false, global=true, delta=2, blksize=32, overlap=8, dct=5, mt=false) #, chroma=false)
vb1 = MAnalyse(psup, isb=true, truemotion=false, global=true, delta=1, blksize=32, overlap=8, dct=5, mt=false) #, chroma=false)
vf1 = MAnalyse(psup,isb=false, truemotion=false, global=true, delta=1, blksize=32, overlap=8, dct=5, mt=false) #, chroma=false)
vf2 = MAnalyse(psup,isb=false, truemotion=false, global=true, delta=2, blksize=32, overlap=8, dct=5, mt=false) #, chroma=false)
vf3 = MAnalyse(psup,isb=false, truemotion=false, global=true, delta=3, blksize=32, overlap=8, dct=5, mt=false) #, chroma=false) vb3 = MRecalculate(msup, vb3, blksize=16, overlap=4, thSAD=100, truemotion=false, mt=false) #, chroma=false)
vb2 = MRecalculate(msup, vb2, blksize=16, overlap=4, thSAD=100, truemotion=false, mt=false) #, chroma=false)
vb1 = MRecalculate(msup, vb1, blksize=16, overlap=4, thSAD=100, truemotion=false, mt=false) #, chroma=false)
vf1 = MRecalculate(msup, vf1, blksize=16, overlap=4, thSAD=100, truemotion=false, mt=false) #, chroma=false)
vf2 = MRecalculate(msup, vf2, blksize=16, overlap=4, thSAD=100, truemotion=false, mt=false) #, chroma=false)
vf3 = MRecalculate(msup, vf3, blksize=16, overlap=4, thSAD=100, truemotion=false, mt=false) #, chroma=false) cb3 = MCompensate( rest, rsup, vb3, thSAD=5000, thSAD2=1000, mt=false)
cb2 = MCompensate( rest, rsup, vb2, thSAD=5000, thSAD2=1000, mt=false)
cb1 = MCompensate( rest, rsup, vb1, thSAD=5000, thSAD2=1000, mt=false)
cf1 = MCompensate( rest, rsup, vf1, thSAD=5000, thSAD2=1000, mt=false)
cf2 = MCompensate( rest, rsup, vf2, thSAD=5000, thSAD2=1000, mt=false)
cf3 = MCompensate( rest, rsup, vf3, thSAD=5000, thSAD2=1000, mt=false) interleave(cb3, cb2, cb1, rest , cf1, cf2, cf3)
MedianblurTemporal(0,0,0,3)
Temporalsoften(3,22,22,15,2)
SelectEvery(7,3) /*
interleave(cb2, cb1, rest , cf1, cf2)
MedianblurTemporal(0,0,0,2)
Temporalsoften(2,22,22,15,2)
SelectEvery(5,2)
*/ /*
interleave(cb1, rest, cf1)
MedianblurTemporal(0,0,0,1)
Temporalsoften(1,22,22,15,2)
# Clense(grey=false)
SelectEvery(3,1)
*/ # ==== Upscale ====
W = 1440 H=1080
nnedi3_rpow2(rfactor=2, cshift="LanczosResize", nsize=0, qual=1, threads=1).SincLin2ResizeMT(W, H, taps=8, threads=1)
Dehalo_alpha(rx=1.5, ry=1.5)
LSFmod(defaults="slow", preblur="ON", strength=270) # ==== Дебандинг ====
f3kdb(sample_mode=2,dynamic_grain=true,keep_tv_range=false,dither_algo=3) # ==== AddGrain ====
GrainFactory3(14,15,25,60,66,80,1.5,1.2,0.9,0,0,0,0,0,25,56,128,160) # ==== LEVELS =====
# SmoothCurve(Ycurve="0-0;16-16; 255-235", Ucurve="0-0;77-67;127-127;167-177;255-255", Vcurve="0-0;77-67;127-127;167-177;255-255", interp=100, limiter=false, TVrange=0, dither=-1) # На входе предполагается 16-255, на выходе 16-235, поднята насыщенность
# SmoothCurve(Ycurve="0-0;16-0;235-255;255-255", Ucurve="0-0;16-0;240-255;255-255", Vcurve="0-0;16-0;240-255;255-255", interp=100, mode=100, dither=50, HQ=True)
SmoothLevels(0,1.0,255,0,255, useopt=0, HQ=true, useMT=1) # 0 -automatic choice, 1- SSE2 CPU, 2 - Sandy Bridge CPU # ==== Reinterlace ====
# AssumeTFF().SeparateFields().SelectEvery(4, 0, 3).Weave() # TFF
# ConvertToYUY2(interlaced=true) Prefetch (SI_PhysicalCores ()) # for AviSynth+
http://sendfile.su/1599227
Можно включить точность с pel=2, blksize=16 и без MRecalculate
скрытый текст
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\dlls\AviSynth\plugins\LSMASHSource.dll")
LoadPlugin("C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\SplineResize.dll") setmemorymax(3000)
LWLibavVideoSource("C:\Users\Alex\Downloads\0059.mov", stream_index=-1, cache=true, dr=false).AssumeFPS(18.000)
convertbits(8)
ConvertToYV12()
#Mod16xMod8 protection
Spline144Resize(1104, 816) ###[FILTERING]###
XviD4PSPPluginsPath = "C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\"
LoadVirtualDubPlugin(XviD4PSPPluginsPath + "ccd.vdf", "ccd", 0)
LoadVirtualDubPlugin(XviD4PSPPluginsPath + "ACOBW.vdf", "ACOBW", 0)
LoadPlugin(XviD4PSPPluginsPath + "Sysinfo32.dll")
LoadPlugin(XviD4PSPPluginsPath + "RemoveGrainSSE209.dll")
LoadPlugin(XviD4PSPPluginsPath + "RGTools.dll")
LoadPlugin(XviD4PSPPluginsPath + "masktools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "nnedi3.dll")
LoadPlugin(XviD4PSPPluginsPath + "average2.dll")
LoadPlugin(XviD4PSPPluginsPath + "Depan.dll")
LoadPlugin(XviD4PSPPluginsPath + "DepanEstimate.dll")
LoadPlugin(XviD4PSPPluginsPath + "autolevels_x86.dll")
LoadPlugin(XviD4PSPPluginsPath + "Warpsharp.dll")
LoadPlugin(XviD4PSPPluginsPath + "mvtools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "medianblur2.dll")
LoadPlugin(XviD4PSPPluginsPath + "fft3dfilter.dll")
LoadPlugin(XviD4PSPPluginsPath + "ResampleMT.dll")
LoadPlugin(XviD4PSPPluginsPath + "AddGrainC.dll")
LoadPlugin(XviD4PSPPluginsPath + "flash3kyuu_deband.dll")
LoadPlugin(XviD4PSPPluginsPath + "SmoothAdjust.dll")
Import(XviD4PSPPluginsPath + "Dehalo_alpha_mt2.avsi")
Import(XviD4PSPPluginsPath + "LSFmod.avsi")
Import(XviD4PSPPluginsPath + "medianblurt0002.avs")
Import(XviD4PSPPluginsPath + "ChromaShiftSP.avsi")
Import(XviD4PSPPluginsPath + "GrainFactory3.avs")
Import(XviD4PSPPluginsPath + "Zs_RF_Shared.avsi") # ColorYUV(gain_y=0,cont_y=0,cont_u=0,cont_v=0,gain_v=0,gain_u=-0,off_y=0,off_u=-0,off_v=-0)
# ColorYUV(autogain=true, autowhite=false)
# autolevels() # ==== Подавление цветового шума и радужности изображения ====
# fft3dfilter(bw=32,bh=32,ow=16,oh=16,bt=2,sigma=3.0,sigma2=2.5,sigma3=16.0,sigma4=6.0,plane=3,ncpu=1) # вариант 1
/*
ConvertToRGB32()
ccd(5,0)
ACOBW(30,0,0)
ConvertToYV12()
*/ # Удалить VHS colorshift (цветовой сдвиг)
# ChromaShiftSP(x=0.0,y=0.0) # подберите свои параметры /*
# Частичная стабилизация изображения
dxmax=20
dymax=16 source = last # stab_reference = source.crop(dxmax*2,dymax*2,-dxmax*2,-dymax*2).mt_binarize(threshold=80,upper=true,U=-128,V=-128)
# mdata = DePanEstimate(stab_reference,trust=3.0,dxmax=dxmax,dymax=dymax)
# DePanStabilize(source,data=mdata,cutoff=1.0,dxmax=dxmax,dymax=dymax,pixaspect=1.094,method=0,mirror=15) # or pixaspect=0.911 for NTSC Super = source.MSuper(pel=2)
vectors = MAnalyse(Super, isb=false, blksize=8, delta=1, search=5, mt=false)
globalmotion = MDepan(source, vectors, pixaspect=1.094) # or pixaspect=0.911 for NTSC
DepanStabilize(source, data=globalmotion, cutoff=1.0, damping=0.9, initzoom=1.0, addzoom=false, prev=2, next=2, mirror=15, blur=300, \
dxmax=dxmax, dymax=dymax, zoommax=1.05, rotmax=0.5, subpixel=2, pixaspect=1.094, fitlast=0, tzoom=3.0, info=false) crop(dxmax,dymax,-dxmax,-dymax)
*/ # ==== Двухкаскадный временнОй и пространственно-временнОй шумоподавитеь ====
rest = last
w = rest.width()
h = rest.height() # calm = rest.temporalsoften(1,255,255,32,2).merge(rest,0.25).repair(rest,1).removegrain(11)
# calm = calm.temporalsoften(1,255,255,16,2).merge(calm,0.25) temporalsoften(6,36,36,28,2)
calm = clense(grey=false).repair(last,1) LOP = calm.bicubicresize(w/4,h/4).bicubicresize(w,h,1,0)
HIP = rest.bicubicresize(w/4,h/4).bicubicresize(w,h,1,0) HIP = mt_makediff(rest,HIP)
mix = LOP.mt_adddiff(HIP,U=2,V=2) psup = mix.removegrain(11).MSuper(pel=2, sharp=2, rfilter=2)
rsup = rest.MSuper(pel=2, sharp=2, levels=1)
vb3 = MAnalyse(psup, isb=true, truemotion=false, global=true, delta=3, blksize=16, overlap=8, dct=5, mt=false) #, chroma=false)
vb2 = MAnalyse(psup, isb=true, truemotion=false, global=true, delta=2, blksize=16, overlap=8, dct=5, mt=false) #, chroma=false)
vb1 = MAnalyse(psup, isb=true, truemotion=false, global=true, delta=1, blksize=16, overlap=8, dct=5, mt=false) #, chroma=false)
vf1 = MAnalyse(psup,isb=false, truemotion=false, global=true, delta=1, blksize=16, overlap=8, dct=5, mt=false) #, chroma=false)
vf2 = MAnalyse(psup,isb=false, truemotion=false, global=true, delta=2, blksize=16, overlap=8, dct=5, mt=false) #, chroma=false)
vf3 = MAnalyse(psup,isb=false, truemotion=false, global=true, delta=3, blksize=16, overlap=8, dct=5, mt=false) #, chroma=false) cb3 = MCompensate( rest, rsup, vb3, thSAD=3000, thSAD2=800, mt=false)
cb2 = MCompensate( rest, rsup, vb2, thSAD=3000, thSAD2=800, mt=false)
cb1 = MCompensate( rest, rsup, vb1, thSAD=3000, thSAD2=800, mt=false)
cf1 = MCompensate( rest, rsup, vf1, thSAD=3000, thSAD2=800, mt=false)
cf2 = MCompensate( rest, rsup, vf2, thSAD=3000, thSAD2=800, mt=false)
cf3 = MCompensate( rest, rsup, vf3, thSAD=3000, thSAD2=800, mt=false) interleave(cb3, cb2, cb1, rest , cf1, cf2, cf3)
MedianblurTemporal(0,0,0,3)
Temporalsoften(3,22,22,15,2)
SelectEvery(7,3) # ==== Upscale ====
W = 1440 H=1080
nnedi3_rpow2(rfactor=2, cshift="LanczosResize", nsize=0, qual=1, threads=1).SincLin2ResizeMT(W, H, taps=8, threads=1)
Dehalo_alpha(rx=1.5, ry=1.5)
LSFmod(defaults="slow", preblur="ON", strength=270) # ==== Дебандинг ====
f3kdb(sample_mode=2,dynamic_grain=true,keep_tv_range=false,dither_algo=3) # ==== AddGrain ====
GrainFactory3(14,15,25,60,66,80,1.5,1.2,0.9,0,0,0,0,0,25,56,128,160) # ==== LEVELS =====
# SmoothCurve(Ycurve="0-0;16-16; 255-235", Ucurve="0-0;77-67;127-127;167-177;255-255", Vcurve="0-0;77-67;127-127;167-177;255-255", interp=100, limiter=false, TVrange=0, dither=-1) # На входе предполагается 16-255, на выходе 16-235, поднята насыщенность
# SmoothCurve(Ycurve="0-0;16-0;235-255;255-255", Ucurve="0-0;16-0;240-255;255-255", Vcurve="0-0;16-0;240-255;255-255", interp=100, mode=100, dither=50, HQ=True)
SmoothLevels(0,1.0,255,0,255, useopt=0, HQ=true, useMT=1) # 0 -automatic choice, 1- SSE2 CPU, 2 - Sandy Bridge CPU # ==== Reinterlace ====
# AssumeTFF().SeparateFields().SelectEvery(4, 0, 3).Weave() # TFF
# ConvertToYUY2(interlaced=true) Prefetch (SI_PhysicalCores ()) # for AviSynth+
http://sendfile.su/1599240
|
|
neurologkhv
Стаж: 12 лет 6 месяцев Сообщений: 317
|
neurologkhv ·
15-Мар-21 09:07
(спустя 12 часов)
Tempter57
Прошу прощения за свою навязчивость, но не получилось подобрать значения к сцене с двигающимся автомобилем http://sendfile.su/1599278
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
15-Мар-21 13:57
(спустя 4 часа, ред. 15-Мар-21 21:11)
neurologkhv
Правая стойка лобового стекла исчезает ? Ну, если вы собираетесь бороться с пятнами, надо быть готовым к тому, что некоторые детали на быстром движении будут исчезать: такие, как стойка лобового стекла, часть движущихся ног или рук. Можно на данных участках выключать MedianblurTemporal(0,0,0,tr), снизить уровни в Temporalsoften до 22...32 или снижать thSAD и thSAD2 в MCompensate до безопасных значений 400...600, но при этом пятна, разумеется удаляться не будут.
Код:
# tr -радиус векторного анализа
а = MedianblurTemporal(0,0,0,tr).Temporalsoften(tr, 66, 66, 15, 2).SelectEvery(tr * 2+1, tr).trim(1, n)
b = Temporalsoften(tr, 22, 22, 15 ,2).SelectEvery(tr * 2+1, tr).trim(n+1, 0) # проблемный участок с быстрым движением, пятна удаляться не будут
a ++ b
В процессе настройки скрипта заметил, что лучше всего маскировать пятно получается, если задать размеры blksize=16,overlap=8,truemotion=true, а temporalsoften c меньшими порогами lumathresh и chromathresh установить после MedianblurTemporal(0,0,0,tr). Универсальный скрипт выглядит так:
скрытый текст
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\dlls\AviSynth\plugins\LSMASHSource.dll")
LoadPlugin("C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\SplineResize.dll") setmemorymax(3000)
LWLibavVideoSource("C:\Users\Alex\Downloads\0059.mov", stream_index=-1, cache=true, dr=false).AssumeFPS(18.000)
convertbits(8)
ConvertToYV12()
#Mod16xMod8 protection
Spline144Resize(1104, 816) ###[FILTERING]###
XviD4PSPPluginsPath = "C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\"
LoadVirtualDubPlugin(XviD4PSPPluginsPath + "ccd.vdf", "ccd", 0)
LoadVirtualDubPlugin(XviD4PSPPluginsPath + "ACOBW.vdf", "ACOBW", 0)
LoadPlugin(XviD4PSPPluginsPath + "Sysinfo32.dll")
LoadPlugin(XviD4PSPPluginsPath + "RemoveGrainSSE209.dll")
LoadPlugin(XviD4PSPPluginsPath + "RGTools.dll")
LoadPlugin(XviD4PSPPluginsPath + "masktools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "nnedi3.dll")
LoadPlugin(XviD4PSPPluginsPath + "average2.dll")
LoadPlugin(XviD4PSPPluginsPath + "Depan.dll")
LoadPlugin(XviD4PSPPluginsPath + "DepanEstimate.dll")
LoadPlugin(XviD4PSPPluginsPath + "autolevels_x86.dll")
LoadPlugin(XviD4PSPPluginsPath + "Warpsharp.dll")
LoadPlugin(XviD4PSPPluginsPath + "mvtools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "medianblur2.dll")
LoadPlugin(XviD4PSPPluginsPath + "fft3dfilter.dll")
LoadPlugin(XviD4PSPPluginsPath + "ResampleMT.dll")
LoadPlugin(XviD4PSPPluginsPath + "AddGrainC.dll")
LoadPlugin(XviD4PSPPluginsPath + "flash3kyuu_deband.dll")
LoadPlugin(XviD4PSPPluginsPath + "SmoothAdjust.dll")
Import(XviD4PSPPluginsPath + "Dehalo_alpha_mt2.avsi")
Import(XviD4PSPPluginsPath + "LSFmod.avsi")
Import(XviD4PSPPluginsPath + "medianblurt0002.avs")
Import(XviD4PSPPluginsPath + "ChromaShiftSP.avsi")
Import(XviD4PSPPluginsPath + "GrainFactory3.avs")
Import(XviD4PSPPluginsPath + "Zs_RF_Shared.avsi") # ColorYUV(gain_y=0,cont_y=0,cont_u=0,cont_v=0,gain_v=0,gain_u=-0,off_y=0,off_u=-0,off_v=-0)
# ColorYUV(autogain=true, autowhite=false)
# autolevels() # ==== Подавление цветового шума и радужности изображения ====
# fft3dfilter(bw=32,bh=32,ow=16,oh=16,bt=2,sigma=3.0,sigma2=2.5,sigma3=16.0,sigma4=6.0,plane=3,ncpu=1) # вариант 1 /*
ConvertToRGB32()
ccd(5,0)
ACOBW(30,0,0)
ConvertToYV12()
*/ # Удалить VHS colorshift (цветовой сдвиг)
# ChromaShiftSP(x=0.0,y=0.0) # подберите свои параметры /*
# Частичная стабилизация изображения
dxmax=20
dymax=16 source = last # stab_reference = source.crop(dxmax*2,dymax*2,-dxmax*2,-dymax*2).mt_binarize(threshold=80,upper=true,U=-128,V=-128)
# mdata = DePanEstimate(stab_reference,trust=3.0,dxmax=dxmax,dymax=dymax)
# DePanStabilize(source,data=mdata,cutoff=1.0,dxmax=dxmax,dymax=dymax,pixaspect=1.094,method=0,mirror=15) # or pixaspect=0.911 for NTSC Super = source.MSuper(pel=2)
vectors = MAnalyse(Super, isb=false, blksize=8, delta=1, search=5, mt=false)
globalmotion = MDepan(source, vectors, pixaspect=1.094) # or pixaspect=0.911 for NTSC
DepanStabilize(source, data=globalmotion, cutoff=1.0, damping=0.9, initzoom=1.0, addzoom=false, prev=2, next=2, mirror=15, blur=300, \
dxmax=dxmax, dymax=dymax, zoommax=1.05, rotmax=0.5, subpixel=2, pixaspect=1.094, fitlast=0, tzoom=3.0, info=false) crop(dxmax,dymax,-dxmax,-dymax)
*/ # ==== Двухкаскадный временнОй и пространственно-временнОй шумоподавитеь ====
rest = last
w = rest.width()
h = rest.height() # calm = rest.temporalsoften(1,255,255,32,2).merge(rest,0.25).repair(rest,1).removegrain(11)
# calm = calm.temporalsoften(1,255,255,16,2).merge(calm,0.25) temporalsoften(6,36,36,28,2)
calm = clense(grey=false).repair(last,1) LOP = calm.bicubicresize(w/4,h/4).bicubicresize(w,h,1,0)
HIP = rest.bicubicresize(w/4,h/4).bicubicresize(w,h,1,0) HIP = mt_makediff(rest,HIP)
mix = LOP.mt_adddiff(HIP,U=2,V=2) tr=3
thSAD = 10000
thSAD2 = 1000
lumathresh=8
chromathresh=8 psup = mix.removegrain(11).MSuper(pel=2, sharp=2, rfilter=2)
rsup = rest.MSuper(pel=2, sharp=2, levels=1) MultiVec = psup.MAnalyse(multi=true,delta=tr,blksize=16,overlap=8,chroma=true,truemotion=true,global=true,mt=false)
MCompensate(rest, rsup, MultiVec, tr=tr, thSAD=thSAD, thSAD2=thSAD2, center=true, mt=false)
MedianBlurTemporal(radiusY=0,radiusU=0,radiusV=0,temporalradius=tr) # Temporal median blur only [not spatial]
Temporalsoften(tr, lumathresh, chromathresh, 12, 2)
SelectEvery(tr*2+1,tr) # Return middle frame # ==== Upscale ====
W = 1440 H=1080
nnedi3_rpow2(rfactor=2, cshift="LanczosResize", nsize=0, qual=1, threads=1).SincLin2ResizeMT(W, H, taps=8, threads=1)
Dehalo_alpha(rx=1.5, ry=1.5)
LSFmod(defaults="slow", preblur="ON", strength=270) # ==== Дебандинг ====
f3kdb(sample_mode=2,dynamic_grain=true,keep_tv_range=false,dither_algo=3) # ==== AddGrain ====
GrainFactory3(9,10,17,60,66,80,1.5,1.2,0.9,0,0,0,0,0,25,56,128,160) # ==== LEVELS =====
# SmoothCurve(Ycurve="0-0;16-16; 255-235", Ucurve="0-0;77-67;127-127;167-177;255-255", Vcurve="0-0;77-67;127-127;167-177;255-255", interp=100, limiter=false, TVrange=0, dither=-1) # На входе предполагается 16-255, на выходе 16-235, поднята насыщенность
# SmoothCurve(Ycurve="0-0;16-0;235-255;255-255", Ucurve="0-0;16-0;240-255;255-255", Vcurve="0-0;16-0;240-255;255-255", interp=100, mode=100, dither=50, HQ=True)
SmoothLevels(0,1.0,255,0,255, useopt=0, HQ=true, useMT=1) # 0 -automatic choice, 1- SSE2 CPU, 2 - Sandy Bridge CPU # ==== Reinterlace ====
# AssumeTFF().SeparateFields().SelectEvery(4, 0, 3).Weave() # TFF
# ConvertToYUY2(interlaced=true) Prefetch (SI_PhysicalCores ()) # for AviSynth+ /*
Назначение: для обработки старых проблемных VHS оцифровок с наличием пятен и линий затиров
Тип предварительного шумоподавителя: fft3dfilter + temporalsoften
Тип основного шумоподавителя: на основе векторного анализа оценки движения с MCompensate и MedianblurT
Тип шарпера: LSFmod
Наличие фильтра DeBanding: включен
Скорость обработки: медленная
Для интерлейсных VHS камкодеров применить штатный деинтерлейс YadifModEdi(х2) с правильным выбором какое поле идёт первым
*/
http://sendfile.su/1599373
Да, это безусловно недостаток такого автоматического метода удаление пятен. Есть выход другой : покадровая реставрация каждого кадра исходника в фотошопе.
При обычном просмотре этоn недостаток довольно трудно уловить, но при покадровом просмотре специалистом\модератором это будет проявляться явно.
|
|
shinkiroo
Стаж: 14 лет 11 месяцев Сообщений: 357
|
shinkiroo ·
15-Мар-21 14:24
(спустя 27 мин., ред. 15-Мар-21 14:24)
я последнее время использую такой вариант подключения разных фильтров на разных участках видео, он более гибкий
Код:
F0=last.Temporalsoften(tr, 66, 66, 15, 2).MedianblurTemporal(0,0,0,tr).SelectEvery(tr * 2+1, tr)
F1=last.Temporalsoften(tr, 22, 22, 15 ,2).SelectEvery(tr * 2+1, tr) #проблемный участок с быстрым движением, пятна удаляться не будут
ConditionalSelect(F0,"value",F0, F1, show=false)
ConditionalReader("List.txt", "value", false)
в текстовом файле просто указывается диапазон кадров или единичный кадр, и какой клип с фильтром использовать, плюс более поздние значения имеют приоритет перед более ранними если какие-то кадры повторяются
Код:
Type int
Default 0 # значение поумолчанию для не перечисленных кадров R 0 999 1
800 0
R 1500 1999 1
особенно удобно становится, когда мест и вариантов фильтрации больше двух.
|
|
edich2
Стаж: 17 лет 7 месяцев Сообщений: 30374
|
edich2 ·
15-Мар-21 14:38
(спустя 13 мин.)
|
|
neurologkhv
Стаж: 12 лет 6 месяцев Сообщений: 317
|
neurologkhv ·
16-Мар-21 03:12
(спустя 12 часов)
Tempter57
Я не собирался удалять пятна и др. с помощью AviSynth, предполагал использование AviSynth только для относительной стабилизации фона (заднего плана) и общий мягкий дигрейн. Двигающие объекты можно оставить без изменения при помощи "двигающихся" масок в Nuke или Fusionи и обработать их потом отдельно. Такая попытка была сделана мной над фильмом Die Pest in Florenz (1919)
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
16-Мар-21 13:24
(спустя 10 часов, ред. 16-Мар-21 14:54)
neurologkhv писал(а):
81103917Я не собирался удалять пятна и др. с помощью AviSynth, предполагал использование AviSynth только для относительной стабилизации фона (заднего плана) и общий мягкий дигрейн.
тогда другое дело
скрытый текст
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\dlls\AviSynth\plugins\LSMASHSource.dll")
LoadPlugin("C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\SplineResize.dll") LWLibavVideoSource("C:\Users\Alex\Downloads\0059.mov", stream_index=-1, cache=true, dr=false).AssumeFPS(18.000)
convertbits(8)
ConvertToYV12()
#Mod16xMod8 protection
Spline144Resize(1104, 816) ###[FILTERING]###
XviD4PSPPluginsPath = "C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\"
LoadVirtualDubPlugin(XviD4PSPPluginsPath + "ccd.vdf", "ccd", 0)
LoadVirtualDubPlugin(XviD4PSPPluginsPath + "ACOBW.vdf", "ACOBW", 0)
LoadPlugin(XviD4PSPPluginsPath + "Sysinfo32.dll")
LoadPlugin(XviD4PSPPluginsPath + "RGTools.dll")
LoadPlugin(XviD4PSPPluginsPath + "RemoveDirtSSE2.dll")
LoadPlugin(XviD4PSPPluginsPath + "masktools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "nnedi3.dll")
LoadPlugin(XviD4PSPPluginsPath + "average2.dll")
LoadPlugin(XviD4PSPPluginsPath + "autolevels_x86.dll")
LoadPlugin(XviD4PSPPluginsPath + "Warpsharp.dll")
LoadPlugin(XviD4PSPPluginsPath + "mvtools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "fft3dfilter.dll")
LoadPlugin(XviD4PSPPluginsPath + "ResampleMT.dll")
LoadPlugin(XviD4PSPPluginsPath + "AddGrainC.dll")
LoadPlugin(XviD4PSPPluginsPath + "flash3kyuu_deband.dll")
LoadPlugin(XviD4PSPPluginsPath + "SmoothAdjust.dll")
Import(XviD4PSPPluginsPath + "Dehalo_alpha_mt2.avsi")
Import(XviD4PSPPluginsPath + "LSFmod.avsi")
Import(XviD4PSPPluginsPath + "GrainFactory3.avs")
Import(XviD4PSPPluginsPath + "Zs_RF_Shared.avsi") setmemorymax(3000) # ColorYUV(gain_y=0,cont_y=0,cont_u=0,cont_v=0,gain_v=0,gain_u=-0,off_y=0,off_u=-0,off_v=-0)
# ColorYUV(autogain=true, autowhite=false)
# autolevels() # ==== Подавление цветового шума и радужности изображения ====
# fft3dfilter(bw=32,bh=32,ow=16,oh=16,bt=2,sigma=3.0,sigma2=2.5,sigma3=16.0,sigma4=6.0,plane=3,ncpu=1) # вариант 1 /*
ConvertToRGB32()
ccd(5,0)
ACOBW(30,0,0)
ConvertToYV12()
*/ # ==== Двухкаскадный временнОй и пространственно-временнОй шумоподавитеь ====
rest = last
w = rest.width()
h = rest.height() # calm = rest.temporalsoften(1,255,255,32,2).merge(rest,0.25).repair(rest,1).removegrain(11)
# calm = calm.temporalsoften(1,255,255,16,2).merge(calm,0.25) calm = rest.RemoveDirt(false,10).temporalsoften(6,36,36,28,2).clense(grey=false).repair(last,1) LOP = calm.bicubicresize(w/4,h/4).bicubicresize(w,h,1,0)
HIP = rest.bicubicresize(w/4,h/4).bicubicresize(w,h,1,0) HIP = mt_makediff(rest,HIP)
mix = LOP.mt_adddiff(HIP,U=2,V=2) blksize = 32
overlap = blksize/2
halfblksize = blksize/2
halfoverlap = blksize/4
halfthSAD = 100
chroma = false
planes = chroma?4:0
lumathresh =255
chromathresh = chroma?255:0
tr =4 # Temporal radius
thSAD = 2000
thSAD2 = 1000
dct = 5 psup = mix.blur(1.58).MSuper(pel=1, sharp=2, rfilter=4)
msup = mix.blur(1.58).MSuper(pel=1, sharp=2, rfilter=4, levels=1)
rsup = rest.MSuper(pel=1, sharp=2, levels=1, rfilter=4)
multi_vec = MAnalyse(psup,multi=true,delta=tr,blksize=blksize,overlap=overlap,chroma=chroma,truemotion=false,search=5,dct=dct,global=true,mt=false)
multi_vec = MRecalculate(msup, multi_vec, blksize=halfblksize, overlap=halfoverlap, thSAD=halfthSAD, chroma=chroma, truemotion=false, tr=tr, mt=false)
multi_vec = MRecalculate(msup, multi_vec, blksize=halfblksize/2, overlap=halfoverlap/2, thSAD=halfthSAD, chroma=chroma, truemotion=false, tr=tr, mt=false) vb1 = multi_vec.SelectEvery (tr * 2, 0)
vb2 = multi_vec.SelectEvery (tr * 2, 2) # Use the vectors to create motion and static masks, we use these for prefilter and sharpening masks
maskstar = rest.mt_binarize(upper=false)
maskmotion1 = mt_average(rest.mmask(kind=0, vb2, gamma=1, ml=130),rest.mmask(kind=0, vb1, gamma=1, ml=130))
maskmotion1 = mt_adddiff(maskmotion1, mt_makediff(maskmotion1,rest))
maskmotion2 = rest.mt_motion(thy1=5,thy2=10,thc1=5,thc2=10,u=3,v=3).mt_lut(expr="x 255 == x 156 - 0 ?")
maskmotion = mt_lutxy(maskmotion1,maskmotion2,expr="x 0 == 0 x y < y x ? ?")
maskstatic = mt_invert(maskmotion) NR = rest.MDegrainN (rsup, multi_vec, tr, thSAD=thSAD, thSAD2=thSAD2,thSCD1=2000,thSCD2=130,limit=255, plane=planes).repair (rest,mode=13)
den = mt_merge(NR,rest,maskstar) dsup = Msuper(den, pel=1, levels=1)
MCompensate(den, dsup, multi_vec, tr=tr, thSAD=800, thSAD2=500, center=true, mt=false)
Temporalsoften(tr,lumathresh,chromathresh,15,2)
SelectEvery(tr*2+1,tr) # ==== Upscale ====
W = 1440 H=1080
nnedi3_rpow2(rfactor=2, cshift="LanczosResize", nsize=0, qual=1, threads=1).SincLin2ResizeMT(W, H, taps=8, threads=1)
Dehalo_alpha(rx=1.5, ry=1.5)
LSFmod(defaults="slow", preblur="ON", strength=270) # ==== Дебандинг ====
f3kdb(sample_mode=2,dynamic_grain=true,keep_tv_range=false,dither_algo=3) # ==== AddGrain ====
GrainFactory3(11,12,18,60,66,80,1.5,1.2,0.9,0,0,0,0,0,25,56,128,160) # ==== LEVELS =====
# SmoothCurve(Ycurve="0-0;16-16; 255-235", Ucurve="0-0;77-67;127-127;167-177;255-255", Vcurve="0-0;77-67;127-127;167-177;255-255", interp=100, limiter=false, TVrange=0, dither=-1) # На входе предполагается 16-255, на выходе 16-235, поднята насыщенность
# SmoothCurve(Ycurve="0-0;16-0;235-255;255-255", Ucurve="0-0;16-0;240-255;255-255", Vcurve="0-0;16-0;240-255;255-255", interp=100, mode=100, dither=50, HQ=True)
SmoothLevels(0,1.0,255,0,255, useopt=0, HQ=true, useMT=1) # 0 -automatic choice, 1- SSE2 CPU, 2 - Sandy Bridge CPU Prefetch (SI_PhysicalCores ()) # for AviSynth+
http://sendfile.su/1599428
http://sendfile.su/1599429
Или , если понравился DVD Removedirt Dither, то можно использовать его предварительный фильтр для векторного анализа
скрытый текст
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\dlls\AviSynth\plugins\LSMASHSource.dll")
LoadPlugin("C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\SplineResize.dll") setmemorymax(3000)
LWLibavVideoSource("C:\Users\Alex\Downloads\0059.mov", stream_index=-1, cache=true, dr=false).AssumeFPS(18.000)
convertbits(8)
ConvertToYV12()
#Mod16xMod8 protection
Spline144Resize(1104, 816) ###[FILTERING]###
XviD4PSPPluginsPath = "C:\Program Files (x86)\XviD4PSP 5\dlls\AviSynth\plugins\"
LoadVirtualDubPlugin(XviD4PSPPluginsPath + "ccd.vdf", "ccd", 0)
LoadVirtualDubPlugin(XviD4PSPPluginsPath + "ACOBW.vdf", "ACOBW", 0)
LoadPlugin(XviD4PSPPluginsPath + "Sysinfo32.dll")
LoadPlugin(XviD4PSPPluginsPath + "RGTools.dll")
LoadPlugin(XviD4PSPPluginsPath + "RemoveDirtSSE2.dll")
LoadPlugin(XviD4PSPPluginsPath + "masktools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "nnedi3.dll")
LoadPlugin(XviD4PSPPluginsPath + "average2.dll")
LoadPlugin(XviD4PSPPluginsPath + "autolevels_x86.dll")
LoadPlugin(XviD4PSPPluginsPath + "Warpsharp.dll")
LoadPlugin(XviD4PSPPluginsPath + "mvtools2.dll")
LoadPlugin(XviD4PSPPluginsPath + "fft3dfilter.dll")
LoadPlugin(XviD4PSPPluginsPath + "ResampleMT.dll")
LoadPlugin(XviD4PSPPluginsPath + "AddGrainC.dll")
LoadPlugin(XviD4PSPPluginsPath + "flash3kyuu_deband.dll")
LoadPlugin(XviD4PSPPluginsPath + "SmoothAdjust.dll")
Import(XviD4PSPPluginsPath + "Dehalo_alpha_mt2.avsi")
Import(XviD4PSPPluginsPath + "LSFmod.avsi")
Import(XviD4PSPPluginsPath + "GrainFactory3.avs")
Import(XviD4PSPPluginsPath + "Zs_RF_Shared.avsi") # ColorYUV(gain_y=0,cont_y=0,cont_u=0,cont_v=0,gain_v=0,gain_u=-0,off_y=0,off_u=-0,off_v=-0)
# ColorYUV(autogain=true, autowhite=false)
# autolevels() # ==== Подавление цветового шума и радужности изображения ====
# fft3dfilter(bw=32,bh=32,ow=16,oh=16,bt=2,sigma=3.0,sigma2=2.5,sigma3=16.0,sigma4=6.0,plane=3,ncpu=1) # вариант 1 /*
ConvertToRGB32()
ccd(5,0)
ACOBW(30,0,0)
ConvertToYV12()
*/ # ==== Двухкаскадный временнОй и пространственно-временнОй шумоподавитеь ====
source = last
filtered = source.RemoveDirt(false,10).temporalsoften(6,32,32,24,2).clense().repair(last,1) tr = 6
dark = 32
bright = 196
mask1 = mt_lut(source,"x "+string(dark)+" < 255 x "+string(bright)+" > 255 0 ? ?",U=1,V=1).removegrain(19,-1,-1) min = 16
max = 255
mask2 = mt_lutxy(source,filtered,"x y - abs "+string(min)+" < 0 x y - abs "+string(max)+" > 0 255 ? ?",U=1,V=1).removegrain(19,-1,-1)
rdr = mt_merge(source,filtered,mt_logic(mask1,mask2,"min"),luma=true)
preNR_super = filtered.MSuper(pel=2, sharp=2, rfilter=2)
rdr_super = rdr.MSuper(pel=2, sharp=2, levels=1)
multi_vec = MAnalyse (preNR_super, multi=true, delta=tr, blksize=16, overlap=8, chroma=true, truemotion=false, mt=false)
chro = rdr.MDegrainN (rdr_super, multi_vec, tr, thSAD=500, thSCD1=600, thSAD2=260, limit=255, plane=3)
rdr.MDegrainN (rdr_super, multi_vec, tr, thSAD=500, thSCD1=550, thSAD2=170, limit=230, plane=0)
mergechroma(chro) # ==== Upscale ====
W = 1440 H=1080
nnedi3_rpow2(rfactor=2, cshift="LanczosResize", nsize=0, qual=1, threads=1).SincLin2ResizeMT(W, H, taps=8, threads=1)
Dehalo_alpha(rx=1.5, ry=1.5)
LSFmod(defaults="slow", preblur="ON", strength=270) # ==== Дебандинг ====
f3kdb(sample_mode=2,dynamic_grain=true,keep_tv_range=false,dither_algo=3) # ==== AddGrain ====
GrainFactory3(9,10,15,60,66,80,1.5,1.2,0.9,0,0,0,0,0,25,56,128,160) # ==== LEVELS =====
# SmoothCurve(Ycurve="0-0;16-16; 255-235", Ucurve="0-0;77-67;127-127;167-177;255-255", Vcurve="0-0;77-67;127-127;167-177;255-255", interp=100, limiter=false, TVrange=0, dither=-1) # На входе предполагается 16-255, на выходе 16-235, поднята насыщенность
# SmoothCurve(Ycurve="0-0;16-0;235-255;255-255", Ucurve="0-0;16-0;240-255;255-255", Vcurve="0-0;16-0;240-255;255-255", interp=100, mode=100, dither=50, HQ=True)
SmoothLevels(0,1.0,255,0,255, useopt=0, HQ=true, useMT=1) # 0 -automatic choice, 1- SSE2 CPU, 2 - Sandy Bridge CPU Prefetch (SI_PhysicalCores ()) # for AviSynth+
http://sendfile.su/1599441
http://sendfile.su/1599444
|
|
neurologkhv
Стаж: 12 лет 6 месяцев Сообщений: 317
|
neurologkhv ·
16-Мар-21 16:03
(спустя 2 часа 39 мин., ред. 16-Мар-21 16:03)
Tempter57
Отлично!
В сэмпле 41 уменьшается даже пространственная деформация открывающихся ворот.
Вообще, большинство сцен в фильмах до 1930 сделаны со статичной камеры.
Задача стабилизировать фон, убрать артефакты... и будет лучше, чем у мировых брендов Kino, Criterion...)
Второй вариант скрипта еще лучше, жаль, что ...Небо становится ближе с каждым днём
|
|
CTYK
Стаж: 17 лет 1 месяц Сообщений: 929
|
CTYK ·
18-Мар-21 04:53
(спустя 1 день 12 часов, ред. 18-Мар-21 04:53)
У меня одного Xvid4psp 5.10.346 криво кодирует аудиодорожки из формата E-AC3 (AC3+ / Dolby Digital Plus with Dolby Atmos) в любой другой формат..?
И как с этим бороться? (Пробывал извлекать и сохранять в WAV/PCM, но тоже получается криво - если дорога около полтора часа, то после перекодирования/извлечения она растягивается да несколько часов...)
|
|
Мазизов
Стаж: 7 лет 5 месяцев Сообщений: 1129
|
Мазизов ·
18-Мар-21 14:26
(спустя 9 часов)
CTYK
Пункт 5 этого поста .
|
|
оно и видно
Стаж: 15 лет 8 месяцев Сообщений: 525
|
оно и видно ·
21-Мар-21 16:57
(спустя 3 дня)
Столкнулся с проблемой что в превью нет картинки,а во вкладке Разрешение/Аспект есть
|
|
|