danila_112
есть неиспользуемые резервы CPU в размере 30%
Их не надо использовать. Иначе в погоне за качеством получите подергивания и тормоза. 30% - это минимально необходимый резерв.
You are not logged in. Please login or register.
SmoothVideo Project → Posts by MAG79
danila_112
есть неиспользуемые резервы CPU в размере 30%
Их не надо использовать. Иначе в погоне за качеством получите подергивания и тормоза. 30% - это минимально необходимый резерв.
danila_112
могу сказать определенно сейчас плавность супер и загрузка процессора не более 70%
Я рад, что получилось. Мои поздравления!
Kanade
If you have any antivirus software then you need to disable virus check in this folder. You need add to exception list your folder: C:\Users\Eric\AppData\Roaming\SVP 3.1\Logs
Error appears because avisynth can not write to file just created by him. AV soft is taking this file for some time. It is unexpected to avisynth.
Подкинул тут Булат95 ссылку на плавный трейлер игрушки BattleField 4.
Трейлеры 720p и 1080p и правда имеют 60 к/сек, но вот только во многих сценах присутствуют выпавшие кадры. Мне это дело не очень понравилось, поэтому решил попытать свои силы в задаче повышения плавности игровым трейлерам.
Заодно развить алгоритм замены выпавших кадров.
Вышел довольно сложный, но мощный скрипт: GameDropFix
SetMemoryMax(1024)
global svp_scheduler=true
global threads=7
global svp_cache_fwd=threads+2
LoadPlugin("C:\Program Files (x86)\SVP 3.1.4\plugins\svpflow1.dll")
LoadPlugin("C:\Program Files (x86)\SVP 3.1.4\plugins\svpflow2.dll")
SetMTMode(3,threads)
DSS2("G:\Downloads\Game_60fps_trailer\BF4_720p60.mp4").ConvertToYV12()
SetMTMode(2)
global super_params_mini="{scale:{up:0},gpu:1}"
global analyse_params_mini="{block:{w:16,h:16}}"
mini=BicubicResize(width/2,height/2)
super_mini=mini.SVSuper(super_params_mini)
vectors_mini=SVAnalyse(super_mini, analyse_params_mini)
vectors_Forward=SVConvert(vectors_mini, false)
HorizontalSpeed_luma=mini.MMask(vectors_Forward, kind=3).convertToRGB32().PointResize(width/32, height/32).PointResize(width/8, height/8).ConvertToYV12().mt_lut(y=2, u=128, v=128)
global super_params="{scale:{up:0},gpu:1}"
global analyse_params="{main:{search:{coarse:{distance:4,bad:{sad:2000}},type:2,distance:4},penalty:{lambda:1,pglobal:10000}},refine:[{thsad:65000}]}"
global smoothfps_params="{gpuid:21,rate:{num:2,den:1},algo:13,scene:{limits:{blocks:50}}}"
global smoothfps_params3366="{gpuid:21,rate:{num:3,den:1},algo:13,scene:{limits:{blocks:50}}}"
super=SVSuper(super_params)
vectors=SVAnalyse(super, analyse_params)
global fix50 = SVSmoothFps(super, vectors, smoothfps_params, mt=threads, url="www.svp-team.com").SelectOdd().Subtitle("fix50", align=3, size=12)
fix3366 = SVSmoothFps(super, vectors, smoothfps_params3366, mt=threads, url="www.svp-team.com")
global fix33 = fix3366.SelectEvery(3,1).Subtitle("fix33", align=3, size=12)
global fix66 = fix3366.SelectEvery(3,2).Subtitle("fix66", align=3, size=12)
global min_move=0.02
global move_idx=10
global debug=0
global spc=" "
global fmt="% 1.2f"
global star="*"
last.ScriptClip("
luma_lft=HorizontalSpeed_luma.crop(0,0,width/32,0)
luma_rgh=HorizontalSpeed_luma.crop(width/32+width/16,0,0,0)
AvgLuma_lft=128-luma_lft.AverageLuma
AvgLuma_rgh=128-luma_rgh.AverageLuma
AvgLuma_lft_prev=128-(luma_lft.trim(1,1)+luma_lft).AverageLuma
AvgLuma_rgh_prev=128-(luma_rgh.trim(1,1)+luma_rgh).AverageLuma
AvgLuma_lft_next=128-luma_lft.trim(1,0).AverageLuma
AvgLuma_rgh_next=128-luma_rgh.trim(1,0).AverageLuma
AvgLuma_lft_next2=128-luma_lft.trim(2,0).AverageLuma
AvgLuma_rgh_next2=128-luma_rgh.trim(2,0).AverageLuma
Max_lft=max(abs(AvgLuma_lft_prev),abs(AvgLuma_lft),abs(AvgLuma_lft_next))
Max_rgh=max(abs(AvgLuma_rgh_prev),abs(AvgLuma_rgh),abs(AvgLuma_rgh_next))
A_prev= (Max_rgh>Max_lft) ? AvgLuma_rgh_prev : AvgLuma_lft_prev
A_cur= (Max_rgh>Max_lft) ? AvgLuma_rgh : AvgLuma_lft
A_next= (Max_rgh>Max_lft) ? AvgLuma_rgh_next : AvgLuma_lft_next
drop_lft= (AvgLuma_lft_prev*AvgLuma_lft_next>0 && abs(AvgLuma_lft*move_idx)<Max_lft && abs(AvgLuma_lft_prev)>min_move && abs(AvgLuma_lft_next)>min_move) ? 1 : 0
drop_rgh= (AvgLuma_rgh_prev*AvgLuma_rgh_next>0 && abs(AvgLuma_rgh*move_idx)<Max_rgh && abs(AvgLuma_rgh_prev)>min_move && abs(AvgLuma_rgh_next)>min_move) ? 1 : 0
drop = drop_lft*drop_rgh
Max_lft2=max(abs(AvgLuma_lft),abs(AvgLuma_lft_next),abs(AvgLuma_lft_next2))
Max_rgh2=max(abs(AvgLuma_rgh),abs(AvgLuma_rgh_next),abs(AvgLuma_rgh_next2))
A_prev2= (Max_rgh2>Max_lft2) ? AvgLuma_rgh : AvgLuma_lft
A_cur2= (Max_rgh2>Max_lft2) ? AvgLuma_rgh_next : AvgLuma_lft_next
A_next2= (Max_rgh2>Max_lft2) ? AvgLuma_rgh_next2 : AvgLuma_lft_next2
drop_lft2= (AvgLuma_lft*AvgLuma_lft_next2>0 && abs(AvgLuma_lft_next*move_idx)<Max_lft2 && abs(AvgLuma_lft)>min_move && abs(AvgLuma_lft_next2)>min_move) ? 1 : 0
drop_rgh2= (AvgLuma_rgh*AvgLuma_rgh_next2>0 && abs(AvgLuma_rgh_next*move_idx)<Max_rgh2 && abs(AvgLuma_rgh)>min_move && abs(AvgLuma_rgh_next2)>min_move) ? 1 : 0
drop2 = drop_lft2*drop_rgh2
drop2==1 \
? abs(A_prev2)/1.3>abs(A_next2) \
? fix50.trim(1,1)+fix50 \
: (abs(A_prev2)/1.3<=abs(A_next2) && abs(A_prev2)>=abs(A_next2)/1.3) \
? fix66.trim(1,1)+fix66 \
: last \
: last
drop==1 \
? abs(A_prev)/1.3<=abs(A_next) \
? fix50 \
: abs(A_prev)<=abs(A_next)/1.3 \
? fix33 \
: last \
: last
debug==1 ? Subtitle(x=10,y=10,string(AvgLuma_lft_prev,fmt)+spc+string(AvgLuma_rgh_prev,fmt)) : last
debug==1 ? Subtitle(x=10,y=30,string(AvgLuma_lft,fmt)+spc+string(AvgLuma_rgh,fmt),text_color=$FF8888) : last
debug==1 ? Subtitle(x=10,y=50,string(AvgLuma_lft_next,fmt)+spc+string(AvgLuma_rgh_next,fmt)) : last
debug==1 ? Subtitle(x=10,y=70,string(AvgLuma_lft_next2,fmt)+spc+string(AvgLuma_rgh_next2,fmt)) : last
debug==1 ? Max_rgh>Max_lft ? Subtitle(x=70,y=90,star) : Subtitle(x=20,y=90,star) : last
debug==1 ? Subtitle(x=10,y=110,string(drop_lft)+spc+string(drop_rgh)+spc+string(drop)) : last
(debug==1 && drop==1 && abs(A_prev)/1.3>abs(A_next)) ? Subtitle(x=10,y=130, star+star+star+star+star+star) : last
")
Distributor()
Это пока предварительный вариант в стадии работающего прототипа. Настройки максимальной подвижности при интерполировании взяты такие же, как для повышения плавности видео с видеорегистратора. Т.к. характер движений в таком видео очень схож.
Скрипт умеет заменять одиночные выпавшие кадры, но с дополнительным анализом величины движений в соседних кадрах, что позволяет выявить три разных вида одиночных дропов с индивидуальным исправлением этих дропов в каждом из трех случаев.
Случай 1. Классический. Дроп, затем скачок.
Перед выпавшим кадром движение обычной амплитуды, на самом выпавшем кадре движений нет, на следующем за ним кадре - движение в два раза больше из-за пропуска фазы движения. Такой дроп лечится классической заменой кадра-дропа интерполированным кадром, взятого посередине длинного движения. На картинке обозначен: fix50.
Случай 2. Обратный. Скачок, затем дроп.
Перед выпавшим кадром по какой-то причине игровой движок показывает кадр из будущего. Выглядит как скачок. А за ним следует дроп. Видимо движок игры неровно тратит время на отрисовку кадров и если предыдущий кадр ему дался легко, то со следующим он провозился так долго, что не успел подготовить кадр до следующего синхроимпульса монитора, пришлось повторить имеющийся, т.е. вывести дроп. Такой дроп лечится хитро. Вторая копия кадра оставляется нетронутой, а первая заменяется на fix50.
Случай 3. Пропуск кадра из-за низкой частоты рендера кадров игровым движком.
И перед выпавшим кадром и после него нет скачков. Кадра просто не считалось игрой изначально. Если заменить такой дроп на один интерполированный по середине с соседом кадр, то получим два кадра с уполовиненным по скорости движением. Я пока решил интерполировать оба кадра, которые ограничивают кадровый интервал. Первый кадр интерполирую с левым, получая положение 66%: fix66, второй кадр - с правым до положения 33%: fix33.
Таким образом получаю вместо дропа серию из трех замедленных на 33% но равномерно двигающихся кадров. Выглядит уже лучше, чем дерганный исходник.
Все желающие могут скачать и посмотреть результат:
BF4_720p60_DropsFixed.mkv (1,21 ГБ)
jkauff
If simple then go to reset profiles dialog and select lighter profile from the list than current.
jkauff
Yes. Thank you for reminding.
One-frame DVD menu is hard thing for me. I tried several times, but I could not fixed it a once.
I will be try again. I had a good rest for that
Почемучкин
Правой кнопкой по окну плеера во время воспроизведения файла.
MPC-HC:
PotPlayer:
Kanade
Do you mean as in seek slowly and not fast?
No. I mean programmers trincks. Just released in SVP. You can see them in "SVP menu - Turn off on seek" option.
One more thing, to update any components (for example: SVP lite, fddshow and avisynch) do I download the latest installers and just run them?
Or do I have to delete everything first and than install?
If you advanced user and use a lot of software that uses avisynth/ffdShow then install them separately manually. Otherwise just douwnload and install SVP_full. Last version of SVP usually contains all last versions of used compinents.
danila_112
Нет.
Включенный GPU - это галка в меню SVP, которая включает использование GPU-ускорения.
Профили с буквами g/c - это только наборы настроек подобранные с учетом того, что GPU-ускорение забирает (или нет) на себя часть нагрузки с процессора. Буква g/c - это только название, которое никак не влияет на GPU-ускорение. Поэтому после включения/отключения GPU-ускорения рекомендуется сбрасывать профили, чтобы выбрался соответствующий набор профилей под текущую конфигурацию.
Почемучкин
Что там в меню по правой кнопке при отключенном SVP?
Интересует список DS-фильтров.
Если использовать только рекомендуемые фильтры (устанавливаемые пакетом SVP_full), то никаких ошибок и зависаний. Давайте выяснять, что у Вас нестандартного в списке фильтров.
danila_112
всё это при использовании расчётов GPU?
Да. При процессорном построении точность расчетов пиксельная и полу-пиксельная. В зависимости от настройки в профиле.
OpenCL выключен, если всё так оставить, то после обновления SVP станут движения плавнее?
Нет, без OpenCL все останется как было.
судя по выводам скорости SVP не добавилось, и я опять буду иметь затыки\рассинхроны звука и видео
На 13-м шейдере скорость прибавилась. Я могу у себя смотреть 720p с пиксельным шейдером повышения резкости sharpen complex2, SVP-шейдером 13. И все это на Intel HD Graphics 4000.
Почемучкин
Поздравляю!
Значит, MPC-HC плеер использует встроенный декодер, который оказался лучше совместим с SVP, чем тот, который использовался у Вас в системе до этого.
Почемучкин
выводится окошко с сообщением об ошибке
Привести текст ошибки полностью.
R4Zi3L
The error tell about lack of graphic memory.
Error preparing smooth playback! Script error:
SVSmoothFps: unable to init FlowLib [code 0x3FFFA]
(C:\Users\DESKTOP\AppData\Roaming\SVP 3.1\AVS\ffdshow.avs, line 38)
(C:\Users\DESKTOP\AppData\Roaming\SVP 3.1\AVS\ffdshow.avs, line 53)
It is because of old graphic card with low memory size.
detected graphics (OpenCL) adapter: 11. GeForce 9600 GT (264). Duration: 16 ms
You need to optimize video memory use.
Look at video memory use by enabling/changing/disabling of these components:
- CUDA decoder;
- SVP GPU-calculations;
- video renderer.
You can use GPU-Z to monitor used memory size.
Additional topic to read: Out of video memory (0x3FFFA error) on madVR
В новой версии драйверов Intel наконец-то исправлена ошибка, не позволявшая использовать субпиксельную точность расчетов промежуточных кадров. Это делало движения не достаточно плавными. Ступенчатыми. Теперь после установки драйвера 9.18.10.3071 плавность становится идеальной, такой же, как и на остальных GPU-ускорителях от NVIDIA и AMD.
Модификация SVP 3.1.4 добавляющая субпиксельную точность для ускорителей Intel HD Graphics 2500 / 4000.
- Скачать и установить драйвера 9.18.10.3071
- Скачать: SVPMgr314.912_HD_Graphics_subpixel_mod.zip
Скорость новых драйверов Intel в среднем стала немного выше. Картина следующая. Результаты синтетических тестов упали, а реальных тестов где-то возрасли, где-то упали.
Увеличилась скорость реальных тестов на простых и средних настройках плавности (fastest, simple 1, good, simple 2). Результаты реальных тестов на максимальных настройках упали (high, highest). Скорее всего из-за того, что объективно уменьшилась скорость работы видеокарты: видно по синтетическим тестам. Скорость передачи данных с GPU на CPU упала аж на 33%.
Отчего же наблюдается прирост в целом и на слабых/средних настройках повышения плавности? Скорее всего из-за того, что оптимизированы были только некоторые простые команды, выполняющиеся на GPU. В результате чего SVP шейдеры 1 и 13 стали быстрее, а тяжелый SVP-шейдер 23 стал работать медленней (см. настройки подтестов SVPmark).
Это надо взять на заметку пользователям Intel HD Graphics.
agorava
В форуме Эксплуатация SVP создать новую тему.
Kanade
Did you try change option "SVP menu - Turn off on seek"?
I see previous frames all flashing
It can be only if you selected "Dont turn off". It is ffdShow buffer's work. All we can do is to make some tricks.
BTW. I preparing additional solution to "SVP menu - Turn off on seek" menu. You will see it in next SVP version.
flashmp3
ASUS UX32VD R4002
Oh. It is laptop. Sorry. Then I think it have not direct output from integrated video to monitor. Only Virtu can help.
Trick works with Desktop PC.
flashmp3
Do you think i could force the soft to use both GPU at the same time ?
I think you need to contact Serato developers. As I can see on YouTube such on-the-fly video FX can work only with hardware acceleration. But hardware acceleration may have limits to framerate. You need to ask developers does Serato Video (or Video LS) supports 1080p60 or 720p60 video clips? You need maximum smoothness on 60 Hz monitor.
In demo clips I saw only about NVIDIA support, nothing about Intel Graphics support.
jkauff
If trick done properly then you will get menu choice of GPU-acceleration in SVP: NVIDIA or Intel HD Graphics 4000.
Without Virtu.
Kanade
There are two causes of dragonfly artifacts:
1. Some objects have wrong vectors (vectors of background). Error of vector search algo. It is because big vectors grid size and small search radius.
2. Some objects have very small or thin size that smaller than grid size. Such objects can not be interpolated correctly by current SVP algo. It is lack of current frame interpolation algo.
Try to decrease Motion vectors grid step from 24 to 16 or to 8.
Try to encrese Search radius.
In simple cases it ill help. But in hard cases SVP will give artifacts on any settings. By now dragonfly artifacts can not be removed completly.
flashmp3
What the problem? You want to use Intel QuickSync? You not need in Lucid software. There is one trick: You need to enable HD Graphics output by driver. Just connect to HD Graphics output any monitor, reboot and extend desktop to that monitor.
* It can be the same monitor as connected to NVIDIA card but to another connector.
* You can move that monitor to diagonal position corner-to-corner to avoid mouse out from main monitor area and it is not necessary to use it in work.
Kanade
Thank you for video explanation.
I see. It is so called dragonfly artifacts. Objects in the frame moved by vectors of background. Airplane shakes its wings like a dragonfly. It is kind of interpolation error.
You can decrease amount of dragonfly artifacts by two ways:
1. by changing SVP-shader from 2.Sharp to 13.Standard or to 23.Complicated. In addition it increase smoothness but it decrease sharpness a bit.
2. by enabling Artifacts masking to Average or to Above normal. But it decrease local smoothness a bit.
danila_112
Спасибо. Мы ждали это обновление. Насчет производительности - нужно померить.
Важней, что в этом драйвере техподдержкой Intel обещана реализация субпиксельной точности интерполирования. Если это так, то мы вскоре выпустим новую версию SVP, где интегрированная графика Intel догонит по точности интерполирования интегрированную AMD и дискретные видеокарты.
Покорен рубеж 5000 поугаев.
Koschey набрал 5031 балл!
Использовался 6-ти ядерный процессор Core i7-3930K с установленной видеокартой семейства AMD Radeon HD 7800. Частота процессора была @4600 МГц, частоты видеокарты 7850@1240 МГц.
В подтесте с максимально тяжелыми настройками High эта система показала 93.99 к/сек.
Kanade
can you tell me how to get error logs from potplayer?
I don't know. I'm not PotPlayer developer.
As for windows log, is this what you want?
Yes. It is more specific. Thank you.
Faulting application name: PotPlayerMini.exe, version: 0.0.0.0, time stamp: 0x508fa0c9
Faulting module name: PotPlayer.dll, version: 1.5.35431.0, time stamp: 0x51008e0e
Exception code: 0xc0000005
Fault offset: 0x000ca743
It is PotPlayer's error. Not SVP. You need to contact PotPlayer author and send him this information about error.
SmoothVideo Project → Posts by MAG79
Powered by PunBB, supported by Informer Technologies, Inc.