226 (edited by RAGEdemon 04-05-2022 20:56:35)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

What if I were to tell you that there is a way to further triple the speed of RIFE without any noticeable loss in image quality?

In fact, the IQ will likely improve, and that it's Open Source / Free to implement?

Well, here is the solution:

Some of you might know that AMD have been working on FSR for games, but it also works just as well on videos...

As you know, it basically doubles/triples/quadruples the gaming performance for free (virtually no impact on the system), much like DLSS - but it's a shader which works on /all/ cards. My ancient 1280x800 projector + FSR looks almost identical to DSR 4x (2560x1600). In my particular experiments, I am getting 400% performance.

https://cdn.videocardz.com/1/2021/06/AMD-FidelityFX-SuperResolution-FSR-19.jpg

https://cdn.videocardz.com/1/2021/06/AMD-FidelityFX-SuperResolution-FSR-20.jpg

https://cdn.videocardz.com/1/2021/06/AMD-FidelityFX-SuperResolution-FSR-21.jpg

https://cdn.videocardz.com/1/2021/06/AMD-FidelityFX-SuperResolution-FSR-22.jpg



My humble suggestion: Allow the user to select FSR level in SVP options, so that, e.g. RIFE will be able to use FSR to render 4K videos at the cost of 720p videos, LIVE.

FSR's sharpening pass does some heavy lifting, so I would ask the kind developer to please expose this setting too. For me, FSR set to BALANCED with sharpening set to 1.0 (usually variable between 0.0 and 1.0) looks much better than NATIVE 4K, while giving me >2x the performance.

This has the potential to radically increase SVP's performance. Already it is being implemented into most upcoming games, while already released games are being patched with the feature retroactively such as CyberPunk 2077 and MS Flight Simulator 2020; - as well as VR, where it brings so much to the table that people have started using injectors to enable it in older games which don't come with it natively.

Github FSR 1.0 : https://github.com/GPUOpen-Effects/FidelityFX-FSR

FSR 2.0 available soon...

Kind regards.

227 (edited by UHD 05-05-2022 00:48:23)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

Thanks for contributing to this thread, but FSR is an upscaling algorithm not video frame interpolation algorithm.

What you are writing about i.e. a combination of upscaling algorithm and video frame interpolation algorithm already exists: https://github.com/AaronFeng753/Waifu2x-Extension-GUI

There are upscaling algorithms based on machine learning (AI) giving much better quality for video than FSR can give: https://paperswithcode.com/task/video-super-resolution

FSR compared to Real-ESRGAN: https://github.com/xinntao/Real-ESRGAN

is what the SVP main algorithm is compared to RIFE...

...it may be much faster, but it will not achieve the quality of Real-ESRGAN.

And if you want both functionalities running in real-time then one algorithm will take computing power away from the other.

I prefer all the GPU power for RIFE, but there are probably people who would like to split that power between upscaling and video frame interpolation.

228 (edited by dlr5668 05-05-2022 05:36:05)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

FSR1 was ported long ago https://gist.github.com/agyild/82219c54 … 65ce0b0ce5 as shader. It OKayge, nothing crazy
FSR2 is worthless for us since its based on engine data like depth, motion vectors. It can be used only in games

You can already downscale source here https://i.imgur.com/1CMLoEs.png and use FSR on top as shader

And DLSS > FSR1 (and 2 probably) any day. QHD with DLSS Performance (second to worse option) is better than best FSR. DLSS is already builtin in new version of UE4/5, Unity so we will see spike in 2-3 years with new releases

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

Chainik wrote:

obviously, it doesn't work with Avisynth Filter


Fair enough, changing over to VapourSynth now just freezes the entire video, though audio keeps playing in the background.

Is there anything else I should be doing?

https://i.imgur.com/o2P2GPz.png
https://i.imgur.com/InZ8kR7.png

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

yeah, don't use cuda

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

Chainik wrote:

yeah, don't use cuda

Sure, just did it.

In spite of that, even when starting using the Automatic profile, the video player freezes still and only when using VapourSynth does the SVP logo appear glitched and garbled.

https://i.imgur.com/pOS0Nyr.png

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

"glitched" logo means nothing here, it's just a minor incompatibility somewhere between SVP and Vapoursynth Filter in 10-bit mode

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

Chainik wrote:

"glitched" logo means nothing here, it's just a minor incompatibility somewhere between SVP and Vapoursynth Filter in 10-bit mode

Okay, glad that's all settled then.

In regards to video playback, I can confirm that SVP plays the video correctly when using AviSynth as the filter, but when using VapourSynth only the first frame of the video is shown. I already have logging enabled for both filters, and will attach their logs below just to be sure.

AviSynth's log is empty, but VapourSynth's is as follows:

T  82704 @        0: Filter version: 1.4.1 # 5cbac67
T  82704 @        0: Configured script file: 
T  82704 @        0: Configured input format  NV12: 1
T  82704 @        0: Configured input format  YV12: 1
T  82704 @        0: Configured input format  I420: 1
T  82704 @        0: Configured input format  IYUV: 1
T  82704 @        0: Configured input format  P010: 1
T  82704 @        0: Configured input format  P016: 1
T  82704 @        0: Configured input format  P210: 1
T  82704 @        0: Configured input format  P216: 1
T  82704 @        0: Configured input format  YV24: 1
T  82704 @        0: Configured input format  Y410: 1
T  82704 @        0: Configured input format  Y416: 1
T  82704 @        0: Loading process: mpc-hc64.exe
T  82704 @        0: FrameServerCommon()
T  82704 @      225: VapourSynth version: VapourSynth R57 API R4.0
T  82704 @      228: CSynthFilter(): 0000024D6C1B5350
T  82704 @      228: ReloadScript from auxiliary frameserver
T  82704 @      228: New script clip: 0000024D6D34DA40
T  82704 @      228: Release script clip: 0000024D6D34DA40
T  82704 @      229: Add compatible formats: input  P010 output  P010
T  82704 @      229: ReloadScript from auxiliary frameserver
T  82704 @      229: New script clip: 0000024D6D325530
T  82704 @      229: Release script clip: 0000024D6D325530
T  82704 @      229: Add compatible formats: input  P016 output  P016
T  82704 @      229: ReloadScript from auxiliary frameserver
T  82704 @      229: New script clip: 0000024D6D34DA40
T  82704 @      229: Release script clip: 0000024D6D34DA40
T  82704 @      229: Add compatible formats: input  NV12 output  NV12
T  82704 @      229: Add compatible formats: input  NV12 output  YV12
T  82704 @      229: Add compatible formats: input  NV12 output  I420
T  82704 @      229: Add compatible formats: input  NV12 output  IYUV
T  82704 @      229: ReloadScript from auxiliary frameserver
T  82704 @      229: New script clip: 0000024D6D325530
T  82704 @      229: Release script clip: 0000024D6D325530
T  82704 @      229: Add compatible formats: input  YV12 output  NV12
T  82704 @      229: Add compatible formats: input  YV12 output  YV12
T  82704 @      229: Add compatible formats: input  YV12 output  I420
T  82704 @      229: Add compatible formats: input  YV12 output  IYUV
T  82704 @      229: ReloadScript from auxiliary frameserver
T  82704 @      229: New script clip: 0000024D6D34DA40
T  82704 @      229: Release script clip: 0000024D6D34DA40
T  82704 @      229: Add compatible formats: input  P216 output  P216
T  82704 @      229: ReloadScript from auxiliary frameserver
T  82704 @      229: New script clip: 0000024D6D325530
T  82704 @      229: Release script clip: 0000024D6D325530
T  82704 @      229: Add compatible formats: input  P210 output  P210
T  82704 @      229: ReloadScript from auxiliary frameserver
T  82704 @      229: New script clip: 0000024D6D34DA40
T  82704 @      229: Release script clip: 0000024D6D34DA40
T  82704 @      229: Add compatible formats: input  Y416 output  Y416
T  82704 @      229: ReloadScript from auxiliary frameserver
T  82704 @      229: New script clip: 0000024D6D325530
T  82704 @      229: Release script clip: 0000024D6D325530
T  82704 @      229: Add compatible formats: input  Y410 output  Y410
T  82704 @      229: ReloadScript from auxiliary frameserver
T  82704 @      229: New script clip: 0000024D6D34DA40
T  82704 @      229: Release script clip: 0000024D6D34DA40
T  82704 @      229: Add compatible formats: input  YV24 output  YV24
T  82704 @      229: Pre pin connection CheckInputType(): input  P010 result 1
T  82704 @      229: GetMediaType() offers media type  0 with  P010
T  82704 @      229: GetMediaType() offers media type  1 with  P016
T  82704 @      229: GetMediaType() offers media type  2 with  NV12
T  82704 @      229: GetMediaType() offers media type  3 with  YV12
T  82704 @      229: GetMediaType() offers media type  4 with  I420
T  82704 @      229: GetMediaType() offers media type  5 with  IYUV
T  82704 @      229: GetMediaType() offers media type  6 with  P216
T  82704 @      230: GetMediaType() offers media type  7 with  P210
T  82704 @      230: GetMediaType() offers media type  8 with  Y416
T  82704 @      230: GetMediaType() offers media type  9 with  Y410
T  82704 @      230: GetMediaType() offers media type 10 with  YV24
T  82704 @      283: GetMediaType() offers media type  0 with  P010
T  82704 @      284: GetMediaType() offers media type  1 with  P016
T  82704 @      284: GetMediaType() offers media type  2 with  NV12
T  82704 @      284: GetMediaType() offers media type  3 with  YV12
T  82704 @      284: GetMediaType() offers media type  4 with  I420
T  82704 @      284: GetMediaType() offers media type  5 with  IYUV
T  82704 @      284: GetMediaType() offers media type  6 with  P216
T  82704 @      284: GetMediaType() offers media type  7 with  P210
T  82704 @      284: GetMediaType() offers media type  8 with  Y416
T  82704 @      284: GetMediaType() offers media type  9 with  Y410
T  82704 @      284: GetMediaType() offers media type 10 with  YV24
T  82704 @      284: GetMediaType() offers media type  0 with  P010
T  82704 @      284: GetMediaType() offers media type  1 with  P016
T  82704 @      284: GetMediaType() offers media type  2 with  NV12
T  82704 @      284: GetMediaType() offers media type  3 with  YV12
T  82704 @      284: GetMediaType() offers media type  4 with  I420
T  82704 @      284: GetMediaType() offers media type  5 with  IYUV
T  82704 @      284: GetMediaType() offers media type  6 with  P216
T  82704 @      284: GetMediaType() offers media type  7 with  P210
T  82704 @      284: GetMediaType() offers media type  8 with  Y416
T  82704 @      284: GetMediaType() offers media type  9 with  Y410
T  82704 @      284: GetMediaType() offers media type 10 with  YV24
T  82704 @      461: GetMediaType() offers media type  0 with  P010
T  82704 @      606: Pins are connected with media types:  P010 ->  P010
T  82704 @      606: Pin connections are settled
T  82704 @      606: Filter in graph: LAV Splitter Source (internal)
T  82704 @      606: Filter in graph: LAV Video Decoder (internal)
T  82704 @      606: Filter in graph: VapourSynth Filter
T  82704 @      606: Filter in graph: madVR
T  82704 @      606: GetMediaType() offers media type  0 with  P010
T 159360 @      606: Start worker thread
T  82704 @     1753: ReloadScript from auxiliary frameserver
T  82704 @     1753: New script clip: 0000024D20029430
T  82704 @     1753: Release script clip: 0000024D20029430
T  77336 @     1758: Remote control started processing messages
T 156892 @     1882: ReloadScript from auxiliary frameserver
T 156892 @     1883: New script clip: 0000024D2002BC90
T 156892 @     1883: Release script clip: 0000024D2002BC90
T 156892 @     1883: Post pin connection QueryAccept downstream in CheckInputType(): input  P010 result 1
T 156892 @     1883: ReloadScript from auxiliary frameserver
T 156892 @     1883: New script clip: 0000024D2002B310
T 156892 @     1883: Release script clip: 0000024D2002B310
T 156892 @     1883: Post pin connection QueryAccept downstream in CheckInputType(): input  P010 result 1
T 156892 @     1885: ReloadScript from auxiliary frameserver
T 156892 @     1885: New script clip: 0000024D20029430
T 156892 @     1885: Release script clip: 0000024D20029430
T 156892 @     1885: Post pin connection QueryAccept downstream in CheckInputType(): input  P010 result 1
T 156892 @     1885: Upstream proposes to change input format: name P010, width  1920, height  1080
T 156892 @     1885: FrameHandler start BeginFlush()
T 156892 @     1885: FrameHandler finish BeginFlush()
T 156892 @     1885: FrameHandler start EndFlush()
T 156892 @     1885: ReloadScript from auxiliary frameserver
T 156892 @     1885: New script clip: 0000024D2002A270
T 156892 @     1885: Release script clip: 0000024D2002A270
T 156892 @     1885: FrameHandler finish EndFlush()
T 156892 @     1885: ReloadScript from auxiliary frameserver
T 156892 @     1885: New script clip: 0000024D2002B0B0
T 156892 @     1885: Release script clip: 0000024D2002B0B0
T 156892 @     1885: Attempt to reconnect output pin with media type: output P010 result 1
T 156892 @     1888: Stored source frame:      0 at     267291 ~     687291 duration(literal)     420000, last_used      0, extra_buffer      0
T 156892 @     1892: Stored source frame:      1 at     687291 ~    1107291 duration(literal)     420000, last_used      0, extra_buffer      0
T 156892 @     1898: Stored source frame:      2 at    1107291 ~    1517291 duration(literal)     410000, last_used      0, extra_buffer      0
T 156892 @     1898: ReloadScript from main frameserver
T 156892 @     1898: New script clip: 0000024D2002C610
T 163392 @     1899: Waiting for source frame: frameNb      0 input queue size  3
T 163392 @     1899: Return source frame      0
T 163392 @     1899: Output frame      0 is ready, output queue size  2
T 163392 @     1899: Waiting for source frame: frameNb      1 input queue size  3
T 159360 @     1899: Output frame: frameNb      0 startTime     267291 stopTime     687291 duration     420000
T 163392 @     1899: Return source frame      1
T 163392 @     1899: Output frame      1 is ready, output queue size  2
T 159360 @     1899: New output format: name P010, width  2048, height  1080
T 159360 @     1903: Delivered output sample      0 from source frame      0
T 159360 @     1903: GarbageCollect frames until     -1 pre size   3 post size   3
T 159360 @     1903: Output frame: frameNb      1 startTime     687291 stopTime    1107291 duration     420000
T 156892 @     1904: Stored source frame:      3 at    1517291 ~    1937291 duration(literal)     420000, last_used      1, extra_buffer      0
T  69496 @     1904: Waiting for source frame: frameNb      2 input queue size  4
T  69496 @     1904: Return source frame      2
T  69496 @     1904: Output frame      2 is ready, output queue size  2
T 159360 @     1906: Delivered output sample      1 from source frame      1
T 159360 @     1906: GarbageCollect frames until      0 pre size   4 post size   3
T 159360 @     1906: Output frame: frameNb      2 startTime    1107291 stopTime    1517291 duration     410000
T 156892 @     1908: Stored source frame:      4 at    1937291 ~    2357291 duration(literal)     420000, last_used      2, extra_buffer      0
T 163392 @     1908: Waiting for source frame: frameNb      3 input queue size  4
T 163392 @     1908: Return source frame      3
T 163392 @     1908: Output frame      3 is ready, output queue size  2
T 159360 @     1909: Delivered output sample      2 from source frame      2
T 159360 @     1910: GarbageCollect frames until      1 pre size   4 post size   3
T 159360 @     1910: Output frame: frameNb      3 startTime    1517291 stopTime    1937291 duration     420000
T 159360 @     1913: Delivered output sample      3 from source frame      3
T 159360 @     1913: GarbageCollect frames until      2 pre size   3 post size   2
T 156892 @     1927: Stored source frame:      5 at    2357291 ~    2767291 duration(literal)     410000, last_used      3, extra_buffer      0
T  69496 @     1927: Waiting for source frame: frameNb      4 input queue size  3
T  69496 @     1927: Return source frame      4
T  69496 @     1927: Output frame      4 is ready, output queue size  1
T 159360 @     1927: Output frame: frameNb      4 startTime    1937291 stopTime    2357291 duration     420000
T 159360 @     1930: Delivered output sample      4 from source frame      4
T 159360 @     1931: GarbageCollect frames until      3 pre size   3 post size   2
T 156892 @     1944: Stored source frame:      6 at    2767291 ~    3187291 duration(literal)     420000, last_used      4, extra_buffer      0
T 163392 @     1944: Waiting for source frame: frameNb      5 input queue size  3
T 163392 @     1944: Return source frame      5
T 163392 @     1944: Output frame      5 is ready, output queue size  1
T 159360 @     1944: Output frame: frameNb      5 startTime    2357291 stopTime    2767291 duration     410000
T 159360 @     1947: Delivered output sample      5 from source frame      5
T 159360 @     1947: GarbageCollect frames until      4 pre size   3 post size   2
T 156892 @     1961: Stored source frame:      7 at    3187291 ~    3607291 duration(literal)     420000, last_used      5, extra_buffer      0
T  69496 @     1961: Waiting for source frame: frameNb      6 input queue size  3
T  69496 @     1961: Return source frame      6
T  69496 @     1961: Output frame      6 is ready, output queue size  1
T 159360 @     1961: Output frame: frameNb      6 startTime    2767291 stopTime    3187291 duration     420000
T 159360 @     1965: Delivered output sample      6 from source frame      6
T 159360 @     1965: GarbageCollect frames until      5 pre size   3 post size   2
T 156892 @     1977: Stored source frame:      8 at    3607291 ~    4027291 duration(literal)     420000, last_used      6, extra_buffer      0
T 163392 @     1977: Waiting for source frame: frameNb      7 input queue size  3
T 163392 @     1977: Return source frame      7
T 163392 @     1977: Output frame      7 is ready, output queue size  1
T 159360 @     1977: Output frame: frameNb      7 startTime    3187291 stopTime    3607291 duration     420000
T 159360 @     1981: Delivered output sample      7 from source frame      7
T 159360 @     1981: GarbageCollect frames until      6 pre size   3 post size   2
T 156892 @     1994: Stored source frame:      9 at    4027291 ~    4437291 duration(literal)     410000, last_used      7, extra_buffer      0
T  69496 @     1994: Waiting for source frame: frameNb      8 input queue size  3
T  69496 @     1994: Return source frame      8
T  69496 @     1994: Output frame      8 is ready, output queue size  1
T 159360 @     1994: Output frame: frameNb      8 startTime    3607291 stopTime    4027291 duration     420000
T 159360 @     1998: Delivered output sample      8 from source frame      8
T 159360 @     1998: GarbageCollect frames until      7 pre size   3 post size   2
T 156892 @     2009: Stored source frame:     10 at    4437291 ~    4857291 duration(literal)     420000, last_used      8, extra_buffer      0
T 163392 @     2009: Waiting for source frame: frameNb      9 input queue size  3
T 163392 @     2009: Return source frame      9
T 163392 @     2010: Output frame      9 is ready, output queue size  1
T 159360 @     2010: Output frame: frameNb      9 startTime    4027291 stopTime    4437291 duration     410000
T 159360 @     2012: Delivered output sample      9 from source frame      9
T 159360 @     2012: GarbageCollect frames until      8 pre size   3 post size   2
T 156892 @     2028: Stored source frame:     11 at    4857291 ~    5277291 duration(literal)     420000, last_used      9, extra_buffer      0
T  69496 @     2028: Waiting for source frame: frameNb     10 input queue size  3
T  69496 @     2028: Return source frame     10
T  69496 @     2028: Output frame     10 is ready, output queue size  1
T 159360 @     2028: Output frame: frameNb     10 startTime    4437291 stopTime    4857291 duration     420000
T 159360 @     2030: Delivered output sample     10 from source frame     10
T 159360 @     2030: GarbageCollect frames until      9 pre size   3 post size   2
T 156892 @     2043: Stored source frame:     12 at    5277291 ~    5687291 duration(literal)     410000, last_used     10, extra_buffer      0
T 163392 @     2043: Waiting for source frame: frameNb     11 input queue size  3
T 163392 @     2043: Return source frame     11
T 163392 @     2043: Output frame     11 is ready, output queue size  1
T 159360 @     2043: Output frame: frameNb     11 startTime    4857291 stopTime    5277291 duration     420000
T 159360 @     2047: Delivered output sample     11 from source frame     11
T 159360 @     2047: GarbageCollect frames until     10 pre size   3 post size   2
T 156892 @     2060: Stored source frame:     13 at    5687291 ~    6107291 duration(literal)     420000, last_used     11, extra_buffer      0
T  69496 @     2060: Waiting for source frame: frameNb     12 input queue size  3
T  69496 @     2060: Return source frame     12
T  69496 @     2060: Output frame     12 is ready, output queue size  1
T 159360 @     2060: Output frame: frameNb     12 startTime    5277291 stopTime    5687291 duration     410000
T 156892 @     2075: Stored source frame:     14 at    6107291 ~    6527291 duration(literal)     420000, last_used     12, extra_buffer      0
T 163392 @     2075: Waiting for source frame: frameNb     13 input queue size  4
T 163392 @     2075: Return source frame     13
T 163392 @     2075: Output frame     13 is ready, output queue size  2
T 156892 @     2093: Stored source frame:     15 at    6527291 ~    6947291 duration(literal)     420000, last_used     12, extra_buffer      0
T  69496 @     2093: Waiting for source frame: frameNb     14 input queue size  5
T  69496 @     2093: Return source frame     14
T  69496 @     2093: Output frame     14 is ready, output queue size  3
T 156892 @     2099: Stored source frame:     16 at    6947291 ~    7357291 duration(literal)     410000, last_used     12, extra_buffer      0
T 163392 @     2099: Waiting for source frame: frameNb     15 input queue size  6
T 163392 @     2099: Return source frame     15
T 163392 @     2099: Output frame     15 is ready, output queue size  4
T 156892 @     2104: Stored source frame:     17 at    7357291 ~    7777291 duration(literal)     420000, last_used     12, extra_buffer      0
T  69496 @     2104: Waiting for source frame: frameNb     16 input queue size  7
T  69496 @     2104: Return source frame     16
T  69496 @     2104: Output frame     16 is ready, output queue size  5
T 159360 @     2134: Delivered output sample     12 from source frame     12
T 159360 @     2134: GarbageCollect frames until     11 pre size   7 post size   6
T 159360 @     2134: Output frame: frameNb     13 startTime    5687291 stopTime    6107291 duration     420000
T 156892 @     2136: Stored source frame:     18 at    7777291 ~    8197291 duration(literal)     420000, last_used     13, extra_buffer      0
T 163392 @     2136: Waiting for source frame: frameNb     17 input queue size  7
T 163392 @     2136: Return source frame     17
T 163392 @     2136: Output frame     17 is ready, output queue size  5
T 159360 @     2138: Delivered output sample     13 from source frame     13
T 159360 @     2138: GarbageCollect frames until     12 pre size   7 post size   6
T 159360 @     2138: Output frame: frameNb     14 startTime    6107291 stopTime    6527291 duration     420000
T 159360 @     2142: Delivered output sample     14 from source frame     14
T 159360 @     2143: GarbageCollect frames until     13 pre size   6 post size   5
T 159360 @     2143: Output frame: frameNb     15 startTime    6527291 stopTime    6947291 duration     420000
T 156892 @     2146: Stored source frame:     19 at    8197291 ~    8607291 duration(literal)     410000, last_used     15, extra_buffer      0
T  69496 @     2146: Waiting for source frame: frameNb     18 input queue size  6
T  69496 @     2146: Return source frame     18
T  69496 @     2146: Output frame     18 is ready, output queue size  4
T 159360 @     2148: Delivered output sample     15 from source frame     15
T 159360 @     2148: GarbageCollect frames until     14 pre size   6 post size   5
T 159360 @     2148: Output frame: frameNb     16 startTime    6947291 stopTime    7357291 duration     410000
T 156892 @     2155: Stored source frame:     20 at    8607291 ~    9027291 duration(literal)     420000, last_used     16, extra_buffer      0
T 163392 @     2155: Waiting for source frame: frameNb     19 input queue size  6
T 163392 @     2155: Return source frame     19
T 163392 @     2155: Output frame     19 is ready, output queue size  4
T 156892 @     2160: Stored source frame:     21 at    9027291 ~    9447291 duration(literal)     420000, last_used     16, extra_buffer      0
T  69496 @     2160: Waiting for source frame: frameNb     20 input queue size  7
T  69496 @     2160: Return source frame     20
T  69496 @     2160: Output frame     20 is ready, output queue size  5
T 159360 @     2391: Delivered output sample     16 from source frame     16
T 159360 @     2391: GarbageCollect frames until     15 pre size   7 post size   6
T 159360 @     2391: Output frame: frameNb     17 startTime    7357291 stopTime    7777291 duration     420000
T 156892 @     2393: Stored source frame:     22 at    9447291 ~    9857291 duration(literal)     410000, last_used     17, extra_buffer      0
T 163392 @     2393: Waiting for source frame: frameNb     21 input queue size  7
T 163392 @     2393: Return source frame     21
T 163392 @     2393: Output frame     21 is ready, output queue size  5
T 156892 @     2409: Source rate ratio 0.000000
T 159360 @     2425: Delivered output sample     17 from source frame     17
T 159360 @     2425: GarbageCollect frames until     16 pre size   7 post size   6
T 156892 @     2425: Source rate ratio 0.000000
T 159360 @     2425: Output frame: frameNb     18 startTime    7777291 stopTime    8197291 duration     420000
T 156892 @     2428: Stored source frame:     23 at    9857291 ~   10277291 duration(literal)     420000, last_used     18, extra_buffer      4
T  69496 @     2428: Waiting for source frame: frameNb     22 input queue size  7
T  69496 @     2428: Return source frame     22
T  69496 @     2428: Output frame     22 is ready, output queue size  5
T 159360 @     2461: Delivered output sample     18 from source frame     18
T 159360 @     2461: GarbageCollect frames until     17 pre size   7 post size   6
T 159360 @     2461: Output frame: frameNb     19 startTime    8197291 stopTime    8607291 duration     410000
T 156892 @     2462: Stored source frame:     24 at   10277291 ~   10697291 duration(literal)     420000, last_used     19, extra_buffer      4
T 163392 @     2462: Waiting for source frame: frameNb     23 input queue size  7
T 163392 @     2462: Return source frame     23
T 163392 @     2462: Output frame     23 is ready, output queue size  5
T 159360 @     2485: Delivered output sample     19 from source frame     19
T 159360 @     2485: GarbageCollect frames until     18 pre size   7 post size   6
T 159360 @     2485: Output frame: frameNb     20 startTime    8607291 stopTime    9027291 duration     420000
T 156892 @     2487: Stored source frame:     25 at   10697291 ~   11117291 duration(literal)     420000, last_used     20, extra_buffer      4
T  69496 @     2487: Waiting for source frame: frameNb     24 input queue size  7
T  69496 @     2487: Return source frame     24
T  69496 @     2487: Output frame     24 is ready, output queue size  5
T 159360 @     2569: Delivered output sample     20 from source frame     20
T 159360 @     2569: GarbageCollect frames until     19 pre size   7 post size   6
T 159360 @     2569: Output frame: frameNb     21 startTime    9027291 stopTime    9447291 duration     420000
T 156892 @     2572: Stored source frame:     26 at   11117291 ~   11527291 duration(literal)     410000, last_used     21, extra_buffer      4
T 163392 @     2572: Waiting for source frame: frameNb     25 input queue size  7
T 163392 @     2572: Return source frame     25
T 163392 @     2572: Output frame     25 is ready, output queue size  5
T 159360 @     2641: Delivered output sample     21 from source frame     21
T 159360 @     2641: GarbageCollect frames until     20 pre size   7 post size   6
T 159360 @     2641: Output frame: frameNb     22 startTime    9447291 stopTime    9857291 duration     410000
T 156892 @     2645: Stored source frame:     27 at   11527291 ~   11947291 duration(literal)     420000, last_used     22, extra_buffer      4
T  69496 @     2645: Waiting for source frame: frameNb     26 input queue size  7
T  69496 @     2645: Return source frame     26
T  69496 @     2645: Output frame     26 is ready, output queue size  5
T 159360 @     2663: Delivered output sample     22 from source frame     22
T 159360 @     2663: GarbageCollect frames until     21 pre size   7 post size   6
T 159360 @     2663: Output frame: frameNb     23 startTime    9857291 stopTime   10277291 duration     420000
T 156892 @     2666: Stored source frame:     28 at   11947291 ~   12367291 duration(literal)     420000, last_used     23, extra_buffer      4
T 163392 @     2666: Waiting for source frame: frameNb     27 input queue size  7
T 163392 @     2666: Return source frame     27
T 163392 @     2666: Output frame     27 is ready, output queue size  5
T 159360 @     2716: Delivered output sample     23 from source frame     23
T 159360 @     2716: GarbageCollect frames until     22 pre size   7 post size   6
T 159360 @     2716: Output frame: frameNb     24 startTime   10277291 stopTime   10697291 duration     420000
T 156892 @     2719: Stored source frame:     29 at   12367291 ~   12777291 duration(literal)     410000, last_used     24, extra_buffer      4
T  69496 @     2719: Waiting for source frame: frameNb     28 input queue size  7
T  69496 @     2719: Return source frame     28
T  69496 @     2719: Output frame     28 is ready, output queue size  5
T 159360 @     2763: Delivered output sample     24 from source frame     24
T 159360 @     2763: GarbageCollect frames until     23 pre size   7 post size   6
T 159360 @     2763: Output frame: frameNb     25 startTime   10697291 stopTime   11117291 duration     420000
T 156892 @     2767: Stored source frame:     30 at   12777291 ~   13197291 duration(literal)     420000, last_used     25, extra_buffer      4
T 163392 @     2767: Waiting for source frame: frameNb     29 input queue size  7
T 163392 @     2767: Return source frame     29
T 163392 @     2767: Output frame     29 is ready, output queue size  5
T 159360 @     2788: Delivered output sample     25 from source frame     25
T 159360 @     2788: GarbageCollect frames until     24 pre size   7 post size   6
T 159360 @     2788: Output frame: frameNb     26 startTime   11117291 stopTime   11527291 duration     410000
T 156892 @     2792: Stored source frame:     31 at   13197291 ~   13617291 duration(literal)     420000, last_used     26, extra_buffer      4
T  69496 @     2792: Waiting for source frame: frameNb     30 input queue size  7
T  69496 @     2792: Return source frame     30
T  69496 @     2792: Output frame     30 is ready, output queue size  5
T 159360 @     2832: Delivered output sample     26 from source frame     26
T 159360 @     2832: GarbageCollect frames until     25 pre size   7 post size   6
T 159360 @     2832: Output frame: frameNb     27 startTime   11527291 stopTime   11947291 duration     420000
T 156892 @     2832: Upstream proposes to change input format: name P010, width  1920, height  1080
T 156892 @     2832: FrameHandler start BeginFlush()
T 156892 @     2832: FrameHandler finish BeginFlush()
T 156892 @     2832: FrameHandler start EndFlush()
T 159360 @     2877: Delivered output sample     27 from source frame     27
T 159360 @     2877: GarbageCollect frames until     26 pre size   6 post size   5
T 156892 @     2877: ReloadScript from auxiliary frameserver
T 156892 @     5422: New script clip: 0000024D3D631F90
T 156892 @     5422: Release script clip: 0000024D3D631F90
T 156892 @     5422: FrameHandler finish EndFlush()
T 156892 @     5422: ReloadScript from auxiliary frameserver
T 156892 @     6169: New script clip: 0000024D3D6326B0
T 156892 @     6169: Release script clip: 0000024D3D6326B0
T 156892 @     6170: Attempt to reconnect output pin with media type: output P010 result 1
T 156892 @     6171: Stored source frame:      0 at   13617291 ~   14037291 duration(literal)     420000, last_used      0, extra_buffer      4
T 156892 @     6174: Stored source frame:      1 at   14037291 ~   14447291 duration(literal)     410000, last_used      0, extra_buffer      4
T 156892 @     6177: Stored source frame:      2 at   14447291 ~   14867291 duration(literal)     420000, last_used      0, extra_buffer      4
T 156892 @     6177: ReloadScript from main frameserver
T 156892 @     6177: Release script clip: 0000024D2002C610
T 156892 @     6899: New script clip: 0000024D3D6340D0
T 163392 @     6900: Waiting for source frame: frameNb      1 input queue size  3
T  69496 @     6900: Waiting for source frame: frameNb      0 input queue size  3
T 163392 @     6900: Return source frame      1
T  69496 @     6900: Return source frame      0
T 101456 @     6900: Waiting for source frame: frameNb      2 input queue size  3
T 156892 @     6903: Stored source frame:      3 at   14867291 ~   15287291 duration(literal)     420000, last_used      0, extra_buffer      4
T 101456 @     6903: Return source frame      2
T  99308 @     6903: Waiting for source frame: frameNb      3 input queue size  4
T 156892 @     6906: Stored source frame:      4 at   15287291 ~   15697291 duration(literal)     410000, last_used      0, extra_buffer      4
T  99308 @     6906: Return source frame      3
T  25612 @     6906: Waiting for source frame: frameNb      4 input queue size  5
T 156892 @     6910: Stored source frame:      5 at   15697291 ~   16117291 duration(literal)     420000, last_used      0, extra_buffer      4
T  25612 @     6910: Return source frame      4
T 112200 @     6910: Waiting for source frame: frameNb      5 input queue size  6
T  99308 @     6919: Output frame     30 is ready, output queue size 61
T 163392 @     6919: Output frame      0 is ready, output queue size 61
T 159360 @     6919: Output frame: frameNb      0 startTime   13617291 stopTime   13645291 duration      28000
T 159360 @     6919: New output format: name P010, width  2048, height   720
T 159360 @     6920: Delivered output sample      0 from source frame      0
T 159360 @     6920: GarbageCollect frames until     -1 pre size   6 post size   6
T 163392 @     6931: Output frame      3 is ready, output queue size 60
T  99308 @     6931: Output frame      2 is ready, output queue size 60
T  17404 @     6931: Output frame      1 is ready, output queue size 60
T 159360 @     6931: Output frame: frameNb      1 startTime   13645291 stopTime   13673291 duration      28000
T 159360 @     6932: Delivered output sample      1 from source frame      0
T 159360 @     6932: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6932: Output frame: frameNb      2 startTime   13673291 stopTime   13701291 duration      28000
T  17404 @     6933: Output frame      6 is ready, output queue size 59
T  99308 @     6933: Output frame      5 is ready, output queue size 59
T 163392 @     6933: Output frame      4 is ready, output queue size 59
T  17404 @     6934: Output frame      7 is ready, output queue size 59
T 159360 @     6935: Delivered output sample      2 from source frame      0
T 159360 @     6935: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6935: Output frame: frameNb      3 startTime   13701291 stopTime   13729291 duration      28000
T  99308 @     6935: Output frame      8 is ready, output queue size 58
T 163392 @     6936: Output frame      9 is ready, output queue size 58
T  17404 @     6936: Output frame     10 is ready, output queue size 58
T  99308 @     6936: Output frame     11 is ready, output queue size 58
T 159360 @     6937: Delivered output sample      3 from source frame      0
T 159360 @     6937: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6937: Output frame: frameNb      4 startTime   13729291 stopTime   13757291 duration      28000
T  17404 @     6938: Output frame     13 is ready, output queue size 57
T 163392 @     6938: Output frame     12 is ready, output queue size 57
T  99308 @     6938: Output frame     14 is ready, output queue size 57
T 159360 @     6938: Delivered output sample      4 from source frame      0
T 159360 @     6938: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6938: Output frame: frameNb      5 startTime   13757291 stopTime   13785291 duration      28000
T  17404 @     6938: Output frame     15 is ready, output queue size 56
T 159360 @     6939: Delivered output sample      5 from source frame      0
T 159360 @     6939: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6939: Output frame: frameNb      6 startTime   13785291 stopTime   13813291 duration      28000
T 159360 @     6940: Delivered output sample      6 from source frame      0
T 159360 @     6940: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6940: Output frame: frameNb      7 startTime   13813291 stopTime   13841291 duration      28000
T 159360 @     6941: Delivered output sample      7 from source frame      0
T 159360 @     6941: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6941: Output frame: frameNb      8 startTime   13841291 stopTime   13869291 duration      28000
T 159360 @     6942: Delivered output sample      8 from source frame      0
T 159360 @     6942: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6942: Output frame: frameNb      9 startTime   13869291 stopTime   13897291 duration      28000
T 159360 @     6943: Delivered output sample      9 from source frame      0
T 159360 @     6943: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6943: Output frame: frameNb     10 startTime   13897291 stopTime   13925291 duration      28000
T 159360 @     6944: Delivered output sample     10 from source frame      0
T 159360 @     6944: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6944: Output frame: frameNb     11 startTime   13925291 stopTime   13953291 duration      28000
T 159360 @     6945: Delivered output sample     11 from source frame      0
T 159360 @     6946: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6946: Output frame: frameNb     12 startTime   13953291 stopTime   13981291 duration      28000
T 159360 @     6946: Delivered output sample     12 from source frame      0
T 159360 @     6946: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6946: Output frame: frameNb     13 startTime   13981291 stopTime   14009291 duration      28000
T 159360 @     6947: Delivered output sample     13 from source frame      0
T 159360 @     6947: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6947: Output frame: frameNb     14 startTime   14009291 stopTime   14037290 duration      27999
T 159360 @     6948: Delivered output sample     14 from source frame      0
T 159360 @     6948: GarbageCollect frames until     -1 pre size   6 post size   6
T 159360 @     6948: Output frame: frameNb     15 startTime   14037290 stopTime   14064623 duration      27333
T 159360 @     6950: Delivered output sample     15 from source frame      1
T 159360 @     6950: GarbageCollect frames until      0 pre size   6 post size   5
T 156892 @     6951: Stored source frame:      6 at   16117291 ~   16537291 duration(literal)     420000, last_used      1, extra_buffer      4
T 112200 @     6951: Return source frame      5
T  17404 @     6956: Output frame     18 is ready, output queue size 60
T 112200 @     6956: Output frame     19 is ready, output queue size 60
T  99308 @     6956: Output frame     17 is ready, output queue size 60
T 163392 @     6956: Output frame     16 is ready, output queue size 60
T 159360 @     6956: Output frame: frameNb     16 startTime   14064623 stopTime   14091956 duration      27333
T  17404 @     6957: Output frame     20 is ready, output queue size 60
T  99308 @     6957: Output frame     22 is ready, output queue size 60
T 112200 @     6957: Output frame     21 is ready, output queue size 60
T 163392 @     6958: Output frame     23 is ready, output queue size 60
T 159360 @     6959: Delivered output sample     16 from source frame      1
T 159360 @     6959: GarbageCollect frames until      0 pre size   6 post size   6
T  17404 @     6959: Output frame     24 is ready, output queue size 59
T 159360 @     6959: Output frame: frameNb     17 startTime   14091956 stopTime   14119289 duration      27333
T  99308 @     6959: Output frame     25 is ready, output queue size 59
T 163392 @     6959: Output frame     27 is ready, output queue size 59
T 112200 @     6960: Output frame     26 is ready, output queue size 59
T  17404 @     6960: Output frame     28 is ready, output queue size 59
T 159360 @     6961: Delivered output sample     17 from source frame      1
T 159360 @     6961: GarbageCollect frames until      0 pre size   6 post size   6
T 159360 @     6961: Output frame: frameNb     18 startTime   14119289 stopTime   14146622 duration      27333
T  99308 @     6961: Output frame     29 is ready, output queue size 58
T 159360 @     6962: Delivered output sample     18 from source frame      1
T 159360 @     6962: GarbageCollect frames until      0 pre size   6 post size   6
T 159360 @     6962: Output frame: frameNb     19 startTime   14146622 stopTime   14173955 duration      27333
T 159360 @     6963: Delivered output sample     19 from source frame      1
T 159360 @     6963: GarbageCollect frames until      0 pre size   6 post size   6
T 159360 @     6963: Output frame: frameNb     20 startTime   14173955 stopTime   14201288 duration      27333
T 159360 @     6964: Delivered output sample     20 from source frame      1
T 159360 @     6964: GarbageCollect frames until      0 pre size   6 post size   6
T 159360 @     6964: Output frame: frameNb     21 startTime   14201288 stopTime   14228621 duration      27333
T 159360 @     6966: Delivered output sample     21 from source frame      1
T 159360 @     6966: GarbageCollect frames until      0 pre size   6 post size   6
T 159360 @     6966: Output frame: frameNb     22 startTime   14228621 stopTime   14255954 duration      27333
T 159360 @     6967: Delivered output sample     22 from source frame      1
T 159360 @     6967: GarbageCollect frames until      0 pre size   6 post size   6
T 159360 @     6967: Output frame: frameNb     23 startTime   14255954 stopTime   14283287 duration      27333
T 159360 @     6968: Delivered output sample     23 from source frame      1
T 159360 @     6968: GarbageCollect frames until      0 pre size   6 post size   6
T 159360 @     6968: Output frame: frameNb     24 startTime   14283287 stopTime   14310620 duration      27333
T 159360 @     6969: Delivered output sample     24 from source frame      1
T 159360 @     6969: GarbageCollect frames until      0 pre size   6 post size   6
T 159360 @     6969: Output frame: frameNb     25 startTime   14310620 stopTime   14337953 duration      27333
T 159360 @     6970: Delivered output sample     25 from source frame      1
T 159360 @     6970: GarbageCollect frames until      0 pre size   6 post size   6
T 159360 @     6970: Output frame: frameNb     26 startTime   14337953 stopTime   14365286 duration      27333
T 159360 @     6972: Delivered output sample     26 from source frame      1
T 159360 @     6972: GarbageCollect frames until      0 pre size   6 post size   6
T 159360 @     6972: Output frame: frameNb     27 startTime   14365286 stopTime   14392619 duration      27333
T 159360 @     6973: Delivered output sample     27 from source frame      1
T 159360 @     6973: GarbageCollect frames until      0 pre size   6 post size   6
T 159360 @     6973: Output frame: frameNb     28 startTime   14392619 stopTime   14419952 duration      27333
T 159360 @     6974: Delivered output sample     28 from source frame      1
T 159360 @     6974: GarbageCollect frames until      0 pre size   6 post size   6
T 159360 @     6974: Output frame: frameNb     29 startTime   14419952 stopTime   14447285 duration      27333
T 159360 @     6976: Delivered output sample     29 from source frame      1
T 159360 @     6976: GarbageCollect frames until      0 pre size   6 post size   6
T 159360 @     6976: Output frame: frameNb     30 startTime   14447285 stopTime   14475285 duration      28000
T 159360 @     6977: Delivered output sample     30 from source frame      2
T 159360 @     6977: GarbageCollect frames until      1 pre size   6 post size   5
T 156892 @     6979: Stored source frame:      7 at   16537291 ~   16957291 duration(literal)     420000, last_used      2, extra_buffer      4
T 103392 @   256644: FrameHandler start BeginFlush()
T 103392 @   256644: FrameHandler finish BeginFlush()
T 103392 @   256644: FrameHandler start EndFlush()

Also attaching the relevant part of SVP's log for the current session:

11:32:51.501 [i]: AVSF: found new player instance
11:32:52.075 [i]: AVSF: filters in use: LAV Splitter Source (internal) -> LAV Video Decoder (internal) -> * -> madVR
11:32:52.078 [i]: AVSF: new video in mpc-hc64.exe (64-bit) [MPC-HC 1.9.18.0] on screen 0
11:32:52.126 [i]: Media: video 1920x1080 [PAR 1.000] at 23.976 fps
11:32:52.126 [i]: Media: codec type is HEVC, YUV/4:2:0/10 bits
11:32:52.128 [i]: Playback: starting up...
11:32:52.136 [i]: Playback [bed09354]: Frame server (64-bit) 3.5.0.0, AviSynth+ 3.5 (r3106, 3.5, x86_64), C:\WINDOWS\SYSTEM32\avisynth.dll
11:32:52.137 [i]: Playback [bed09354]: resulting video frame 1280x720 [1920x1080 -> scaled -> 1280x720]
11:32:52.138 [i]: Playback [bed09354]: 2 acceptible profiles, best is 'RIFE AI engine' [0]
11:32:52.142 [i]: Playback [bed09354]: enabled while video is playing
11:32:52.160 [i]: Playback [bed09354]: playing at 47.952 [23.976 *2/1] /10 bit

What do you think sould be the next step?

Thanks in the meantime!

234 (edited by UHD 07-05-2022 13:04:53)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

ToasterPC wrote:

https://i.imgur.com/pOS0Nyr.png


1. Try to use GPU thread: 2 - this gives 3x better performance, see blackmickey1007's post:
https://www.svp-team.com/forum/viewtopi … 219#p80219

2. Try to use 8-bit video, RIFE does not natively support 10-bit video.

3. Don't use madVR upscaling, it takes away GPU resources needed for RIFE.

4. Try to use x2 interpolation first, don't go crazy with that 360Hz wink

5. List all GPUs you have in your system: integrated and dedicated - read what Chainik wrote here: https://www.svp-team.com/forum/viewtopi … 170#p80170

6. Screenshots are always welcome on this thread smile

235 (edited by ToasterPC 07-05-2022 15:36:37)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

UHD wrote:
ToasterPC wrote:

https://i.imgur.com/pOS0Nyr.png


1. Try to use GPU thread: 2 - this gives 3x better performance, see blackmickey1007's post:
https://www.svp-team.com/forum/viewtopi … 219#p80219

2. Try to use 8-bit video, RIFE does not natively support 10-bit video.

3. Don't use madVR upscaling, it takes away GPU resources needed for RIFE.

4. Try to use x2 interpolation first, don't go crazy with that 360Hz wink

5. List all GPUs you have in your system: integrated and dedicated - read what Chainik wrote here: https://www.svp-team.com/forum/viewtopi … 170#p80170

6. Screenshots are always welcome on this thread smile


Hey, thanks for the help!

I'll go point by point just to be sure:

1: Just tried changing GPU threads to 2 and it seems RIFE does not like it, as I get shown the following error message:

10:16:04.801 [E]: Playback [fa00ff70]: VS - Python exception: RIFE: gpu_thread must be between 1 and 1 (inclusive)
10:16:04.801 [E]: Playback [fa00ff70]: VS - Traceback (most recent call last):
10:16:04.801 [E]: Playback [fa00ff70]: VS - File \src\cython\vapoursynth.pyx\, line 2832, in vapoursynth._vpy_evaluate
10:16:04.801 [E]: Playback [fa00ff70]: VS - File \src\cython\vapoursynth.pyx\, line 2833, in vapoursynth._vpy_evaluate
10:16:04.801 [E]: Playback [fa00ff70]: VS - File \C:\Users\ToasterDEV\AppData\Roaming\SVP4\scripts\fa00ff70.py\, line 75, in <module>
10:16:04.802 [E]: Playback [fa00ff70]: VS - smooth = interpolate(clip)
10:16:04.802 [E]: Playback [fa00ff70]: VS - File \C:\Users\ToasterDEV\AppData\Roaming\SVP4\scripts\fa00ff70.py\, line 52, in interpolate
10:16:04.802 [E]: Playback [fa00ff70]: VS - smooth = core.rife.RIFE(input_m,multiplier=rife_num,model=rife_model,gpu_id=rife_gpu,gpu_thread=rife_threads,tta=False,sc=True)
10:16:04.802 [E]: Playback [fa00ff70]: VS - File \src\cython\vapoursynth.pyx\, line 2580, in vapoursynth.Function.__call__
10:16:04.802 [E]: Playback [fa00ff70]: VS - vapoursynth.Error: RIFE: gpu_thread must be between 1 and 1 (inclusive)

2: Okay, nice to know then. I'll try for now with a different MKV file to proceed with testing.

3: Sure! Ideally I'd like to see if I can do both, but I'll turn off madVR in the meantime then.

4: Okay then, I'll leave it at Movie x2 for the time being.

5: I have both Intel and Nvidia graphics on this device, though it seems SVP sees the Nvidia GPU multiple times and I'm not sure which ID corresponds to which one here, but for what it's worth I'll attach the enumerated ones below:

12:12:28.227 [i]: Video: 1 GPU OpenCL device(s) on NVIDIA CUDA [OpenCL 3.0 CUDA 11.6.99] (NVIDIA Corporation)
12:12:28.227 [i]: Video 1: NVIDIA GeForce RTX 3070 Laptop GPU (NVIDIA Corporation, ver.511.65) [gpuID=11]: OK
12:12:28.227 [i]: Video 1: may support NV Optical Flow (Compute capability: 8.6)
12:12:28.227 [i]: Video: 1 GPU OpenCL device(s) on Intel(R) OpenCL HD Graphics [OpenCL 3.0] (Intel(R) Corporation)
12:12:28.227 [i]: Video 1: Intel(R) UHD Graphics (Intel(R) Corporation, ver.30.0.101.1660) [gpuID=21]: OK
12:12:28.227 [i]: Video: 3 GPU OpenCL device(s) on OpenCLOn12 [OpenCL 1.2 D3D12 Implementation] (Microsoft)
12:12:28.227 [i]: Video 1: Intel(R) UHD Graphics (Microsoft, ver.1.1.0) [gpuID=31]: OK
12:12:28.227 [i]: Video 2: Microsoft Basic Render Driver (Microsoft, ver.1.1.0) [gpuID=32]: OK
12:12:28.227 [i]: Video 3: NVIDIA GeForce RTX 3070 Laptop GPU (Microsoft, ver.1.1.0) [gpuID=33]: OK

https://i.imgur.com/LjfnFwd.png

And as for point 6, I'll be happy to provide any as needed, and for the moment I'll attach the current playback windows that are active

https://i.imgur.com/Yl286ZC.png

For the moment it seems that changing GPU device to id 1 fixed the frozen video, as playback proceeds smoothly using MPC-HC's integrated renderer, though the thread count error still worries me a little bit.

Again, thanks for the help! If there's any other information needed, please don't hesitate to ask for it.

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

don't use Microsoft OpenCL drivers/devices
uninstall this shit - "OpenCL™ and OpenGL® Compatibility Pack"

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

Chainik wrote:

don't use Microsoft OpenCL drivers/devices
uninstall this shit - "OpenCL™ and OpenGL® Compatibility Pack"

Oddly it seems I don't have them installed, should I check elsewhere?

https://i.imgur.com/0utyRkV.png

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

no idea...
anyway on your screenshot you have the last device selected
choose the first one

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

Chainik wrote:

no idea...
anyway on your screenshot you have the last device selected
choose the first one

Just done it and it seems the conversion is even running a bit more smoothly now, I'm even able to convert an HLS stream now instead of having to download the file first!

Thanks for the help!

240

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

I am glad that all the problems with RIFE have been solved for the moment. I take the absence of new posts on this topic as proof that everything is working as it should and everyone is enjoying RIFE working with SVP for video interpolation.

Thanks for all the testing and sharing. I haven't commented on their results recently, but I plan to come back to them again. I didn't ask for a particular type of test, so everyone posted what they thought was important and useful to others. I read everything carefully and thought about what might be important to someone like me who doesn't have a suitable graphics card yet and is just making a decision.

In fact, I would be interested in many more things, but the most important I already know, that is, on current graphics cards can already freely perform real-time interpolation at factors greater than x2. Of course, the more powerful the graphics card, the greater the possibilities.

What I am most interested in at the moment and what more I would like to find out about RIFE interpolation I will present in the next post.

241 (edited by UHD 15-05-2022 16:06:34)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

Coming soon (probably September 2022) are new NVIDIA graphics cards with amazing Tensor Core capabilities, but also with unbelievable power consumption:

~900W TGP - NVIDIA GeForce RTX 4090 Ti
~600W TGP - NVIDIA GeForce RTX 4090
~350W TGP - NVIDIA GeForce RTX 4080

https://wccftech.com/nvidia-geforce-rtx … rds-rumor/

Without air conditioning, which I don't have, I can't imagine an extra 600 or 900W of heat in a small room in the summer. Of course there is a choice and we can always buy an NVIDIA GeForce RTX 4080 with 350W draw, but a more economical solution in the long run is to buy an NVIDIA GeForce RTX 4090 and drop the power down to, say, 300W or 350W. This way we can probably get an efficient graphics card in the sense of performance to energy consumed.

In addition, I wonder about passive cooling of such a card. Today it is possible to passively cool a graphics card up to 250W, although I believe that with some modifications it will be possible to reach up to 300W, especially if the card itself has a design suitable for 600W.

Until now, I believed that lowering the power consumption of a graphics card always leads to an increase in efficiency: relatively large at first then less and less.

However, I have now found some tests that confirm this, but also show that once the power consumption is lowered below a certain level, the efficiency starts to drop dramatically. The tests indicate that this depends not so much on the architecture of the specific graphics card, but mainly on the software used for testing. This can be seen in the graphs below:

Hardware: Inno3D GeForce RTX 3090 Ti X3 OC
Software: Control

https://www.hardwareluxx.de/images/cdn02/uploads/2022/Mar/free_server_mp/inno3d-geforcertx3090ti-x3oc-performance-scaling_1920px.png

https://www.hardwareluxx.de/index.php/a … l?start=23


Hardware: MSI GeForce RTX 3090 Gaming X Trio
Software: Heaven Benchmark

https://i.ibb.co/M5jh7Dh/FPS-Curve.png
https://i.ibb.co/5GkXn5n/Pp-W-Curve.png

https://www.forum-3dcenter.org/vbulleti … st12963231

I must admit that these results worry me a little, because they indicate that lowering the power consumption to 50% does not necessarily mean an increase in efficiency. The consolation is the fact that, as we can see on the graphs, a lot depends on the software. So I am very interested to see how it looks with RIFE, which uses Tensor Cores.

242 (edited by UHD 15-05-2022 15:57:59)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

I am looking for at least 2 people who own one of the following high power consumption cards:

290W TDP - GeForce RTX 3070 Ti
320W TDP - GeForce RTX 3080
350W TDP - GeForce RTX 3080 Ti
350W TDP - GeForce RTX 3090
450W TDP - GeForce RTX 3090 Ti

and could run a RIFE interpolation test with different power limits set using MSI Afterburner.

I would be interested in x5 interpolation tests for a 1920x1080 23.976 fps file.

Why exactly such parameters? I believe that this will probably be the real-time interpolation limit for RIFE using an NVIDIA GeForce RTX 4090 card, unless there are already new optimizations in the future regarding RIFE models and their cooperation with Tensor Cores.

Of course, this is about testing using the RIFE filter for VapourSynth (ncnn Vulkan) and the result in fps, so that we can accurately determine the performance for each power limit.

We don't need a graph (although a data visualization is always welcome), just the raw data will be enough, from which we can then calculate the efficiency for a given GPU in fps/W for different power limits.

What is the minimum power limit? I think 150W will be adequate.

I will be very grateful for any such test, even if the parameters will be different than I suggested. I know that such tests can be time-consuming but the result can be very interesting and give interesting outcomes to those who are thinking about upgrading their GPU, but are a bit scared by those 600 or 900 watts of power consumption and generation of additional heat and noise.

243 (edited by UHD 15-05-2022 15:37:42)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

As I am also considering passive GPU cooling the information about coil whine is also very important to me. I know that this is a very subjective matter - one can hear it even with all the fans and HDDs humming, while the other cannot. With completely passive cooling of the entire computer and the use of SSDs, the issue of coil whine coming from the GPU is important. Especially since a constant, equal load on the Tensor Cores, is said to be a worst case scenario:

I have never seen a GPU not coil whine during ml training and these are the top end boards, such as the a100, v100, a6000, Titan Volta, Titan RTX, 3090fe. There is always coil whine if the workload utilizes 100% of the die (since sustained voltage increases are seen), and I am not talking about the GPU utilization metric seen in Gaming, since they fail to use tensor cores that make GPUs screech.

https://www.reddit.com/r/nvidia/comment … _with_rma/

So I would also ask for information on how different power limits affect coil whine when loading Tensor Cores via RIFE.

There are opinions that coil whine is particularly troublesome when the graphics card uses all its power. Hence my guess, that buying for example a GPU, which power section has the possibility to draw 600W and limiting this draw to 50% can significantly reduce the coil whine.

Of course from 1-2 meters distance coil whine may be not audible at all. In this case you can try to judge the coil whine from a closer distance, of course not so close that someone's hair gets pulled into the graphics card fanwink

This is not as important to me as the above efficiency test at different power limits, but if someone would check this by the way, I would really appreciate it.

244 (edited by dlr5668 15-05-2022 16:25:18)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

GeForce RTX 3070 Ti
stock - 260W - 90 fps
All tests below run with undervolt 0.9v @ 1920. No coil whine as well
110% - 205W - 89 fps. Thats why you undervolt you RTX
50% - 155W - 81 fps
45% - 140W - 68 fps
40% - 125W - 50 fps
32% - 100W - 26 fps

My curve is not optimal. With some dedication you can increase result for below max TDP. I am sure you can run 0.825V @ 1800 (stock curve is 0.825V @ 1600 )

https://i.imgur.com/HAvOxjQ.png

245

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

WOW! Thanks for the instant reply!

Yes, I'm planning on undervolting as well.

Are these really the results for x5 interpolation tests for a 1920x1080 23.976 fps?

What exactly is the card model without coil whine?

246 (edited by dlr5668 15-05-2022 16:55:51)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

UHD wrote:

WOW! Thanks for the instant reply!

Yes, I'm planning on undervolting as well.

Are these really the results for x5 interpolation tests for a 1920x1080 23.976 fps?

What exactly is the card model without coil whine?

its after 30 sec of 1080p x2 encoding (I dont think it matters). Its https://www.zotac.com/us/product/graphi … treme-holo Encoding always use all GPU resources

247 (edited by UHD 15-05-2022 18:24:55)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

You are right, when evaluating efficiency for different power limits it is completely irrelevant.

I just forgot to write that with this one test I wanted to take care of 3 things at once, and that third thing I just didn't describe:

1. performance per watt at various power limits
2. coil whine at various power limits
3. estimation of the performance of future graphics cards based on the performance of current graphics cards

Until today we had no precise result on the forum for 1080p files for RIFE Model 4.0 and - RIFE filter for VapourSynth (ncnn Vulkan): https://www.svp-team.com/forum/viewtopi … 220#p80220
and a precise result in fps allows a more accurate estimation of the capabilities of future graphics cards.
Additionally more computing power is needed to interpolate 1920x1080 than for example 1920x800: https://www.svp-team.com/forum/viewtopi … 361#p80361   

Until recently I was only dreaming about 1080p x2 real-time interpolation, but after the last optimization I have gained an appetite for 1080p x5. I only need the information about the interpolation factor to estimate how close we are today to my goal:

x5 - I need 120fps (24 original frames + 96 interpolated)
x2 - I need 96 interpolated frames, so also 96 original, which gives 192 fps in total

So, if Your graphics card at 205W gives 89 fps (1080p x2) that means I need 116% more powerful graphics card!

Awesome! Later this year it should be possible!

As for coil whine You either have an exceptional unit: https://www.guru3d.com/articles-pages/z … ew,34.html or undervolting really helps here, which of course is often recommended to mute the card. In any case, it's good to know that with RIFE loading Tesor Cores can be quiet.

248 (edited by UHD 15-05-2022 18:56:13)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

ZOTAC GAMING GeForce RTX 3070 Ti AMP Extreme Holo
https://www.svp-team.com/forum/viewtopi … 477#p80477

205W & 89fps = 0.434fps for 1W    0.217 interp. fps for 1W    83,08% eff.
155W & 81fps = 0.523fps for 1W    0.261 interp. fps for 1W    100,00% eff.
140W & 68fps = 0.486fps for 1W    0.243 interp. fps for 1W    92,95% eff.
125W & 50fps = 0.400fps for 1W    0.200 interp. fps for 1W    76,54% eff.
100W & 26fps = 0.260fps for 1W    0.130 interp. fps for 1W    49,75% eff.

249 (edited by UHD 01-06-2022 22:22:04)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

Today is the First Anniversary of the first RIFE filter for VapourSynth!


Exactly one year ago on June 1, 2021, this filter was created that made real-time interpolation with the RIFE algorithm possible: https://github.com/HomeOfVapourSynthEvo … ses/tag/r1

Also exactly one year ago on June 1, 2021, I asked the developers on this forum to integrate it into SVP: https://www.svp-team.com/forum/viewtopi … 419#p78419

The beginnings were difficult:

Chainik wrote:

1080p @24->48 --> 4 fps

https://www.svp-team.com/forum/viewtopi … 426#p78426

but I believed that there is a huge optimization potential in this algorithm and today's version of RIFE filter for VapourSynth based on model 4.0 and optimized for Tensor Core makes it possible to believe that in August: https://videocardz.com/newz/rumor-nvidi … in-october it will be possible x5 interpolation for a 1920x1080 23.976 fps file using RIFE algorithm in real time: https://www.svp-team.com/forum/viewtopi … 480#p80480

250 (edited by Ante85 10-06-2022 23:12:47)

Re: New RIFE filter - 3x faster AI interpolation possible in SVP!!!

Chainik wrote:

=== RIFE / PyTorch installation ===

!!! Advanced users only, if you don't know what this is all about - you don't need it !!!

!!! Encoding only, not for a real-time playback !!!

0. Update SVP to the latest version

1. Dependencies installation:
--------------
download https://bootstrap.pypa.io/get-pip.py into SVP 4\mpv64

run cmd as Administrator
cd SVP 4\mpv64

run

python get-pip.py

run

python -m pip install torch --extra-index-url https://download.pytorch.org/whl/cu113
python -m pip install vsrife --no-deps

will download 3+ GB and unpack it into 6+ GB of data big_smile

2. SVP modification
---------------
---> no need to replace any files now <---

add custom profile option: go to Application settings -> User defined options, fill in:
- Title: RIFE via CUDA
- Script name: rife_cuda
- Options scope: FRC profile
- Allowed values: ON or OFF
Press "Add option"

in the "RIFE AI engine" video profile set "RIFE via CUDA" to ON
when it's ON then "AI model" and "GPU threads" change nothing

Hi, this new way of installing RIFE gives me an error when transcoding, that I did not have when using the previous way of installing RIFE into SVP.

The error message reads:

01:05:58.980: ===== Starting mpv ======
01:05:58.980: Command line: C:\Program Files (x86)\SVP 4\mpv64\mpv.exe C:/Users/Admin/Videos/Semifinal 1.mkv --o=C:/Users/Admin/Videos/Semifinal 1.SVP.temporary.mkv --no-audio --no-sub --no-sub-auto --input-ipc-server=mpvencodepipe --input-media-keys=no --no-msg-color --vf=vapoursynth:[C:\Users\Admin\AppData\Roaming\SVP4\scripts\ffff.py]:4:16 --of=matroska --ovc=hevc_nvenc --ovcopts=b=51480000,preset=p7,maxrate=66924000,bufsize=102960000,tune=hq,time_base=1000/60000,threads=16
01:05:59.056: (+) Video --vid=1 (*) (hevc 1920x1080 25.000fps)
01:05:59.056: Audio --aid=1 --alang=sv (*) (ac3 6ch 48000Hz)
01:05:59.168: [vapoursynth] Script evaluation failed:
01:05:59.168: [vapoursynth] Python exception: No module named 'numpy'
01:05:59.168: [vapoursynth]
01:05:59.168: [vapoursynth] Traceback (most recent call last):
01:05:59.168: [vapoursynth] File "src\cython\vapoursynth.pyx", line 2832, in vapoursynth._vpy_evaluate
01:05:59.169: [vapoursynth] File "src\cython\vapoursynth.pyx", line 2833, in vapoursynth._vpy_evaluate
01:05:59.169: [vapoursynth] File "C:\Users\Admin\AppData\Roaming\SVP4\scripts\ffff.py", line 10, in <module>
01:05:59.169: [vapoursynth] from vsrife import RIFE
01:05:59.169: [vapoursynth] File "C:\Program Files (x86)\SVP 4\mpv64\lib\site-packages\vsrife\__init__.py", line 3, in <module>
01:05:59.169: [vapoursynth] import numpy as np
01:05:59.169: [vapoursynth] ModuleNotFoundError: No module named 'numpy'
01:05:59.169: [vapoursynth]
01:05:59.185: (!!!) Intermediate file may be broken: C:\Users\Admin\Videos\Semifinal 1.SVP.temporary.mkv
01:05:59.185: ===== mpv exited with code 62097 =====


Do you know how to solve this?