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
Music Fan
25th December 2014, 23:43
Yes I know (I wrote With 2,5 multiplication, you can't keep all original frames), that was another reflexion about quality (fluidity and artifacts), admitting multiply by 5 then divide by 2 is easier than x 2,5, but Interframe maybe does it internally when making x 2,5.
SubJunk
3rd January 2015, 08:01
InterFrame 2.7.0 is released! This releases adds a "Fastest" preset, for faster processing but lower quality.
mixmasterarne
13th January 2015, 23:11
Are there plans to add support for 4K content?
SubJunk
15th January 2015, 00:13
Are there plans to add support for 4K content?4k should work already, if AviSynth can handle it without running out of memory
aegisofrime
25th January 2015, 03:13
Hi SubJunk!
I routinely use QTGMC followed by InterFrame. I was wondering, is it possible to use the motion vectors generated by QTGMC for InterFrame to speed up performance?
Thanks!
SubJunk
25th January 2015, 03:40
That would be really cool! I don't think so though, since InterFrame no longer uses MVTools2 like QTGMC does
TCmullet
18th February 2015, 07:30
Wow, I can't believe I survived reading/skimming this whole thread! I think I see "the light" better. The forum at SVP is not the place to discuss InterFrame; this thread is, even though it's merely a thread. I kinda thought there would be a whole forum section on it. And I now perceive that you, Subjunk are the author and not to be confused with Mag79 and the others at the SVP-Team, though you are on good terms and work "together".
So may I raise a question that's not been addressed? I was under the impression that I could do all my Avisynth processing in one script. But if I include "loop" commands to chop out footage before doing InterFrame, Virtualdub hangs. Then I observe that I have not seen anyone here using Interframe along with other actions such as "loop". Is it true that I must separate all other actions of certain types and keep the call to InterFrame all by itself? (Including with it ONLY things directly related to it, like SetMT stuff.) This makes for 2 processing runs, when I would have preferred one. Also, I observe that for many things, I must switch back to AS 2.5.8, then switch forward to 2.6 for InterFrame.
StainlessS
19th February 2015, 00:29
Can you check, should you be using Trim() rather than Loop(). [Loop repeats a section a number of times, default being 'almost endlessly'].
EDIT: Posting a small script exhibiting the problem is always a good idea (leaving out all unnecessary stuff which does not contribute to the problem).
SubJunk
19th February 2015, 01:33
Wow, I can't believe I survived reading/skimming this whole thread! I think I see "the light" better. The forum at SVP is not the place to discuss InterFrame; this thread is, even though it's merely a thread. I kinda thought there would be a whole forum section on it. And I now perceive that you, Subjunk are the author and not to be confused with Mag79 and the others at the SVP-Team, though you are on good terms and work "together".
I guess that can be a bit confusing since it has been a collaborative effort. I don't think any of us are really the sole author of anything since we have all iterated the work of others. I should probably add a polished version of something like the following to the first post:
This script started as some text being thrown around another forum by lots of people, and eventually I, along with some others like Widezu69, started doing extensive tests on the script trying to squeeze out all the quality we could. At the time, it used the AviSynth plugin called MVTools2 which has had various authors and contributors like Manao, Fizick, Tsp, TSchniede and SEt. We kept having lots of requests by people to tweak the script for their processor and so we established some good ways to reduce or increase CPU load without killing quality too much, and to make it easier I wrote a guide (in my signature) and developed InterFrame so people could modify those things themselves in a more readable way. Then SVP got released based on MVTools2 and it was faster than MVTools2, so I rewrote InterFrame to use SVP instead, and again collaborated with Widezu69 and some others along the way, and I'm on the SVP beta testing team so I get to communicate with Chainik and Mag79 about it there too.
So may I raise a question that's not been addressed? I was under the impression that I could do all my Avisynth processing in one script. But if I include "loop" commands to chop out footage before doing InterFrame, Virtualdub hangs. Then I observe that I have not seen anyone here using Interframe along with other actions such as "loop". Is it true that I must separate all other actions of certain types and keep the call to InterFrame all by itself? (Including with it ONLY things directly related to it, like SetMT stuff.) This makes for 2 processing runs, when I would have preferred one. Also, I observe that for many things, I must switch back to AS 2.5.8, then switch forward to 2.6 for InterFrame.StainlessS' response goes for me too :)
foxyshadis
19th February 2015, 02:00
Also, I observe that for many things, I must switch back to AS 2.5.8, then switch forward to 2.6 for InterFrame.
Unless you're using Deen or Dust, I can't imagine why you'd still need Avisynth 2.5.8. All of the plugins I use are compatible with 2.6.
Reel.Deel
19th February 2015, 02:08
Unless you're using Deen or Dust, I can't imagine why you'd still need Avisynth 2.5.8. All of the plugins I use are compatible with 2.6.
Deen works with 2.6. Dust is a 2.0 plugin (IIRC) and does not work with either 2.5.8 or 2.6. But yeah, there's not many good reasons to use Avisynth 2.5.8.
StainlessS
19th February 2015, 11:14
Dust is a 2.0 plugin (IIRC) and does not work with either 2.5.8 or 2.6.
RD, So far as I'm aware, DustV5 should load with Kevin Atkinson
v2 C plugs loader (but it dont), are you aware of a reason for this ?
EDIT: Above is nonsense, is v2.0 CPP dll.
Is there any source (you seem to know where everything is :) )
TCmullet
20th February 2015, 02:35
Thanks for all said. Turns out there were missing pieces of the puzzle and I have it working now. Let me answer each item relevant, after I post my script, which DOES work. (Actually, this is another video, but just like the prior one.)
# Uses AS 2.6.0.5
SetMemoryMax(512)
SetMTMode(3,4)
main=AviSource("D:/Video-Work/myVideoFile.504p.lag.pcm.avi")
main
DelayAudio(0.140)
#
# delete comm brks
loop(0,0,5)
loop(0,3972,5847)
loop(0,29260,32108)
loop(0,35660,37575)
loop(0,50447,53256)
loop(0,74336,77161)
loop(0,77352,79283)
loop(0,93587,97319)
loop(0,97604,101393)
loop(0,114267,116187)
loop(0,119848,121710)
loop(0,144678,144727)
ConvertToYV12()
SetMTMode(2)
InterFrame(Cores=2,Tuning="Film")
#InterFrame(Cores=2,Tuning="Film",FrameDouble=true)
Re: Using loop vs trim: I like the loop option that has 0 as the first of three operands. See my 2nd instance:
loop(0,3972,5847)
This deletes frames 3972 thru 5847, exactly what I want. Trim didn't seem to be as easy to code. (However, the AviSynth docs are often obtuse, at least to me.)
As far as VD hanging or crashing (yes, there were quasi-random crashes), that is solved via 2 changes:
1. I posted the crash dump at Virtualdub forum:
http://forums.virtualdub.org/index.php?act=ST&f=15&t=23198&
Learned I was still using a buggy version of FFInputDriver.vdplugin. Upon installing the current version, all problems go away, except one.
2. The one problem was that at same time I was experimenting with various InterFrame options. Bad idea to hastily change multiple items in a new dev environment. In the script above, the last line is a comment. If you swap-comment those last two lines such that you DO execute the one with FrameDouble, the script fails in one of two ways. If you have no file open in VD, it weirdly opens with no frames but VD says you have "Frame 18446744073709551276 (0:00:4294967291.4294" (This is in the window at the bottom). The other way was with the script the other way, the script open, and I try to F2 with the FrameDouble line activated. VD gave a hairy message about frame numbers being wrong, but I have not been able to recreate the condition, in order to report the text that VD gave.
So, adding the FrameDouble option, at least in this circumstance causes failure of the script to open properly. I guess this is a bug report for you, Subjunk.
TCmullet
21st February 2015, 16:05
Maybe I wrote too big a post. Subjunk, near the end, I reported to you a bug with FrameDouble.
StainlessS
21st February 2015, 17:15
@TCMullet,
If you have a lot of ranges to trim out (especially if list is auto generated), then you might like to try a script provided in FrameSel plug, also has a
1 millisecond fade (default) between splices to avoid 'cracks' in audio (where trim occurs during loud-ish noise).
Script from FrameSel() : http://forum.doom9.org/showthread.php?t=167971&highlight=framesel
Function RejectRanges(clip c,String "SCmd",String "Cmd",Bool "TrimAudio",Float "FadeMS") {
# RejectRanges() by StainlessS. Required:- FrameSel, Prune, RT_Stats
# Wrapper to delete frames/ranges along with audio, can supply frames/ranges in SCmd string And/Or Cmd file.
# The wrapper makes for easier usage of Prune() which supports up to 256 input clips, but requires a clip index,
# eg '3, 100,200' would specify clip 3, range 100 to 200. The wrapper does away with the necessity for the clip index as we
# are only using a single clip here. Prune also does not have a 'reject' arg to delete specified frames rather than select them,
# this wrapper also converts a list of frames to delete into a list of frames to select so that we can use Prune and its audio
# capability.
#
# SCmd: Frames/Ranges specified in String (Frames/Ranges either Chr(10) or ';' separated, infix ',' specifies range, eg 'start,end').
# Cmd: Frames/Ranges specified in file (one frame/range per line, comments also allowed, see FrameSel for Further info).
# TrimAudio:
# True(default), deletes audio belonging to deleted frames
# False, returns original audio, probably out of sync.
# FadeMS: (default 1.0 millisec). Linear Audio Fade duration at splices when TrimAudio==true, 0 = dont fade (might result in audio 'clicks/cracks').
c
TrimAudio=Default(TrimAudio,True) # default true trims audio, false returns original audio (audiodubbed, as Framesel returns no audio)
FadeMS=Float(Default(FadeMS,1.0)) # 1 millisecond linear fadeout/fadein at splices
PruneCmd = (TrimAudio) ? "~Prune_"+RT_LocalTimeString+".txt" : ""
(!TrimAudio)
\ ? FrameSel(scmd=SCmd,cmd=Cmd,reject=true)
\ : FrameSel_CmdReWrite(PruneCmd,scmd=SCmd,cmd=Cmd,reject=true,Prune=True,range=true)
(TrimAudio) ? Prune(Cmd=PruneCmd,FadeIn=True,FadeSplice=True,FadeOut=True,Fade=FadeMS) : NOP
# If TrimAudio==true then delete Prune temp file, Else restore original Audio to the now audio-less clip
(TrimAudio)
\ ? RT_FileDelete(PruneCmd)
\ : (c.HasAudio) ? AudioDub(c) : NOP
Return Last
}
Function SelectRanges(clip c,String "SCmd",String "Cmd",Bool "TrimAudio",Float "FadeMS",Bool "Ordered") {
# SelectRanges() by StainlessS. Required:- FrameSel, Prune, RT_Stats
# Wrapper to Select frames/ranges along with audio, can supply frames/ranges in SCmd string And/Or Cmd file.
# The wrapper makes for easier usage of Prune() which supports up to 256 input clips, but requires a clip index,
# eg '3, 100,200' would specify clip 3, range 100 to 200. The wrapper does away with the necessity for the clip index as we
# are only using a single clip here.
#
# SCmd: Frames/Ranges specified in String (Frames/Ranges either Chr(10) or ';' separated, infix ',' specifies range, eg 'start,end').
# Cmd: Frames/Ranges specified in file (one frame/range per line, comments allowed, see FrameSel for Further info).
# *** NOTE ***, If both Cmd and SCmd supplied AND Ordered == False, then will process Cmd file and then SCmd string afterwards, ie
# Will select ranges in Cmd file and in order specified (rather than auto ordering ranges) and then append ranges specified in
# SCmd string (and in order specified).
# TrimAudio:
# True(default), selects audio belonging to selected frames/ranges
# False, returns original audio, probably out of sync (maybe totally out of whack if Ordered == false and selected ranges out of order).
# FadeMS: (default 1.0 millisec). Linear Audio Fade duration at splices when TrimAudio==true, 0 = dont fade (might result in audio 'clicks/cracks').
# Ordered:
# True(default), all frames/ranges are returned in sequencial order. Any frame specified more than once will return only 1 instance.
# False, All frames/Ranges are returned in specified order, Cmd processed first and then SCmd. Frames/ranges specified more than once
# will return multiple instances. Allows out-of-order trimming of clip, eg re-sequencing of scenes in movie.
#
# Does not make much sense to select individual frames with audio, best used with ranges.
# Will coalesce individually selected adjacent frames/ranges before any Fade, ie only audio fade where sensible to do so.
# TrimAudio==false with non Ordered selection will result in completely out of sync audio.
c
TrimAudio=Default(TrimAudio,True) # default true trims audio, false returns original audio (audiodubbed, as Framesel returns no audio)
FadeMS=Float(Default(FadeMS,1.0)) # 1 millisecond linear fadeout/fadein at splices
Ordered=Default(Ordered,True) # True (default) frames/ranges will be Ordered and selected only once even if specified more than once.
# False, frames/ranges returned in specified order, Cmd processed 1st and then SCmd.
PruneCmd = (TrimAudio) ? "~Prune_"+RT_LocalTimeString+".txt" : ""
(!TrimAudio)
\ ? FrameSel(scmd=SCmd,cmd=Cmd,Ordered=Ordered)
\ : FrameSel_CmdReWrite(PruneCmd,scmd=SCmd,cmd=Cmd,Ordered=Ordered,Prune=True,range=true)
(TrimAudio) ? Prune(Cmd=PruneCmd,FadeIn=True,FadeSplice=True,FadeOut=True,Fade=FadeMS) : NOP
# If TrimAudio==true then delete Prune temp file, Else restore original Audio to the now audio-less clip
(TrimAudio)
\ ? RT_FileDelete(PruneCmd)
\ : (c.HasAudio) ? AudioDub(c) : NOP
Return Last
}
The post limit is 16KB in user forum and 20KB in developer.
TCmullet
21st February 2015, 18:07
Thanks, Stainless. Will keep this on file for possible future use. But for now the loop0 method of chopping out things is working perfectly. I generate it by hand, with a bit of copy/paste help in conjunction with Vdub's ctrl-g feature. So while I didn't type any numbers, I picked the start and end chop points manually in Vdub. It's working perfectly, and audio is fine.
The only thing that remained outstanding for me in this thread (at least right now) was to get into SubJunk's hands the bug report about FrameDouble's presence causing the script to bomb.
SubJunk
21st February 2015, 21:21
@TCMullet thanks for the bug report, but I don't think it's a bug in InterFrame. It may be a bug in Vdub.
FrameDouble only does one simple thing and that is toggle the framedoubling functionality in SVP, which InterFrame already uses by default for some content like PAL.
Do you get the error if you use a 25FPS input clip and don't use FrameDouble?
TCmullet
21st February 2015, 21:29
The post limit is 16KB in user forum and 20KB in developer.
Thanks for the numbers. But I only meant "too long" in the sense of having it full of stuff so that the small item at the end of it about FrameDouble might not have been noticed.
TCmullet
21st February 2015, 21:36
@TCMullet thanks for the bug report, but I don't think it's a bug in InterFrame. It may be a bug in Vdub.
FrameDouble only does one simple thing and that is toggle the framedoubling functionality in SVP, which InterFrame already uses by default for some content like PAL.
Do you get the error if you use a 25FPS input clip and don't use FrameDouble?
I don't have any 25fps clips. But if you meant 'what happens if you don't use FrameDouble', I thought i answered that by saying that if you swap the '#' between these two lines, to choose which one will execute, the one without FrameDouble works and the one WITH it does not.
InterFrame(Cores=2,Tuning="Film")
#InterFrame(Cores=2,Tuning="Film",FrameDouble=true)
That is, I'm showing you both versions of the code. (I often keep code fragments around in comments.) The fact that taking FrameDouble out made it work, tells me that it's presence is a bug. I don't see how VDub could have any bearing. Oh, if it's not obvious, I DO realize it's usage was superflous as the default under the circumstances would be to convert from 29.97 to 59.94 anyway. I merely had preferred to include "FrameDouble=true" in the code so it would be more self-documenting.
SubJunk
21st February 2015, 23:15
I don't have any 25fps clips. But if you meant 'what happens if you don't use FrameDouble', I thought i answered that by saying that if you swap the '#' between these two lines, to choose which one will execute, the one without FrameDouble works and the one WITH it does not.
InterFrame(Cores=2,Tuning="Film")
#InterFrame(Cores=2,Tuning="Film",FrameDouble=true)
That is, I'm showing you both versions of the code. (I often keep code fragments around in comments.) The fact that taking FrameDouble out made it work, tells me that it's presence is a bug. I don't see how VDub could have any bearing. Oh, if it's not obvious, I DO realize it's usage was superflous as the default under the circumstances would be to convert from 29.97 to 59.94 anyway. I merely had preferred to include "FrameDouble=true" in the code so it would be more self-documenting.I understand you were showing both versions of the code. Using FrameDouble triggers a different part of the InterFrame code than not using it, if your input file is 29.97FPS, but it will use the same part of the code if your input file is 25FPS. So while you're right that your use of FrameDouble was superfluous, since it should result in the same FPS in the output, it does not use the same part of InterFrame and therefore does not pass the SVP DLLs the same instructions.
I can make a 25FPS test clip so we can narrow down the issue some more if you want.
Stormborec
21st February 2015, 23:26
Can it work for single core too?
SubJunk
21st February 2015, 23:35
@Stormborec I think it can work for single core, just use Cores=1.
@TCMullet that reminds me, I think your script should use the same amount of cores for SVP and SetMTMode. It's probably not related to this issue but might make things more stable.
TCmullet
22nd February 2015, 03:46
@TCMullet that reminds me, I think your script should use the same amount of cores for SVP and SetMTMode. It's probably not related to this issue but might make things more stable.
I'm very green at SetMTmode, and am using only because I was told to. Here's that tail code, plus I have another question somewhat related.
ConvertToYV12()
SetMTMode(2)
InterFrame(Cores=2,Tuning="Film")
SR(1280,720,2)
As you can see, I had already set cores equal as you suggested (after the fact). What I'm asking about now relates to SR in addition.
I had set InterFrame cores to 1 and SR to 2, think that SR (SuperRes 2.0, which you're probably familiar with) needs more (a lot more) cpu than InterFrame. But if I set both to 2 and I only have a 4-core system (and no hyperthreads), would I then be choking out the OS (Windows 7)?? Seems to me that Windows would be choked off and the whole system would bogg down, knowing that the OS DOES need cpu cycles.
I'd like your thoughts. In the meantime, I did some tests, and I surprisingly (but maybe not to you) found that 2 and 2 ran a okay and maybe even a little better than 1 and 2. A possible explanation might be that (if true) all application tasks have lower priority than any OS task, and therefore the OS never gets short-changed.
So what is the general formula for when you have 2 multi-threading apps running on a 4-core system? (Do I need to give a core to the system?)
SubJunk
22nd February 2015, 04:37
In general I'd say to let every program/app/script use max cores. As long as everything is normal and healthy on the computer (like it's not being overclocked too much) it should be fine. Like you said, process priorities make a difference.
I hadn't heard of SuperRes but I'll give it a go now, I have an upscaling toolchain I regularly use so I might be able to add it to that. Actually I got the Blu-ray for a movie the other day and compared it to a DVD upscale I did of the same movie, and my upscale was better quality, which is a real shame.
TCmullet
22nd February 2015, 04:42
In general I'd say to let every program/app/script use max cores.
Please explain what you mean by "max cores", using my example of a 4-core system (no hyperthreads).
How many threads should be allocated to InterFrame and how many to SuperRes, given that they are both in the same script? If you answer that, I'll know which way to interpret your comment.
SubJunk
22nd February 2015, 06:44
AviSynth isn't great at multithreading so it's impossible to tell what will work best here, but I would try 4 for everything at first and see how it goes. A lot of times multithreading in AviSynth is a process of trial and error and gives different, unpredictable results for different computers, along with SetMemoryMax.
TCmullet
22nd February 2015, 23:07
AviSynth isn't great at multithreading so it's impossible to tell what will work best here, but I would try 4 for everything at first and see how it goes. A lot of times multithreading in AviSynth is a process of trial and error and gives different, unpredictable results for different computers, along with SetMemoryMax.
Oh so 2+2 is not valid logic. Okay. At present, I'm 16 hrs into a 21 hr run, then another VDub job kicks in for probably 17 hrs more. Then I can try 4+4 for the next task. However, I have a Cpu usage icon that continually shows bar graph for all 4 cores. All 4 are floating near the top, so I feel I'm doin pretty good w/2+2.
But then in task mgr, it adds up to a total, which fluctuates from 85-94%, adding the unused portions of individual cores' usage together. So maybe with 4+4 the total will get closer to 100%, not a trivial jump.
Your prior ambiguity caused me to think. AviSynth is so amazing to me and it boggles my mind to even try to think about how it can even work. I've been assuming that InterFrame and SR are concurrent processes, that is, both running "at the same time". In a 1-core system, obviously the def. of concurrency helps us to see that time slicing lets both run but only one at a time. Knowing now that I have 4 cores, I was thinking of the need to allocate them out. But maybe InterFrame can use 4 cores for a bit (to create the new frame), then SR can use 4 cores for doing ITS task on that frame, and so each step takes it's turn using all resources while its up to bat.
Hey, I'm using the unknown (to me) SetMTmodes. My statements are:
SetMTMode(3,4)
SetMTMode(2)
If I try your idea of 4+4, what would I set those 3 mode values to?
SubJunk
22nd February 2015, 23:16
With those values, you're already using 4 cores; the second argument in SetMTMode is the number of cores to use.
TCmullet
22nd February 2015, 23:23
Then you're saying to leave the SetMTs alone. Great.
TCmullet
23rd February 2015, 01:30
Does anybody know how to increase motion search range or precision in order to eliminate "double leg effect"?
BTW. Source is 1080@25fps. I'm trying to achieve nice looking slow motion effect.
I skimmed pages 16 (in 2012) to the present (p. 37) again to look for any responses to Atak's question, and if the answer or even any significant discussion was there, I missed it.
Either it can be done (and what settings would accomplish it) or it cannot be done (and we need to be told that explicity or we--some of us--will be eternally wondering "what am I missing").
His photo doesn't show the problem as explicitly as does a current short clip of mine. Here's a link to a 21 frame Lag. file: (It was too big to attach here, so I'm hosting it at my own server.)
http://www.tomsgoodfiles.com/Tom's-test-clip2997.2015-02.avi
Here's a script:
SetMemoryMax(512)
SetMTMode(3,4)
AviSource("D:/Video-Work/Tom's-test-clip2997.2015-02.avi" )
ConvertToYV12()
SetMTMode(2)
InterFrame(Cores=2)
Clip is 21 frames long, and after running the script, frame 11 is probably the best one to show the problem. 10 and 12 show the original leg motion, with 11 being interpolated.
Subjunk will you please download my video and run this script (fudging path as needed), look at those 3 frames (10-12) and please explain whether InterFrame can be user-tweaked to prevent frame 11 (the leg portion) from looking like a blending of frames 10 and 12? And if not, could you please say so and (hopefully) explain why InterFrame can do "ball-left + ball-right ==> ball-middle" but cannot do "leg-left + leg-right ==> leg-middle"?
And if not, can you please theorize "out loud" what would have to be done to make it accomplish this?
(I may post the 3 stills involved, later if I can.)
TCmullet
23rd February 2015, 01:51
Here are frames 10, 11, and 12 in .jpg. 11 is the interpolation between frames 10 and 12.
(3 pics are worth at least a few dozens words, eh?)
SubJunk
23rd February 2015, 09:09
Using GPU=true increases the quality significantly, including with that clip.
TCmullet
23rd February 2015, 14:12
Using GPU=true increases the quality significantly, including with that clip.
But that doesn't make sense. I thought GPU was there only as a means to get extra cpu power in addition to the cores in the main computer, so as to speed up the conversion a bit (like having one additional core). Why would borrowing the processor in the graphics card have anything to do with the logic of Interframe beyond that? And why should it?? (Seems to me it should NOT.)
Any way, I tried:
InterFrame(Cores=2,GPU=true)
and it bombs immediately with a VirtualDub message:
Avisynth open failure:
SVSmoothFps: unable to load library given in 'compose' [c:\program files (x86)\AviSynth 2.5\plugins\svpflow_gpu.dll]
(InterFrame2.avsi, line 156)
(InterFrame2.avsi, line 58)
(then line 6 in my script)
So at the moment I'm not able to see what "great improvement" you are alleging.
StainlessS
23rd February 2015, 14:29
SVPFlow_GPU.dll requires OpenCL.dll, perhaps you dont have it. (I think it comes with graphics card, so perhaps yours [like mine] is incompatible).
TCmullet
23rd February 2015, 15:09
SVPFlow_GPU.dll requires OpenCL.dll, perhaps you dont have it. (I think it comes with graphics card, so perhaps yours [like mine] is incompatible).
My system has an OpenCL.dll file in the folder, C:\Program Files (x86)\SVP\ even though I don't have a separate graphics card beyond the builtin Intel adapter.
I await SubJunk's full analysis of all this. I am "disappointedly" eager to scrap days of processing I've already done, and start over correctly.
TCmullet
23rd February 2015, 15:24
While I am continuing to await SubJunk's full analysis of this problem, I searched on 3 systems and found that my video system (the i5 system w/quad-core--way the fastest system I have and on which I was intending to do all video processing) DOES have the file, as I already said. I also found it in C:\windows\system32 on another system (XP), a tiny Atom 4-core system.
So I have experimentally copied the file from my SVP folder to C:\windows\sysWOW64 and the error message that now comes up is a little different:
SVSmoothFps: unable to init FlowLib [code 0x10000]
instead of
SVSmoothFps: unable to load library given in 'compose'
(I'm not sure why I have an SVP folder; probably leftover from long-ago attempts.)
Groucho2004
23rd February 2015, 15:49
So I have experimentally copied the file from my SVP folder to C:\windows\sysWOW64 and the error message that now comes up is a little different:
OpenCl.dll usually comes with the driver of a specific GPU. Copying it from one system to another is a really bad idea.
TCmullet
23rd February 2015, 15:53
OpenCl.dll usually comes with the driver of a specific GPU. Copying it from one system to another is a really bad idea.
Thanks, Groucho. I'm just trying to redeem time and attempt to go forward a bit, while waiting for SubJunk to reply to all of this.
Groucho2004
23rd February 2015, 15:57
My system has an OpenCL.dll file in the folder, C:\Program Files (x86)\SVP\
Neither SVP nor the graphics driver install would put that file there.
Edit: I take that back, SVP does install OpenCL.dll.
TCmullet
23rd February 2015, 19:42
My adapter is "Intel HD Graphics". A friend suggested I google. I found Intel's
opencl_runtime_15.1_x64_setup.msi
which alleges to install both 32 and 64 bit versions of openCL.dll for MY builtin Intel graphics adapter.
I installed and rebooted.
I now have OpenCL.dll dated 01/25/2015 in both directories system32 and sysWOW64
Similar error message, but a little different:
SVSmoothFps: unable to init FlowLib [code 0x100FF]
Am greatly hoping we can get OpenCL and InterFrame "GPU=true" to run on this my fastest machine. (Unless the functionality that SubJunk briefly said was needed via GPU=true could be implemented via GPU=false.)
Groucho2004
23rd February 2015, 19:48
Am greatly hoping we can get OpenCL and InterFrame "GPU=true" to run on this my fastest machine. (Unless the functionality that SubJunk briefly said was needed via GPU=true could be implemented via GPU=false.)
I compared GPU true/false and I honestly cannot see a difference. Also, with "gpu=true" it's actually slower! Tested on a i5-2500K and Nvidia GT240.
TCmullet
23rd February 2015, 20:01
I compared GPU true/false and I honestly cannot see a difference. Also, with "gpu=true" it's actually slower! Tested on a i5-2500K and Nvidia GT240.
Oh, I tried it on my slow Atom 330 system and it was radically improved! Instead of a double exposure of the leg, it looked more like a single blurry leg!
edit: I was surprised that my 3 pics needed "approval" and a day later are still not visible. If they were, I'd be willing to post 2 more showing the interframe both with and without GPU=true.
It seems like SubJunk has some of his logic on the GPU without any fallback equivalent logic for GPU=false. That's what my gut tells me, but I'll eagerly wait for SubJunk's full explanation.
On my Atom330, it DID run faster, but even so, it is way too slow for my needs. I really gotta get InterFrame to work on my i5 system.
StainlessS
23rd February 2015, 20:18
A couple of months back a moderator suggested that the fastest way to get an attachment cleared was to 'Report' your own post, ie
click the little red triangle below your name (EDIT: Avatar) in your post, and tell them that attachment is awaiting approval.
creaothceann
23rd February 2015, 21:09
Or just use imgur.
TCmullet
23rd February 2015, 21:13
Or just use imgur.
What is "imgur", esp. in this context?
SubJunk
23rd February 2015, 23:10
But that doesn't make sense. I thought GPU was there only as a means to get extra cpu power in addition to the cores in the main computer, so as to speed up the conversion a bit (like having one additional core). Why would borrowing the processor in the graphics card have anything to do with the logic of Interframe beyond that? And why should it?? (Seems to me it should NOT.)Video cards are capable of doing types of calculations that CPUs aren't. That's why, for example, they are able to calculate much more complex protein folding tasks in reasonable periods of time.
Any way, I tried:
InterFrame(Cores=2,GPU=true)
and it bombs immediately with a VirtualDub message:
Avisynth open failure:
SVSmoothFps: unable to load library given in 'compose' [c:\program files (x86)\AviSynth 2.5\plugins\svpflow_gpu.dll]
(InterFrame2.avsi, line 156)
(InterFrame2.avsi, line 58)
(then line 6 in my script)
So at the moment I'm not able to see what "great improvement" you are alleging.This is a known issue with SVP, the thread for it is at http://www.svp-team.com/forum/viewtopic.php?pid=46959
Here's a comparison of default mode vs GPU mode on the 11th frame:
http://www.spirton.com/uploads/InterFrame/20150224-Default-2.png (http://www.spirton.com/uploads/InterFrame/20150224-Default-2.png)
http://www.spirton.com/uploads/InterFrame/20150224-DefaultWithGPU-2.png (http://www.spirton.com/uploads/InterFrame/20150224-DefaultWithGPU-2.png)
creaothceann
23rd February 2015, 23:29
What is "imgur", esp. in this context?
Just google it. (http://imgur.com/) It's super easy to use, you can even copy a picture to the clipboard and paste it on the site.
TCmullet
24th February 2015, 00:31
Yes, SubJunk, frame 11 shows a big difference. I already had seen it as I had managed to migrate to my 1.6ghz Atom330 while waiting to hear from you. Thanks for putting up both 11s for all to see.
My adapter is "Intel HD Graphics". A friend suggested I google. I found Intel's
opencl_runtime_15.1_x64_setup.msi
which alleges to install both 32 and 64 bit versions of openCL.dll for MY builtin Intel graphics adapter.
I installed and rebooted.
I now have OpenCL.dll dated 01/25/2015 in both directories system32 and sysWOW64
Similar error message, but a little different:
SVSmoothFps: unable to init FlowLib [code 0x100FF]
Am greatly hoping we can get OpenCL and InterFrame "GPU=true" to run on this my fastest machine. (Unless the functionality that SubJunk briefly said was needed via GPU=true could be implemented via GPU=false.)
I saw where over on SVP forum, you linked to this thread. Were you of the belief that if I had picked the correct .msi from Intel's site, which installs (copies) it's own openCL.dll file to both system folders, that InterFrame:GPU=true should have worked? Does the above err msg ("unable to init FlowLib 0x100FF") mean anything to you?
TCmullet
24th February 2015, 00:41
@Subjunk: I actually thought you were going to tell me to go out and buy an add-on video card. But Intel supposedly has lots of installers for openCL. Here's the link I got it at:
https://software.intel.com/en-us/articles/opencl-drivers#win32
I picked the first one that says "15.1" which says "64 bit and 32 bit". Therefore both system folders received the file. But I thought it would be different files. They both have an identical timestamp, so maybe they have code for both versions in the same file.
I wonder if there's some other way to test whether the openCL files I have are good. I never heard of openCL until it comes up in this InterFrame context.
SubJunk
24th February 2015, 02:02
I still get the issue myself (I haven't been able to use GPU=true in some contexts for a while) so I don't know of a fix. I've tried OpenCL stuff and it didn't work for me.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.