Frame doubling interpolation for 1080p x264 mkv's for superfluid 48 fps

Discussion in 'The HTPC, HDTV & Ultra High Definition section' started by nzweers, Feb 15, 2009.

  1. SotYPL

    SotYPL Member

    Messages:
    10
    Likes Received:
    0
    GPU:
    MSI R9 280X GAMING 3G
    These scripts are great but don't work too good when using Media Portal + ffdshow. Everything is working fine with MPC-HC but when using the same script with Media Portal movie is not smooth enough and has lot of skips. My rig is strong enough (i7-860 @ 3.6GHz, 4GB DDR3 @ 1960MHz, HD4870, W7 x64) so there has to be something wrong with MediaPortal's internal player. I can use MPC-HC as external player but then some important MediaPortal funcionality is lost so basically I can't use any of these script right now :(
     
  2. SotYPL

    SotYPL Member

    Messages:
    10
    Likes Received:
    0
    GPU:
    MSI R9 280X GAMING 3G
    Some screen shots. Both players (MPC-HC and MediaPortal) using EVR renderer and codecs with system merits so graphs looks the same. As you can see there is a lot dropped frames on EVR from MediaPortal and nothing from MPC-HC. CPU usage is the same for both players (<35%), on MediaPortal screen shot it went higher for a moment when I started snipping tool. Test movie was Avatar 1080p x264 rip with DTS (15.5Mbs video bit rate).

    [​IMG]

    [​IMG]
     
  3. neograniceni

    neograniceni Member

    Messages:
    28
    Likes Received:
    0
    GPU:
    Nvidia 9400GT 1GB
    I was a big fan of Mediaportal for 2-3 years. But nowdays they are obviously not keeping their footstep with the rest of the world anymore. For some time now MP become a bag of bugs, problems, weird lockups, skips, glitches, especially when used in combination of codecs/tools such as ffdshow/coreavc/reclock/avisynth... Recently I've decided to kick it out of my HTPC and return to MPC-HC/ffdshow/Coreavc/reclock in fullscreen using Logitech diNovo mini as my video player setup. No more video skippings, jerkyness, lipsync problems, lockups, waitings for video to start. Yes, I know, MP has lot of other great features around video player, but it is just not worth spending days hunting bugs'n other troubles.
     
  4. SotYPL

    SotYPL Member

    Messages:
    10
    Likes Received:
    0
    GPU:
    MSI R9 280X GAMING 3G
    I don't have any other problems with MP right now. It works perfect with MPC Video Decoder for dxva HD movies and ffdshow with upscaling for SD. I like its plugins like Moving Pictures, TV Series, ShowTimes etc a lot and it would be hard for me to live without them :) Another thing is that it's almost impossible to use MPC-HC alone for browsing your video collection with remote and not sitting directly in front of your TV. Maybe there will be some fix in future releases because as long I can see I'm not the only one who has problems with dropped frames through EVR.
     

  5. widezu69

    widezu69 Member

    Messages:
    40
    Likes Received:
    0
    GPU:
    GTX 780m 4GB
    New list of scripts from me, optimised for 60fps "soapy" look if it ultimate is what you prefer, otherwise use Neo's great scripts.

    SetMTMode(5,8)
    ffdShow_source()
    SetMTMode(2)
    super=MSuper(pel=2, hpad=0, vpad=0)
    backward_1=MAnalyse(super, chroma=false, isb=true, blksize=16, blksizev=16, searchparam=2, plevel=0, search=3, badrange=(-24))
    forward_1=MAnalyse(super, chroma=false, isb=false, blksize=16, blksizev=16, searchparam=2, plevel=0, search=3, badrange=(-24))
    backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, blksizev=8, searchparam=1, search=3)
    forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, blksizev=8, searchparam=1, search=3)
    backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=4, blksizev=4, searchparam=0, search=3)
    forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=4, blksizev=4, searchparam=0, search=3)
    MBlockFps(super, backward_3, forward_3, num=60, den=1, mode=0)
    SetMTMode(1)
    GetMTMode(false) > 0 ? distributor() : last

    This one is best for artefact suppression but compromises with loss in smoothness.

    SetMTMode(5,8)
    ffdShow_source()
    SetMTMode(2)
    super=MSuper(pel=2, hpad=0, vpad=0)
    backward_1=MAnalyse(super, chroma=false, isb=true, blksize=16, blksizev=16, searchparam=0, plevel=2, search=3, badrange=(-24))
    forward_1=MAnalyse(super, chroma=false, isb=false, blksize=16, blksizev=16, searchparam=0, plevel=2, search=3, badrange=(-24))
    backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, blksizev=8, searchparam=0, search=3)
    forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, blksizev=8, searchparam=0, search=3)
    backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=4, blksizev=4, searchparam=0, search=3)
    forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=4, blksizev=4, searchparam=0, search=3)
    MBlockFps(super, backward_3, forward_3, num=60, den=1, mode=0)
    SetMTMode(1)
    GetMTMode(false) > 0 ? distributor() : last

    Optimised for high powered quad core or i7 cpus; core2duo's, i3/5's may get away overclocked speeds and 720p video but 1080p might struggle, please comment on percentage of cpu used so I can further test the potential increase in smoothness with a further reduction of artifacts.
     
    Last edited: Jun 11, 2010
  6. spex_2

    spex_2 Member

    Messages:
    48
    Likes Received:
    6
    GPU:
    a
    okay, we tested both scripts on the pc`s described in my 1st post. we had with both scripts an huge framedrop with full_1080p videos. also the cpu usg. raised first up to 99% and then dropped down to almost 1~2%. video stuck`s @ 1 fps. full_720p is working with about 70%~90% cpu usg. depending on system and script.


    improvement of cpu usg. while processing:

    -less then 1%

    amount of crispy`s:

    -minus 75%

    compatibility :

    -on 2 systems, no more full_1080p playback possible


    both script`s are eating much more cpu time then the original script. but they are less crispy.


    atm we are using this script for 1080p videos, a bit crispy but fully working on an at least 3ghz x4 cpu.
    SetMemoryMax(1280)
    SetMTMode(1,8)
    ffdShow_source()
    SetMTMode(2,8)
    super=MSuper(pel=1, hpad=0, vpad=0)
    backward_1=MAnalyse(super, chroma=false, isb=true, blksize=32, blksizev=32, searchparam=3, plevel=0, search=0, badrange=(-24))
    forward_1=MAnalyse(super, chroma=false, isb=false, blksize=32, blksizev=32, searchparam=3, plevel=0, search=0, badrange=(-24))
    backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=32, blksizev=32, searchparam=2, search=0)
    forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=32, blksizev=32, searchparam=2, search=0)
    backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=32, blksizev=32, searchparam=1, search=0)
    forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=32, blksizev=32, searchparam=1, search=0)
    MBlockFps(super, backward_2, forward_2, num=60, den=1, mode=0)
    SetMTMode(1)
    GetMTMode(false) > 0 ? distributor() : last

    and this script for 720p videos. very smooth, almost no crispy`s and working with at least 1,9 ghz quad cores.
    SetMemoryMax(1280)
    SetMTMode(1,8)
    ffdShow_source()
    SetMTMode(2,8)
    super=MSuper(pel=1, hpad=0, vpad=0)
    backward_1=MAnalyse(super, chroma=false, isb=true, blksize=32, blksizev=32, searchparam=3, plevel=1, search=0, badrange=(-24))
    forward_1=MAnalyse(super, chroma=false, isb=false, blksize=32, blksizev=32, searchparam=3, plevel=1, search=0, badrange=(-24))
    backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=32, blksizev=32, searchparam=2, search=0)
    forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=32, blksizev=32, searchparam=2, search=0)
    backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=32, blksizev=32, searchparam=1, search=0)
    forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=32, blksizev=32, searchparam=1, search=0)
    MBlockFps(super, backward_2, forward_2, num=60, den=1, mode=1)
    SetMTMode(1)
    GetMTMode(false) > 0 ? distributor() : last

    so long ....
     
    Last edited: Jun 12, 2010
  7. widezu69

    widezu69 Member

    Messages:
    40
    Likes Received:
    0
    GPU:
    GTX 780m 4GB
    What is this crispys you speak of?. By the way, get rid of the SetMemoryMax line and change your SetMtMode, it is seriously f*cked up. just copy and paste one of my scripts, it has the correct multithreading settings for quad cores. Plus, notice that everytime there is a recalculate line, the blksize drops, keeping it at the same size doesn't really help with artefacts and can sometimes make things look worse.

    I'm pretty sure you have enought power to play my scripts...
     
  8. spex_2

    spex_2 Member

    Messages:
    48
    Likes Received:
    6
    GPU:
    a
    crispy = artifacts sry my fault.

    your 2 scripts from above wont work with full_1080p videos on our systems, if you want, i can test it on 10 more.

    the first of your script`s we used, worked almost perfectly, but the cpu cost was way to high while watching full_1080p (framedrop), so we changed all blksize= and blksizev= values to 32 less quality -> but more free cpu power.

    we also set all the search= values from 3 to 0. same thing with the line : "super=MSuper(pel=1, hpad=8, vpad=4)" to "super=MSuper(pel=1, hpad=0, vpad=0)".

    this 3 steps gave us a nice boost of speed.

    now cupo a friend of mine tried some different mt-mode`s.

    changing the mt-mode in line 2 from mode 5 to 1 gave us an tremendous boost of speed ( we also read the manual! )

    however ... mode 1 is the fastest for line 2 and mode 2 is not the fastest for line 4 but it needs to be mode 2 bcus 1 wont work. why we added the threading behind the mode in line 4? well it gave us a boost of 2% in speed.

    removing the ram limit line : "SetMemoryMax(????)" brings us just a crash of mp-hc after a few seconds, changing the ram value from 512 to 2048 doesn't change anything.

    i wish we could just drag and drop your versions but they are only working rly good with 720p when it comes to full_1080p in combination with 60fps they wont work.

    this script, (same as above) works perfectly with 720p videos and we do have almost 0 artifacts. with an 3,6ghz quad core cpu it also works rly nice with full_1080p videos.
    SetMemoryMax(1280)
    SetMTMode(1,8)
    ffdShow_source()
    SetMTMode(2,8)
    super=MSuper(pel=1, hpad=0, vpad=0)
    backward_1=MAnalyse(super, chroma=false, isb=true, blksize=32, blksizev=32, searchparam=3, plevel=1, search=0, badrange=(-24))
    forward_1=MAnalyse(super, chroma=false, isb=false, blksize=32, blksizev=32, searchparam=3, plevel=1, search=0, badrange=(-24))
    backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=32, blksizev=32, searchparam=2, search=0)
    forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=32, blksizev=32, searchparam=2, search=0)
    backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=32, blksizev=32, searchparam=1, search=0)
    forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=32, blksizev=32, searchparam=1, search=0)
    MBlockFps(super, backward_2, forward_2, num=60, den=1, mode=1)
    SetMTMode(1)
    GetMTMode(false) > 0 ? distributor() : last

    we don't say we understand all of what we are doing, but it is faster! so our changes couldn't be that wrong.

    imho: your script is still the best one which is available but the whole complex isn't using all the cpu power which is available atm. on all systems the cpu usg. is about 60%~85% depending on mkv resolution.

    edit :

    don't ask me why, cupo came up with this new script and what should i say?
    slower but less artifacts

    SetMemoryMax(512)
    SetMTMode(1,4)
    ffdShow_source()
    SetMTMode(2,4)
    super=MSuper(pel=1, hpad=0, vpad=0)
    backward_1=MAnalyse(super, chroma=false, isb=true, blksize=32, blksizev=32, searchparam=3, plevel=1, search=3)
    forward_1=MAnalyse(super, chroma=false, isb=false, blksize=32, blksizev=32, searchparam=3, plevel=1, search=3)
    backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=32, blksizev=32, searchparam=2, search=3)
    forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=32, blksizev=32, searchparam=2, search=3)
    backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=32, blksizev=32, searchparam=1, search=3)
    forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=32, blksizev=32, searchparam=1, search=3)
    MBlockFps(super, backward_2, forward_2, num=60, den=1, mode=1)
    SetMTMode(1)
    GetMTMode(false) > 0 ? distributor() : last

    faster but way more artifacts around big moving objects

    SetMemoryMax(512)
    SetMTMode(1,4)
    ffdShow_source()
    SetMTMode(2,4)
    super=MSuper(pel=1, hpad=0, vpad=0)
    backward_1=MAnalyse(super, chroma=false, isb=true, blksize=32, blksizev=32, searchparam=3, plevel=0, search=3)
    forward_1=MAnalyse(super, chroma=false, isb=false, blksize=32, blksizev=32, searchparam=3, plevel=0, search=3)
    backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=32, blksizev=32, searchparam=2, search=3)
    forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=32, blksizev=32, searchparam=2, search=3)
    backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=32, blksizev=32, searchparam=1, search=3)
    forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=32, blksizev=32, searchparam=1, search=3)
    MBlockFps(super, backward_2, forward_2, num=60, den=1, mode=0)
    SetMTMode(1)
    GetMTMode(false) > 0 ? distributor() : last
    it works a bit better then the old he modified. well we still don't know very much of what we are doing but we get it faster everytime. well maybe you could take some time and explain your script step by step and tell us what is doing what. maybe this could help a lot of us to understand the script and will help others to improve it.

    just a suggestion ;)
     
    Last edited: Jun 13, 2010
  9. travolter

    travolter Member

    Messages:
    11
    Likes Received:
    0
    GPU:
    GF7
    @spex_2 I tested these scripts.. but the movement is not so "fluid" as widezu69´s scripts

    You could try with resize before framedoubling.. 1080->720
     
  10. timgbpd

    timgbpd New Member

    Messages:
    8
    Likes Received:
    0
    GPU:
    GeForce GTS 250/ 1G
    From the manual spex_2 mentions, it seems that we can set the threads=0 at SetMTmode(int mode, int threads) command. if there is no HT function in the CPU, such as Intel i5-750, the 0 means the number of processors available. Is my understanding right?
     
    Last edited: Jun 18, 2010

  11. spex_2

    spex_2 Member

    Messages:
    48
    Likes Received:
    6
    GPU:
    a
    @timgbpd

     
  12. somebody2978

    somebody2978 Member

    Messages:
    42
    Likes Received:
    0
    GPU:
    ZOTAC GTX 650 Ti 2GB AMP!
    Mmmm ... I noticed that my videos played with this script:

    has noticeably increased CPU usage on this version of the script:


    The point is that I do not see improvements in image quality, I still see same artifacts and same drops fps (without CPU saturation) in complex scenes with the new script. What would be the improvements between the two versions, at first glance I can not notice them.
     
    Last edited: Jun 20, 2010
  13. Memorian

    Memorian Ancient Guru

    Messages:
    3,026
    Likes Received:
    208
    GPU:
    Strix 2080 Ti OC
    MPC crashes here
    Can someone tell me why? :bang:
    I think it doesn't work with win7 64bit
     
    Last edited: Jun 21, 2010
  14. Kriomag

    Kriomag New Member

    Messages:
    4
    Likes Received:
    0
    GPU:
    GF9800GT 1GB
    is there any hope for avisynth in future versions to work with cuda?
    i have A64 1 core cpu at 2.9Ghz, i cant even play 720p videos with 2x fps :( but i have 9800GT with cuda (and core avc enabled + ffdshow) but its not enough, sometimes on static scenes cpu can handle 2x fps (with help from core avc with decoding) but only for a short period of time and then it starts to drop to ~2fps :(
     
  15. spex_2

    spex_2 Member

    Messages:
    48
    Likes Received:
    6
    GPU:
    a
    gooooooooooooooooooooooood question kriomag. but i don't think so ... it would be better to use an open standard so ati and nv gpus can be used.

    cuda is not free $ and its limited to one system, not a good idea.
     

  16. Redemption80

    Redemption80 Ancient Guru

    Messages:
    18,529
    Likes Received:
    265
    GPU:
    GALAX 970/ASUS 970
    Cuda can be used with this, you just need to have CoreAVC 2.0.

    I don't see something like OpenCL being used for GPU acceleration anytime soon, if ever, so best to just hope for a player that has Cuda and Stream support.

    Splash Player should be out soon, and has support for both, but it won't be free, and we have no idea if it will be better or worse than this script.
    http://www.mirillis.com/splash.html
     
  17. neograniceni

    neograniceni Member

    Messages:
    28
    Likes Received:
    0
    GPU:
    Nvidia 9400GT 1GB
    Sure it works. I am using W7 x64, MPC-HC x86, ffdshow and CoreAVC (for CUDA), Reclock. Download some new MPC-HC build. Also download some fresh clsid ffdshow x86 build. Also try the script with or without SetMemoryMax(1280) line. Use EVR renderer in MPC-HC. Install CoreAVC with Haali media splitter, or just Haali media splitter (free), and disable MPC-HC's internal MKV splitter. If You need subtitles disable them in MPC-HC and use ffdshow's subtitle module instead (much better than MPC-HC's subtitler).

    Edit: Just found that avisynth.dll from http://avisynth.org/mediawiki/MT freezes MPC-HC on my HTPC. Works OK on my work PC, but it keeps freezing my HTPC :confused: . The version I use works OK. So You could try with this one: avisynth.dll - the original site - respect to the author.
     
    Last edited: Jul 4, 2010
  18. neograniceni

    neograniceni Member

    Messages:
    28
    Likes Received:
    0
    GPU:
    Nvidia 9400GT 1GB
    Mirillis Splash PRO is out. But is full of bugs. And Motion2 is not working as expected, movies are far from fluid, judderless and soapless. And digital sound is not working through SPDIF. Too bad for now. Hope they'll address an issues soon.
     
  19. Redemption80

    Redemption80 Ancient Guru

    Messages:
    18,529
    Likes Received:
    265
    GPU:
    GALAX 970/ASUS 970
    Working great for me, no bugs so far.
    Motion2 is working as i expected, movies are very very fluid, no judder or artifacts noticed so far, it still has the "soap" look, but that can't be avoided if people are after fluid movement, but still better than any avisynth scripts i've used.

    Best settings for me seems to be motion2, detail and light boost all on +1, creates a much more smooth and detailed image without destroying the original look.

    Not tried spdif yet, but don't use it anymore, but i would like to see support for ReClock though.

    One good and bad point, CPU Usage doen't go above 20% on 1080p files, but my GPU temp goes from 62-70c when watching a movie though:wanker:

    Edit: There are some slight issues, the free player always seem to give me judder too, and im sure this could benefit from the use of ReClock to just sync things up, it also seems to work better in CPU, rather than GPU mode, but this could be a driver, or even an Nvidia issue.
     
    Last edited: Jun 26, 2010
  20. neograniceni

    neograniceni Member

    Messages:
    28
    Likes Received:
    0
    GPU:
    Nvidia 9400GT 1GB
    Hm, strange that You are satisfied with it 'coz there are too many people at Mirillis forum with problems I was writing about. But I am glad to hear that it actually work for You. And even Mirillis team said that Motion2 is turned off in some complex scenes to avoid artefacts, and I can't imagine how this can do any good to fluid judderless motion ? On the other hand, soap effect is really not the way movies should be watched. I've really found only a few 1080p MKV movies that work OK, 720p work mostly OK. The best part is that it uses less CPU power than MVTools. Also skipping forward/backward works as it should. But for me Avisynth/MVTools with 75/90fps, MPC-HC, ffdshow processing, subtitle management through ffdvideo, reclock and all the other goodiez is way better sollution for now.
     
    Last edited: Jun 26, 2010

Share This Page