View Full Version : InterFrame 2.8.2 - Framedoubling/60FPS/HFR conversion script
Pages :
1
2
3
4
5
[
6]
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SubJunk
3rd January 2012, 01:09
The only other thing I can think of would be dropped frames, are your scripts using DirectShowSource or DSS2?
BilboFett
3rd January 2012, 01:20
The only other thing I can think of would be dropped frames, are your scripts using DirectShowSource or DSS2?
In step 8 of your guide, you said: "Click the Extra Setup tab and make sure "Prefer DSS2 over DirectShowSource" is checked" and then in step 9 you said "A window will pop up to give you 3 buttons, click "DirectShowSource".
So, I followed those steps. Should I be doing something different? Also... if its doing the MeGUI writing-to-disk encoding, obviously not in full-time, why would it be dropping any frames whatsoever? When you encode "off-line" like that, shouldn't it go for each and every single frame, period, and not drop any?
UPDATE: I just got properties for my encoded video from Adobe Premiere... it lists zero dropped frames.
SubJunk
3rd January 2012, 02:21
DirectShowSource drops frames but DSS2 doesn't, so yes you should be safe.
I'm not sure why your audio drifts out of sync with your video, it shouldn't happen and has never happened for me unless I was accidentally using DirectShowSource or a VFR video.
Hopefully someone else can help you.
Shah Jahan
4th January 2012, 09:46
I use InterFrame in realtime and with Medium settings the CPU load stays at ~60% whereas with placebo it shoots to 100% and starts to lag. So I guess there is room for improvement with the presets.
Can you please make a few more presets for it? Something like Good, better, best or along the lines? This way I can use the presets and the CPU load more effectively.
Thank you very much.
Bloax
4th January 2012, 10:46
I think the biggest speed drain in "Placebo" is EEDI2.
On this little clip I have here (800x600) - EEDI2 alone gets 10 FPS.
I know it's PLACEBO and all, but NNEDI3 (like this) is slightly less smoothish, but six times faster.
NNEDI3(1,true,nsize=0,nns=0)
Shah Jahan
4th January 2012, 12:22
I think the biggest speed drain in "Placebo" is EEDI2.
On this little clip I have here (800x600) - EEDI2 alone gets 10 FPS.
I know it's PLACEBO and all, but NNEDI3 (like this) is slightly less smoothish, but six times faster.
NNEDI3(1,true,nsize=0,nns=0)
But I don't use EEDI2 or NNEDI3
I use the following script:
SetMTmode(2,7)
ffdshow_source()
SetMTMode(2)
InterFrame(Preset="Placebo", GPU=true, FlowPath="C:\Program Files (x86)\AviSynth 2.5\plugins\")
GetMTMode(false) > 0 ? distributor() : last
Perhaps, the preset it uses calls for EEDI2? If yes, then perhaps SubJunk might consider using NNEDI3 if it is 6x faster for a slight drop in quality?
Maybe use it in the presets between Medium and Placebo, if you don't want to remove it entirely?
Bloax
4th January 2012, 14:19
Yeah, I'm referring to the script itself.
Preset == "Placebo" ? Eval("""
CustomLuma = EEDI2(Input, field=1).Spline36Resize(2*width(Input), 2*height(Input), src_left=0.25 )
CustomChroma = EEDI2(Input, field=1).Spline36Resize(2*width(Input), 2*height(Input), src_left=0.5 , src_top=0.5)
Shah Jahan
4th January 2012, 21:46
Massive improvements in speeds using NNEDI3, but there is still some lag due to high-CPU usage.
SubJunk
8th January 2012, 02:15
The placebo setting will always be very slow, that is why it's called placebo :) It is the same in x264. But yes I could look at adding some more presets in the next version.
choas ct4
9th January 2012, 18:46
Hi everyone, congratulations for the forum and this topic, I would like to ask if you can make good use (and how?) InterFrame in real time during playback of videos using this configuration: mpc-hc + ffdshow + avisynth.
thanks
pbristow
9th January 2012, 20:35
OK, just a casual question here... why is the "placebo" preset called "placebo"?
The word placebo implies "It doesn't really do anything, but you'll *think* it helps!"
But looking at the code, it seems to me the placebo preset does actually do something! 8-)
[IS CONFUSED]
SubJunk
9th January 2012, 21:31
It's just a naming convention I adopted from x264 :) The placebo preset offers very slight quality advantages (almost none) but is much much slower.
Bernardd
28th January 2012, 20:13
Hello,
Thanks for InterFrame
I wanted to use InterFrame to change Super 8 movies' FPS from 16.667 to 25.
In some part of clip, with MFlowFPS, i get mad pictures like in this clip. http://www.youtube.com/watch?v=geO_I0sHv0E
With InterFrame, with Algo=13 and SadML=50, i can get this clip. http://www.youtube.com/watch?v=MnLFVnPBAeY
It is not perfect, but the look is better in the first part. But in the middle, Algo and SadML' tuning must be changed.
So i have written this mod of InterFrame script in the joint zip file. The changes are :
Add new "Preset", "Add masque", to proceed motion analyse on one mask made by MaskTools v2 cf. http://manao4.free.fr/mt_masktools.html (It is a try)
Add new item "Mode" to indicate if necessary the MaskTools mode.
Add new item "Tuning_Manuel" with default "False" to keep the original InterFrame process and if shift to "True", it enable the two new functions "Algo_manuel" and "SadML_manuel".
Add "blend" shift from "True" to "False", in accordance with old movies restoring scripts.
Do you agree this mod ?
Do you know other MSmoothFps' tunings can be used for Super 8 or 8 mm movies ?
Thanks
Bernard
SubJunk
28th January 2012, 23:16
Hi Bernardd,
Maybe you could upload it to another website so we don't have to wait for the attachment to be approved :)
Bernardd
28th January 2012, 23:26
Hi SubJunk
The script is not to big, so i copy it below.
Quote
#------------------------------------------------------------------------------#
# #
# InterFrame 1.12.3 by SubJunk #
# #
# A frame interpolation script that primarily uses MVTools2 for making #
# accurate estimations about the content of non-existent frames #
# Its main use is to give videos higher framerates like newer TVs do #
#------------------------------------------------------------------------------#
# For instructions and further information see the included InterFrame.html
# For news go to spirton.com
function InterFrame(clip Input, string "Preset", string "Tuning",int "NewNum", int "NewDen", \
string "FlowPath", bool "GPU", string "InputType", string "Mode", bool "Tuning_manuel", string "Algo_manuel", int "SadML_manuel",\
bool "blend") {
# Defaults
Preset = default(Preset , "Medium" )
NewNum = default(NewNum , 0 )
NewDen = default(NewDen , 0 )
Tuning = default(Tuning , "Film" )
FlowPath = default(FlowPath , "Undefined")
GPU = default(GPU , false )
InputType = default(InputType, "2D" )
Mode = default(Mode, "sobel")
Tuning_manuel = default(Tuning_manuel, true)
Algo_manuel = default(Algo_manuel , "23" )
SadML_manuel = default(SadML_manuel , 150 )
blend = default(blend , true)
# Validate inputs
Assert(Preset == "Placebo" || Preset == "Medium" || Preset == "Fast" || Preset == "Faster" || Preset == "Very Fast" || Preset == "Super Fast" || Preset == "Ultra Fast" || Preset == "Add Masque", "'"+Preset+"' is not a valid preset. Please check the documentation for a list of the valid presets.")
Assert(Tuning == "Film" || Tuning == "Smooth" || Tuning == "UltraSmooth" || Tuning == "Animation" || Tuning == "Weak" || Tuning == "Manuel","'"+Tuning+"' is not a valid tuning. Please check the documentation for a list of the valid tunings.")
Assert(InputType == "2D" || InputType == "SBS" || InputType == "OU" || InputType == "HSBS" || InputType == "HOU", "'"+InputType+"' is not a valid InputType. Please check the documentation for a list of the valid InputTypes.")
Assert(FlowPath != "Undefined", "You must specify FlowPath. Please check the documentation for details.")
Assert(Mode == "sobel" || Mode == "roberts" || Mode == "laplace" || Mode == "hprewitt" || Mode == "prewitt" || Mode == "cartoon" || Mode == "min/max", "'"+Mode+"' is not a valid preset. Please check the documentation for a list of the valid modes.")
Assert(Algo_manuel == "23" || Algo_manuel == "22" || Algo_manuel == "21" || Algo_manuel == "13" || Algo_manuel == "12" || Algo_manuel == "11"\
|| Algo_manuel == "1" || Algo_manuel == "2","'"+Algo_manuel+"' is not a valid tuning. Please check the documentation for a list of the valid Algo_manuels.")
# Get either 1 or 2 clips depending on InputType
InputType == "SBS" ? Eval("""
FirstEye = InterFrameProcess(Input.crop(0 , 0, -Input.Width/2, 0), Preset=Preset, Tuning=Tuning, NewNum=NewNum, NewDen=NewDen, FlowPath=FlowPath, GPU=GPU, InputType=InputType)
SecondEye = InterFrameProcess(Input.crop(Input.Width/2, 0, 0 , 0), Preset=Preset, Tuning=Tuning, NewNum=NewNum, NewDen=NewDen, FlowPath=FlowPath, GPU=GPU, InputType=InputType)
StackHorizontal(FirstEye, SecondEye)
""") : InputType == "OU" ? Eval("""
FirstEye = InterFrameProcess(Input.crop(0, 0 , 0, -Input.Height/2), Preset=Preset, Tuning=Tuning, NewNum=NewNum, NewDen=NewDen, FlowPath=FlowPath, GPU=GPU, InputType=InputType)
SecondEye = InterFrameProcess(Input.crop(0, Input.Height/2, 0, 0 ), Preset=Preset, Tuning=Tuning, NewNum=NewNum, NewDen=NewDen, FlowPath=FlowPath, GPU=GPU, InputType=InputType)
StackVertical(FirstEye, SecondEye)
""") : InputType == "HSBS" ? Eval("""
FirstEye = InterFrameProcess(Input.crop(0 , 0, -Input.Width/2, 0).Spline36Resize(Input.Width, Input.Height), Preset=Preset, Tuning=Tuning, NewNum=NewNum, NewDen=NewDen, FlowPath=FlowPath, GPU=GPU, InputType=InputType)
SecondEye = InterFrameProcess(Input.crop(Input.Width/2, 0, 0 , 0).Spline36Resize(Input.Width, Input.Height), Preset=Preset, Tuning=Tuning, NewNum=NewNum, NewDen=NewDen, FlowPath=FlowPath, GPU=GPU, InputType=InputType)
StackHorizontal(FirstEye.Spline36Resize(Input.Width/2, Input.Height), SecondEye.Spline36Resize(Input.Width/2, Input.Height))
""") : InputType == "HOU" ? Eval("""
FirstEye = InterFrameProcess(Input.crop(0, 0 , 0, -Input.Height/2).Spline36Resize(Input.Width, Input.Height), Preset=Preset, Tuning=Tuning, NewNum=NewNum, NewDen=NewDen, FlowPath=FlowPath, GPU=GPU, InputType=InputType)
SecondEye = InterFrameProcess(Input.crop(0, Input.Height/2, 0, 0 ).Spline36Resize(Input.Width, Input.Height), Preset=Preset, Tuning=Tuning, NewNum=NewNum, NewDen=NewDen, FlowPath=FlowPath, GPU=GPU, InputType=InputType)
StackVertical(FirstEye.Spline36Resize(Input.Width, Input.Height/2), SecondEye.Spline36Resize(Input.Width, Input.Height/2))
""") : Eval("""
InterFrameProcess(Input, Preset=Preset, Tuning=Tuning, NewNum=NewNum, NewDen=NewDen, FlowPath=FlowPath, GPU=GPU, InputType=InputType,\
Mode=Mode, Tuning_manuel=Tuning_manuel, Algo_manuel=Algo_manuel, SadML_manuel=SadML_manuel,\
blend=blend)
""")
}
function InterFrameProcess(clip Input, string "Preset", string "Tuning", int "NewNum", int "NewDen", \
string "FlowPath", bool "GPU", string "InputType", string "Mode", bool "Tuning_manuel", string "Algo_manuel", int "SadML_manuel",\
bool "blend") {
# Create processed clip for slower presets
Preset == "Placebo" || Preset == "Medium" || Preset == "Fast" || Preset == "Faster" ? Eval("""
ProcessedSource = Input.RemoveGrain(mode=17)
""") : Preset == "Add_Masque" ? Eval("""
ProcessedSource=Input.RemoveGrain(mode=17).MT_Edge(mode=Mode)
""") : Eval("""
# Don't want ProcessedSource
""")
# Set variables controlled by Tuning
BlockSize = (Tuning == "Film" || Tuning == "Animation") ? 16 : \
(Tuning == "Weak") ? 32 : 16
Overlap1 = (Tuning == "Animation") ? 0 : 4
Overlap2 = (Tuning == "Animation") ? 0 : 2
Tuning_manuel == false ? Eval("""
Algo = (Tuning == "Smooth" || Tuning == "Animation") ? 23 : 13
SadML = (Tuning == "Smooth" || Tuning == "Animation") ? 150 : 0
""") : Eval("""
Algo = (Algo_manuel == "23") ? 23 : \
(Algo_manuel == "22") ? 22 : \
(Algo_manuel == "21") ? 21 : \
(Algo_manuel == "13") ? 13 : \
(Algo_manuel == "12") ? 12 : \
(Algo_manuel == "11") ? 11 : \
(Algo_manuel == "128") ? 128 : \
(Algo_manuel == "1") ? 1 : \
(Algo_manuel == "2") ? 2 : 13
SadML = SadML_manuel
""")
# Create super clip/s
SuperRegular = MSuper(Input, hpad=BlockSize, vpad=BlockSize, rfilter=4)
Preset == "Placebo" ? Eval("""
CustomLuma = EEDI2(Input, field=1).Spline36Resize(2*width(Input), 2*height(Input), src_left=0.25 )
CustomChroma = EEDI2(Input, field=1).Spline36Resize(2*width(Input), 2*height(Input), src_left=0.5 , src_top=0.5)
CustomPelClip = MergeChroma(CustomLuma, CustomChroma, 1)
Super = MSuper(ProcessedSource, hpad=BlockSize, vpad=BlockSize, rfilter=4, pelclip=CustomPelClip)
""") : Preset == "Medium" || Preset == "8_mm" ? Eval("""
Super = MSuper(ProcessedSource, hpad=BlockSize, vpad=BlockSize, rfilter=4)
""") : Eval("""
Super = MSuper(Input, hpad=BlockSize, vpad=BlockSize, rfilter=4)
""")
# Make interpolation vector clip
Preset == "Ultra Fast" ? Eval("""
backward = MAnalyse(Super, blksize=BlockSize, plevel=0, isb=true , lambda=1000 * BlockSize * Blocksize / 128, lsad=1600, chroma=false)
forward = MAnalyse(Super, blksize=BlockSize, plevel=0, isb=false, lambda=1000 * BlockSize * Blocksize / 128, lsad=1600, chroma=false)
""") : Preset == "Super Fast" ? Eval("""
backward = MAnalyse(Super, blksize=BlockSize, plevel=0, isb=true , lambda=1000 * BlockSize * Blocksize / 128, lsad=1600, overlap=Overlap1)
forward = MAnalyse(Super, blksize=BlockSize, plevel=0, isb=false, lambda=1000 * BlockSize * Blocksize / 128, lsad=1600, overlap=Overlap1)
""") : Preset == "Very Fast" ? Eval("""
backward = MAnalyse(Super, blksize=BlockSize, plevel=0, isb=true , lambda=1000 * BlockSize * Blocksize / 128, lsad=1600, overlap=Overlap1)
forward = MAnalyse(Super, blksize=BlockSize, plevel=0, isb=false, lambda=1000 * BlockSize * Blocksize / 128, lsad=1600, overlap=Overlap1)
backward = MRecalculate(Super, backward, blksize=8, overlap=Overlap2)
forward = MRecalculate(Super, forward, blksize=8, overlap=Overlap2)
""") : Preset == "Faster" ? Eval("""
backward = MAnalyse(Super, blksize=BlockSize, plevel=0, isb=true , lambda=1000 * BlockSize * Blocksize / 128, lsad=1600, overlap=Overlap1, search=3, pelsearch=3)
forward = MAnalyse(Super, blksize=BlockSize, plevel=0, isb=false, lambda=1000 * BlockSize * Blocksize / 128, lsad=1600, overlap=Overlap1, search=3, pelsearch=3)
backward = MRecalculate(Super, backward, blksize=8, overlap=Overlap2, search=3)
forward = MRecalculate(Super, forward, blksize=8, overlap=Overlap2, search=3)
""") : Preset == "Fast" ? Eval("""
backward = MAnalyse(Super, blksize=BlockSize, plevel=0, isb=true , lambda=1000 * BlockSize * Blocksize / 128, lsad=1600, overlap=Overlap1, search=3, pelsearch=3)
forward = MAnalyse(Super, blksize=BlockSize, plevel=0, isb=false, lambda=1000 * BlockSize * Blocksize / 128, lsad=1600, overlap=Overlap1, search=3, pelsearch=3)
backward = MRecalculate(Super, backward, blksize=8, overlap=Overlap2, search=3)
forward = MRecalculate(Super, forward, blksize=8, overlap=Overlap2, search=3)
""") : Eval("""
backward = MAnalyse(Super, blksize=BlockSize, plevel=0, isb=true , lambda=1000 * BlockSize * Blocksize / 128, lsad=1600, overlap=Overlap1, search=3, pelsearch=3, dct=5)
forward = MAnalyse(Super, blksize=BlockSize, plevel=0, isb=false, lambda=1000 * BlockSize * Blocksize / 128, lsad=1600, overlap=Overlap1, search=3, pelsearch=3, dct=5)
backward = MRecalculate(Super, backward, blksize=8, overlap=Overlap2, search=3, dct=5)
forward = MRecalculate(Super, forward, blksize=8, overlap=Overlap2, search=3, dct=5)
backward = MRecalculate(Super, backward, blksize=4, overlap=Overlap2, search=3, dct=5)
forward = MRecalculate(Super, forward, blksize=4, overlap=Overlap2, search=3, dct=5)
""")
# Determine new framerate
NewNum != 0 ? Eval("""
# Use user values
""") : Input.Framerate == 25 ? Eval("""
NewNum = 50
NewDen = 1
""") : Input.Framerate == 30 ? Eval("""
NewNum = 60
NewDen = 1
""") : Eval("""
NewNum = 60000
NewDen = 1001
""")
# See whether to use GPU-acceleration or not
svp_flow_lib = GPU == true ? FlowPath+"libflowgpu.dll" : FlowPath+"libflowsse.dll"
Finest = GPU == true ? SuperRegular : MFinest(Input, SuperRegular)
# Put it together
MSmoothFps(Input, SuperRegular, backward, forward, finest=Finest, num=NewNum, den=NewDen, algo=Algo, ml=0, sadml=SadML, sadgamma=2, block=false, blend=blend)
}
Unquote
Bernardd
28th January 2012, 23:28
blank
Bernardd
28th January 2012, 23:30
blank
Bernardd
28th January 2012, 23:37
Hi SubJunk
This is link to mod script file. http://www.sendspace.com/file/9xgq4k
Thanks
Bernard
SubJunk
30th January 2012, 12:04
I'll check it out when I get a chance :)
SubJunk
1st February 2012, 12:09
I just finished looking over and testing your mod.
I don't know if MT_Edge offers any quality benefits, it seems almost identical with or without it.
The other changes are just adding more options so that users can tweak things manually, which I have no problem with. I will include more customisation in the next version, thanks.
Bernardd
2nd February 2012, 11:25
Hi SubJunk,
I agree with you MT_Edge is not yet necessary. I have try it, before i read your post http://www.svp-team.com/forum/viewtopic.php?id=73 and i see the magic work of YFRC-06dd-01mm-2011yyyy.avsi by RunForLife(Oleg Yushko).
Since 28 of january, i have try to adust too Blocksize.
With BlockSize = 32, Algo = 2 and SadML = 0, so i get frame without blend, but small morphing.
There is a link to one 25 frames HUFFYUV video file, which compare on left InterFrame (blocksize 32, Algo 2, SadML 0) with on right the ouput of MFlow FPS and InterFrame (default) (same ouput for this two process on my video clip). http://www.sendspace.com/file/t0bk0h
When you play this clip frame by frame, you can see the process difference.
I am happy, you will include more customisation in the next version. I think that will be useful for some chirurgical frame process.
Thank you
FDisk80
3rd February 2012, 21:02
So I tried running InterFrame 1.12.3 with this scipt:
SetMTmode(2,7)
ffdshow_source()
SetMTMode(2)
InterFrame(Preset="Very Fast", Tuning="Film", NewNum=48000, NewDen=1001, GPU=true, FlowPath="C:\Program Files (x86)\AviSynth 2.5\plugins\")
GetMTMode(false) > 0 ? distributor() : last
http://i.imgur.com/12xaY.jpg
After some time the player crashes with this error:
http://i.imgur.com/vCpvq.jpg
Tried MPC-HC and Pot Player. Same thing happens with both.
Some hardware info:
Intel i5 750 Quad Core @3663Mhz
4GB 1600Mhz RAM
HD5770 1GB 1000/1387Mhz
Windows 7 x64
Any ideas what is wrong here? :scared:
SubJunk
3rd February 2012, 21:14
A couple of ideas:
Add SetMemoryMax() to the top of your script, try something like SetMemoryMax(600)
If that doesn't work, try using SetMTmode(2,3)
FDisk80
3rd February 2012, 21:32
A couple of ideas:
Add SetMemoryMax() to the top of your script, try something like SetMemoryMax(600)
If that doesn't work, try using SetMTmode(2,3)
Still crashed with "SetMemoryMax(600)"
Trying "SetMTmode(2,3)"
Look like this happens when the CPU reaches close to 100% in some heavy scenes.
Edit: With "SetMTmode(2,3)" the frame rate drops below 35fps. Not all CPU threads are fully used I'm guessing.
Also testing SVP and even with i7 preset it runs 1080p at 60fps no problem.
Edit2: ok, so it's doesn't crash with "SetMTmode(2,3)"
But even with "Super Fast" preset the frame rate drops below 35fps in some scenes. And the CPU cores are only about 30~70% loaded.
Didée
3rd February 2012, 22:22
Disclaimer: I've zero experience with InterFrame or SVP.
Regarding Avisynth and MT, your script should start with setmtmode(5,x), like
SetMemorMax(666)
SetMTmode(5,6)
ffdshow_source()
SetMTMode(2)
InterFrame(.....
Because source filters usually don't like MTmode 2. Now ffdshow_source() might be a special case, but surely it doesn't need any threading.
Then, I'm not sure if MT can be successful when you set GPU=true. My experience with other GPU-filters is that they cannot run multithreaded. You can MT CPU filters, but not GPU filters. Is InterFrame/SVP any different in this respect?
In any case, try with GPU=false, too.
FDisk80
3rd February 2012, 22:58
Disclaimer: I've zero experience with InterFrame or SVP.
Regarding Avisynth and MT, your script should start with setmtmode(5,x), like
SetMemorMax(666)
SetMTmode(5,6)
ffdshow_source()
SetMTMode(2)
InterFrame(.....
Because source filters usually don't like MTmode 2. Now ffdshow_source() might be a special case, but surely it doesn't need any threading.
Then, I'm not sure if MT can be successful when you set GPU=true. My experience with other GPU-filters is that they cannot run multithreaded. You can MT CPU filters, but not GPU filters. Is InterFrame/SVP any different in this respect?
In any case, try with GPU=false, too.
With GPU=false the frame rate drops below 20 in some scenes and it will still crash when the load on the CPU is high.
And isn't "setmtmode(5,x)" will make things even slower?
Mode 1 is the fastest but only works with a few filters.
Mode 2 should work with most filters but uses more memory.
Mode 3 should work with some of the filters that don't work with mode 2 but it is slower.
Mode 4 is a combination of mode 2 and 3 and should work with even more filters but is both slower and uses more memory.
Mode 5 is the slowest (slower than not using SetMTMode) but should work with all filters that don't require linear frameserving (that is the frames come in order: frame 0,1,2,...,last).
Mode 6 is a modified mode 5 that might be slightly faster.
SubJunk
3rd February 2012, 23:01
@Didée: GPU=true works with MT
@FDisk80: You can try using SetMTMode(2,6)
FDisk80
3rd February 2012, 23:16
@Didée: GPU=true works with MT
@FDisk80: You can try using SetMTMode(2,6)
I did, still crashes.
Also tried:
SetMemoryMax(600)
SetMTmode(5,6)
Now mvtools2.dll crashed.
http://i.imgur.com/dlL3A.jpg
Even with SetMTMode(2,5) it crashed after some time.
And with SetMTMode(2,5) the frame rates are very low.
Didée
3rd February 2012, 23:33
@Didée: GPU=true works with MT
"works" is good. But "works correctly" is so much better. Did you verify if the results still are correct? Checking "if it doesn't crash" isn't sufficient. Back when I played with FFT3dGPU, I first thought all is okay (it didn't crash and looked okay). Only after closer checking it became clear that the results of FFT3dGPU were all-funky-wrong when the script was multithreaded. ;)
Gavino
3rd February 2012, 23:54
And isn't "setmtmode(5,x)" will make things even slower?
To continue Didée's theme: "slow" is bad. But "crashing" is even worse.
Most source filters don't work multithreaded, so you have to run them in mode 5, before switching to mode 2 for the rest of the script.
FDisk80
4th February 2012, 00:05
To continue Didée's theme: "slow" is bad. But "crashing" is even worse.
Most source filters don't work multithreaded, so you have to run them in mode 5, before switching to mode 2 for the rest of the script.
Well, it still crashes in mode 5.
The script is just to heavy for realtime 1080p even for a quad core CPU at 3.6Ghz and GPU acceleration + DXVA enabled.
Even at "Very Fast" and "Super Fast" presets.
BTW,
SVP sets "SetMemoryMax(1024)" and "SetMTMode(3,7)" by default, did not see it crash once. CPU load is much much lower and GPU load is the same, about 40%
Some settings are just overkill in InterFrame for realtime.
svp_scheduler=true
SetMemoryMax(1024)
svp_cache_reduce=true
svp_flow_lib="C:\Program Files (x86)\SVP\Plugins\MVTools2\libflowgpu.dll"
multinum=5
multiden=2
algo=13
block=false
ml=0
search=5
sadml=100
sadgamma=1
blend=true
dist=2
pel=2
sharp=0
Recalc=0
blkh=32
blkv=32
overlap=8
overlapv=8
wid_den=1
hei_den=1
LoadPlugin ("C:\Program Files (x86)\SVP\Plugins\MVTools2\mvtools2.dll")
SetMTMode(3,7)
ffdShow_source()
Assert(width==1920 && height==816,"Frame size "+string(width)+"x"+string(height)+" instead of 1920x816")
delim=":"
WriteFileStart("C:\Users\FDisk\AppData\Roaming\SVP\Logs\avsFPS.txt", "FramerateNumerator()", "delim", "FramerateDenominator()")
SetMTMode(2)
src=last
wid_den==1 ? last : \
hei_den==1 ? LanczosResize(int(width/wid_den/2)*2,height) : LanczosResize(int(width/wid_den/2)*2,int(height/hei_den/2)*2)
super=MSuper(pel=pel, hpad=blkh, vpad=blkv, sharp=sharp)
finest=pel==1 ? super : MFinest(super)
backward_vec=MAnalyse(super, isb=true, blksize=blkh, blksizev=blkv, overlap=overlap, overlapv=overlapv, search=search, searchparam=dist, pelsearch=dist, plevel=0)
forward_vec=MAnalyse(super, isb=false, blksize=blkh, blksizev=blkv, overlap=overlap, overlapv=overlapv, search=search, searchparam=dist, pelsearch=dist, plevel=0)
backward_vec = Recalc==0 ? backward_vec : MRecalculate(super, backward_vec, blksize=blkh2, blksizev=blkv2, overlap=int(overlap/4)*2, overlapv=int(overlapv/4)*2, search=search, searchparam=dist)
forward_vec = Recalc==0 ? forward_vec : MRecalculate(super, forward_vec, blksize=blkh2, blksizev=blkv2, overlap=int(overlap/4)*2, overlapv=int(overlapv/4)*2, search=search, searchparam=dist)
smooth_video=MSmoothFps(super, backward_vec, forward_vec, finest=finest, num=FramerateNumerator(last)*multinum,den=FramerateDenominator(last)*multiden, algo=algo, ml=ml, sadml=sadml, sadgamma=sadgamma, block=block, blend=blend)
smooth_video
distributor()
SubJunk
4th February 2012, 00:28
"works" is good. But "works correctly" is so much better.It works correctly.
The script is just to heavy for realtime 1080p even for a quad core CPU at 3.6Ghz and GPU acceleration + DXVA enabled.It works fine for me and my CPU is slower than yours.
It's not the settings that are the problem, since like you said SVP runs fine for you with the i7 settings which are a lot more intensive than InterFrame's fast presets :)
It's possible that DXVA is the problem, I've had trouble with that being very slow on my computer despite a fast GPU. You could try disabling that.
FDisk80
4th February 2012, 00:47
It works fine for me and my CPU is slower than yours.
It's not the settings that are the problem, since like you said SVP runs fine for you with the i7 settings which are a lot more intensive than InterFrame's fast presets :)
It's possible that DXVA is the problem, I've had trouble with that being very slow on my computer despite a fast GPU. You could try disabling that.
Tried it without DXVA, CPU load is still high and player crashes.
I don't understand how is your slower CPU can run this without crashes or low frame rates in realtime with 1080p.
SubJunk
4th February 2012, 00:55
I don't understand how is your slower CPU can run this without crashes or low frame rates in realtime with 1080p.InterFrame and SVP use the same files and same AviSynth code, so of course InterFrame can run videos that SVP can.
Just because something happens for you doesn't mean it happens for all people :)
Since SVP is working for you you can modify it to either use InterFrame or to use the same settings as InterFrame.
FDisk80
4th February 2012, 01:10
InterFrame and SVP use the same files and same AviSynth code, so of course InterFrame can run videos that SVP can.
Just because something happens for you doesn't mean it happens for all people :)
Since SVP is working for you you can modify it to either use InterFrame or to use the same settings as InterFrame.
Yes, this was my next step, to play with both scripts and see what is going on there. :cool:
BTW, is interpolation like this possible to be made as a filter or even a shader?
Maccara
4th February 2012, 03:46
"works" is good. But "works correctly" is so much better. Did you verify if the results still are correct? Checking "if it doesn't crash" isn't sufficient. Back when I played with FFT3dGPU, I first thought all is okay (it didn't crash and looked okay). Only after closer checking it became clear that the results of FFT3dGPU were all-funky-wrong when the script was multithreaded. ;)
IMO, every GPU filter should assert if someone tries to run them with MT. :p
It is completely contradictory to do that, since GPU filters are (or should be, otherwise there's no point) inherently multithreaded on the GPU already.
Best case: MT with GPU filter works but is completely pointless.
SubJunk
29th February 2012, 00:38
InterFrame 1.13 is released. Please see the first post for the changelog. Enjoy :)
Bernardd
29th February 2012, 16:47
Hi SubJunk
Thank you very much
What do you think about Algo 2 ? I find interest for it, because in problematic rush, it produce morph pictures without blend.
Bernard
SubJunk
29th February 2012, 22:40
Hi Bernardd, I will try it :)
FDisk80
29th February 2012, 23:18
InterFrame 1.13 is released. Please see the first post for the changelog. Enjoy :)
720P is all smooth and nice, looks good, no crashes
1080P the picture is blinking with green frames and then player freezes and crashes :(
MPC-HC + LAV (DXVA) + Interframe (Very Fast setting), (GPU accelerated)
SubJunk
1st March 2012, 02:57
Hi FDisk80, thanks for reporting this bug!
It's almost certainly a .dll problem so could you please try replacing the dependencies one by one with the previous version to see which is causing the problem? The previous version is here (http://www.spirton.com/uploads/InterFrame/InterFrame-1.12.3.zip)
FDisk80
1st March 2012, 12:13
Hi FDisk80, thanks for reporting this bug!
It's almost certainly a .dll problem so could you please try replacing the dependencies one by one with the previous version to see which is causing the problem? The previous version is here (http://www.spirton.com/uploads/InterFrame/InterFrame-1.12.3.zip)
Will try when I get home.
SubJunk
1st March 2012, 22:22
Thanks!
CruNcher
1st March 2012, 22:49
Hi FDisk80, thanks for reporting this bug!
It's almost certainly a .dll problem so could you please try replacing the dependencies one by one with the previous version to see which is causing the problem? The previous version is here (http://www.spirton.com/uploads/InterFrame/InterFrame-1.12.3.zip)
Especially if he uses a Script that uses external functions that have not been tested with SVPs modification i had a lot of crashes also depending on the Avisynth version and way of loading in the past and had to manually adapt stuff very often or update/downgrade.
mark0077
5th March 2012, 21:03
SubJunk, where did you get the new libflowgpu dll? Is it a yet unreleased dll from svp?
SubJunk
5th March 2012, 22:04
They released it publicly on their website but not in a SVP version
kolak
9th March 2012, 01:06
Is there a way to use YUY2 color space in interframe?
Is RemoveGrain only one filter which does not like YUY2 color space?
Tried to use Interleaved2Planar() and opposite, but had no luck.
Need help :(
SubJunk
11th March 2012, 01:13
Yeah I don't think it's possible, I have never tried though. I think MVTools2 doesn't allow it?
geminigod
11th March 2012, 04:57
Subjunk, you mentioned previously that if the goal were slow motion vs. smooth motion, you would not use this setup. I was hoping you might expand on the particulars of why and what you would use instead. It seems like this could work well for both, and I am struggling to comprehend the practical difference.
For example, what you recommendation as best course of action for this hypothetical scenario? Goal: create smooth slow motion with 50% reduction in speed from a source video of 1080p @ 23.976fps with medium-fast motion in scene?
SubJunk
11th March 2012, 08:22
Subjunk, you mentioned previously that if the goal were slow motion vs. smooth motion, you would not use this setup. I was hoping you might expand on the particulars of why and what you would use instead. It seems like this could work well for both, and I am struggling to comprehend the practical difference.
For example, what you recommendation as best course of action for this hypothetical scenario? Goal: create smooth slow motion with 50% reduction in speed from a source video of 1080p @ 23.976fps with medium-fast motion in scene?Thanks for the good question :) The practical difference is that at different speeds, different artifacts are more noticeable than others. It would be a good idea for InterFrame to have a slow motion preset or something but since I don't use it for that I don't think it will be added. However I know a lot of people do use it for slow motion and I've had good feedback about it, so while it could be further optimised for it, it should still be good :)
RemoveGrain and MVTools2 do support YUY2 actually. For RemoveGrain, you have to convert the clip into planar YUY2 by applying Interleaved2Planar() first, then feed the converted clip to RemoveGrain() with "planar=true" set. For MVTools2, both interleaved and planar YUY2 are supported, but it's recommended to feed planar YUY2 to MVTools2 for the sake of faster processing. Like RemoveGrain, MVTools2 also has a "planar" parameter. The problem is InterFrame doesn't use MFlowFps but MSmoothFps(SVP Build), which doesn't have a "planar" parameter. I don't know whether MSmoothFps even support interleaved YUY2 or not. You may try it. If MSmoothFps supports interleaved YUY2, remember to apply Planar2Interleaved() to the converted clip before feeding to MSuper and MSmoothFps.Thanks for the info :)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.