2,226

(7 replies, posted in Using SVP)

Mystery
Yes. You can do it with InterFrame. See InterFrame documentation.

TCmullet
I had already done that
Good.

Where exactly are the leaks occurring?
Your chain looks like this:
AVI splitter > Lararith decoder > Avisynth frameserver > Avisynth plugins (MVTools2, SVPFlow, MaskTools2) > VD frameserver > Lagarith encoder
Memory leaks potentially may be in every element of chain. You can only control overall memory use by task manager against process VirtualDub. Look at this number and its growing while encoding your video with avisynth script.

Will these leaks someday get fixed?
First of all you need to find the element of chain with the error. In my practice I just use these 'buggy' tools but I know about their such features smile

how can one decide whether to use 0.2 or 0.1?
Only by view to result. Or I can explain how to debug the script to get current 'drop', 'Max_all' value for every frame. It will help to find threshold value: 0.1 or 0.2.

What's the difference
noise in the dropped frames and full frames matching are key differences. In battlefield clip every frame is slightly differ from previous as it encoded as individual frame with lossy encoder which decide to encode some new information (another mosquito noise, blocking, ringing for example) in every frame.

TCmullet
not clear about what you are saying
In the Internet you can find different versions of avisynth.dll. Original avisynth 2.5.8 is not optimal for SVP and for its plugins. So we optimized it and shared multithreaded (MT) SVP-edition: avisynth-2.5.8-svp.zip
You need to replace avisynth.dll with version from archive.

I don't know if 'global threads=1' syntax is real working with 1 thread or with 2 threads by default. It is needed to check.

Lagarith=1,global=3 worked but was actually slower than Lagarith=1,global=2
It can be so. I tested script with battlefield (720p mkv) in realtime mode without transcoding. At my system (core i5) the value threads=5 was optimal.
Your case is encode to x.264 (or anything else)? So encoder will use some number of threads and you can lower 'global threads' number to get maximum speed with memory leaks prevention (VD crashes).

Is this a change that would be good for everyone to put in, or should we consider it to be used only for my group of videos?
I think, no. It is individual.
Battlefield clip need 0.2
Your clip need 0.1

TCmullet
Problem not in threads count as is. Problem in memory consumption of each thread and with memory leaks.
Try to overwrite avisynth.dll in system32 from SVP bundle to SVP-edition version. It is optimized by speed and memory consumption for multithreaded use MVTools and SVPFlow plugins.

Lagarith crashes maybe because of big number of threads. Try to reduce it. The script line:

global threads=5

2,231

(7 replies, posted in Using SVP)

MaxMan23
25:12 is smoothing factor to get 50 fps from 24.

salam2009
Ok. I will check it.

salam2009
can't open more than 10 videos while SVP is running!
It is strange.
What is happened when you open 11-th?

TCmullet
Thank you.
I tuned up the script on your video.

Your video has low level of noise and all dropped frames are not encoded: [D]-frames in VirtualDub. So, these drops are clear and full match with previous frame. In GameDropFix you need to reduce one constant from 0.2 to 0.1:

drop = (drop>0 && Max_all<0.1) ? 0 : drop

TCmullet
I need example.
Can you give me short videoclip with that difficult frames for GameDropFix_v4 script?

TCmullet
SVSmoothFps: unable to load library given in 'compose'
It is mean no OpenCL device found.

Did you have any graphic device with OpenCL support?
If not then use line:

super_params="{scale:{up:2},gpu:0}"

2,237

(7 replies, posted in Using SVP)

MaxMan23
a)

25:12:25;24->50 (2.083x)

b) No way

2,238

(7 replies, posted in Using SVP)

MaxMan23
SVP don't change refresh rate, but you can adjust autochange monitor mode (with refresh rate) with MPC settings: menu View - Options... - Fullscreen - Use autochange fullscreen monitor mode option.

I think it will help you in both cases a) and b)

Nurk
Clear Motion
Уплавнение еле заметное.

К сожалению, полноценных вставленных кадров с промежуточным положением стрелки мы не увидели, хотя что-то там и интерполируется, по крайней мере в случае файлов с 24, 25 и 30 кадр/с. Визуальная оценка показала, что только для файлов с 30 кадр/с есть какое-то улучшение плавности, так как для 24 и 25 кадр/с наличие множества артефактов нивелирует положительный эффект.
http://www.svp-team.com/forum/misc.php?item=3303

Обсуждалось в ветке Аппаратное уплавнение, там же ссылка на обзор.

shaolin95
Ok. I see.
I will check BD3D ISO rip with last versions of stereoscopic player and PotPlayer. They are compatible to SVP.
And of course you can try both these players yourself. wink

salam2009
SVP has limit: only one video can be smoothed at once.

TCmullet
simply removing the Subtitle "dot invocation" would remove the little yellow subtitle
Yes. You did it right.

If your video has 'backward dupped' frames then you need to use GameDropFix_v4 script. It calculates motions in each frame and know about real frames position near every dropped frame.

In april'2014 was some workaround about BD3D support. But it is not finished.
I need more details. What player do you use to play BD3D?

TCmullet
not a clip
Looks like your AVI is not a real AVI. Try DSS2 + avss.dll

mt_lut
It is function of MaskTools2 plugin. Copy masktools.dll to plugins folder.

TCmullet
MSuper
It must work if you have mvtools2.dll in plugins folder.
Try to open script in AvsPmod. And I need exact AviSynth error message to help you.

Ok. I see.

I think wrong P-frames is encoder issue.
What tool do you use to analyze P- B- and I-frames in the stream?

TCmullet
Try to use original DoubleDropFix_v3.avs:

AviSource("D:\Video-Work\2014-NCAA-wv\2014-11-14.wv.KY-v-MS.lag.ac3-320.avi").ConvertToYV12()
sc=MSuper(pel=1)
vf=MAnalyse(sc,isb=false)
vb=MAnalyse(sc,isb=true)
global frame_50 = MFlowInter(sc,vb,vf,time=50).SubTitle("Fix-50", size=12, align=3)
global frame_33 = MFlowInter(sc,vb,vf,time=33).SubTitle("Fix-33", size=12, align=3).trim(1,0)
global frame_66 = MFlowInter(sc,vb,vf,time=66).SubTitle("Fix-66", size=12, align=3)
global frame_src = last
global mini=sc.crop(8,height+8*3,width/2,height/2).TemporalSoften(1, 1, 0, scenechange=1, mode=2)
global luma_drop=mini.mt_lut(y=-1, u=128, v=128)
drop_clip=mini.scriptclip("dif=mini.ydifferencefromprevious()
\ dif_next1=mini.trim(1,0).ydifferencefromprevious()
\ dif_prev1=(mini.trim(1,1)+mini).ydifferencefromprevious()
\ dif_nextMax=max(max(dif,dif_next1)/8,0.01)
\ dif_prevMax=max(max(dif,dif_prev1)/8,0.01)
\ dif>min(dif_prevMax,dif_nextMax) ? mini : luma_drop
")
scriptclip("
\ Fix_prev2=(drop_clip.trim(1,2)+drop_clip).AverageLuma
\ Fix_prev1=(drop_clip.trim(1,1)+drop_clip).AverageLuma
\ Fix=drop_clip.AverageLuma
\ Fix_next1=drop_clip.trim(1,0).AverageLuma
\ Fix_next2=drop_clip.trim(2,0).AverageLuma
\ Fix!=1
\ ? frame_src
\ : Fix_next1!=1
\   ? Fix_prev1!=1
\     ? frame_50
\     : Fix_prev2!=1
\       ? frame_66
\       : frame_src
\   :  Fix_next2!=1
\     ? Fix_prev1!=1
\       ? frame_33
\       : frame_src
\     : frame_src")

Where did you get your version?

TCmullet
For avi-files you can use AviSource instead DSS2.
DSS2 is DirectShowSource2 filter that you can find in Matroska Haali splitter installed folder. You can copy avss.dll from there to avisynth\plugins folder to make script working. DSS2 is needed to non avi files to get frame-accurate processing.

What encoder do you use?