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. travolter

    travolter Member

    Messages:
    11
    Likes Received:
    0
    GPU:
    GF7
    I have a problem with the 1080 (VC-1) codec used in porn videos.
    I tried with M$ and ffdshow VC-1 decoders but its slow in comparison with h264 decoders like coreavc.

    Anyone know an optimized and fast VC-1 decoder?

    Codecs developers dont want to support this format.. and they dont know that most of the porn websites uses this format for releases cause everyone have the m$ codecs installed by default


    btw.. before apply the framedoubling script I resize first to 1280x720

    There is other previous processing that I can apply to save cpu and avoid frames dropped?
     
  2. sanel

    sanel Member Guru

    Messages:
    160
    Likes Received:
    0
    GPU:
    6850 Cycl 1gb @ 940, 1200
    you could try using or not using resize since it had à very big impact on speed.
     
  3. widezu69

    widezu69 Member

    Messages:
    40
    Likes Received:
    0
    GPU:
    GTX 780m 4GB
    Use handbrake to re-encode it into h.264, you can also resize it during the encode and have a decent 1280x720 video to play using coreavc without the need to resize.
     
  4. Zer0K3wL

    Zer0K3wL Banned

    Messages:
    3,073
    Likes Received:
    0
    GPU:
    gtx 480 850/1700/2000 h2o
    anyone known how to fix this

    [​IMG]

    mostly only happends with powerfull scripts.

    nvm stopped doing it as soon i removed SetMemoryMax(1280)
     
    Last edited: May 11, 2010

  5. Psythik

    Psythik New Member

    Messages:
    5
    Likes Received:
    0
    GPU:
    HIS 5770 1GB
    I am practically pulling my hair out trying to get this to work in Win7 x64! No matter what I try, I always get "Script error: there is no function named 'SetMtmode' (ffdshow_filter_avisynth_script, line 2)".

    I've read this entire thread multiple times over and tried every suggestion in it, and I've triple-checked that I did everything right, but I simply cannot get past that script error! This is driving me insane!
     
    Last edited: May 12, 2010
  6. widezu69

    widezu69 Member

    Messages:
    40
    Likes Received:
    0
    GPU:
    GTX 780m 4GB
  7. Aix

    Aix Member

    Messages:
    33
    Likes Received:
    0
    GPU:
    GTX 580 3GB SLI
    I read the guide, since I'm about to try this out on my HTPC, but does it say that I can just use an Nvidia card + CUDA to do all this? I've got a hexcore system ready to go, lol.
     
  8. widezu69

    widezu69 Member

    Messages:
    40
    Likes Received:
    0
    GPU:
    GTX 780m 4GB
    It says you can but you don't have to. you have a hex core so its plenty enough power. Cuda is for people who want to squeeze as much as they can for their cpu for the scrip only and cuda allows the GFX to do the decoding.
    Be sure to change SetMTMode(5,4) to SetMTMode(5,12)
     
  9. Psythik

    Psythik New Member

    Messages:
    5
    Likes Received:
    0
    GPU:
    HIS 5770 1GB
    That's the guide I followed. I've already started from scratch twice now. Is there another free program that can do frame interpolation?
     
  10. soulburner

    soulburner Member

    Messages:
    12
    Likes Received:
    0
    GPU:
    Asus R9 290 DirectCU II
    Psythik, I had the same issue with "script errors". The trick is to add:
    Code:
    LoadPlugin("c:\insert full path here\mvtools2.dll")
    at the begining of the script in ffdshow. Works fine afterwards. Never had this problem on an XP machine, so it may be Windows 7 doing something differently, causing AviSynth to get confused about its own plugins folder ;)
     
    Last edited: May 16, 2010

  11. CyberTod

    CyberTod Member

    Messages:
    16
    Likes Received:
    0
    GPU:
    Asus Strix GTX 960
    Actually I think @Psythik is missing MT (multi-threading plug-in). This is described in the original post on the first page :

    5. Download MT (multi-threading plug-in) for AVISynth: http://avisynth.org/mediawiki/MT.
    Put MT.dll also in the Avisynth\plugins folder. Avisynth.dll has to replace the dll in the c:\windows\system32 folder or c:\windows\syswow64.

    Later guides from @widezu69 don't include this step and without MT there is no function SetMtmode and it gives him error on line 2 of the script.
     
  12. widezu69

    widezu69 Member

    Messages:
    40
    Likes Received:
    0
    GPU:
    GTX 780m 4GB
    @Psythik, Hi there sorry, my guide is a bit misleading, and has been updated here's what you do:
    The link CyberTod posted is a bit outdated, here is the newest version: download this package:

    http://www.mediafire.com/file/nnbngfccnj2/avisynth258MT.7z

    There will be a "avisynth.dll" file there, put this in your system32 directory or sysWOW64 if you have 64 bit, you will be prompted to replace, do so.
    Then there is a folder in the 7z file with all other dll's. Place the included dll's in Program Files/Avisynth/plugins or Program Files (x86)/Avisynth/plugins if you have 64 bit.
    You will be again prompted to replace, do so.

    Play a video again hopefully all is hunky dory. Sorry for the confusion.
     
    Last edited: May 19, 2010
  13. enoch

    enoch Banned

    Messages:
    577
    Likes Received:
    0
    GPU:
    Powercolor HD4870
    will having ati stream effect this?
     
  14. widezu69

    widezu69 Member

    Messages:
    40
    Likes Received:
    0
    GPU:
    GTX 780m 4GB
    Not at all, so far, there is no hardware decoder software for ati so just install ffdshow and proceed.
     
  15. spex_2

    spex_2 Guest

    Messages:
    48
    Likes Received:
    6
    GPU:
    a
    we do have a framedrop houston!!!!

    first of all i wanna say hi to all of you.

    my eng isn't the best, sry for that. - okay, here is what i got.

    many mkv videos, like the example fileinfos below causing a huge slowdown if using any of the dejudder scipts.
    beginning with not reaching the double framerate after start of the video. and after a fews seconds of playtime, (often not always / depending on resolution) it results in a total downfall to 1~2 fps, also the cpu usage is droping to the ground.

    this happens also if we are using the 60fps system from widezu69. the framerate stucks @ about 55fps then async then drop down.

    if we set widezu69`s script to only doubling ( 23,9... to 48 ) it will stuck @ about 38fps then async then drop down.

    also with N0sferatU`s script -> doubling ( 23,9... to 48 ) it will stuck @ about 38fps then async then drop down.

    we can replicate this problem on 3 non identical systems with about the same hw power but different system config:

    always using corevac,mpchc,ffdshow,avisynth ... as seen in tutorial.

    system 1 htpc:

    Code:
    amd phenom II x4 945 @3.2 ghz
    4gb 800mhz ddr2 cl4
    gtx 260
    sata 2 raid 0 / full tc encryption
    os win 7x64
    
    error apears with:
    
    
    using scipt & ddl`s N0sferatU -> http://forums.guru3d.com/showpost.php?p=3345007&postcount=105
    
    using script & ddl`s widezu69 -> http://forums.guru3d.com/showpost.php?p=3557786&postcount=199
    system 2 gaming pc:

    Code:
    amd phenom II x4 965 be @4.0 ghz
    4gb 1333mhz ddr3 cl7
    gtx260
    sata raid 0 / full tc encryption
    win 7 x64
    
    error apears with:
    
    using scipt & ddl`s N0sferatU -> http://forums.guru3d.com/showpost.php?p=3345007&postcount=105
    
    using script & ddl`s widezu69 -> http://forums.guru3d.com/showpost.php?p=3557786&postcount=199
    system 3 workstation:

    Code:
    intel i7-960 x4 @3.8 ghz
    6gb 13333mhz ddr3 cl7
    gtx285
    sata raid 10 / no tc encryption
    win 7 x64
    
    error apears with:
    
    using scipt & ddl`s N0sferatU -> http://forums.guru3d.com/showpost.php?p=3345007&postcount=105
    
    using script & ddl`s widezu69 -> http://forums.guru3d.com/showpost.php?p=3557786&postcount=199



    example videos which causing the problem:

    Code:
    noname_1_1080p.mkv
    Format                           : Matroska
    Overall bit rate                 : 6 912 Kbps
    Writing application              : gdsmux
    Writing library                  : Haali DirectShow Matroska Muxer 1.9.42.1
    
    Video
    ID                               : 1
    Format                           : AVC
    Format/Info                      : Advanced Video Codec
    Format profile                   : High@L4.1
    Format settings, CABAC           : Yes
    Format settings, ReFrames        : 5 frames
    Muxing mode                      : Container profile=Unknown@4.1
    Codec ID                         : V_MPEG4/ISO/AVC
    Bit rate                         : 5 265 Kbps
    Width                            : 1 920 pixels
    Height                           : 1 080 pixels
    Display aspect ratio             : 16:9
    Frame rate mode                  : Constant
    Frame rate                       : 23.976 fps
    Resolution                       : 8 bits
    Colorimetry                      : 4:2:0
    Scan type                        : Progressive
    Bits/(Pixel*Frame)               : 0.106
    Writing library                  : x264 core 80 r1376 3feaec2
    Encoding settings                : cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x133 / me=umh / subme=7 / psy=1 / psy_rd=1.0:0.0 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / sliced_threads=0 / nr=0 / decimate=1 / mbaff=0 / constrained_intra=0 / bframes=3 / b_pyramid=0 / b_adapt=1 / b_bias=0 / direct=1 / wpredb=1 / wpredp=2 / keyint=250 / keyint_min=25 / scenecut=40 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=20.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
    
    Code:
    noname_2_720p.mkv
    Format                           : Matroska
    Overall bit rate                 : 6 101 Kbps
    Writing application              : gdsmux
    Writing library                  : Haali DirectShow Matroska Muxer 1.9.42.1
    
    Video
    ID                               : 1
    Format                           : AVC
    Format/Info                      : Advanced Video Codec
    Format profile                   : Main@L5.1
    Format settings, CABAC           : Yes
    Format settings, ReFrames        : 8 frames
    Muxing mode                      : Container profile=Unknown@5.1
    Codec ID                         : V_MPEG4/ISO/AVC
    Bit rate                         : 5 531 Kbps
    Nominal bit rate                 : 5 652 Kbps
    Width                            : 1 280 pixels
    Height                           : 544 pixels
    Display aspect ratio             : 2.35:1
    Frame rate mode                  : Constant
    Frame rate                       : 23.976 fps
    Resolution                       : 8 bits
    Colorimetry                      : 4:2:0
    Scan type                        : Progressive
    Bits/(Pixel*Frame)               : 0.331
    Writing library                  : x264 core 55 svn-656
    Encoding settings                : cabac=1 / ref=5 / deblock=1:-3:-2 / analyse=0x1:0 / me=umh / subme=7 / brdo=1 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=0 / cqm=0 / deadzone=21,11 / chroma_qp_offset=0 / threads=2 / nr=0 / decimate=1 / mbaff=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / wpredb=1 / bime=1 / keyint=250 / keyint_min=25 / scenecut=40(pre) / rc=2pass / bitrate=5652 / ratetol=1.0 / rceq='blurCplx^(1-qComp)' / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / pb_ratio=1.30
    

    and here we have files with about the same size, resolution and bitrate which are working perfectly with the skript:

    Code:
    unknown_working_file_1_1080p.mkv
    Format                           : Matroska
    Overall bit rate                 : 11.1 Mbps
    Writing application              : mkvmerge v3.3.0
    Writing library                  : libebml v0.8.0 + libmatroska v0.9.0
    
    Video
    ID                               : 1
    Format                           : AVC
    Format/Info                      : Advanced Video Codec
    Format profile                   : High@L4.1
    Format settings, CABAC           : Yes
    Format settings, ReFrames        : 4 frames
    Muxing mode                      : Container profile=Unknown@4.1
    Codec ID                         : V_MPEG4/ISO/AVC
    Bit rate                         : 7 905 Kbps
    Nominal bit rate                 : 8 111 Kbps
    Width                            : 1 920 pixels
    Height                           : 1 040 pixels
    Display aspect ratio             : 16:9
    Frame rate                       : 23.976 fps
    Resolution                       : 8 bits
    Colorimetry                      : 4:2:0
    Scan type                        : Progressive
    Bits/(Pixel*Frame)               : 0.165
    Writing library                  : x264 core 94 r1570 d9db8b3
    Encoding settings                : cabac=1 / ref=4 / deblock=1:-1:-1 / analyse=0x3:0x113 / me=umh / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=6 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / wpredb=1 / wpredp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=8111 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / vbv_maxrate=50000 / vbv_bufsize=50000 / ip_ratio=1.40 / aq=1:1.00 / nal_hrd=none
    
    Code:
    unknown_working_file_2_1080p.mkv
    Format                           : Matroska
    Overall bit rate                 : 11.1 Mbps
    Writing application              : mkvmerge v3.3.0
    Writing library                  : libebml v0.8.0 + libmatroska v0.9.0
    
    Video
    ID                               : 1
    Format                           : AVC
    Format/Info                      : Advanced Video Codec
    Format profile                   : High@L4.1
    Format settings, CABAC           : Yes
    Format settings, ReFrames        : 4 frames
    Muxing mode                      : Container profile=Unknown@4.1
    Codec ID                         : V_MPEG4/ISO/AVC
    Bit rate                         : 9 341 Kbps
    Width                            : 1 920 pixels
    Height                           : 1 080 pixels
    Display aspect ratio             : 16:9
    Frame rate                       : 23.976 fps
    Resolution                       : 8 bits
    Colorimetry                      : 4:2:0
    Scan type                        : Progressive
    Bits/(Pixel*Frame)               : 0.188
    Writing library                  : x264 core 92 r1523 25ca5b0
    Encoding settings                : cabac=1 / ref=4 / deblock=1:0:0 / analyse=0x3:0x133 / me=umh / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-2 / threads=6 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / wpredb=1 / wpredp=0 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=30 / rc=crf / mbtree=1 / crf=20.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
    

    used scripts on all the systems:

    Code:
    script_1: widezu69
    
    SetMemoryMax(1280)
    SetMTMode(5,8)
    ffdShow_source()
    SetMTMode(2)
    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, badrange=(-24))
    forward_1=MAnalyse(super, chroma=false, isb=false, blksize=32, blksizev=32, searchparam=3, plevel=0, search=3, badrange=(-24))
    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=FramerateNumerator(last)*2, den=FramerateDenominator(last)*1, mode=0)
    SetMTMode(1)
    GetMTMode(false) > 0 ? distributor() : last
    Code:
    script_2: widezu69
    
    SetMemoryMax(1280)
    SetMTMode(5,8)
    ffdShow_source()
    SetMTMode(2)
    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, badrange=(-24))
    forward_1=MAnalyse(super, chroma=false, isb=false, blksize=32, blksizev=32, searchparam=3, plevel=0, search=3, badrange=(-24))
    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
    Code:
    script_3: widezu69
    
    SetMemoryMax(1280)
    SetMTMode(5,8)
    ffdShow_source()
    SetMTMode(2)
    super=MSuper(pel=1, hpad=0, vpad=0)
    backward_1=MAnalyse(super, chroma=false, isb=true, blksize=16, blksizev=16, searchparam=3, plevel=0, search=3, badrange=(-24))
    forward_1=MAnalyse(super, chroma=false, isb=false, blksize=16, blksizev=16, searchparam=3, plevel=0, 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)
    MBlockFps(super, backward_2, forward_2, num=FramerateNumerator(last)*2, den=FramerateDenominator(last)*1, mode=0)
    SetMTMode(1)
    GetMTMode(false) > 0 ? distributor() : last
    Code:
    script_4: widezu69
    
    SetMemoryMax(1280)
    SetMTMode(5,4)
    ffdShow_source()
    SetMTMode(2)
    super=MSuper(pel=1, hpad=0, vpad=0)
    backward_1=MAnalyse(super, chroma=false, isb=true, blksize=16, blksizev=16, searchparam=3, plevel=0, search=3, badrange=(-24))
    forward_1=MAnalyse(super, chroma=false, isb=false, blksize=16, blksizev=16, searchparam=3, plevel=0, 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)
    MBlockFps(super, backward_2, forward_2, num=60, den=1, mode=0)
    SetMTMode(1)
    GetMTMode(false) > 0 ? distributor() : last
    Code:
    script_5: N0sferatU
    
    setMTMode(2,8)
    source=ffdshow_source()
    super = source.MSuper(pel=1,hpad=16,vpad=16)
    backward_vec = MAnalyse(super, blksize=16, isb =true, chroma=false, searchparam=1)
    forward_vec = MAnalyse(super, blksize=16, isb =false, chroma=false, searchparam=1)
    source.MFlowFps(super, backward_vec, forward_vec, num=2*FramerateNumerator(source), \
    den=FramerateDenominator(source), mask=0, ml=53)
    distributor()
    Code:
    script_6: N0sferatU
    
    setMTMode(2,8)
    source=ffdshow_source()
    super = source.MSuper(pel=1,hpad=32,vpad=32)
    backward_vec = MAnalyse(super, blksize=32, isb =true, chroma=false, searchparam=1)
    forward_vec = MAnalyse(super, blksize=32, isb =false, chroma=false, searchparam=1)
    source.MFlowFps(super, backward_vec, forward_vec, num=2*FramerateNumerator(source), \
    den=FramerateDenominator(source), mask=0, ml=53)
    distributor()
    Code:
    script_7: N0sferatU
    
    setMTMode(2,8)
    source=ffdshow_source()
    super = source.MSuper(pel=1,hpad=32,vpad=32)
    backward_vec = MAnalyse(super, blksize=32, isb =true, chroma=false, searchparam=1)
    forward_vec = MAnalyse(super, blksize=32, isb =false, chroma=false, searchparam=1)
    source.MFlowFps(super, backward_vec, forward_vec, num=2*FramerateNumerator(source), \
    den=FramerateDenominator(source), mask=1, ml=53)
    distributor()

    finaly we hope you can tell us what the problem is and how we can fix it. because watching an movie in hd with 60fps on a 52" screen is so awesome, even @ the cinema its not so flowy :D
     
    Last edited: May 28, 2010

  16. widezu69

    widezu69 Member

    Messages:
    40
    Likes Received:
    0
    GPU:
    GTX 780m 4GB
    Try this one:

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

    Notice that this one has no SetMemoryMax which is what could be bottlenecking.
     
  17. spex_2

    spex_2 Guest

    Messages:
    48
    Likes Received:
    6
    GPU:
    a
    no change ... sry to say.

    same problem as described above on all 3 systems. it seems that some older or special encoded streams will cause this problem. removing the ram lock doesn't make any difference.

    i re-encoded one of the videos shown above and then they issue was gone. but i didn't changed resolution, size, codec or audiostream.

    i am not so much into encoding, but i think the problem is the encoding type not the script. but hell .. do we now need to re-encode all the files just bcus of an older version of the codec ... doh !?!?
     
  18. Snigel

    Snigel New Member

    Messages:
    8
    Likes Received:
    0
    GPU:
    285 GTX + 8800 GTS 512
    This is really great! Thanks for all your work.

    Just wanted to say that using neograniceni's script gives me no artifacts at all during fast transitions and scene changes in the 720p material I have, something that latest version of widezu69's script does.

    I haven't found out why yet, but I post both the versions I'm using and maybe some of you can recognize what the problem is. I should tell that widezu69's script feels a tad smoother, but the transistion artifact aren't worth it imo.

    SetMemoryMax(1280)
    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=3, plevel=0, search=3, badrange=(-24))
    forward_1=MAnalyse(super, chroma=false, isb=false, blksize=16, blksizev=16, searchparam=3, plevel=0, search=3, badrange=(-24))
    backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=16, blksizev=16, searchparam=2, search=3)
    forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=16, blksizev=16, searchparam=2, search=3)
    backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=8, blksizev=8, searchparam=1, search=3)
    forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=8, blksizev=8, searchparam=1, search=3)
    MBlockFps(super, backward_2, forward_2,num=60, den=1, mode=0)
    SetMTMode(1)
    GetMTMode(false) > 0 ? distributor() : last


    SetMemoryMax(1280)
    SetMTMode(2,16)
    ffdShow_source()
    Width <= 1400 ? Eval("""
    super=MSuper(pel=2, hpad=8, vpad=8,rfilter=3,levels=0)
    backward_vec1=MAnalyse(super,chroma=false, isb=true, blksize=16, blksizev=16, searchparam=0, plevel=0,levels=0,search = 5)
    forward_vec1=MAnalyse(super,chroma=false, isb=false, blksize=16, blksizev=16, searchparam=0, plevel=0,levels=0,search = 5)
    backward_re = MRecalculate(super,chroma=false, backward_vec1,blksize=8, blksizev=8, thSAD=200, searchparam=0,search = 5)
    forward_re = MRecalculate(super,chroma=false, forward_vec1,blksize=8, blksizev=8, thSAD=200, searchparam=0,search = 5)
    Framerate == 50 || Framerate == 75 ||Framerate <= 28 ? MBlockFps(super,backward_re, forward_re, num=75, den=1, mode=2) : last
    (Framerate > 28 && Framerate <=30) || Framerate == 60 ? MBlockFps(super,backward_re, forward_re, num=60, den=1, mode=2) : last
    distributor()
    """): last
    Width > 1400 ? Eval("""
    super=MSuper(pel=2, hpad=8, vpad=8,rfilter=3,levels=0)
    backward_vec1=MAnalyse(super,chroma=false, isb=true, blksize=16, blksizev=16, searchparam=0, plevel=0,levels=0,search = 5)
    forward_vec1=MAnalyse(super,chroma=false, isb=false, blksize=16, blksizev=16, searchparam=0, plevel=0,levels=0,search = 5)
    backward_re = MRecalculate(super,chroma=false, backward_vec1,blksize=8, blksizev=8, thSAD=200, searchparam=0,search = 5)
    forward_re = MRecalculate(super,chroma=false, forward_vec1,blksize=8, blksizev=8, thSAD=200, searchparam=0,search = 5)
    Framerate == 50 || Framerate == 75 ||Framerate <= 28 ? MBlockFps(super,backward_re, forward_re, num=75, den=1, mode=0) : last
    (Framerate > 28 && Framerate <=30) || Framerate == 60 ? MBlockFps(super,backward_re, forward_re, num=60, den=1, mode=0) : last
    distributor()
    """): last
     
  19. neograniceni

    neograniceni Member

    Messages:
    28
    Likes Received:
    0
    GPU:
    Nvidia 9400GT 1GB
    I think more frames, more precise picture, less artefacts, even less if You eject some recalculated frames. More judder, more cinema look, but less fluid. So You need some proper compromised frame arrangement to eliminate jerkyness :) That was the point I got the idea from. And, as You allready experienced, the result is less artefacts, for me worth of i7 860 purchase :) Actually there are still some little skipping issues during some pannings/scrollings, but it's OK compared to classic 24fps/24Hz judder, artefacts You got in equal framerate/refresh ratio or soap effect You got from the same framerate/refresh ratio.

    Edit:

    Just as some additional explanation for people who really want to mess with my script: it is is optimized for (HD) movies and 50Hz displays. 23.976/24FPS movies (acutally anything below and equal to 28fps, and 50fps video) is interpolated to 75fps. ~30/60fps videos (such as some NTSC TV shows/concerts/home video) are displayed at 60fps, and for this to work without frame skipping You need to set Your display to 60Hz. As I mentioned somewhere before, I am using MPC-HC as my standard HTPC video player which has an useful feature to switch automatically between refresh rates/resolutions according to detected original video framerate. You can modify the script to watch everything at 60Hz display. But it requires really really fast CPU 'coz you need to set script to interpolate video to 90fps instead of 75fps. So, in practice, for 60Hz screens the line

    Framerate == 50 || Framerate == 75 ||Framerate <= 28 ? MBlockFps(super,backward_re, forward_re, num=75, den=1, mode=2) : last

    should looks like

    Framerate == 60 || Framerate == 90 ||Framerate <= 28 ? MBlockFps(super,backward_re, forward_re, num=90, den=1, mode=2) : last

    mode=2 should also be changed to mode=0 for 1080p videos due to insane CPU requirements in case of 1080p resolution videos.
     
    Last edited: Jun 5, 2010
  20. widezu69

    widezu69 Member

    Messages:
    40
    Likes Received:
    0
    GPU:
    GTX 780m 4GB
    Neo's script is optimised for slightly less fluid movement and therefore the compromise is that the artefacts are reduced. Keep his script if you are ok with a little film judder.
    If you want to have the smoothest motion, try the next two scripts:
    This one is optimised for best smoothness with some artefacts.

    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

    Both these scripts maintain a 60fps. If you want some film judder, use Neo's scripts. These are optimised for smoothness, you will still get that soap opera effect using these scripts. I've gotten used to it and don't notice but its personal preference.
     
    Last edited: Jun 11, 2010

Share This Page