This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

[INFO] Feature, add/update rife frame interpolation
#31
Send you a pm, with a new dev version for testing which adds rounding options.

Cu Selur
Reply
#32
If I understand correctly, the underlying problem is that there cannot be more than two decimal places. At first there were 2 decimals, but you added more decimals because I said so.

You said that you have noted the problem here
https://github.com/HolyWu/vs-rife
Developer: Holy Wu

This makes me wonder what is the difference between that and this:
https://github.com/HomeOfVapourSynthEvol...cnn-Vulkan
developer: krakow10


So the solution would have been to leave it with 2. I suppose that in this latest version, what it does is take a shortcut directly to round up or down, without having to activate the Speedchange...etc

I have read the advice to use Filldrops, but if I don't misunderstand that what I would do is interpolate all the repeated frames, including the original ones, not just the ones that have been added to fill.

This would affect animation videos, which originally already have many repeated frames. On the other hand, I have seen that this function with rife 3.1, the maximum version that it allows to use, takes a long time to process, probably because I am using an animation video and there are many repeated frames.

The solution would be:

- An ability to interpolate with the same rife engine only the added frames that round, with the previous and subsequent ones.

- Or, leave it at that, rounding with doubling or trimming, and hope that some rife developer for vapoursyth will allow a fractional multiplier without that error occurring.

- Or a frame trimming system, which makes sure to cut out only from interpolated frames proportionally and never cut out any original frames to round off.

All this is useful for processing animated videos, in which there are original frames that are worth much more than the artificially interpolated ones, and that are full of repeated frames, which it is not always convenient to interpolate, because it could look weird.


By the way, I have found how the interpolated v4 crashes sometimes only multiplying by 2. But now I don't have the log, if I find an example of this I will remember to upload it.

It crashed me once before reaching 99%, it was weird, the same file didn't crash the second time, with the same parameters. Most of the time it crashes at 99.99%, I don't know what this means, and the video file seems ok in temp folder, and when it doesn't crash at 99%, it seems to be any other problem which is random.

I think there is still a bit of a way to go before there is a perfect or almost perfect interpolation engine, and fast, that allows doing almost everything without major setbacks.
Reply
#33
Argh posted the error in the wrong github. :/
Atm. Hybrid doesn't use https://github.com/HolyWu/vs-rife (<- that one is used through trochAddon) but https://github.com/HomeOfVapourSynthEvol...cnn-Vulkan
As a side note: HolyWus RIFE implementation does only support full number multipliers.

Quote:This would affect animation videos, which originally already have many repeated frames. On the other hand, I have seen that this function with rife 3.1, the maximum version that it allows to use, takes a long time to process, probably because I am using an animation video and there are many repeated frames.
Question is what you are aiming for.
Normally when going for 60fps you do it to get smoother motion, adding interpolated frames and replacing duplicates would be the right way. (personally I would first remove duplicates and then do the interpolation)
If you just want to archive a target frame rate and fluid motion isn't the goal, than adding duplicates is the right way. ("Filtering->Speed change -> Scale output frame rate adjust to" will do that.)

Quote:The solution would be:

- An ability to interpolate with the same rife engine only the added frames that round, with the previous and subsequent ones.

- Or, leave it at that, rounding with doubling or trimming, and hope that some rife developer for vapoursyth will allow a fractional multiplier without that error occurring.

- Or a frame trimming system, which makes sure to cut out only from interpolated frames proportionally and never cut out any original frames to round off.
I would add that if there was a filter which allowed it, but to my knowledge there is none.

Cu Selur
Reply
#34
https://github.com/HomeOfVapourSynthEvol...cnn-Vulkan released a new version which instead of a multiplier uses fps_num and fps_den which also seems to fix the rounding issues.

Cu Selur

Ps.: send you a link to a new dev version for testing via pm
Reply
#35
Hi Selur,

Could you send me it again? I didn't read the message and the link is broken.

Ty
Reply
#36
Send you a new link.

Cu Selur
Reply
#37
I'm testing it, from vapoursyth preview seems that the frames coincide with time. I encoded a video 23,976... to 60fps, the result is 60fps, audio is sync.

As soon as I opened it I found a problem with the "skip threshold" option of frame interpolation -> rife
Preview fails with this option and gives this log in red:


Failed to evaluate the script:
Python exception: DuplicateFrames: out of bounds frame number

Traceback (most recent call last):
File "src\cython\vapoursynth.pyx", line 2890, in vapoursynth._vpy_evaluate
File "src\cython\vapoursynth.pyx", line 2891, in vapoursynth._vpy_evaluate
File "E:\Temp\tempPreviewVapoursynthFile12_48_51_333.vpy", line 26, in
clip = core.rife.RIFE(clip, model=9, fps_num=60, fps_den=1, sc=True, skip=True) # new fps: 60
File "src\cython\vapoursynth.pyx", line 2636, in vapoursynth.Function.__call__
vapoursynth.Error: DuplicateFrames: out of bounds frame number
Reply
#38
Can't reproduce here (hard without a debug output to know what the script looks like), maybe I fixed something related to that.
I'll compile a new dev version and send you a new link in ~30min.

Cu Selur
Reply
#39
There's a new rife build:
https://github.com/HomeOfVapourSynthEvol...ses/tag/r9
which fixes the "out of bounds frame number error when skip=True."
Replacing theHybrid\64bit\vsfilters\FrameFilter\RIFE\RIFE.dll with it should fix the issue.

Cu Selur
Reply
#40
Send you a new link to a dev version which adjusts to the latest changes in vsRIFE (allows frac_num, frac_den as alternative to fps_num,fps_den).

Cu Selur
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)