[не удалять] Кодирование DVD в XviD с помощью AviSynth, ну и с фильтрами [архив №1]

Страницы :   Пред.  1, 2, 3 ... 97, 98, 99, 100, 101  След.
Тема закрыта
 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4959

Tempter57 · 28-Июн-10 13:35 (14 лет 4 месяца назад)

GKtomsk
Можно попробывать:
Код:
#plugin_files
#MSharpen.dll
#HQdn3D.dll
#degrainmedian.dll
#MT.dll
#Convolution3d.dll
MT("""
HQdN3D(0.9,0.8,0.9,0.8)
degrainmedian(mode=3,limity=10,limituv=12)
MSharpen(threshold=15, strength=70, mask=false, highq=true)
Convolution3d (preset="movieHQ")
""",threads=4,splitvertical=true) # or threads=2
Код:
#plugin_files
#MT.dll
#UnDot.dll
#MSharpen.dll
#Convolution3d.dll
MT("""
Undot()
MSharpen(10,50)
Convolution3d (preset="movieLQ") # or preset="movieHQ"
""",threads=4) # or threads=2
[Профиль]  [ЛС] 

GKtomsk

Стаж: 17 лет 10 месяцев

Сообщений: 175

GKtomsk · 28-Июн-10 14:09 (спустя 33 мин.)

Tempter57
MT это который картинку режет для многопоточности? сам не пробовал, но слышал мнения что швы оставляет.
сам юзаю синт 2.5.8 MT
спасибо за скрипты, вечером попробую - отпишусь, а насчет шарпинга - сам предпочитаю fft3dfilter, по сравнению со стандартными синта или даба - оч. неплох.
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4959

Tempter57 · 28-Июн-10 15:53 (спустя 1 час 44 мин., ред. 28-Июн-10 15:53)

GKtomsk
Не волнуйтесь, никаких швов здесь вы здесь не заметите, поскольку нет векторного анализа, так что вперёд. И уровень шумоподавления в первом пресете регулируйте под свой исходник.
[Профиль]  [ЛС] 

agz

Стаж: 17 лет 5 месяцев

Сообщений: 1440

agz · 29-Июн-10 10:03 (спустя 18 часов)

Tempter57, нужен пресет проверенный временем. Улучшающий сжатие SATRip'ов.
Я запарился уже - всякие перепробовал - всплески битрейта не могу побороть никак!
Квантайзеры уменьшал - такое видео уже на бытовых DVD играть не будет, ибо всплески битрейта до 20000
Исходное видео - MPEG2, 4:3, 720x576 BT.470-2,B,G, ts. Снято на кинокамеру.
Ресайз 640x480, 528x384 пробовал... Не жмется зараза...
В режиме grayscale ситуация аналогичная.
x264 кстати тоже с ним не справляется. При --crf 23 очень задирает битрейт. Выше 2000...
Добавить зерна? Что делать?
[Профиль]  [ЛС] 

m1nor

Стаж: 16 лет 7 месяцев

Сообщений: 34

m1nor · 29-Июн-10 14:21 (спустя 4 часа, ред. 29-Июн-10 14:21)

agz
пресеты пробовал ставить в xvid? они ограничивают максимальный битрейт. или вручую ставить. это через vfw интерфейс. в cli тоже по идее должно быть. или не помогает?
и причем тут зерно? наоборот еще больше битрейт будет.
поподробнее про исходник
[Профиль]  [ЛС] 

agz

Стаж: 17 лет 5 месяцев

Сообщений: 1440

agz · 29-Июн-10 15:54 (спустя 1 час 32 мин., ред. 29-Июн-10 15:54)

m1nor писал(а):
agz
пресеты пробовал ставить в xvid? они ограничивают максимальный битрейт. или вручую ставить. это через vfw интерфейс. в cli тоже по идее должно быть. или не помогает?
и причем тут зерно? наоборот еще больше битрейт будет.
поподробнее про исходник
Да, пресеты ставил (MTK PAL) - но если ограничивать квантайзеры то пресеты игнорируются
А с квантайзерами по умолчанию такое дерьмо получается
Конкретно видео - MPEG-2 поток с "Первый канал СНГ", передача "Большая разница".
Там на их отбивках между сюжетами скачки битрейта дикие! Бешенная детализация в этих местах в движении.
Если не ограничивать и при минимальных квантайзерах - там скачки до 15000-20000!
Смотрю в bitrate viewer.
скрытый текст
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4959

Tempter57 · 30-Июн-10 06:30 (спустя 14 часов)

agz писал(а):
Tempter57, нужен пресет проверенный временем. Улучшающий сжатие
Боюсь, что вы не станите тратить своё время на многопроходное сжатие( а только так можно добиться сильного сжатия) после деинтерлейса, например , пресетом MCTemporalDenoise DB со следующими настройками:
Код:
source = last
preNR = source.FFT3DFilter(sigma=8,bt=5,plane=4)
mt_merge(source, preNR, U=1, V=1)
MCTemporalDenoise(settings="very high",twopass=true,useTTmpSm=true,deblock=true,useQED=true)
желательно ещё туда ввести и radius=6, но это была бы уже полная жесть. Может ну его такие жертвы и кодировать в качество просто после деинтерлейса ?
[Профиль]  [ЛС] 

agz

Стаж: 17 лет 5 месяцев

Сообщений: 1440

agz · 30-Июн-10 07:31 (спустя 1 час 1 мин.)

Tempter57 писал(а):
Боюсь, что вы не станите тратить своё время на многопроходное сжатие( а только так можно добиться сильного сжатия) после деинтерлейса, например , пресетом MCTemporalDenoise DB со следующими настройками:
Код:
source = last
preNR = source.FFT3DFilter(sigma=8,bt=5,plane=4)
mt_merge(source, preNR, U=1, V=1)
MCTemporalDenoise(settings="very high",twopass=true,useTTmpSm=true,deblock=true,useQED=true)
желательно ещё туда ввести и radius=6, но это была бы уже полная жесть. Может ну его такие жертвы и кодировать в качество просто после деинтерлейса ?
Не, нормально maa() тоже использую.
Всегда жму в два, а то и три прохода
Как выясняется скачки битрейта были после такого деинтерлейса:
Код:

deint = yadifmod(order=-1, field=-1, mode=0, edeint=nnedi2())
ScriptClip(last, "IsCombedTIVTC(last, cthresh=7, MI=40)==true ? deint : last")
Заменил на это:
Код:

deint = Yadif(order=-1)#.Subtitle("deinterlaced frame", align=5)
ScriptClip(last, "IsCombedTIVTC(last, cthresh=7, MI=40)==true ? deint : last")
Выбросы значительно меньше стали.
В этом исходнике гребенка вообще-то не очень заметна - только при очень быстром движении, на отбивках.
Я вообще думал отбивки эти вырезать и не деинтерлейсить. yadif конечно картину портит...
Есть мнение что для SATRip'ов разрешение 640x480 великовато, и лучше по высоте не превышать 400 пикселей...
Что Вы думаете по этому поводу?
Кстати, калькулятор Gordian Knot мне говорит что 640x480 - это разрешение неправильное и надо-бы 640x464
С учетом делителей 16/16. А 32/32 вроде как для XviD великовато и не рекомендовано?
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4959

Tempter57 · 30-Июн-10 11:51 (спустя 4 часа, ред. 04-Июл-10 22:04)

agz
Я тут для вас специально сварганил модернизированнный TV_SAT3 на основе решений в MCTemporalDenoise.avs:
скрытый текст
#plugin_files
#Deblock.dll
#dctfilter.dll
#degrainmedian.dll
#RemoveGrainSSE3.dll
#WarpSharp.dll
#mvtools2.dll
#RepairSSE3.dll
#fft3dfilter.dll
#fft3dgpu.dll
#TemporalCleaner.dll
#mt_masktools-25.dll
#MT.dll
#MaskTools.dll
#mipsmooth.dll
#MSharpen.dll
#TTempSmooth.dll
#Average.dll
#Gradfun2db.dll
#AddGrainC.dll
#SangNom.dll
#SmoothAdjust-x86.dll
#maa.avs
#DeRainbow2.avs
#Gradfun2dbmod.avs
#Deblock_QED_MT2.avs
#LimitedSharpenFaster mod.avs
setmtmode(2)
setmemorymax(768)
# DeRainbow2() # удаление радужности изображения
SmoothLevels(preset="tv2pc", Lmode=3, gamma=1.1)
# Deblock_QED(uv=3) # деблокинг подключить в случае блочности исходника
source = last#.maa() # подключить антиайлизинг по необходимости
spat = source.degrainmedian(mode=2,limity=5,limituv=6)
spatD = mt_makediff(source,spat)
frames = 3
sigma = 8
s2 = sigma * 0.625
s3 = sigma * 0.375
s4 = sigma * 0.25
preNR = source.fft3dfilter(bw=32,bh=32,ow=16,oh=16,bt=3,sigma=sigma,sigma2=s2,sigma3=s3,sigma4=s4,plane=0)
#preNR = source.fft3dgpu(bw=16,bh=16,ow=8,oh=8,bt=3,sigma=sigma,sigma2=s2,sigma3=s3,sigma4=s4,plane=0)
#preNR = source.dfttest(Y=true,U=false,V=false,tbsize=3,ftype=1,sigma=10)
preNR_super = preNR.MSuper(pel=2, sharp=2, rfilter=4)
source_super = source.MSuper(pel=2, sharp=2, levels=1)
vb3 = MAnalyse(preNR_super, isb=true,truemotion=true,delta=3,blksize=16,overlap=8,lambda=2000,search=2,searchparam=2,DCT=0,chroma=false)
vb2 = MAnalyse(preNR_super, isb=true,truemotion=true,delta=2,blksize=16,overlap=8,lambda=2000,search=2,searchparam=2,DCT=0,chroma=false)
vb1 = MAnalyse(preNR_super, isb=true,truemotion=true,delta=1,blksize=16,overlap=8,lambda=2000,search=2,searchparam=2,DCT=0,chroma=false)
vf1 = MAnalyse(preNR_super,isb=false,truemotion=true,delta=1,blksize=16,overlap=8,lambda=2000,search=2,searchparam=2,DCT=0,chroma=false)
vf2 = MAnalyse(preNR_super,isb=false,truemotion=true,delta=2,blksize=16,overlap=8,lambda=2000,search=2,searchparam=2,DCT=0,chroma=false)
vf3 = MAnalyse(preNR_super,isb=false,truemotion=true,delta=3,blksize=16,overlap=8,lambda=2000,search=2,searchparam=2,DCT=0,chroma=false)
SAD_f1m = source.MMask(vf1, kind=1, ml=450, gamma=0.999, Ysc=255)
SAD_f2m = source.MMask(vf2, kind=1, ml=450, gamma=0.999, Ysc=255)
SAD_f3m = source.MMask(vf3, kind=1, ml=450, gamma=0.999, Ysc=255)
SAD_b1m = source.MMask(vb1, kind=1, ml=450, gamma=0.999, Ysc=255)
SAD_b2m = source.MMask(vb2, kind=1, ml=450, gamma=0.999, Ysc=255)
SAD_b3m = source.MMask(vb3, kind=1, ml=450, gamma=0.999, Ysc=255)
b = BlankClip(source,color_yuv=$008080)
SAD_m = interleave(SAD_f3m,SAD_f2m,SAD_f1m, b, SAD_b1m,SAD_b2m,SAD_b3m)
NR1 = source.MDegrain3(source_super,vb1,vf1,vb2,vf2,vb3,vf3,thSAD=450,thSCD1=500,thSCD2=135)
NR1_super = NR1.MSuper(pel=2, levels=1, chroma=true)
b3clip = NR1.MCompensate(NR1_super,vb3,thSAD=10000,thSCD1=400,thSCD2=130)
b2clip = NR1.MCompensate(NR1_super,vb2,thSAD=10000,thSCD1=400,thSCD2=130)
b1clip = NR1.MCompensate(NR1_super,vb1,thSAD=10000,thSCD1=400,thSCD2=130)
f1clip = NR1.MCompensate(NR1_super,vf1,thSAD=10000,thSCD1=400,thSCD2=130)
f2clip = NR1.MCompensate(NR1_super,vf2,thSAD=10000,thSCD1=400,thSCD2=130)
f3clip = NR1.MCompensate(NR1_super,vf3,thSAD=10000,thSCD1=400,thSCD2=130)
interleave(f3clip, f2clip, f1clip, NR1, b1clip, b2clip, b3clip)
TTempSmooth(frames,255,255,1,1,strength=frames+1,pfclip=SAD_m,fp=false,scthresh=99.9)
SelectEvery(frames*2+1,frames)
NR2 = last
smD = mt_makediff(source,NR2)
DD = mt_lutxy(spatD,smD,"x 128 - abs y 128 - abs < x y ?")
NR2.mt_makediff(DD,U=2,V=2)
LSFmod(defaults="slow",preblur="ON",strength=90)
Gradfun2dbmod(thr=1.6,thrC=2.3,str=1.2,temp=90)
# Назначение: хороший пресет для обработки TV, SAT и проблемного DVD источника со спецобработкой SmoothLevels и подавлением блочности изображения и анти-aйлизингом
# Тип предварительного шумоподавителя: fft3dfilter
# Тип основного шумоподавителя: на основе векторного анализа оценки движения на двухэтапном шумоподавителе MDegrain3 и MCompensate
# Тип шарпера: LSFmod
# наличие фильтра DeBanding: включен
# Скорость обработки: медленная
Такой фильтр должен хорошо подойти также для сжатия видеоряда MJPEG при съёмках видео цифровыми фотоаппаратами.
Хочу вас предупредить у вас не лады с order в обоих деинтерлейсах. Если указываете order=-1, впереди надо указывать
AssumeTFF() # подберите поле: верхнее поле первым для DVD, HDV, AVCHD
#AssumeBFF() # подберите поле: нижнее поле первым для видеокамер DV
или чётко прописуйте order=1 или order=0 (смотри данные MediaInfo, какое поле первым)
По поводу великоватости разрешения разрешение 640x480 могу сказать так: тут главное поддерживать необходимый коэффициент качества не ниже 0,18 бит\пиксель. На данном разрешении для этого нужен битрейт порядка 1650 кбит\с.
[Профиль]  [ЛС] 

TurboPascal7

Стаж: 15 лет 6 месяцев

Сообщений: 668

TurboPascal7 · 30-Июн-10 14:08 (спустя 2 часа 17 мин., ред. 30-Июн-10 14:08)

Tempter57 писал(а):
source = last
preNR = source.FFT3DFilter(sigma=8,bt=5,plane=4)
mt_merge(source, preNR, U=1, V=1)
MCTemporalDenoise(settings="very high",twopass=true,useTTmpSm=true,deblock=true,useQED=true)
Если мне не изменяет логика, почти полностью эквивалентно
Код:
MCTemporalDenoise(settings="very high",twopass=true,useTTmpSm=true,deblock=true,useQED=true)
Просто вы в 3й строчке накладываете клип last на клип last по маске preNR. От этого ровно ничего кроме лишних вычислений не будет. Кроме того, u=1 и v=1 означают, что в хрому будет записано то, что попадется. В абсолютном большинстве случаев это будет нормальная хрома с клипа last, но кто его знает, как оно там сложится при энкоде. u=2, v=2 скопируют хрому.
И, да, после того ужаса, который сделает
Цитата:
preNR = source.HQdn3D(4,3,6,3)
накладывать поверх еще fft3d - имхо, очередная бесполезная потеря времени.
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4959

Tempter57 · 30-Июн-10 16:05 (спустя 1 час 56 мин., ред. 30-Июн-10 16:57)

TurboPascal7
Откройте TemporalDegrain_beta.avsi и посмотрите на его preNR, то что идёт сильнейшая чистка по векторам, вас особо не должно напрягать, поскольку есть
Код:
source_super = source.MSuper(pel=2, sharp=2, levels=1)
и именно он фигурирует здесь
source2.MDegrain3(source_super,vb1,vf1,vb2,vf2,vb3,vf3,thSAD=500,thSCD1=600,thSCD2=135)
Мы сейчас рассматриваем TV и SAT видеоматериалы, поэтому столь бесцеремонное шумоподаление и применяется. Тем более идёт чистка по векторам для облегчения анализа, чтобы не отвлекаться на сторонний шум.
С замечанием по MCTemporalDenoise полностью согласен, здесь признаю переборщил с
preNR = source.FFT3DFilter(sigma=8,bt=5,plane=4)
mt_merge(source, preNR, U=1, V=1)

Согласен, это лишнее.
Предложите свой вариант скрипта для обработки TV\SAT , с удовольствием посмотрю какой будет его результат, особенно материалов трансляций спортивных матчей. Задача - получить высокую степень сжатия видеоряда, чтобы получить безблочный результат на выходе. Вариант с кодированием просто в качество с квантизером Q2.0 не устраивает. Сейчас на подобных рипах обработка : деинтерлейс и removeGrain(2), оно может больше ничего и не надо, но иногда для личных архивов хочется задействовать нечто экстравагантное.
[Профиль]  [ЛС] 

agz

Стаж: 17 лет 5 месяцев

Сообщений: 1440

agz · 30-Июн-10 16:17 (спустя 11 мин., ред. 30-Июн-10 16:17)

Tempter57, Скачки битрейта уменьшились с данной фильтрацией, но думаю спасет тут только blur - ибо детализация там бешанная... Или вырезать эти отбивки к чертовой матери
Кстати, насчет CQ2.0: Некоторые известные всем релиз группы кодят исключительно в один проход, в CQ2.0
Как правило такие рипы на бытовых DVD не проиграешь...
За качеством гонятся: У кого лучше рип получится! А на стандарты наплевать им - на компе играет и ладно
Раздувают рип до 0.4-0.6 bit/pixel и выше. А мы качаем...
[Профиль]  [ЛС] 

TurboPascal7

Стаж: 15 лет 6 месяцев

Сообщений: 668

TurboPascal7 · 01-Июл-10 06:39 (спустя 14 часов)

Tempter57 писал(а):
Предложите свой вариант скрипта для обработки TV\SAT
Не занимаюсь подобным, ибо совсем не смотрю TV, но пара мыслей именно по вашему скрипту таки есть.
Та самая пара мыслей. Все нижесказанное - моё ИМХО и читать не обязательно, но, надеюсь, интересно
Ладно, я не буду даже думать, зачем нужна такая гора шумодавов, и что именно они сделают потом с картинкой, но с точки зрения теории...
Tempter57 писал(а):
preNR = source.HQdn3D(4,3,6,3).fft3dgpu(wintype=1,degrid=1,bw=24,bh=24,ow=12,oh=12,bt=4,sigma=16,sigma2=12,sigma3=6,sigma4=4,plane=4)
Тут дело не в том, что и где потом используется, а в том, что hqdn3d настолько хорошо вычищает шумы (и картинку тоже, в принципе), что использовать после него хороший, сложный и медленный fft3d - по крайней мере нелогично. Мне почему-то кажется, что все клипы с приставкой pre используются при формировании выхода лишь частично, или вообще не используются, а значит должны быть пусть и менее качественными, но быстрыми. hqdn3d, со всей моей нелюбовью к нему, под это определение походит, fft3d - нет. Далее
Tempter57 писал(а):
source2 = mt_merge(source,preNR,maskf)
Если забыли как работает mt_merge, напомню - накладывает preNR на source по маске maskf. В этой маске собрано движение, т.е., утрируя, вся статика в выходном клипе будет из клипа source, движущиеся части - из preNR. Но тут сразу встает вопрос - зачем вы фильтруете движение темпоральными шумодавами (hqdn3d + fft3d)? Кажется, всегда и везде все наоборот советуют фильтровать темпорально статичные объекты, и пространственно - движущиеся. Просто потому, что темпоральные шумодавы очень плохо себя ведут на динамике, ужасно замыливают линии и размазывают картинку. И вы берете от их работы только самое худшее. Если уж так хочется делать таким методом - фильруйте пространственно, а потом накладывайте это по маске движения. Или наоборот инвертируйте маску mt_invert перед наложением, чтобы обрабатывать темпорально только статичные части. Ах, да, цветность вообще не накладывается, хотя и фильтруется ( u=3,v=3 забыли, видимо). Далее.
Tempter57 писал(а):
TTempSmooth(frames,255,255,1,1,strength=frames+1,fp=false,scthresh=99.9)
Шумодав типа motion adaptive (it only works on stationary parts of the picture), но устанавливая пороги в 255 вы, опять же, убиваете эту адаптацию, и фильтровать он будет всё - и статику с шумком, и резкое движение. Не надо думать, что компенсация с этим как-то поможет, вы видели, что она дает на выходе? Проще говоря, после этого шумодава и теоретически, и практически (я проверил на одном сорце интереса ради) пойдут бленды. Внезапно на кадре может оказаться движущийся кусок другого кадра. Ну и просто все движение превращается в то, что очень культурно можно назвать "какой". Красота. Ну и последнее.
Tempter57 писал(а):
Gradfun2dbmod(thr=1.6,thrC=2.3,str=1.5,temp=90)
Куча процессорного времени ранее отжиралось на то, чтобы убить зерно, а теперь вы его снова накладываете, причем динамичное. Ну и используйте статичный шумогенератор внутри самого градфана, типа custom="addgrain(N,constant=true)", temp=0 (чтоб не тратить время на внутренний "усреднитель" шума). А то выфильтровали один динамичный шум, потом наложили другой. >_<
P.S. Это всего лишь мои мысли. Я ничего не предлагаю и конечно не дам ни один из своих скриптов (у меня их нет). Я просто предлагаю вам подумать и может что-нибудь принять к сведению. И, да, все эти выводы на основе работы фильтров на аниме-источниках и манов, как они ведут себя на нормальном видео не знаю, но не думаю, что что-то изменится.
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4959

Tempter57 · 01-Июл-10 13:00 (спустя 6 часов, ред. 05-Июл-10 21:25)

TurboPascal7
скрытый текст
Если применить TTempSmooth(frames,255,255,1,1,strength=frames+1,fp=false,scthresh=99.9) в чистом виде вы неизменно получите бады, это вы правильно заметили, но он подключён несколько иначе в данном скрипте, в общем и скрипт я переписал, взгляните на него ещё разок:
Код:
frames = 3
inter = interleave(f3clip,f2clip,f1clip, degrained, b1clip,b2clip,b3clip)
TTempSmooth(frames,255,255,1,1,strength=frames+1,pfclip=SAD_m,fp=false,scthresh=99.9)
SelectEvery(frames*2+1,frames)
В этом случае бадов никаких не будет наблюдаться, проверьте.
Цитата:
зачем вы фильтруете движение темпоральными шумодавами (hqdn3d + fft3d)?
С чего вдруг вы зачисляете их в разряд только временнЫх, если это пространственно-временные шумодавы.
На счёт их совместного использования-это да, переборщил, можно применить тот или другой: hqdn3d быстрее, fft3d -качественее. Тут согласен. Видимо хотел предложить два варианта preNR, как в TemporalDegrain_beta, а ошибочно слил вместе, хорошо, что заметили. Это подправлю.
Цитата:
Кажется, всегда и везде все наоборот советуют фильтровать темпорально статичные объекты, и пространственно - движущиеся. Просто потому, что темпоральные шумодавы очень плохо себя ведут на динамике, ужасно замыливают линии и размазывают картинку. И вы берете от их работы только самое худшее
Фильтры fft3dfilter и dfttest-это пространственно-временные частотные шумодавы, в случае bt=1 для первого и tbsize=1 для второго они превращаются в чисто пространственные шумодавы.
Существует несколько рекомендаций в этом плане выбора типа шумодава preNR: есть сторонники пространственных фильтров. Они считают разумным сочетание перекрёстной работы пространственного шумодава в preNR и временнОго MDegrain. У себя скриптах и я довольно часто использую :
source = last
sigma=10 # подобрать
preNR1 = source.dfttest_dfttest(Y=true,U=false,V=false,tbsize=1,ftype=1,sbsize=8,sosize=6,sigma=sigma)
preNR = preNR1.dfttest_dfttest(Y=false,U=true,V=true,tbsize=1,ftype=1,sbsize=16,sosize=12,sigma=1.5*sigma)

Но большинство - сторонники пространственно-временнОго шумодава с темпоральным радиусом от 3 до 5.
Для примера почистите какой-либо клип fft3dfilter c bt=1, а потом с bt=5 и почувствуйте разницу. А потом будем рассуждать взял ли я "только самое худшее". Тут думать надо: так ли плох пространственно-временной шумодав в качестве предварительного. Тем более обратите внимание возможно тот случай со смазом у вас от однобокого выбора суперклипа только на основе preNR. Я же в скриптах всегда применяю два суперклипа:
Код:
preNR_super = preNR.MSuper(pel=2, sharp=2,rfilter=2)
source_super = source.MSuper(pel=2, sharp=2, levels=1)
Если у вас будет фигурировать в скрипте только один суперклип preNR_super действительно получится мазня.
Посмотрите готовые решения, заложенные в скриптах MC_spuds, TemporalDegrain_beta, TemporalDegrainmt, MCTemporalDenoise и многих других. Вот к примеру, Didee, предложил ещё такой вариант preNR:
Код:
o = last
o_sup1 = o.MSuper(pel=1)
bv02 = o_sup1.MAnalyse(isb = true,  delta = 2, blksize=32, overlap=4, search=4)
bv01 = o_sup1.MAnalyse(isb = true,  delta = 1, blksize=32, overlap=4, search=4)
fv01 = o_sup1.MAnalyse(isb = false, delta = 1, blksize=32, overlap=4, search=4)
fv02 = o_sup1.MAnalyse(isb = false, delta = 2, blksize=32, overlap=4, search=4)
interleave(o.MCompensate(o_sup1,fv02),o.MCompensate(o_sup1,fv01),o,o.MCompensate(o_sup1,bv01),o.MCompensate(o_sup1,bv02))
preNR = last.fft3dfilter(sigma=16,sigma2=10,sigma3=6.5,sigma4=4,bt=5,bw=32,bh=32,ow=16,oh=16).SelectEvery(5,2)
Возможно вы правы по типу preNR для аниме, там действительно максимум на что я решаюсь в пресетах так это DeGrainMedian. Для обработки материала видеокамер или film лучше на мой взгляд применить в качестве preNR пространственно-временной шумодав, только подобрать значения всех sigma под исходник.
По поводу статики наложенного шума Gradfun2dbmod(thr=1.6,thrC=2.3,str=1.5,temp=90), если помните у LaTo temp=50, я и так сдвинул в сторону статики, да вы и сами небольшой поклонник чистостатического наложения шума, хотя считаете, что с temp=100 он всё же присутствует. Возможно для аниме это и благо, но для фильмов смотрится как-то не очень:
temp [default: 50]
Strength for temporal stabilization
-1 = off
0 = nervous grain
100 = calm grain

Только я в толк не возьму зачем вы мне советуете temp=0, если это чисто динамический шум. Вы часом цифры не перепутали? И c чего вдруг при temp=90 у вас накладываемый шумок превратился практически в динамический, если в нём динамики 10%?
Притом тот шум , который чистился в клипе шумодавами имел несколько иную структуру и характер, не прада ли? Не надо сваливать тут всё в одну кучу, мол зачем надо было столько чистить от шумов клип, чтобы потом вносить его в клип опять. Смотреть изображение без шума тоже противно, но если этот шум крупно-зернистый, это напрягает ещё больше. Мелко-дисперсионный шумок разбивает градиенты цветовых переходов, улучшает детализацию изображения и привносит в изображение некоторую сочность и живость. В конце концов мне эти настройки просто нравятся, если вам нет, ваше право их изменять, тут дело вкуса, я вообще люблю параметр str>5, если пришлось в клипе сильно чистить крупно-зернистый шум и применять деблокинг.
И давайте от себя не только критические высказывания и замечания (а то критика какая-то неконструктивная у вас получается, "мол я скрипты не пишу, у меня их попросту нет", -да враньё всё это, заготовки и наработки в уме у каждого есть), но и свои готовые решения и скрипты для тестирования. Посмотрим насколько ваши идеи будут правильными и интересными.
[Профиль]  [ЛС] 

agz

Стаж: 17 лет 5 месяцев

Сообщений: 1440

agz · 01-Июл-10 16:42 (спустя 3 часа, ред. 01-Июл-10 16:42)

fcp, тестил я сегодня dll 1.2.1 с VAQ от koepi и dll 1.2.2 от xvidvideo (с VAQ).
На выходе файлы идентичные - байт в байт получаются, однако build от koepi чуть быстрее!
VAQ включен был в обоих случаях.
xvidvideo
Код:
   1151 frames( 99%) encoded,  39.45 fps, Average Bitrate =  2011kbps
Tot: enctime(ms) =29251.00,               length(bytes) =    11605910
Avg: enctime(ms) =  25.28, fps =  39.55, length(bytes) =       10031
I frames:     13 frames, size =  19960/     259485, quants =  3 / 4.62 /  5
P frames:    542 frames, size =  15190/    8233275, quants =  4 / 5.00 /  5
B frames:    600 frames, size =   5188/    3113150, quants =  5 / 7.46 /  8
koepi
Код:
   1151 frames( 99%) encoded,  40.21 fps, Average Bitrate =  2011kbps
Tot: enctime(ms) =28688.00,               length(bytes) =    11605910
Avg: enctime(ms) =  24.80, fps =  40.33, length(bytes) =       10031
I frames:     13 frames, size =  19960/     259485, quants =  3 / 4.62 /  5
P frames:    542 frames, size =  15190/    8233275, quants =  4 / 5.00 /  5
B frames:    600 frames, size =   5188/    3113150, quants =  5 / 7.46 /  8
Гуглите Xvid-1.2.1-VAQ-04122008.exe
[Профиль]  [ЛС] 

m1nor

Стаж: 16 лет 7 месяцев

Сообщений: 34

m1nor · 01-Июл-10 21:34 (спустя 4 часа)

agz
разница в скорости в районе погрешности, а откатыватся на более раннюю версию смысла нет. на то она и 1.2.2 что не 1.2.1 ) наверно какие-то ошибки исправили) не так-ли?
[Профиль]  [ЛС] 

agz

Стаж: 17 лет 5 месяцев

Сообщений: 1440

agz · 01-Июл-10 22:48 (спустя 1 час 14 мин.)

m1nor писал(а):
agz
разница в скорости в районе погрешности, а откатыватся на более раннюю версию смысла нет. на то она и 1.2.2 что не 1.2.1 ) наверно какие-то ошибки исправили) не так-ли?
Там вроде security фиксы. Код енкодера имхо идентичный в 1.2.1 и 1.2.2...
[Профиль]  [ЛС] 

agz

Стаж: 17 лет 5 месяцев

Сообщений: 1440

agz · 05-Июл-10 07:55 (спустя 3 дня, ред. 05-Июл-10 10:43)

Странную вещь заметил... tweak даже с параметрами по умолчанию изменяет колорометрию?
Выяснил что колорометрия в нашем видео в PC формате (0-255).
Прописываю в скрипт: tweak(bright=0.0). И ColorYUV(analyze=true) показывает 16-235, однако визуально ничего в картинке не меняется! XviD тоже это хавает и в результате уровень сжатия выше - файл меньше получается на 10-15% (проверял на видео в 1000 фреймов). Но визуально разницы нет никакой.
tweak всегда так себя ведет?
Это параметр coring по всей вероятности отрабатывает?
Код:
coring = true/false (необязательный; по умолчанию true, что соответствует поведению в старых версиях). Когда установлен в true - означает  то, что яркость (Y) обрезается диапазоном [16,235], а когда установлен в false  - диапазон яркости не изменяется. [добавлен в версии 2.53.]
[Профиль]  [ЛС] 

Djdezmond

Стаж: 15 лет 11 месяцев

Сообщений: 503

Djdezmond · 05-Июл-10 21:27 (спустя 13 часов)

Tempter57, у меня есть видео с цифровика canon , оно кодировано в motion jpeg, 13,5 мб/сек. , 29,970 кадров 640х480, соответственно много весит , хочу передавить в mpeg2 розет карбоном ,я пробовал жать меня устраивает картинка но хотелось бы как можно больше детализации оставить при падении битрейта с 13,5 до 6 хотяб мбит/сек. . посоветуй какой нибудь скриптик.
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4959

Tempter57 · 06-Июл-10 00:41 (спустя 3 часа, ред. 06-Июл-10 00:41)

Djdezmond
Посмотрите лучше скрипт на forum.ixbt(ветка AviSynth), там подобный скрипт, как раз для Canon рассматривался, но частота кадров по-моему там 30 fps. Идея сведена к тому, чтобы с помощью MFlowFps преобразовать частоту в 25 fps:
скрытый текст
#plugin_files
#Repair.dll
#mvtools2.dll
#WarpSharp.dll
#nnedi2.dll
#AddgrainC.dll
#MT.dll
#BlowUp.avs
# Photocamera Canon PowerShot SX1 IS
# video formats:
# (HD) 1920 x 1080, 30 frames/sec (1080p)
# (L) 640 x 480, 30 frames/sec
# (M) 320 x 240, 30 frames/sec
# sound:
# 32 bits
setmtmode(2)
setmemorymax(768)
FPS_Numerator = 25
FPS_Denominator = 1
multinum = 5 # FPS = FPS * multinum / multiden
multiden = 6 # FPS = 30 * 5 / 6 = 25
w = Width(last) # Width
h = Height(last) # Height
# Change 30 FPS to 25 FPS PAL
# AssumeFPS(FPS_Numerator, FPS_Denominator) # Let's comment this string if video is 25 FPS
# Constants
spar = 30 # parametr ?
# Variables
dist_h = int((0.01 * spar * Width(last)) / 16)
dist_v = int((0.01 * spar * Height(last)) / 8)
dist = (dist_h > dist_v) ? dist_h : dist_v
dist = (dist > 0) ? dist : 1
super = MSuper(last, hpad=16, vpad=8, pel=2, levels=0, chroma=true, sharp=2, rfilter=4, isse=true, planar=false)
bw1 = MAnalyse(super, blksize=32, blksizeV=16, isb=true, chroma=true, delta=1, truemotion=true, search=5, searchparam = dist, plevel=2, overlap=8, overlapV=4, badSAD=10000, dct=0, divide=0, isse=true)
fw1 = MAnalyse(super, blksize=32, blksizeV=16,isb=false, chroma=true, delta=1, truemotion=true, search=5, searchparam = dist, plevel=2, overlap=8, overlapV=4, badSAD=10000, dct=0, divide=0, isse=true)
bw_rec = MRecalculate(super, bw1, thSAD=100, smooth=1, blksize=16, blksizev=8, search=5, searchparam=dist, chroma=true, truemotion=true, overlap=4, overlapv=2, dct=0, divide=0, isse=true)
fw_rec = MRecalculate(super, fw1, thSAD=100, smooth=1, blksize=16, blksizev=8, search=5, searchparam=dist, chroma=true, truemotion=true, overlap=4, overlapv=2, dct=0, divide=0, isse=true)
MFlowFps(last, super, bw_rec, fw_rec, num = int(FramerateNumerator(last) * multinum), den = int(FramerateDenominator(last) * multiden), mask=2, ml=2500, blend=true, thSCD1=180, thSCD2=240, isse=true, planar=false)
AssumeFPS(FPS_Numerator, FPS_Denominator) # Let's comment this string if video is 25 FPS
# Upscale, if (L) 640 x 480, 30 frames/sec or (M) 320 x 240, 30 frames/sec
#BlowUp(nnu=true).spline64resize(1440,1080).addborders(240,0,240,0)
#BlowUp(nnu=true).spline64resize(960,720).addborders(160,0,160,0)
BlowUp(nnu=true).spline64resize(768,576) # for MPEG2 by CCE SP2 or Carbon Coder
#BlowUp(nnu=true).spline64resize(720,544) # for avi by XviD
ConvertToYUY2() # for CCE SP2 or Carbon Coder
Разумеется я выложил здесь упрощённый вариант. И надо как-то ещё и звук преобразовать.
[Профиль]  [ЛС] 

Djdezmond

Стаж: 15 лет 11 месяцев

Сообщений: 503

Djdezmond · 06-Июл-10 01:15 (спустя 33 мин.)

Tempter57 спасибо что подсказал, попробую
[Профиль]  [ЛС] 

agz

Стаж: 17 лет 5 месяцев

Сообщений: 1440

agz · 07-Июл-10 16:27 (спустя 1 день 15 часов, ред. 07-Июл-10 16:27)

Tempter57, после ресайза исходника 1280x720 зубцы на титрах и белых буквах появляются.
Исходник прогрессивный! Ресайз до 720x400. Вот тут это хорошо видно:
скрытый текст
maa() поможет или есть что-то попроще? Есть мнение что размер ресайза не совсем корректный...
Кропаю по два пикселя сверху и снизу. И Spline36Resize(720,400).
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4959

Tempter57 · 07-Июл-10 17:23 (спустя 56 мин., ред. 07-Июл-10 17:23)

agz
maa() должно помочь, но анти-айлизинг с EEDI2 будет лучше ediaa():
Код:
function ediaa(clip a) {return a.EEDI2(field=1).TurnRight().EEDI2(field=1).TurnLeft().spline64resize(a.width,a.height,-0.5,-0.5,2*a.width+.001,2*a.height+.001)}
Это, что аниме?
[Профиль]  [ЛС] 

agz

Стаж: 17 лет 5 месяцев

Сообщений: 1440

agz · 07-Июл-10 19:53 (спустя 2 часа 29 мин., ред. 07-Июл-10 19:53)

Tempter57 писал(а):
agz
maa() должно помочь, но анти-айлизинг с EEDI2 будет лучше ediaa():
Код:
function ediaa(clip a) {return a.EEDI2(field=1).TurnRight().EEDI2(field=1).TurnLeft().spline64resize(a.width,a.height,-0.5,-0.5,2*a.width+.001,2*a.height+.001)}
ok, попробую. maa() картинку мылит слегка, там где не надо.
Tempter57 писал(а):
Это, что аниме?
Нет, сериал "Fringe" - оттуда кадр. https://rutr.life/forum/viewtopic.php?t=2161205 - с этой раздачи. 20-я серия.
Вот еще одна трабла:
Оригинал
Результат
Воюю с ним давно - как побороть? На темном какая-то хрень... Контрастность что-ли подкрутить?
[Профиль]  [ЛС] 

bora86bora

RG Мультфильмы

Стаж: 16 лет 6 месяцев

Сообщений: 985

bora86bora · 07-Июл-10 22:36 (спустя 2 часа 42 мин.)

Не подскажите вот как с этим бороться. Вокруг контура какбы второй контур слегка видный =( :
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4959

Tempter57 · 07-Июл-10 23:13 (спустя 37 мин.)

Myline
Ответ дал на соседней ветке
[Профиль]  [ЛС] 

Pustovetov

AVC-Видео

Стаж: 17 лет

Сообщений: 4255

Pustovetov · 08-Июл-10 07:04 (спустя 7 часов, ред. 08-Июл-10 07:04)

agz писал(а):
ok, попробую. maa() картинку мылит слегка, там где не надо.
Используйте его только там где нужно, а не по всему видео
ApplyRange(x,y,"maa") # где x и y первый и последний кадр последовательности на которую применяем в данном случае maa
p.s. А еще лучше сделать маску и не размазывать антиалайзингом травку на картинке =)
Цитата:
Контрастность что-ли подкрутить?
Ну почему постоянно встречается желание испохабить каринку кручением цветов? =)
Myline писал(а):
Не подскажите вот как с этим бороться. Вокруг контура какбы второй контур слегка видный
Его уже транслировали в HD, так что стоит искать нормальный источник, а не пытаться сделать из двд конфетку.
[Профиль]  [ЛС] 

agz

Стаж: 17 лет 5 месяцев

Сообщений: 1440

agz · 08-Июл-10 10:38 (спустя 3 часа)

Pustovetov писал(а):
Используйте его только там где нужно, а не по всему видео
ApplyRange(x,y,"maa") # где x и y первый и последний кадр последовательности на которую применяем в данном случае maa
p.s. А еще лучше сделать маску и не размазывать антиалайзингом травку на картинке =)
Как ее сделать?
Pustovetov писал(а):
Ну почему постоянно встречается желание испохабить каринку кручением цветов? =)
А что делать? Ну вот что в данном случае сделать можно?
скрытый текст
После ресайза вокруг надписи "A News Corporation Company" какая-то хрень! Как ее убрать?
Кодировал даже с -cq 2.0 Ресайзы пробовал всякие - не помогает
[Профиль]  [ЛС] 

shurikkein

Стаж: 18 лет 1 месяц

Сообщений: 666


shurikkein · 08-Июл-10 23:14 (спустя 12 часов, ред. 09-Июл-10 08:41)

ребята, помогите , плиз, убрать логотип телеканала. Пробовал три фильтра, ни один не хочет работать.
xlogo не принимает картинку, всё время утыкаюсь в ошибку "check interpolation bitmap", хотя я уже оставил там просто белый прямоугольник на черном фоне.
Если загружаю Rm_logo получаю ошибку "mask is empty", туже картинку в InpaintFunc - mask is full.
обрезаю картинку с лого-получаю в последних двух фильтрах другую ошибку Crop: destination width is 0 ore less
Какие параметры для bmp должны быть для этих фильтров?
Разобрался , вопрос снимается
[Профиль]  [ЛС] 

1iquid

Стаж: 14 лет 11 месяцев

Сообщений: 309


1iquid · 09-Июл-10 10:18 (спустя 11 часов)

Вопрос такой:
А может ли быть картинка лучше в DVDRip, чем в полноценном DVD ?
Такое ощущение что изображение стало ни только чище и но четче, собственно скриншоты:
DVDRIP-1/DVD-2
скрытый текст
DVDRIP-1/DVD-2
DVDRIP-1/DVD-2
MediaInfo DVD:
скрытый текст
General
Complete name : H:\Games\Guyver TV\disk 1\VTS_01_1.VOB
Format : MPEG-PS
File size : 1 024 MiB
Duration : 15mn 54s
Overall bit rate : 9 001 Kbps
Video
ID : 224 (0xE0)
Format : MPEG Video
Format version : Version 2
Format profile : Main@Main
Format settings, BVOP : Yes
Format settings, Matrix : Default
Duration : 15mn 54s
Bit rate mode : Constant
Bit rate : 7 950 Kbps
Width : 720 pixels
Height : 480 pixels
Display aspect ratio : 16:9
Frame rate : 29.970 fps
Standard : NTSC
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Interlaced
Scan order : Top Field First
Bits/(Pixel*Frame) : 0.768
Stream size : 902 MiB (88%)
Audio #1
ID : 128 (0x80)
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Duration : 15mn 54s
Bit rate mode : Constant
Bit rate : 448 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Stream size : 51.0 MiB (5%)
Audio #2
ID : 129 (0x81)
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Duration : 15mn 54s
Bit rate mode : Constant
Bit rate : 448 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Stream size : 50.9 MiB (5%)
Menu
MediaInfo DVDRIP:
скрытый текст
General
Complete name : H:\Games\Guyver TV\Gyvr2005_TV_01_ACX\[ACX]Guyver_The_Bioboosted_Armor_-_01_-_The_Amazing_Bioboosted_Armor_[[Saiyan]BrollY]_[CB20115D].mkv
Format : Matroska
File size : 234 MiB
Duration : 23mn 0s
Overall bit rate : 1 422 Kbps
Encoded date : UTC 2006-11-22 23:45:25
Writing application : mkvmerge v1.7.0 ('What Do You Take Me For') built on Apr 28 2006 17:20:19
Writing library : libebml v0.7.7 + libmatroska v0.8.0
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L5.1
Format settings, CABAC : Yes
Format settings, ReFrames : 9 frames
Muxing mode : Container profile=Unknown@5.1
Codec ID : V_MPEG4/ISO/AVC
Duration : 23mn 0s
Bit rate : 1 252 Kbps
Width : 720 pixels
Height : 480 pixels
Display aspect ratio : 16:9
Original display aspect ratio : 3:2
Frame rate : 23.976 fps
Standard : NTSC
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.151
Stream size : 202 MiB (86%)
Writing library : x264 core 49 svn-551
Encoding settings : cabac=1 / ref=8 / deblock=1:2:2 / analyse=0x3:0x133 / me=umh / subme=7 / brdo=1 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / chroma_qp_offset=0 / slices=2 / nr=0 / decimate=1 / bframes=2 / b_pyramid=0 / b_adapt=1 / b_bias=0 / direct=1 / wpredb=1 / bime=1 / keyint=240 / keyint_min=24 / scenecut=40 / rc=2pass / bitrate=1252 / ratetol=1.0 / rceq='blurCplx^(1-qComp)' / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / pb_ratio=1.30
Audio #1
ID : 2
Format : Vorbis
Format settings, Floor : 1
Codec ID : A_VORBIS
Duration : 23mn 0s
Bit rate : 82.0 Kbps
Maximum bit rate : 82.0 Kbps
Channel(s) : 2 channels
Sampling rate : 48.0 KHz
Stream size : 13.5 MiB (6%)
Writing library : aoTuV Beta 4.51 (UTC 2005-11-17)
Language : Japanese
Audio #2
ID : 3
Format : Vorbis
Format settings, Floor : 1
Codec ID : A_VORBIS
Duration : 23mn 0s
Bit rate : 82.0 Kbps
Maximum bit rate : 82.0 Kbps
Channel(s) : 2 channels
Sampling rate : 48.0 KHz
Stream size : 13.5 MiB (6%)
Writing library : aoTuV Beta 4.51 (UTC 2005-11-17)
Language : English
Text
ID : 4
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : English
Интересно мнение опытных людей, ибо коллекция ДВД весит 55 гигов, в то время как рип весит 8м. И нужно выбрать что же оставить, а что именно увы не могу решить (
[Профиль]  [ЛС] 
 
Тема закрыта
Loading...
Error