Something similar could be implemented into VLC with GPU acceleration? Coz the below works for me, with my AMD 4400+ x2, but only on SD video... It is quite process intensive, but im betting a well made VLC motion interpolation implementation will work better. I have been using is Windows Media Player, K-Lite mega codec pack, MVTools version 2, Avisynth 2.5.8 and MT for Avisynth 2.5.8.
Avisynth 2.5.8 (
http://sourceforge.net/projects/avisynth2/files/) *update working link*
MT for Avisynth 2.5.8 (
http://www.mediafire.com/?zy2xm2ejvzg) *update working link*
ffdshow (
http://www.free-codecs.com/FFDshow_download.htm) or K-Lite mega (
http://www.free-codecs.com/download/K_L ... c_Pack.htm)
MVTools version 2 (
http://avisynth.org.ru/mvtools/mvtools2.html#version2)
The following is only a graphical example, but would love to see this in VLC...
1. Place MVtools2 into the Avisynth/plugins folder.
2. Place MT.dll into the Avisynth/plugins folder. MT.dll is for people who can multithread.
3. The avisynth.dll is then placed into the Windows/system32 folder.
4. Enable avisynth in ffdshow settings. Uncheck the RGB24 and RGB32 checkboxes. Uncheck add ffdshow video source.
5. Paste one of the following scripts into the script window.
--------------------------------------------------------------------------------------------------------------
Script for DUAL-CORE processors (Buffer back 0, Buffer ahead 8):
--------------------------------------------------------------------------------------------------------------
SetMemoryMax(1080)
SetMTMode(3,4)
ffdShow_source()
SetMTMode(2)
#change pel=1 to pel=2 if you have enough power left; however max CPU load should not exceed 75%;
super=MSuper(pel=1, hpad=16, vpad=8)
#change searchparam=1 to 2 or 3 if you have no artifacts; The higher the number, the smoother it is;
backward_1=MAnalyse(super, chroma=false, isb=true, blksize=32, blksizev=16, searchparam=1, search=3, badrange=(-24))
forward_1=MAnalyse(super, chroma=false, isb=false, blksize=32, blksizev=16, searchparam=1, search=3, badrange=(-24))
backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=16, blksizev=8, searchparam=1, search=3)
forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=16, blksizev=8, searchparam=1, search=3)
MBlockFps(super, backward_2, forward_2, num=FramerateNumerator(last)*2, den=FramerateDenominator(last)*1, mode=2)
SetMTMode(1)
GetMTMode(false) > 0 ? distributor() : last
--------------------------------------------------------------------------------------------------------------
Script for QUAD-CORE processors (Buffer back 0, Buffer ahead 12):
--------------------------------------------------------------------------------------------------------------
SetMemoryMax(1080)
SetMTMode(3,8)
ffdShow_source()
SetMTMode(2)
#change pel=1 to pel=2 if you have enough power left; however max CPU load should not exceed 75%;
super=MSuper(pel=1, hpad=16, vpad=8)
#change searchparam=1 to 2 or 3 if you have no artifacts; The higher the number, the smoother it is;
backward_1=MAnalyse(super, chroma=false, isb=true, blksize=32, blksizev=16, searchparam=1, search=3, badrange=(-24))
forward_1=MAnalyse(super, chroma=false, isb=false, blksize=32, blksizev=16, searchparam=1, search=3, badrange=(-24))
backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=16, blksizev=8, searchparam=1, search=3)
forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=16, blksizev=8, searchparam=1, search=3)
MBlockFps(super, backward_2, forward_2, num=FramerateNumerator(last)*2, den=FramerateDenominator(last)*1, mode=2)
SetMTMode(1)
GetMTMode(false) > 0 ? distributor() : last
--------------------------------------------------------------------------------------------------------------
Adjustment:
If you want to watch all movies in 60fps or 50fps (or whatever your Monitor's Hz rate is) here is what you have to do:
To get 60 fps
change
MBlockFps(super, backward_2, forward_2, num=FramerateNumerator(last)*2, den=FramerateDenominator(last)*1, mode=2)
to:
MBlockFps(super, backward_2, forward_2, num=60, den=1, mode=2)
To get 50 fps
change
MBlockFps(super, backward_2, forward_2, num=FramerateNumerator(last)*2, den=FramerateDenominator(last)*1, mode=2)
to:
MBlockFps(super, backward_2, forward_2, num=50, den=1, mode=2)
Cant remember all sources but main one was:
http://www.avsforum.com/avs-vb/showthread.php?t=1025800