Посоветуйте шумодав для avisynth

Делимся опытом. Задаем вопросы и отвечаем на них. Обсуждаем статьи и новости.

Модератор: Модераторы Обсерватории

Re: Посоветуйте шумодав для avisynth

Сообщение Сантьяго » Чт янв 29, 2009 7:24 am

Разве стоит заморачиваться из за конвертирования yv12 - rgb - yv12 ? Потери то там ничтожны. Лёгкий шумодав в 50 раз сильнее картинку исказит чем смена палитр.
Сантьяго
Старшина 2ой статьи
Старшина 2ой статьи
 
Сообщения: 140
Зарегистрирован: Пт дек 19, 2008 6:53 am

Re: Посоветуйте шумодав для avisynth

Сообщение Tempter57 » Чт янв 29, 2009 10:58 am

Gideon Vi писал(а):
Если уж влез в AviSynth, то и не выходи из него, благо фильтров тамошних хватает

А есть шарпер под синт, чтобы качеством не уступал fsn, при этом так же легко настраивался (буквально - одна переменная)?


В AviSynth есть много шарперов, но наиболее качественные сделал Didee: SeeSaw и LimitedSharpenFaster. Их в принципе можно использовать и по-умолчанию, но SeeSaw желательно задавать параметры порогов и силы воздействия. LimitedSharpenFaster в этом плане по-проще: можно задать всего 2 параметра Smode(тип обработки, по-умолчанию Smode=3) и strength(силу воздействия, strength=100), оставив остальные параметры настройки по-умолчанию. LimitedSharpenFaster превосходит по своим параметрам SeeSaw. Просто он вышел несколько позднее и Didee, естественно усовершенствовал. В принципе LimitedSharpenFaster можно и задавать эти 2 параметра:
LimitedSharpenFaster(Smode=3, strength=?) # либо Smode=4
Есть и у Didee скриптик по смягчению шарпности Soothe, пример применения его:
Код: Выделить всё
setmtmode(2,2)
source = last
super=source.MSuper(hpad=8, vpad=8, pel=2, sharp=2, rfilter=2)
vb3 = MAnalyse(super,isb=true, truemotion=true, delta=3, blksize=8, search=3, overlap=4, dct=4)
vb2 = MAnalyse(super,isb=true, truemotion=true, delta=2, blksize=8, search=3, overlap=4, dct=4)
vb1 = MAnalyse(super,isb=true, truemotion=true, delta=1, blksize=8, search=3, overlap=4, dct=4)
vf1 = MAnalyse(super,isb=false,truemotion=true, delta=1, blksize=8, search=3, overlap=4, dct=4)
vf2 = MAnalyse(super,isb=false,truemotion=true, delta=2, blksize=8, search=3, overlap=4, dct=4)
vf3 = MAnalyse(super,isb=false,truemotion=true, delta=3, blksize=8, search=3, overlap=4, dct=4)
maskp1 = source.MMask(vf1, kind=1, ysc=255).UtoY()
maskp2 = source.MMask(vf2, kind=1).UtoY()
maskp3 = source.MMask(vf3, kind=1).UtoY()
maskp4 = source.MMask(vb1, kind=1, ysc=255).UtoY()
maskp5 = source.MMask(vb2, kind=1).UtoY()
maskp6 = source.MMask(vb3, kind=1).UtoY()
Frames = 3
divdr=1/(Frames * 2.0)
maskf = average(maskp1, divdr, maskp2, divdr, maskp3, divdr, maskp4, divdr, maskp5, divdr, maskp6, divdr).spline36resize(source.width,source.height)
smooth = source.degrainmedian(limitY=12,limitUV=8,mode=3).fft3dgpu(bw=16, bh=16, bt=3, sigma=1.0, sigma2=1.2,sigma3=1.5,sigma4=2.5,plane=0)
source2 = mt_merge(source,smooth,maskf)
source2.MDegrain3(super,vb1,vf1,vb2,vf2,vb3,vf3,thSAD=320)

dull  = last
sharp = dull.LimitedSharpenfaster(ss_x=3.0,ss_y=3.0,smode=3,strength=240,overshoot=3)
Soothe(sharp,dull,15)

В настоящеевремя LaTo несколько модернизировал и улучшил LimitedSharpenFaster и выпустил LSFmod v1.3, который, как вы заметили, я и использую в конце своих скриптов.
Tempter57
Старшина 2ой статьи
Старшина 2ой статьи
 
Сообщения: 105
Зарегистрирован: Пт янв 23, 2009 3:43 am
Откуда: г.Донецк

Re: Посоветуйте шумодав для avisynth

Сообщение Tempter57 » Чт янв 29, 2009 1:03 pm

Сантьяго писал(а):Разве стоит заморачиваться из за конвертирования yv12 - rgb - yv12 ? Потери то там ничтожны. Лёгкий шумодав в 50 раз сильнее картинку исказит чем смена палитр.

Это ваши мысли или кого-нибудь цитируем? Игорёк там свой переход из одного цветового пространства в другое, поставил просто от балды. :D Gideon Vi так прямо его и спросил: а зачем? Ответ: да так просто, на всякий случай. То что RGB32 сужает диапазон цветового пространства в сравнении с YV12 это так, пускай на ваш взгляд и незначительно, но не надо ухудшать сигнал бесмысленными переходами из одного цветового пространства в другое.
Теперь о шумодавах. В этом плане флагман VirtualDub фильтр NeatVideo. Дурного не скажу прекрасный фильтр. Вообще, если рассматривать фильтры VirtualDub, то все они имеют одно достоинство: богатый графический интерфейс.Только на этом выигрыш и заканчивается.
Для работы с фильтрами Avisynth требуется знание параметров настройки фильтра, большой практический опыт и намётанный глаз для оценки источника. Отлаживать парметры настройки по каждому фильтру очень удобно в программе AvsP, непосредственно открывая свой скрипт в ней и визуально подстраивая параметры настройки по каждому фильтру.
Теперь вернемся к шумодавам.Тому же флагману VirtualDub фильтру NeatVideo есть в Avisynth довольно близкий аналог frfun3d. Но даже не в этом дело. Развитие VirtualDub пошло на убыль, в то время. как в среду Avisynth влились молодые и амбициознные программисты. В плане шумодавов революционный процесс начался с создания фильтров FFT3DFilter и DFTTest, но полный разгром фильтров VirtualDub завершился созданием плагина MVTools и использования его функций. Сейчас невозможно представить уже ни одного высококлассного скрипта, который не базируется на векторном анализе оценки движения: будто шумодавы, скрипты деинтерлейса и прочие.
Надо, конечно, отдать должное VirtualDubу, как нашей истории, смириться с его моральным старением и поражением (хотя всё можно и подправить, кинув на его доработку значительные программные ресурсы) и двигаться дальше... :beer:
Вчера LaTo обновил свой MCTemporalDenoise v1.1.26. Это на мой взгляд один из самых лучших комбинированных скриптов по обработке исходника. Прошли следующие изменения:
v1.1.26:
changed "flat" post-processing to use GradFun2DBmod
changed int->float for AGstr
fixed a small bug in AA

v1.1.24:
fixed a chroma bug with PP

В ранее выложенном Архиве plugins_filtering в пресетах к его скрипту, подключался GradFun2DBmod принудительно, как внешний фильтр, но всё же лучше обновиться до версии MCTemporalDenoise v1.1.26. раз там были и другие доработки и баги.
Последний раз редактировалось Tempter57 Чт янв 29, 2009 11:31 pm, всего редактировалось 1 раз.
Tempter57
Старшина 2ой статьи
Старшина 2ой статьи
 
Сообщения: 105
Зарегистрирован: Пт янв 23, 2009 3:43 am
Откуда: г.Донецк

Re: Посоветуйте шумодав для avisynth

Сообщение Gideon Vi » Чт янв 29, 2009 5:28 pm

Tempter57, спасибо за информацию. У меня есть фильм, где постоянно идёт снег (малыми и большими хлопьями) и он там очень важен. Есть нужда при сжатии использовать фильтрацию, но при этом сохранить как можно больше снега. MVTools мне очень нравится, и я с удовольствием юзаю универсальные скрипты Игоря, однако результат при обработки этого фильма меня печалит. Поскольку ты любишь эксперементировать со скриптами, то может возмешся помочь? Я могу залить пару коротки отрезков, весом до мб каждый.
Now we that are strong ought to
bear the infirmities of the weak
and not to please ourselves.
Gideon Vi
Капитан-Лейтенант
Капитан-Лейтенант
 
Сообщения: 803
Зарегистрирован: Ср июл 20, 2005 7:10 pm

Re: Посоветуйте шумодав для avisynth

Сообщение Tempter57 » Чт янв 29, 2009 11:27 pm

Gideon Vi писал(а):Tempter57, спасибо за информацию. У меня есть фильм, где постоянно идёт снег (малыми и большими хлопьями) и он там очень важен. Есть нужда при сжатии использовать фильтрацию, но при этом сохранить как можно больше снега. MVTools мне очень нравится, и я с удовольствием юзаю универсальные скрипты Игоря, однако результат при обработки этого фильма меня печалит. Поскольку ты любишь эксперементировать со скриптами, то может возмешся помочь? Я могу залить пару коротки отрезков, весом до мб каждый.

Скинь сэмпл весом 25-30 МБ со снегом и скрипт, которым обрабатываешь. Архив то хоть скачал у меня, там собраны одни из лучших фильтровых скриптов.
Попробуй сразу для снежка такой простенький скриптик:
Код: Выделить всё
setmtmode(2,2)
a = last
b = a.AddGrain(30)
super = b.MSuper(hpad=8, vpad=8, pel=2, sharp=2, rfilter=2)
bvec = super.MAnalyse(isb=true, blksize=8, overlap=4)
fvec = super.MAnalyse(isb=false, blksize=8, overlap=4)
c = b.MDegrain1(super, bvec, fvec)
d = mt_makediff(a,b,U=3,V=3)
e = mt_makediff(a,c,U=3,V=3)
f = mt_lutxy(e, d, "(abs(x-128) <= abs(y-128) ? x : y)", U=3, V=3)
final = mt_adddiff(a,f)

Можно ещё и разные участки фильма обработать разными фильтрами, а потом объединить. В данном случае, участком со снегом можно обработать этим пресетом с добавленным генерированным шумом, чтобы сохранить детализацию и не потерять падение снежинок, а далее подходящим фильтровым пресетом:
Trim(n1,n2) # n1 -1-й кадр со снегом, n2- последний
Вот здесь обрати внимание на 2-й снимок , как граммотно LaTo сохранил туман, применив flat=true(собственно подключил GradFun2DBmod, куда входит AddGrainС).
Вот ещё вариант:
Код: Выделить всё
#plugin_files
#RemoveGrain.dll
#degrainmedian.dll
#mvtools2.dll
#Repair.dll
#MaskTools.dll
#WarpSharp.dll
#Mt.dll
#mt_masktools-25.dll
#AddGrainC.dll
#GrainFactory3a.avs
#LimitedSharpenFaster Mod.avs

setmtmode(2,2)
source = last.degrainmedian(limitY=10,limitUV=8,mode=3)
super=source.MSuper(hpad=8, vpad=8, pel=2, sharp=2, rfilter=2)
vb2 = MAnalyse(super, isb=true, truemotion=true, delta=2, blksize=8, overlap=4)
vb1 = MAnalyse(super, isb=true, truemotion=true, delta=1, blksize=8, overlap=4)
vf1 = MAnalyse(super,isb=false, truemotion=true, delta=1, blksize=8, overlap=4)
vf2 = MAnalyse(super,isb=false, truemotion=true, delta=2, blksize=8, overlap=4)
source.MDegrain2(super,vb1,vf1,vb2,vf2,thSAD=240)
LSFmod(defaults="fast")
GrainFactory3a(5,4,6,60,66,80,1.3,1.1,0.7,0,0,0,0,0,24,56,128,160)
Последний раз редактировалось Tempter57 Вт мар 03, 2009 11:06 pm, всего редактировалось 1 раз.
Tempter57
Старшина 2ой статьи
Старшина 2ой статьи
 
Сообщения: 105
Зарегистрирован: Пт янв 23, 2009 3:43 am
Откуда: г.Донецк

Re: Посоветуйте шумодав для avisynth

Сообщение Tempter57 » Вт мар 03, 2009 10:59 pm

Очень прекрасных результатов в плане обработки исходного клипа можно добиться при использовании скрипта HybridFuPP
Этот скрипт Avisynth позволяет и изменение размеров (ресайз) и фильтрацию вашего видео. Отличные фильтры могут быть применены на различные части того же самого изображения (края, статические области, движение, темные области и засветки ...): HybridFuPP - своего рода адаптивный процессор, позволяющий очистить от шума изображение и улучшить сжимаемость видеоряда.
Главная идея состоит в существенной фильтрации менее видимых частей изображения, и очень мягкой более видимых. HybridFuPP использует маски, чтобы обнаружить области обработки.
В новых версиях, HybridFuPP предлагает даже более агрессивный подход “психовизуальный” (хотя очень эмпирический), позволяя распределять битрейт, где и когда это, как полагается, является критическим, особенно при низком битрейте (темные сцены, очищенные области ... ). Все эти новые особенности являются конечно дополнительными и потому довольно экспериментальными.
Стандартные предложенные обработки: различные варианты ресайза (7 возможностей), статические области шумоподавления, шумоподавление движения, шумоподавление тёмных и засвеченных областей, шумоподавление в каналах цветности (U и каналы V), увеличение резкости краев или смягчение (отличные горизонтальные и вертикальные параметры настройки), регулировка яркости краев, deringing (удаление артефактов вокруг краев), деблокинг (удаляющий эффект блочности, произведенной mpeg сжатием) и обработкой кожи (skin).
Хотя HybridFuPP был проектирован в начале, чтобы обработать довольно чистые материалы, можно использовать данный скрипт с шумными материалами также (в зависимости от шумового типа): увеличение настроек по умолчанию можно производить, если это требуется.
Главным достоинством является, помимо качественного результата, высокая скорость обработки данным скриптом.
скачать HybridFuPP+пакет документации
Предупреждение: версия HybridFuPP0985a for AviSynth 2.5.8, версия HybridFuPP0984a for AviSynth 2.5.7
Типовой пресет:
Код: Выделить всё
setmemorymax(256)
#plugin_files
#deen_1.0.dll
#UnFilter.dll
#mvtools.dll
#deblock.dll
#Mt.dll
#mt_masktools-25.dll
#AddGrain.dll
#HybridFuPP0985a.avs

setmtmode(2,2)
source=last
#HybridFuPP( width=source.width, height=source.height,preset="medium") # MDenoise() применить с шумным источником
#HybridFuPP( width=source.width, height=source.height,preset="high")
#HybridFuPP( width=source.width, height=source.height, Resizer=6,preset="very high",dering=true,skin=true)
#HybridFuPP( width=source.width, height=source.height,preset="low")
#HybridFuPP( width=source.width, height=source.height,preset="very low")
#HybridFuPP( width=source.width, height=source.height,preset="anime1",Deblock=true)
#HybridFuPP( width=source.width, height=source.height,preset="anime2",Deblock=true)
HybridFuPP( width=source.width, height=source.height, Resizer=6, preset="HybridQ",dering=true)
Tempter57
Старшина 2ой статьи
Старшина 2ой статьи
 
Сообщения: 105
Зарегистрирован: Пт янв 23, 2009 3:43 am
Откуда: г.Донецк

Re: Посоветуйте шумодав для avisynth

Сообщение Gideon Vi » Ср мар 04, 2009 12:30 pm

чем он лучше/хуже MCTemporalDenoise?
Now we that are strong ought to
bear the infirmities of the weak
and not to please ourselves.
Gideon Vi
Капитан-Лейтенант
Капитан-Лейтенант
 
Сообщения: 803
Зарегистрирован: Ср июл 20, 2005 7:10 pm

Re: Посоветуйте шумодав для avisynth

Сообщение Tempter57 » Ср мар 04, 2009 11:55 pm

Gideon Vi писал(а):чем он лучше/хуже MCTemporalDenoise?

просто он очень шустрый и даёт прекрасный результат, хотя в основе его лежат два простеньких фильтра deen и unfilter(не беру во внимание генератор зерна AddGrain), но Fupp за счёт граммотного применения масок вытащил на передний план главный объект кадра, слегка обработав его фильтром и сильно обработав, окружение. Очень большой интерес представляет скрипт кожи человека skin(), который вытягивает человека на передний план картины. Это сделано не случайно, поскольку человеческий глаз концентрирует своё внимание именно на главном объекте-человеке и его действиях, а главным у человека является лицо(кожа). То есть имеем довольно классный психовизуальный эффект.
Лично моё мнение на MCTemporalDenoise свет клином не сошёлся, прекрасные результаты даёт и его предшественник MC_spuds.
Кроме того не забудьте о том ,что Tritical выпустил dfttest v.1.3 и к нему уже другая вспомагательная библиотека libfftw3f-3.dll
Tempter57
Старшина 2ой статьи
Старшина 2ой статьи
 
Сообщения: 105
Зарегистрирован: Пт янв 23, 2009 3:43 am
Откуда: г.Донецк

Re: Посоветуйте шумодав для avisynth

Сообщение Gideon Vi » Чт мар 05, 2009 10:26 am

просто он очень шустрый и даёт прекрасный результат

Шустрый - однозначно, но вот достаточно серьезный шум на стандартных пресетах чистит плохо. Может и можно ручками докрутить, но как-то лень.
Очень большой интерес представляет скрипт кожи человека skin()

Сделай несколько скринов на разном материале, "до" и "после".
Лично моё мнение на MCTemporalDenoise свет клином не сошёлся

Это да. Раз уж тебе интересно пробовать новое, подкидывай нам такие наборчики.

зы. Собрал фильтр в виде инсталятора: HybridFuPP
Now we that are strong ought to
bear the infirmities of the weak
and not to please ourselves.
Gideon Vi
Капитан-Лейтенант
Капитан-Лейтенант
 
Сообщения: 803
Зарегистрирован: Ср июл 20, 2005 7:10 pm

Re: Посоветуйте шумодав для avisynth

Сообщение Tempter57 » Чт мар 05, 2009 11:55 pm

Gideon Vi писал(а):Шустрый - однозначно, но вот достаточно серьезный шум на стандартных пресетах чистит плохо. Может и можно ручками докрутить, но как-то лень.

Для устранения серьезного шума применяется несколько другой пресет шумодавления:
Код: Выделить всё
#plugin_files
#RemoveGrain.dll
#degrainmedian.dll
#Repair.dll
#FFT3Dgpu.dll
#mvtools2.dll
#removedirt.dll
#MaskTools.dll
#WarpSharp.dll
#deen.dll
#MT.dll
#mt_masktools-25.dll
#LimitedSharpenFaster Mod.avs

setmtmode(2,2)
source = last
pre=source.degrainmedian(limitY=3,limitUV=4,mode=2) # для крупного зерна mode=1
super=pre.MSuper(hpad=8, vpad=8, pel=2, sharp=2, rfilter=4)
vb2 = MAnalyse(super, isb=true, truemotion=true, delta=2, blksize=16, overlap=4)
vb1 = MAnalyse(super, isb=true, truemotion=true, delta=1, blksize=16, overlap=4)
vf1 = MAnalyse(super,isb=false, truemotion=true, delta=1, blksize=16, overlap=4)
vf2 = MAnalyse(super,isb=false, truemotion=true, delta=2, blksize=16, overlap=4)
source.MDegrain2(super,vb1,vf1,vb2,vf2,thSAD=450) # чем сильнее шум тем больше значение thSAD
MergeLuma(deen("a2d",3,0,8),\
FFT3Dgpu(wintype=1,bt=3,bw=24,bh=24,ow=12,oh=12,degrid=1,sigma=1.5,sigma2=1.2,sigma3=2,sigma4=4,plane=0,interlaced=false))
Temporalsoften(2,1,1,8,2)# окончательная полировка
LSFmod(defaults="slow") # добавление резкости

Надо обязательно подобрать значения sigma, особенно sigma2 и sigma3, которые задают уровень шумоподавления в среднечастотном диапазоне. В данном пресете пост-шумоподавление после MDegrain2 и окончательная зачистка от шумов производится сладкой парочкой: deen для подавления шумов в канале цветности и FFT3Dgpu в яркостном канале. Это сделано с целью увеличения скорости обработки.
Tempter57
Старшина 2ой статьи
Старшина 2ой статьи
 
Сообщения: 105
Зарегистрирован: Пт янв 23, 2009 3:43 am
Откуда: г.Донецк

Re: Посоветуйте шумодав для avisynth

Сообщение nicko » Чт мар 19, 2009 2:33 am

Tempter57
Вторая мода, имхо, в degrainmedian всетаки небольшой перебор, пороги limity, limituv, тоже деталей не пощадят, хотя найдутся наверное и такие исходники.

Попробуй еще такой вариант.
Основные крутилки непосредственно перед скриптом.

Код: Выделить всё
source=last
w = source.width
h = source.height

thSCD1=256
thSCD2=120
pel=2
blksize=16
overlap=4
search=2
lambda=1600
dct=0
badSAD = 3200
badRange = 32
truemotion=true
sigma2=0.7

clean = source.degrainmedian(mode=3, limity=16, limituv=8)
superclip = clean.msuper(pel=pel, rfilter=4, sharp=2, hpad=8, vpad=8)
bv1 = superclip.manalyse(blksize=blksize,overlap=overlap, search=search, lambda=lambda, dct=dct, badSAD=badSAD, badRange=badRange, truemotion=truemotion, isb=true,delta=1)
bv2 = superclip.manalyse(blksize=blksize,overlap=overlap, search=search, lambda=lambda, dct=dct, badSAD=badSAD, badRange=badRange, truemotion=truemotion, isb=true,delta=2)
fv1 = superclip.manalyse(blksize=blksize,overlap=overlap, search=search, lambda=lambda, dct=dct, badSAD=badSAD, badRange=badRange, truemotion=truemotion, isb=false,delta=1)
fv2 = superclip.manalyse(blksize=blksize,overlap=overlap, search=search, lambda=lambda, dct=dct, badSAD=badSAD, badRange=badRange, truemotion=truemotion, isb=false,delta=2)

vfv2 = source.MCompensate(superclip, fv2, thSCD1=thSCD1, thSCD2=thSCD2)
vfv1 = source.MCompensate(superclip, fv1, thSCD1=thSCD1, thSCD2=thSCD2)
vbv1 = source.MCompensate(superclip, bv1, thSCD1=thSCD1, thSCD2=thSCD2)
vbv2 = source.MCompensate(superclip, bv2, thSCD1=thSCD1, thSCD2=thSCD2)

interleave(vbv2,vbv1,source,vfv1,vfv2)
dfttest(tbsize=5, sigma=0.4, sigma2=sigma2)
selectevery(5,2)


Нужен mvtools v.2 и как минимум dfttestv13.
Могу передать твои замечания автору. :)

PS
Правда с NV мне все равно удалось получить вариант лучше, уж больно хорош его штатный темпоральный фильтр, ну и остальное конечно тоже. :wink:
nicko
Капитан-Лейтенант
Капитан-Лейтенант
 
Сообщения: 922
Зарегистрирован: Вт июн 12, 2007 11:56 pm
Откуда: дровишки?

Re: Посоветуйте шумодав для avisynth

Сообщение Tempter57 » Пт мар 20, 2009 6:32 pm

nicko
Иду навстречу твоим пожеланиям, согласен тот скрипт был больше для обработки материалов видеокамер, для обработки DVD несколько иные пресеты:
1-й с preNR на основе dfttest v.1.3 и mvtools2
Код: Выделить всё
setmtmode(2,2)
source = last
preNR = source.dfttest(sigma=0.5,sigma2=0.2,tbsize=5)
preNR_super = preNR.MSuper(hpad=8, vpad=8, pel=2, sharp=2, rfilter=2)
source_super = source.MSuper(hpad=8, vpad=8, pel=2, sharp=2, levels=1)
vb2 = MAnalyse(preNR_super, isb=true, truemotion=true, delta=2, blksize=16, overlap=4)
vb1 = MAnalyse(preNR_super, isb=true, truemotion=true, delta=1, blksize=16, overlap=4)
vf1 = MAnalyse(preNR_super,isb=false, truemotion=true, delta=1, blksize=16, overlap=4)
vf2 = MAnalyse(preNR_super,isb=false, truemotion=true, delta=2, blksize=16, overlap=4)
maskp1 = MMask(vf1, kind=1, ysc=255).UtoY()
maskp2 = MMask(vf2, kind=1).UtoY()
maskp3 = MMask(vb1, kind=1, ysc=255).UtoY()
maskp4 = MMask(vb2, kind=1).UtoY()
maskf = average(maskp1, 0.25, maskp2, 0.25, maskp3, 0.25, maskp4, 0.25).spline36resize(source.width, source.height)
source2 = mt_merge(source,preNR,maskf)
source2.MDegrain2(source_super,vb1,vf1,vb2,vf2,thSAD=200)
LSFmod(defaults="slow")
Gradfun2dbmod()


2-й с preNR на основе fft3dfilter и mvtools2:

Код: Выделить всё
setmtmode(2,2)
YLevelsS(0,0.97,255,0,255)
source = last
preNR = source.fft3dfilter(wintype=1,degrid=1,bw=32,bh=32,ow=16,oh=16,bt=5,sigma=2.3,sigma2=2.0,sigma3=1.5,sigma4=0.7,plane=0)
preNR_super = preNR.MSuper(hpad=8, vpad=8, pel=2, sharp=2, rfilter=2)
source_super = source.MSuper(hpad=8, vpad=8, pel=2, sharp=2, levels=1)
vb3 = MAnalyse(preNR_super,isb=true, truemotion=true, delta=3, blksize=8, search=3, overlap=4, dct=4)
vb2 = MAnalyse(preNR_super,isb=true, truemotion=true, delta=2, blksize=8, search=3, overlap=4, dct=4)
vb1 = MAnalyse(preNR_super,isb=true, truemotion=true, delta=1, blksize=8, search=3, overlap=4, dct=4)
vf1 = MAnalyse(preNR_super,isb=false,truemotion=true, delta=1, blksize=8, search=3, overlap=4, dct=4)
vf2 = MAnalyse(preNR_super,isb=false,truemotion=true, delta=2, blksize=8, search=3, overlap=4, dct=4)
vf3 = MAnalyse(preNR_super,isb=false,truemotion=true, delta=3, blksize=8, search=3, overlap=4, dct=4)
maskp1 = MMask(vf1, kind=1, ysc=255).UtoY()
maskp2 = MMask(vf2, kind=1).UtoY()
maskp3 = MMask(vf3, kind=1).UtoY()
maskp4 = MMask(vb1, kind=1, ysc=255).UtoY()
maskp5 = MMask(vb2, kind=1).UtoY()
maskp6 = MMask(vb3, kind=1).UtoY()
Frames = 3
divdr=1/(Frames * 2.0)
maskf = average(maskp1, divdr, maskp2, divdr, maskp3, divdr, maskp4, divdr, maskp5, divdr, maskp6, divdr).spline36resize(source.width,source.height)
source2 = mt_merge(source,preNR,maskf)
source2.MDegrain3(source_super,vb1,vf1,vb2,vf2,vb3,vf3,thSAD=180)
LSFmod(defaults="slow")
Gradfun2dbmod()
Tempter57
Старшина 2ой статьи
Старшина 2ой статьи
 
Сообщения: 105
Зарегистрирован: Пт янв 23, 2009 3:43 am
Откуда: г.Донецк

Re: Посоветуйте шумодав для avisynth

Сообщение nicko » Пт мар 20, 2009 7:04 pm

Спасибо, на выходных погоняю обоих.

Первые два (http://forum.mediatory.ru/viewtopic.php?p=50338#p50338 и http://forum.mediatory.ru/viewtopic.php?p=50454#p50454) при одинаковых выходных битрейтах ( оба использовались без MT, эта приблуда пока многим портит жизнь) пока значительно уступают NV, твой по качеству фильтрации, хотя он и на ~20% быстрее, тот что давал я на 50% медленнее NV но все равно по качеству не дотягивает. :(
nicko
Капитан-Лейтенант
Капитан-Лейтенант
 
Сообщения: 922
Зарегистрирован: Вт июн 12, 2007 11:56 pm
Откуда: дровишки?

Re: Посоветуйте шумодав для avisynth

Сообщение Tempter57 » Пт мар 20, 2009 7:44 pm

nicko
Заметил, что я вывел из пресетов фильтр degrainmedian. Что-то перестал он мне нравиться вообще. Жду, когда Fizick выложит mvtools 2.4.1, пока только beta-версия. После этого обновлю архив plugins_filtering здесь и на torrents.ru.
2.4.1 beta (24.01.2009 by Fizick)
MDegrain: Fixed weight for hight threshold and big block size.
2.4.0 beta (09.01.2009 by Fizick)
MDegrain: Changed degrain weight method to more strong, some internal rewriting.
Fixed documenation.

Ты только для своих рипов КВН подбери в тех скриптах значения всех sigma в сторону увеличения да и thSAD у тебя будет побольше значительно :)
Tempter57
Старшина 2ой статьи
Старшина 2ой статьи
 
Сообщения: 105
Зарегистрирован: Пт янв 23, 2009 3:43 am
Откуда: г.Донецк

Re: Посоветуйте шумодав для avisynth

Сообщение nicko » Пт мар 20, 2009 8:22 pm

Tempter57 писал(а):nicko
Заметил, что я вывел из пресетов фильтр degrainmedian. Что-то перестал он мне нравиться вообще. Жду, когда Fizick выложит mvtools 2.4.1, пока только beta-версия. После этого обновлю архив plugins_filtering здесь и на torrents.ru.
2.4.1 beta (24.01.2009 by Fizick)
MDegrain: Fixed weight for hight threshold and big block size.
2.4.0 beta (09.01.2009 by Fizick)
MDegrain: Changed degrain weight method to more strong, some internal rewriting.
Fixed documenation.

Ты только для своих рипов КВН подбери в тех скриптах значения всех sigma в сторону увеличения да и thSAD у тебя будет побольше значительно :)


ОК.
Обязательно покручу, хотя нечто подобное я уже вроде тестировал...
Настройки NV я пока не трогаю, тестирую с неким фиксированным оптимальным сетапом уже 2-3-й месяц, но замены пока не нашел.

Вот кстати как оно сейчас выглядит с фиксированными настройками NV. Избыточный Psy-RDO=0.56:0.56 немного набросал лишнего шума на границы, но в целом близко к оригиналу.
http://torrents.ru/forum/viewtopic.php? ... pmode=full 534 MB
Продолжительность: 1:49:56.200
Видео: 704x576 (768x576 анаморф), 25.00fps, x264vfw, 613 kbps
Аудио: AAC-HE, 48000Hz, stereo, 62 kbps
Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение
Последний раз редактировалось nicko Пт мар 20, 2009 10:31 pm, всего редактировалось 1 раз.
nicko
Капитан-Лейтенант
Капитан-Лейтенант
 
Сообщения: 922
Зарегистрирован: Вт июн 12, 2007 11:56 pm
Откуда: дровишки?

Re: Посоветуйте шумодав для avisynth

Сообщение Tempter57 » Пт мар 20, 2009 9:21 pm

nicko
Давно хотел сказать тебе, на мой взгляд, сильно замыливаешь изображение, хотя понимаю, что кодируешь x264vfw.VAQmod и хочется получить малый выходной размер без блочности. Лица от замыливания выглядят нереальными, восковыми что ли. Возможно, это только мой взгляд, я ведь сторонник повышенной детализации и резкости изображений и, если бы не низкая скорость обработки, для шарпности применял бы SSSharp.avs, например, такой пресет:
Код: Выделить всё
#plugin_files
#LoadDll.dll
#aWarpSharp.dll
#dctfun4b.dll
#VariableBlur.dll
#RemoveGrainHD.dll
#RemoveGrain.dll
#degrainmedian.dll
#mvtools2.dll
#Repair.dll
#fft3dfilter.dll
#MaskTools.dll
#WarpSharp.dll
#removedirt.dll
#average.dll
#mt_masktools-25.dll
#Mt.dll
#YLevelsS.avs
#SSSharp.avs

setmtmode(2,2)
source = last
YLevelsS(0,0.97,255,0,255)
preNR = source.fft3dfilter(wintype=1,degrid=1,bw=32,bh=32,ow=16,oh=16,bt=5,sigma=2.3,sigma2=2.0,sigma3=1.5,sigma4=0.7,plane=0)
preNR_super = preNR.MSuper(hpad=8, vpad=8, pel=2, sharp=2, rfilter=2)
source_super = source.MSuper(hpad=8, vpad=8, pel=2, sharp=2, levels=1)
vb2 = MAnalyse(preNR_super, isb=true, truemotion=true, delta=2, blksize=8, overlap=4)
vb1 = MAnalyse(preNR_super, isb=true, truemotion=true, delta=1, blksize=8, overlap=4)
vf1 = MAnalyse(preNR_super,isb=false, truemotion=true, delta=1, blksize=8, overlap=4)
vf2 = MAnalyse(preNR_super,isb=false, truemotion=true, delta=2, blksize=8, overlap=4)
maskp1 = MMask(vf1, kind=1, ysc=255).UtoY()
maskp2 = MMask(vf2, kind=1).UtoY()
maskp3 = MMask(vb1, kind=1, ysc=255).UtoY()
maskp4 = MMask(vb2, kind=1).UtoY()
maskf = average(maskp1, 0.25, maskp2, 0.25, maskp3, 0.25, maskp4, 0.25).spline36resize(source.width, source.height)
source2 = mt_merge(source,preNR,maskf)
source2.MDegrain2(source_super,vb1,vf1,vb2,vf2,thSAD=180,thSADC=90,thSCD1=250,thSCD2=110,limit=200)
SSSharp(rad=0.25, strength=3.0, ssw=true, iter=1)

По умолчанию в SSSharp значение strength=4.0, а вот shellgen применяет несколько по-мягче:
SSSharp(rad=0.5, strength=0.75, ssw=true, iter=1)
но с таким уровнем strength более целесообразно уж лучше применить LSFmod от LaTo и Didйе из-за скорости обработки и поставленной цели.
Tempter57
Старшина 2ой статьи
Старшина 2ой статьи
 
Сообщения: 105
Зарегистрирован: Пт янв 23, 2009 3:43 am
Откуда: г.Донецк

Re: Посоветуйте шумодав для avisynth

Сообщение nicko » Пт мар 20, 2009 9:44 pm

Tempter57 писал(а):nicko
Давно хотел сказать тебе, на мой взгляд, сильно замыливаешь изображение, хотя понимаю, что кодируешь x264vfw.VAQmod и хочется получить малый выходной размер без блочности. Лица от замыливания выглядят нереальными, восковыми что ли. Возможно, это только мой взгляд, я ведь сторонник повышенной детализации и резкости изображений и, если бы не низкая скорость обработки, для шарпности применял бы SSSharp.avs

В том то и проблема, что mvtools (в частности то что ты давал) при одинаковом битрейте мылят на порядок больше, то есть деталей при этом совсем не остается, могу если хочешь показать сравнения тестов.
Я оставляю в КВНах больше половины шумов (не говоря уже о деталях), что совместно с ffd-noise генераторами дает почти полное соответствие исходнику.
SSSharp как ты правильно заметил, тормоз редкий (раза в 2 медленнее то-же NV), а по эффективности проигрывает довольно шустрому (раз в 20 быстрее) 2-4-х кратному варпшарпу из VD (в основе SSSharp их 8 штук из ависинта не считая абскейла). :wink:
Так что с ним я уже точно связываться не буду, наигрался досыта (даже с радиусом 0.22).

PS.
Если детали и шум плохо заметны при просмотре, то скорее всего проблема в декодере и компе, в частности эти скрины я делал на древнем P4 c которым новые ffd-фильтры не дружат а старые фильтры еще плохо знакомы с b-фреймами, шумы и детали на нем только иногда появляются в динамике, а в статике и на скриншотах всегда 0. На новых компах у меня с этим все в порядке.
Последний раз редактировалось nicko Пт мар 20, 2009 11:00 pm, всего редактировалось 3 раз(а).
nicko
Капитан-Лейтенант
Капитан-Лейтенант
 
Сообщения: 922
Зарегистрирован: Вт июн 12, 2007 11:56 pm
Откуда: дровишки?

Re: Посоветуйте шумодав для avisynth

Сообщение Tempter57 » Пт мар 20, 2009 10:13 pm

nicko
Причём здесь mvtools, дело в том какой ты скрипт и с какими параметрами настройки фильтров применяешь для кодирования. Mvtools довольно мощный плагин, но он не трогает практически объекты движения, а сильно давит фоновую картинку, чистя по векторам движения, а собственно сам объект движения ты чистишь фильтром preNR. Если ты имеешь в виду пресет DVD Molotov2,3 , то он предназначен для подавления крупно-зернистого шума и это вопрос, почему тебе вдруг захотелось его применить. Если заметил, строка
MergeLuma(deen("a2d",3,0,8),\
FFT3Dfilter(wintype=1,bt=3,bw=32,bh=32,ow=16,oh=16,degrid=1,sigma=3.5,sigma2=3.0,sigma3=3.5,sigma4=4,plane=0,interlaced=false)) находится уже вне mvtools.
Взгляни все самые качественные скрипты MCTemporalDenoise.avs и MC_Spuds.avs базируются на плагине mvtools и насквозь пронизаны MVAnalyse.
Tempter57
Старшина 2ой статьи
Старшина 2ой статьи
 
Сообщения: 105
Зарегистрирован: Пт янв 23, 2009 3:43 am
Откуда: г.Донецк

Re: Посоветуйте шумодав для avisynth

Сообщение nicko » Пт мар 20, 2009 10:20 pm

Tempter57 писал(а):nicko
Причём здесь mvtools, дело в том какой ты скрипт и с какими параметрами настройки фильтров применяешь для кодирования. Mvtools довольно мощный плагин, но он не трогает практически объекты движения, а сильно давит фоновую картинку, чистя по векторам движения, а собственно сам объект движения ты чистишь фильтром preNR. Если ты имеешь в виду пресет DVD Molotov2,3 , то он предназначен для подавления крупно-зернистого шума и это вопрос, почему тебе вдруг захотелось его применить.
Взгляни все самые качественные скрипты MCTemporalDenoise.avs и MC_Spuds.avs базируются на плагине mvtools и насквозь пронизаны MVAnalyse.

Я их тестирую довольно часто и в разных комбинациях (если ты обратил внимание, не только mvtools), речь не о том что они плохо работают, довольно не плохо и даже хорошо, если сравнивать с голым скриптом.

Но моя задача не в том что-бы найти хороший скрипт, а найти хороший по сравнению с тем что уже давно существует и пока не требует настроек.

PS
У тебя есть ссылка на последнюю 2.4.1 (неохота ради перехода с 2.3 на 2.4 делать регистрацию...)?
nicko
Капитан-Лейтенант
Капитан-Лейтенант
 
Сообщения: 922
Зарегистрирован: Вт июн 12, 2007 11:56 pm
Откуда: дровишки?

Re: Посоветуйте шумодав для avisynth

Сообщение Tempter57 » Пт мар 20, 2009 10:52 pm

nicko
нет пока ссылки на версию 2.4.1, поиском искал, не нашёл, на forum.doom9 тоже нет, сам пока курю по той же причине. :)
Tempter57
Старшина 2ой статьи
Старшина 2ой статьи
 
Сообщения: 105
Зарегистрирован: Пт янв 23, 2009 3:43 am
Откуда: г.Донецк

Пред.След.

Вернуться в Софт: описание работы с пакетами, кодеками. Вопросы и ответы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

cron