|
Pustovetov
Стаж: 17 лет Сообщений: 4255
|
Pustovetov ·
06-Июн-09 19:27
(15 лет 5 месяцев назад)
Игорь из Таганрога писал(а):
Подскажите пожалуйста, как в AviSynth можно сгладить пиксели?
Сгладить? ну начиная от Blur(x.x) (где x.x от 0.0 до 1.58) ну и далее дофига разных фильтров
|
|
Игорь из Таганрога
Стаж: 15 лет 7 месяцев Сообщений: 319
|
Игорь из Таганрога ·
06-Июн-09 21:20
(спустя 1 час 52 мин., ред. 06-Июн-09 23:03)
Pustovetov
Спасибо
А может кто подскажет, чем провести постобработку видео после обжатия? Сгладить картинку, может даже через интерполяцию восстановить часть инфы межды строк. Качество источника очень посредственное. Втрое обжал, различий почти нет. Хочу теперь довести до ума то, что вышло
|
|
bubuzavr
Стаж: 18 лет Сообщений: 2827
|
bubuzavr ·
06-Июн-09 23:01
(спустя 1 час 40 мин.)
bubuzavr писал(а):
Примените что-то вроде Anime Flow(MVCompensate) или Anime Flow SL( c усилением граней, если надо сделать по-резче)
Перебрал все варианты
По результатам больше всего подошел "Anime MVDegrain2 mask4"
скрытый текст
source = last
preNR = source.fft3dfilter(wintype=1,degrid=1,bw=32,bh=32,ow=16,oh=16,bt=3,sigma=3.75,sigma2=3.2,sigma3=2.7,sigma4=1.5,plane=0)
preNR_super = preNR.MSuper(hpad=16, vpad=16, pel=2, sharp=2, rfilter=2)
source_super = source.MSuper(hpad=16, vpad=16, 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=450)
LSFmod(defaults="slow")
Gradfun2dbmod(thr=1.8,thrC=2.6)
Его бы сделать чучуть послабее, чтобы не так сильно крутил четкость и сглаживал линии и будет замечательно.
Но есть очень весомое НО...
Как быть если фильтр рисует то чего нет?
pic.original | pic.posle
Я подразумеваю что это побочный эффект использования масок...
можно ли это исправить или нужно смириться?)
|
|
Pustovetov
Стаж: 17 лет Сообщений: 4255
|
Pustovetov ·
06-Июн-09 23:43
(спустя 42 мин., ред. 06-Июн-09 23:43)
bubuzavr писал(а):
Его бы сделать чучуть послабее, чтобы не так сильно крутил четкость и сглаживал линии и будет замечательно.
Укручиваем thSAD до допустим 150 (смотреть по картинке пропажу одних деталюшек и появление новых). Если есть размазка на сильном движении, то еще можно покрутить sigma у fft3dfilter. Так же укручиваем LSFmode strength= ну допустим 50. И добавляем опосля yahr()
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
07-Июн-09 00:24
(спустя 40 мин., ред. 07-Июн-09 00:24)
Pustovetov & bubuzavr
может обойтись без LSF и Gradfun2dbmod, концовку сделать такой:
скрытый текст
source = last
sigma = 2.75 # level denoised filter FFT3D
s2 = sigma * 0.625
s3 = sigma * 0.375
s4 = sigma * 0.250
#preNR = source.fft3dfilter(bw=32,bh=32,ow=16,oh=16,bt=4,sigma=sigma,sigma2=s2,sigma3=s3,sigma4=s4,plane=0).HQdn3D(4,3,6,3)
preNR = source.fft3dgpu(bw=16,bh=16,ow=8,oh=8,bt=4,sigma=sigma,sigma2=s2,sigma3=s3,sigma4=s4,plane=0).HQdn3D(4,3,6,3)
preNR_super = preNR.MSuper(hpad=16, vpad=16, pel=2, sharp=2, chroma=true, rfilter=2)
source_super = source.MSuper(hpad=16, vpad=16, pel=2, sharp=2, levels=1)
vb2 = MAnalyse(preNR_super,isb=true, truemotion=true, delta=2, blksize=16, search=3, overlap=4, lambda=2000)
vb1 = MAnalyse(preNR_super,isb=true, truemotion=true, delta=1, blksize=16, search=3, overlap=4, lambda=2000)
vf1 = MAnalyse(preNR_super,isb=false,truemotion=true, delta=1, blksize=16, search=3, overlap=4, lambda=2000)
vf2 = MAnalyse(preNR_super,isb=false,truemotion=true, delta=2, blksize=16, search=3, overlap=4, lambda=2000)
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)
NR1 = source2.MDegrain2(source_super,vb1,vf1,vb2,vf2,thSAD=180,thSCD1=240,thSCD2=115,limit=180).HQDn3D(0,0,4,1)
s = NR1.minblur(1,1)
allD = mt_makediff(source,NR1)
ssD = mt_makediff(s,s.removegrain(11,-1))
ssDD = ssD.repair(allD,1)
ssDD = ssDD.mt_lutxy(ssD,"x 128 - abs y 128 - abs < x y ?")
NR1.mt_adddiff(ssDD,U=2,V=2)
Можно, в принципе, обойтись и без масок оценки движения, просто решил повторить имеющийся скрипт. Можно и сразу за строкой MDegrain2 сразу же и добавить:
YAHR()
и далее ничего более.
Ну и в AviSynth 2.5\plugins добавить надо два скрипта Didee:
скрытый текст
# Y'et A'nother H'alo R'educing script function YAHR(clip clp)
{
b1 = clp.minblur(2).removegrain(11,-1)
b1D = mt_makediff(clp,b1)
w1 = clp.aWarpSharp(depth=32,blurlevel=2,thresh=0.5)
w1b1 = w1.minblur(2,1).removegrain(11,-1)
w1b1D = mt_makediff(w1,w1b1)
DD = b1D.repair(w1b1D,13)
DD2 = mt_makediff(b1D,DD)
clp.mt_makediff(DD2,U=2,V=2)
} # Nifty Gauss/Median combination
function MinBlur(clip clp, int r, int "uv")
{
uv = default(uv,3)
uv2 = (uv==2) ? 1 : uv
rg4 = (uv==3) ? 4 : -1
rg11 = (uv==3) ? 11 : -1
rg20 = (uv==3) ? 20 : -1
medf = (uv==3) ? 1 : -200 RG11D = (r==1) ? mt_makediff(clp,clp.removegrain(11,rg11),U=uv2,V=uv2)
\ : (r==2) ? mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20),U=uv2,V=uv2)
\ : mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20).removegrain(20,rg20),U=uv2,V=uv2)
RG4D = (r==1) ? mt_makediff(clp,clp.removegrain(4,rg4),U=uv2,V=uv2)
\ : (r==2) ? mt_makediff(clp,clp.medianblur(2,2*medf,2*medf),U=uv2,V=uv2)
\ : mt_makediff(clp,clp.medianblur(3,3*medf,3*medf),U=uv2,V=uv2)
DD = mt_lutxy(RG11D,RG4D,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?",U=uv2,V=uv2)
clp.mt_makediff(DD,U=uv,V=uv)
return(last)
}
|
|
bubuzavr
Стаж: 18 лет Сообщений: 2827
|
bubuzavr ·
07-Июн-09 01:22
(спустя 58 мин., ред. 07-Июн-09 01:22)
Pustovetov писал(а):
Укручиваем thSAD до допустим 150 (смотреть по картинке пропажу одних деталюшек и появление новых). Так же укручиваем LSFmode strength= ну допустим 50. И добавляем опосля yahr()
Спасибо
пришлось укрутить thSAD на 90, но теперь шумодава как будто бы нет
места которые хорошо чистили при большом thSAD теперь вообще не трогаются
А что делает yahr() ?
он как то странно ужал линии в длинну и чучуть размыл в ширину
без.yahr | с.yahr
Tempter57 писал(а):
может обойтись без LSF и Gradfun2dbmod, концовку сделать такой:
Tempter57 писал(а):
Можно в принципе обойтись и без масок оценки движения, просто решил повторить имеющийся скрипт.
Попробовал, но как то изменений особо невидно
Убрал маски и тоже практически нечего не поменялось.
Все это правда при thSAD=90
Теперь кажется что никакого фильтра и вовсе нет)
p/s/ я щас сума сойду)
|
|
Pustovetov
Стаж: 17 лет Сообщений: 4255
|
Pustovetov ·
07-Июн-09 02:59
(спустя 1 час 37 мин.)
bubuzavr писал(а):
Pustovetov писал(а):
Укручиваем thSAD до допустим 150 (смотреть по картинке пропажу одних деталюшек и появление новых). Так же укручиваем LSFmode strength= ну допустим 50. И добавляем опосля yahr()
Спасибо
пришлось укрутить thSAD на 90, но теперь шумодава как будто бы нет
места которые хорошо чистили при большом thSAD теперь вообще не трогаются
Ну соответственно подбираем и выбираем что лучше смотрится. Можно покрутить сигмы. Можно еще не так сильно укручивать thSAD, но уменьшить limit
Типа thSAD=200, limit=10
Цитата:
что делает yahr() ?
удаляет ореолы. другой вариант dehalo_alpha()
Цитата:
p/s/ я щас сума сойду)
Добро пожаловать в мир риперства
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
07-Июн-09 08:35
(спустя 5 часов, ред. 09-Июн-09 01:49)
bubuzavr
Ну в общем-то YAHR() Didee делал для подавления ореолов, корректируя беседу Sagekilla и ze994, можно прочесть здесь, но как всегда после этих процедур и блюра усилил грани , но всё же первоначально я погорячился относительно отсутствия шарпера после этого скрита. Небольшой по силе шарпер нужен, тут Pustovetov прав. Короче я не стал бы применять вообще YAHR(), если ореолов на контурах не появляется. Всё опять упирается в конкретный исходник и предварительную обработку видеоряда.
В принципе у Didee и Sagekilla есть совместный потрясающий скрипт http://avisynth.org/mediawiki/upload/8/8f/TemporalDegrain_beta.avs
Возможно, он сильно перегружен применением NR2, но работает просто потрясно. Я лично вместо MDegrain2 или 3 предпочитаю MFlow2:
скрытый текст
#plugin_files
#RemoveGrainSSE3.dll
#mvtools2.dll
#Repair.dll
#fft3dfilter.dll
#dfttest.dll
#HQDn3D.dll
#MaskTools.dll
#MT.dll
#mt_masktools-25.dll
#minblur.avs setmtmode(2) source = last
preNR = source.HQdn3D(3,2,5,2)
super = preNR.MSuper(hpad=8, vpad=8, pel=2, sharp=2, rfilter=2)
vb2 = MAnalyse(super,isb=true, truemotion=true, delta=2, blksize=8, search=3, overlap=4, lambda=800)
vb1 = MAnalyse(super,isb=true, truemotion=true, delta=1, blksize=8, search=3, overlap=4, lambda=800)
vf1 = MAnalyse(super,isb=false,truemotion=true, delta=1, blksize=8, search=3, overlap=4, lambda=800)
vf2 = MAnalyse(super,isb=false,truemotion=true, delta=2, blksize=8, search=3, overlap=4, lambda=800)
cf2 = MFlow(super, vf2, thSCD1=240)
cf1 = MFlow(super, vf1, thSCD1=240)
cb1 = MFlow(super, vb1, thSCD1=240)
cb2 = MFlow(super, vb2, thSCD1=240)
inter = interleave(cf2, cf1, source, cb1, cb2)
#mvden = inter.dfttest(sigma=3.0,f0beta=0.5,tbsize=5)
mvden = inter.fft3dfilter(bw=32,bh=32,ow=16,oh=16,bt=5,sigma=1.7,sigma2=1.4,sigma3=0.8,sigma4=0.5,plane=0)
den = mvden.selectevery(5,2)
s = den.minblur(1,1)
allD = mt_makediff(source,den)
ssD = mt_makediff(s,s.removegrain(11,-1))
ssDD = ssD.repair(allD,1)
ssDD = ssDD.mt_lutxy(ssD,"x 128 - abs y 128 - abs < x y ?")
source.mt_adddiff(ssDD,U=2,V=2)
Подбирай значения thSCD1= и все sigma в зависимости от качества исходника.
P.S. забыл уточнить: у меня в скриптах анимэ в качестве предварительного шарпера стоит
asharp(0.9,3,0.25)
так вот первый параметр(unsharp masking threshold) установлен на мой взгляд на пределе, дальше пойдут ореолы и лучше его снизить до 0.7, а второй (adaptive sharpenning strength) можно чуточку увеличить, хотя смотри сам:
asharp(0.7,5,0.25)
|
|
bubuzavr
Стаж: 18 лет Сообщений: 2827
|
bubuzavr ·
07-Июн-09 16:21
(спустя 7 часов, ред. 07-Июн-09 16:21)
Pustovetov
Tempter57
Спасибо, буду все пробовать)
|
|
Cinema777
Стаж: 15 лет 9 месяцев Сообщений: 72
|
Cinema777 ·
07-Июн-09 19:44
(спустя 3 часа)
Есть BD Remux, формат TS. В нем спрятана Видео кодек: VC-1. Кто знает как можно все это дело перегнать в mkv. Сделать BDRip значится, или проще говоря перекодировать VC-1 в mkv. Что-то на это тему всё как то туманно.
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
07-Июн-09 20:40
(спустя 56 мин., ред. 07-Июн-09 20:40)
Cinema777
Если видеокарта NVIDIA , то вам прямая дорога на сайт Дональда Графта
http://neuron2.net/dgvc1decnv/dgvc1decnv.html
и можно начать читать здесь
|
|
Игорь из Таганрога
Стаж: 15 лет 7 месяцев Сообщений: 319
|
Игорь из Таганрога ·
07-Июн-09 23:30
(спустя 2 часа 49 мин.)
Здраствуйте!
Подскажите пожалуйста, как избавится от вот такого шлейфа...
Как хвост у кометы. Раздражает очень
Кодировал в MeGUI, обжал почти в черыре раза
|
|
Pustovetov
Стаж: 17 лет Сообщений: 4255
|
Pustovetov ·
07-Июн-09 23:34
(спустя 4 мин.)
Игорь из Таганрога писал(а):
Здраствуйте!
Подскажите пожалуйста, как избавится от вот такого шлейфа...
Если я правильно понял суть проблемы, то или выполнить деинтерлейс или кодировать как интерлейсное видео.
|
|
Игорь из Таганрога
Стаж: 15 лет 7 месяцев Сообщений: 319
|
Игорь из Таганрога ·
07-Июн-09 23:42
(спустя 8 мин.)
Pustovetov
Спасибо! Сейчас попробую.
|
|
Micleo
Стаж: 17 лет 6 месяцев Сообщений: 136
|
Micleo ·
07-Июн-09 23:46
(спустя 4 мин.)
Игорь из Таганрога
В MeGUI интерлейс должен автоматически определяться и устраняться, если использовать Tools - AVS Script Creator. Ну или в Xvid4PSP это делается автоматически при открытии исходника.
|
|
Игорь из Таганрога
Стаж: 15 лет 7 месяцев Сообщений: 319
|
Игорь из Таганрога ·
07-Июн-09 23:53
(спустя 6 мин.)
Micleo
Ну да. Видео сейчас определилось как progressive. Исходник мутноватый, и почти за каждым движением идет небольшой шлейф.
|
|
Micleo
Стаж: 17 лет 6 месяцев Сообщений: 136
|
Micleo ·
07-Июн-09 23:56
(спустя 3 мин.)
Игорь из Таганрога
Ясно. Значит определилось неправильно. Можно еще попробовать Xvid4PSP и если в нем сработает - то скрипт оттуда скопировать и потом его в мегуе использовать.
|
|
Игорь из Таганрога
Стаж: 15 лет 7 месяцев Сообщений: 319
|
Игорь из Таганрога ·
08-Июн-09 00:04
(спустя 7 мин.)
Micleo
Спасибо. Надеюсь, что поможет. Буду пробовать
|
|
_Woland_
Стаж: 15 лет 11 месяцев Сообщений: 1067
|
_Woland_ ·
08-Июн-09 09:42
(спустя 9 часов, ред. 08-Июн-09 09:42)
Подскажите, скажем у меня есть мульт длительностью до 10 минут. Хочется закодировать его в двух разрешениях (для ПК и КПК). Будет использоваться довольно ресурсоемкая фильтрация. Проводить её дважды не очень-то хочется. Можно ли вначале обработать видео, чтобы получить на выходе raw поток, а потом уже этот поток закодировать двумя разными способами? Если да, то как, и сколько, примерно, будет занимать на HDD 10-минутное raw видео (исходник DVD)? Спасибо.
|
|
Pustovetov
Стаж: 17 лет Сообщений: 4255
|
Pustovetov ·
08-Июн-09 10:05
(спустя 22 мин.)
_Woland_ писал(а):
Подскажите, скажем у меня есть мульт длительностью до 10 минут. Хочется закодировать его в двух разрешениях (для ПК и КПК). Будет использоваться довольно ресурсоемкая фильтрация. Проводить её дважды не очень-то хочется. Можно ли вначале обработать видео, чтобы получить на выходе raw поток, а потом уже этот поток закодировать двумя разными способами?
Можно. Жать любым lossless кодеком. Я к примеру использую lossless режим x264, потом индексирую raw-поток dgavcindex, гружу avcsource и уже жму "начисто". Прим. можно использовать только версии кодека x264 не позднее r988, потом авторы поменяли формат lossless на более совершенный, который так dgavcindex и не научился разбирать.
Цитата:
Если да, то как, и сколько, примерно, будет занимать на HDD 10-минутное raw видео (исходник DVD)? Спасибо.
Порядка гига.
|
|
bion-x
Стаж: 16 лет 10 месяцев Сообщений: 210
|
bion-x ·
08-Июн-09 10:20
(спустя 15 мин., ред. 31-Окт-09 16:44)
Pustovetov, можете залить куда-нить старенькую r988 ? У меня похоже r1145, хотелось бы поэкспериментировать
|
|
Pustovetov
Стаж: 17 лет Сообщений: 4255
|
Pustovetov ·
08-Июн-09 10:34
(спустя 13 мин.)
bion-x писал(а):
Pustovetov, можете залить куда-нить старенькую r988 ? У меня похоже r1145, хотелось бы поэкспериментировать
http://multi-up.com/103277
Цитата:
Параллельно хочу спросить насчет lossless режима. Читал, что он восстанавливает информацию с точностью да 1 бита. Т.е. был исходник (к примеру DVD), его отрипали и он стал страшный. Если рип прогнать lossless режимом, мы получим исходное качество DVD?
Это как? Нет то что пропало, то пропало. lossless просто жмет без потерь, никакими прочими чудесными свойствами он не обладает.
|
|
waldis2
Стаж: 17 лет 4 месяца Сообщений: 2319
|
waldis2 ·
08-Июн-09 10:59
(спустя 24 мин.)
bion-x писал(а):
насчет lossless режима. Читал, что он восстанавливает информацию с точностью да 1 бита
это откуда берутся такие научные домыслы?
|
|
bion-x
Стаж: 16 лет 10 месяцев Сообщений: 210
|
bion-x ·
08-Июн-09 11:04
(спустя 4 мин., ред. 31-Окт-09 16:46)
Цитата:
При этом оригинальные данные полностью восстанавливаются из сжатого состояния.
Странная конечно фраза.
Пасибо.
|
|
shellgen
Стаж: 18 лет 1 месяц Сообщений: 6417
|
shellgen ·
08-Июн-09 11:10
(спустя 6 мин.)
Фраза нормальная, как бы по-русски всё написано. Осталось только понять смысл написанного, а не придумывать то, чего там нет
bion-x писал(а):
Читал, что он восстанавливает информацию с точностью да 1 бита. Т.е. был исходник (к примеру DVD), его отрипали и он стал страшный. Если рип прогнать lossless режимом, мы получим исходное качество DVD?
|
|
bion-x
Стаж: 16 лет 10 месяцев Сообщений: 210
|
bion-x ·
08-Июн-09 11:27
(спустя 16 мин., ред. 31-Окт-09 16:48)
Понял потом
Фраза именно некорректная. Не поняв суть, сложно сказать "какое именно место" оно восстанавливает. Если знаете - кто ж спорит
|
|
_Woland_
Стаж: 15 лет 11 месяцев Сообщений: 1067
|
_Woland_ ·
08-Июн-09 17:02
(спустя 5 часов)
Pustovetov
Спасибо, уже пробую ужать в lossless. Я правильно понимаю, что настройки кодека (рефы, b-frames, пирамида и т.д.) не должны влиять на результат, который должен быть 1 в 1 при любом раскладе?
|
|
Гость
|
Гость ·
08-Июн-09 17:55
(спустя 52 мин.)
Доброе время суток - всем! У меня вопрос несколько отходит от проблематики, обсуждаемой здесь, но все же соприкасается с ней. А вопрос такой:
Если в контейнере .avi содержится несколько звуковых дорожек (оригинал + 2 разных варианта перевода), то после записи его на DVD какая из "дорог" будет воспроизводиться? При просмотре простого .avi- файла на Апаратном DVD-плеере (не в компьютере!) обычно не выводится меню диска, где можно было бы выбрать вариант озвучки!
Возможно, все намного проще, чем я себе напридумывал, но всё же, есть вопрос - должен быть и ответ! Заранее благодарен за ответЫ!
|
|
viktor_
Стаж: 18 лет 5 месяцев Сообщений: 880
|
viktor_ ·
08-Июн-09 18:13
(спустя 18 мин., ред. 08-Июн-09 18:13)
solhat писал(а):
обычно не выводится меню диска
Обычно достаточно вручную открыть меню плеера и так же вручную выбрать дорогу. А по умолчанию вродь как первая должна выбираться.
|
|
qwerty7569
Стаж: 16 лет Сообщений: 136
|
qwerty7569 ·
08-Июн-09 19:43
(спустя 1 час 29 мин.)
Micleo писал(а):
Можно еще попробовать Xvid4PSP и если в нем сработает - то скрипт оттуда скопировать и потом его в мегуе использовать.
У меня дважды было, когда Xvid4PSP также неверно определял интерлейс
|
|
|