Looking forward to that update! That will be great
You are not logged in. Please login or register.
SmoothVideo Project → Posts by SubJunk
Looking forward to that update! That will be great
Cool Is there a changelog for 3.0.1?
Well my example isn't as good as MAG's one, but if you want the testing video I use it is here.
It is just a video with some scenes from different movies and TV shows that are difficult for interpolation scripts to handle, so it is useful for tweaking scripts
The part where the SSE vs GPU difference is most obvious is from 0:44 to 0:52, and that is where the screenshots from here came from
It looks like in this case MAG's source would be more useful, though, since his example is much more obvious.
They are still different with overlapping removed
Cool gif
Is it something that can be fixed/improved?
SSE:
Input = DSS2("filename")
Super = MSuper(Input, hpad=16, vpad=16, rfilter=4)
backward = MAnalyse(Super, blksize=16, searchparam=4, plevel=0, isb=true , badSAD=1000, overlap=4, search=3, dct=5, pelsearch=3)
forward = MAnalyse(Super, blksize=16, searchparam=4, plevel=0, isb=false, badSAD=1000, overlap=4, search=3, dct=5, pelsearch=3)
backward = MRecalculate(Super, backward, blksize=8, searchparam=1, overlap=2, search=3, dct=5)
forward = MRecalculate(Super, forward, blksize=8, searchparam=1, overlap=2, search=3, dct=5)
svp_flow_lib = "C:\path\libflowsse.dll"
Finest = MFinest(Input, Super)
MSmoothFps(Input, Super, backward, forward, finest=Finest, num=48000, den=1001, algo=23, ml=0, sadml=150, sadgamma=2, block=false, blend=true)
GPU:
Input = DSS2("filename")
Super = MSuper(Input, hpad=16, vpad=16, rfilter=4)
backward = MAnalyse(Super, blksize=16, searchparam=4, plevel=0, isb=true , badSAD=1000, overlap=4, search=3, dct=5, pelsearch=3)
forward = MAnalyse(Super, blksize=16, searchparam=4, plevel=0, isb=false, badSAD=1000, overlap=4, search=3, dct=5, pelsearch=3)
backward = MRecalculate(Super, backward, blksize=8, searchparam=1, overlap=2, search=3, dct=5)
forward = MRecalculate(Super, forward, blksize=8, searchparam=1, overlap=2, search=3, dct=5)
svp_flow_lib = "C:\path\libflowgpu.dll"
MSmoothFps(Input, Super, backward, forward, num=48000, den=1001, algo=23, ml=0, sadml=150, sadgamma=2, block=false, blend=true)
Ah ok, thanks for the response
Oh ok. I was comparing them and it seems that MFinest adds some nice sharpness to the frame; retains more details. I thought it would be a cool addition
Are there any plans to support MFinest in libflowgpu too?
I love the sadml parameter in MSmoothFps, it is really effective.
I wonder if it would improve quality to offer a parameter to tell sadml to ignore the edges of the screen? Like sadmledges=false
It creates an almost constant blur on the edges of the screen and doesn't seem to improve accuracy there
If I have the choice between running a script 6% faster or not, I will choose faster
It's OK if you have no interest in it
I just ran a quick comparison with x264. The results are below:
So 32-bit gave an average 15.384fps while 64-bit an average of 16.408fps, which is a 6.241% speed increase with 64-bit.
Note that this is with everything else in 32-bit mode; only x264 is 64-bit. Theoretically there would be a larger difference in speed if the program (MeGUI) and other DLLs were 64-bit.
Just for speed. 64-bit builds typically perform roughly 20% faster than the 32-bit builds so that would be great
Yes, I agree completely that this is a breath of fresh air. It is the best thing to happen to frame interpolation in years
Just wondering if there are any plans to build 64-bit versions of the MVTools2 DLLs?
Yes, I posted about that here too
Cool, I thought something like that but I wanted to check
Would it be possible in the next version to remove the AviSynth version check?
Your version causes encoding crashes for me and I encode a lot, so right now I have to keep installing different versions of AviSynth whenever I want to use SVP.
I know that your version has custom code, so offering a choice to the user to explain that would be great, like:
"Warning: Choosing not to install our custom build of AviSynth may affect your performance."
I just wrote a short review on my blog here for SVP.
I hope you guys like it and it brings more users to you
Oh also, I wonder if you have seen the newer Yushko update which isn't at that link. He was distributing it as "MVTools2 Extreme Edition".
You probably already know about it but just to make sure, the following is YFRC-06dd-01mm-2011yyyy.avsi:
# Author: RunForLife(Oleg Yushko) http://videomontazh.com.ua
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA, or visit
# http:#www.gnu.org/copyleft/gpl.html.
#LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\MvTools2\mvtools2debug.dll")
#LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\MaskTools2.0a36\mt_masktools-26.dll")
#If u feel bad with blending, u can turn it off: YFRC(OverlayType=1)
#####################################################################################################################################################################################################################################
function YFRC(clip clp_Input, int "BlockH", int "BlockV", int "OverlayType", int "MaskExpand")
{
#Yushko Frame Rate Converter 2x
#ColorSpace: YV12
#OverlayType: 0 - soft (blend), 1 - hard (SelectOdd)
clp_input = ConvertToYV12(clp_input) # script produce YV12 colorspace (3 times faster than YUY2!!!)
clp_Super = MSuper(clp_Input.blur(1), chroma=true, pel=2) # blur(1) - smooth edges for better analysing
ox = clp_Input.width()
oy = clp_Input.height()
fps_num = FrameRateNumerator(clp_input)*2 # Numerator , always 2X
fps_den = FrameRateDenominator(clp_input) # Denominator, always same as input clip
fps_num = ((fps_num==0||fps_den==0)) ? FramerateNumerator(clp_input)*2 : fps_num
fps_den = ((fps_num==0||fps_den==0)) ? FramerateDenominator(clp_input) : fps_den
MaskExpand = default(MaskExpand, 1) # 1 or 2
OverlayType = default(OverlayType, 0) # 0 - like ConvertFPS (blend); 1 - like ChangeFPS (strong);
blendSOFT = (OverlayType==0) ? clp_Input.ConvertFPS(fps_num, fps_den).SelectOdd() : DeleteFrame(clp_Input, 0)
BlockH = default(BlockH, 16) # use 8 for 320x240 (WEB); 16 for 720x576 (SD); 32 for 1280x720 (720p HD); 32 for 1920x1080 (1080p HD)
BlockV = default(BlockV, 16) # use 8 for 320x240 (WEB); 16 for 720x576 (SD); 32 for 1280x720 (720p HD); 32 for 1920x1080 (1080p HD)
blendHARD = DeleteFrame(clp_Input, 0) # SceneChange detection
bw1_vec116 = clp_Super.MAnalyse(blksize=BlockH, blksizeV=BlockV, isb = true , chroma=false, search=1, searchparam=1, truemotion=true, lambda=2000, global=true, dct=0, divide=2)
fw1_vec116 = clp_Super.MAnalyse(blksize=BlockH, blksizeV=BlockV, isb = false, chroma=false, search=1, searchparam=1, truemotion=true, lambda=2000, global=true, dct=0, divide=2)
ErrorMask16L = MMask(clp_input, bw1_vec116, kind=1)
ErrorMask16R = DeleteFrame(MMask(clp_input, fw1_vec116, kind=1), 0)
ErrorMask16 = Overlay(ErrorMask16L, ErrorMask16R, opacity=0.5, mode="Lighten")#.ColorYUV(gain_y=256)
SceneChange = MSCDetection(clp_input, bw1_vec116, thSCD2=130)
FPSconverted16 = clp_input.MSimpleFlowFps(clp_input.MSuper(), bw1_vec116, fw1_vec116, num=fps_num, den=fps_den, blend=false, mask=0) #mask=0 - doesn't matter what mode is
CircleExpand = mt_circle(radius=MaskExpand, zero=true)
CircleInpand = mt_circle(radius=1 , zero=true)
ErrorMask16 = ErrorMask16.BicubicResize(Round((Ox/BlockH)/4)*4, Round((Oy/BlockV)/4)*4).mt_expand(mode=CircleExpand).mt_inpand(mode=CircleInpand).mt_binarize(64).Blur(1).BicubicResize(ox, oy)
ClipToReturn = mt_merge(SelectOdd(FPSconverted16), blendSOFT, ErrorMask16, luma=true)
ClipToReturn = mt_merge(ClipToReturn, blendHARD, SceneChange, luma=true)
ClipToReturn = Interleave(clp_Input, ClipToReturn)
return ClipToReturn
}
#####################################################################################################################################################################################################################################
I found it to be lower quality than our scripts, but maybe there is something useful in there.
For sure I wish your project a lot of success
That's very generous of you guys, thanks a lot
Oh very cool. I was wondering what had changed about the mask Good idea
SmoothVideo Project → Posts by SubJunk
Powered by PunBB, supported by Informer Technologies, Inc.