View Full Version : HybridFuPP : new 0.84b
mf
15th February 2004, 12:51
FuPP, could you explain why you do global vars? Unexpected problems could arise.
FuPP
15th February 2004, 13:57
Here are some screenshots (for morsa... and others !) + compression test (compression reference = lanczos)
clip is dvd source, 4486 frames. Compression is mpeg2
BilinearResize(512,320) // compression ratio : 0.96
http://fupp.chez.tiscali.fr/HybridFuPP/BILINEAR.png
BicubicResize(512,320,0,0.6) // compression ratio : 0.99
http://fupp.chez.tiscali.fr/HybridFuPP/BICUBIC06.png
LanczosResize(512,320) // compression ratio : 1.0
http://fupp.chez.tiscali.fr/HybridFuPP/LANCZOS.png
hybridfUpp(512,320) // compression ratio 0.95
http://fupp.chez.tiscali.fr/HybridFuPP/HYBRID.png
FuPP
15th February 2004, 14:07
Originally posted by bond
thanks didée for pointing out the unfilter darkening!
does this high-mo/edges darkening hurt the quality? does it hurt the codec doing his job as it should? or are there any other potential problems?
I think that Didée means that mixing darker parts with normal parts in the same picture could simply be visible
what other good and fast (!) spatial smoothing (i dont do sharpening) filter can be recommended for useage?
hem... I'm afraid this is the question I raise a few posts above :D
another question are the thresholds of the edgemask: EdgeMask(0, e_th, 255, 255)
i would be interested if someone can say if the part between 0 and e_th is used for edgetreatement or not in fupps script?
and if yes, how?
values between 0 and e_th will be considered as edges. But I'm not sure I get your question...
FuPP
15th February 2004, 14:22
Hi mf !
Thanks again for your very good ideas and scripting skills. HybridFuPP was mostly a hack of Hybridresize when I began to work on it !
Originally posted by mf
FuPP, could you explain why you do global vars? Unexpected problems could arise.
It is quite strange : formerly, my sub functions did not seem to work without it. Because of your post, I've made some other test and it seems to work without global declarations now. Maybe because I use the same variable names in HybridFupp anf FuPP functions now, or a simple mistake at one moment.
What kind of unexpected problems are you talking about ?
Regards,
FuPP
bond
15th February 2004, 15:35
Originally posted by FuPP
values between 0 and e_th will be considered as edges.why are you so sure about that? i am not
in fact if your statement would be true than your 0->e_th setting would mean that all detectable edges are considered as edges, but my tests show me thats not the case...
in the masktools readme it says:
1) EdgeMask(th1=[0..255],th2=[0..255],string)
- th1: threshold under which component value is set to 0
- th2: threshold under which component value is set to the derivative
value, and above which it's set to 255
Edgemask now takes 4 thresholds (2 for luma and 2 for chroma)
11) MotionMask(clip clip, int thY1, int thY2, int thC1, int thC2, int thSD)
- If the frame isn't detected as a scenechange, it calculates for each pixel a basic 'motion', ranging from 0 ( no motion ) to 255 ( full motion ).
If this motion is under th1, the pixel is set to 0, if it is over th2, pixel is set to 255, if in between, it is set to the value of motion. ( so threshold work like EdgeMask )so to me this means that everything above the second threshold is detected as 100% sharpness (which means lanczosresize is used)
between the first and the second threshold its a some sort of "mixture" depending how strong the detected sharpness is...
for me this raises the (imho very important) question:
does it resize with lanczos between threshold 1 and 2 or not?
imo there are only two possible answers:
1) no
2) yes, it is a mixture between "soft" and "MEdgesharp", depending on the detected sharpness strength
mf
15th February 2004, 15:44
Global variables are as they're called, global for the entire AVS script and its children. You can get naming conflicts, though I think it's handled pretty well in AVS.
FuPP
15th February 2004, 17:06
Originally posted by bond
[B]why are you so sure about that? i am not
in fact if your statement would be true than your 0->e_th setting would mean that all detectable edges are considered as edges, but my tests show me thats not the case...[B]
Because I answered too quickly : values above e_th are considered as edges (and not between both threshold) :rolleyes:
In fact I can't see any difference when playing with threshold1. Did you test it ?
FuPP
PS : Could someone give me feedback about visual quality and efficiency in general ?
FuPP
15th February 2004, 18:31
download avsi b0.2 (2004/02/15) + readme available here (http://fupp.chez.tiscali.fr/HybridFuPP/HybridFupp_b0_2.zip)
right click + save target to download
bond
15th February 2004, 18:52
Originally posted by FuPP
In fact I can't see any difference when playing with threshold1. Did you test it ?yep, i tested it and imo everything between threshold1 and 2 is not detected/used as edges, meaning it doesnt make sense to use different values for thres1 and thres2
well i am asking about other peoples opinions on this issue because i am not 100% sure...
PS : Could someone give me feedback about visual quality and efficiency in generali would say it is nice :)
the main danger imo, people really have to look at, is that faces with some motion get too much blurred -> ugly results
meaning everyone beaware that M_Thr isnt too low!!!
my settings atm are:
EdgeMask(2,2,255,255,"sobel",y=3,u=1,v=1)
MotionMask(25,25,255,255,22,y=3,u=1,v=1)
i would say, over the thumb, i get with these settings little less sharpness as with lanczos-only (of course) with ~5% more compressibility (i dont sharpen with unfilter)
or the other way round i get more sharpness as with neutralbicubic-only (of course) with ~5% less compressibility
OBcecado
15th February 2004, 19:11
Hi, i am attempting to test this new script, but i got into a error that seems to be in the script.
I'm using the lastest versions of the plugins and using latest 30/1/04 avisynth sh0dan's cvs build.
I'm using the following script:
LoadPlugin("C:\avsplugins\mpeg2dec3.dll")
LoadPlugin("C:\avsplugins\masktools.dll")
LoadPlugin("C:\avsplugins\unfilter.dll")
LoadPlugin("C:\avsplugins\undot.dll")
LoadPlugin("C:\avsplugins\fluxsmooth.dll")
mpeg2source("C:\samples\t2.d2v")
hybridfupp(688, 288)
crop(20,70,698,436)
I get the following error:
(hybrv, line 58)
(hybrv, line 33)
(hybrv, line 18)
(c:\samples\t2.avs, line 7)
Thanks in advance for any help.
FuPP
15th February 2004, 19:49
the main danger imo, people really have to look at, is that faces with some motion get too much blurred -> ugly results
meaning everyone beaware that M_Thr isnt too low!!!
That is the reason why I wonder if I am not goint to remove unfilter(-5,-5), as compressibility gain is not so much.
By the way, I have tested settings about motion you describe in your post (25,25,...22) even more aggressive than default ones. So it is probably a matter of taste, or more probably of source.
About edgemask settings, yours are very, very aggressive : edges are detected everywhere. This is here surely a matter of taste ;)
Happy you find it usefull.
FuPP
FuPP
15th February 2004, 19:58
@OBcecado
Could you confirm me, please, that you use hybridFuPP.avsi v0.2 (downloaded by direct link, see posts above) and you are using masktools 1.4.9 ?
I can't reproduce your error.
FuPP
bond
15th February 2004, 20:08
Originally posted by FuPP
That is the reason why I wonder if I am not goint to remove unfilter(-5,-5), as compressibility gain is not so much.nah i wouldnt do that!
imo the most important thing in this script is motion blurring, without this its only half the fun ;)
also i think 30,30 is very conservative, not much will be blurred anyways
also i am using unfilter(-15,-15) - i mean if i dont see the details in the motion parts anyways, i can also blur more...
So it is probably a matter of taste, or more probably of source.yes it surely depends on the source
i mean i surely wouldnt use 2,2 for lotr on 1cd or so :D
OBcecado
15th February 2004, 20:10
Yes, i'm using those versions of the plugins.
Been trying some different settings but still no luck.
With that 0.2 the errors are on lines: 20 35 60.
bond
15th February 2004, 20:26
hm i am still using a script similar to the first ones (not the avsi version)
but with 0.2 i also have problems like OBcecado with the input settings which work with my other script tough (maybe the fancy debug, chroma, dering stuff is cousing problems with some resolutions?)
try a pal dvd source with
crop(2,82,716,416)
HybridFupp(640,256)
FuPP
15th February 2004, 20:40
In your case, this probably because blindpp (used for chroma smoothing + dering) needs mod16 resolutions. But OBCEcado seems to use HybridFuPP with 720x576 (cropping is done afterwards ; though this is maybe not a good idea). So... :confused:
bond
15th February 2004, 20:47
Originally posted by FuPP
In your case, this probably because blindpp (used for chroma smoothing + dering) needs mod16 resolutions.hm i dont get it, isnt 640,256 mod16? :confused:
Dreassica
15th February 2004, 20:52
640,256 is but the script uses teh blindpp before the resize it seems as i get the error as well, until i comment out the crop. which in your case isnt mod16 then.
bond
15th February 2004, 20:54
thanks ;)
Chainmax
15th February 2004, 21:15
FuPP, would it be possible to put blindPP after the resize? I'd love to try this in my current Simpsons rip, but the frame sizes I get after cropping aren't MOD16.
FuPP
15th February 2004, 21:40
@chainmax : did you try to put chroma=false and dering=false ?
I will investigate further in a few time.
FuPP
ps : this filter has not been optimized for animes, this is probably the problem :D
FuPP
15th February 2004, 23:05
new version (see post #1 for download)
b0.3 : better error management for non mod16 sources
I'm not sure this is a good idea to put blinpp after resizing, as proposed by chainmax, because it would blur too much when dering=true. Could though be ok for chroma smoothing. What is your opinion ?
Dreassica
16th February 2004, 00:02
Maybe u should increase the moderate_h/v settings on it then to compensate for it.
FuPP
16th February 2004, 01:00
New version : 0.4b (see post #1 for downloading)
- 0.4b : add parameters for both spatio-temporal and spatial filtering
changed default value for Edge detection threshold from 15 to 10
chroma smoothing is now done after resizing. Dering is still done before. Will see later...
- 0.3b : errors with non mod16 sources are better managed
- 0.2b : first downloadable version
DarkNite
16th February 2004, 10:29
Your script work has simplified my encoding life, at least as far as action movies are concerned. Thank you.
If only I could figure out that ever elusive PerfectAnime() function... :D
FuPP
16th February 2004, 12:11
Many thanks for your feedback, Darknite. Not only action movies are concerned, because of edge detection and best resizing algorithm selection.
About animes : did you try mf scripts ?
As tuning default values is quite hard, I would be grateful if people could try and play with debug=1 or debug=2 and tell me their feelings about edge and motion detection using default values (as Bond did)
Cheers,
FuPP
kempfand
16th February 2004, 14:02
I am very keen to try this script on DV-AVI, eventually using MipSmooth (instead of FluxSmooth) with different MipSmooth-settings for the 3 options (edges, motion, other parts), and leaving out the resize (although I recognize that resize can do a very good job with some types of flickering with DV-AVI's).
Kind regards,
Andreas
bond
16th February 2004, 14:11
fupp,
i saw you used lumafilter(4) in 0.4b, does this high value gave you good results in your tests? as i wrote above in my test lumafilter(1) was the closer to the source than lumafilter(2)...
btw. i talked to syskin about the unfilter darkening and he said it can (of course) badly influence the codecs performance if the difference is too strong...
i think we really should try to find an alternative spatial smoothing filter for hybridfupp!
maybe we should use mergechroma(blur(1.3)), but with higher blurring values or dnr2()...
anything wrong with these or any other suggestions?
pjotor
16th February 2004, 16:03
Originally posted by FuPP I'm not sure this is a good idea to put blinpp after resizing, as proposed by chainmax, because it would blur too much when dering=true.
This is how I do it. Is this a bad idea?
1. crop
2. lanczosresize - to a size that is a tiny bit smaller than crop values (to get mod16)
3. hybridfupp - to final size
bond
16th February 2004, 18:18
Originally posted by pjotor
Is this a bad idea?yes, this is a bad idea cause than you will resize twice
better crop in a way you get mod16
mf
16th February 2004, 19:46
*yawn* BlindPP is made for real MPEG content, not resized/cropped/whatevered video. So just run BlindPP before any cropping, and if it's not mod16 use AddBorders (only right/bottom, macroblocks start at the left-top). It isn't so important for deringing but for deblocking you want the block borders to be in the right place. Why is this an issue in the first place? For DVDrips you're better off using MPEG2Dec3's internal PP, cause it tailors to the frame quant.
FuPP
16th February 2004, 20:30
Originally posted by mf
*yawn* BlindPP is made for real MPEG content, not resized/cropped/whatevered video. So just run BlindPP before any cropping, and if it's not mod16 use AddBorders (only right/bottom, macroblocks start at the left-top). It isn't so important for deringing but for deblocking you want the block borders to be in the right place. Why is this an issue in the first place? For DVDrips you're better off using MPEG2Dec3's internal PP, cause it tailors to the frame quant.
Yes, but I only use deblocking to smooth chroma and bad block matching doesn't seem visible. It is though still efficient and enables compressibility gain.
FuPP
16th February 2004, 20:34
Originally posted by bond
fupp,
i saw you used lumafilter(4) in 0.4b, does this high value gave you good results in your tests? as i wrote above in my test lumafilter(1) was the closer to the source than lumafilter(2)...
btw. i talked to syskin about the unfilter darkening and he said it can (of course) badly influence the codecs performance if the difference is too strong...
i think we really should try to find an alternative spatial smoothing filter for hybridfupp!
maybe we should use mergechroma(blur(1.3)), but with higher blurring values or dnr2()...
anything wrong with these or any other suggestions?
Yes, on sources I have tested lumafilter(4) was better. But it's open !
About spatial filtering : why do you want to merge blured chroma, and let luma as it is ?
FuPP
FuPP
16th February 2004, 20:35
Originally posted by kempfand
I am very keen to try this script on DV-AVI, eventually using MipSmooth (instead of FluxSmooth) with different MipSmooth-settings for the 3 options
Tell me please about results !
FuPP
16th February 2004, 20:41
I was wondering about creating presets (something like quality = low, medium, high, very high). I was also wondering about enabling resizing algorithm choice for parts involving no motion nor edges.
What are your opinions ?
FuPP
bond
16th February 2004, 20:42
Originally posted by FuPP
About spatial filtering : why do you want to merge blured chroma, and let luma as it is ?because mergechroma(blur()) is very popular, but my tests show that it isnt usable for strong bluring anyways
FuPP
16th February 2004, 20:54
Originally posted by bond
because mergechroma(blur()) is very popular
Yes, but it is used the way I use blindpp(quant=16, cpu2="ooxxox", moderate_h=10, moderate_v=20), to smooth chroma (please mf, don't hit me ;) ), though I think that blur() would be less efficient.
I did not test that intensively though, but I will. Could be more "in the standards" than blindpp.
FuPP
FuPP
17th February 2004, 02:17
New version (see post #1 for download)
- 0.5b : added presets (low, medium, high, high2)
changed defaults for better quality
changed spatio-temporal filter position in the chain
FuPP
wh00t
18th February 2004, 00:59
sorry in advance if my question might be foolish or sth, but i'm trying to use fupp's script on one of my avi's and the result is kind of not-smooth-at-all (looks like dropped frames..although audio is clean/smooth) when testing the avs with wmp 6.4 aswell as when converting it into a fake-avi using makeavis or vfapi. so my question(s) would be:
- is it possible that it might be caused by low system resources due to those filtering etc. .. so that it would be turn out fine after encoding
into mpg-2 in the end
or
- could it be a script error, so that i shouldn't bother encoding it using current settings
script looks like this:
LoadPlugIn("..\MPEG2Dec3.dll")
LoadPlugIn("..\undot.dll")
LoadPlugIn("..\unfilter.dll")
LoadPlugIn("..\fluxsmooth.dll")
LoadPlugIn("..\MaskTools.dll")
AVISource("..\some.avi")
Hybridfupp(480,480,preset="high")
converttoyuy2()
Undot()
any help would be appreciated. thanks
ps.
and yes, i should have all required versions along with proper links in the script
FuPP
18th February 2004, 01:26
Hmmm. Could ask you about your system, but I am not convinced this is the problem. Could you tell us more about your source (type, size, and so on) ?
Pentium 90 could though be a problem...
FuPP !
wh00t
18th February 2004, 01:39
my system is:
amd 1.4ghz (thunderbird)
512MB SDRAM
w2k-sp4 professional
..
source (size: 173mb) is:
vid:
xvid @ 23.97 fps
512x384 (1.33:1) [=4:3] resolution
876 kb/s, Qf 0.186 bits/pixel
audio:
MPEG-1 Layer 3 @ 127 kb/s, monophonic VBR (48000Hz)
xvid-codec installed would be v1 beta2
hope that helps
oh.. and btw.
AviFileSource("..\some.avi")
LanczosResize(480,480)
ConvertToYUY2()
works perfect/smooth
DarkNite
18th February 2004, 02:05
Well, wh00t, I don't think there are many systems out there that could run that filterchain in realtime (which is what you're attempting to do with those methods of previewing). Encode a test clip, (using the Trim() function if you have to) and then check playback of encoded mpeg file. I think you'll see it's just a matter of way too much happening in the filterchain for your system to play it back to you in realtime.
BTW, FuPP, yes I've tried/use most of mf's work, and I'm still anxiously awaiting his AddRainbows() - could be named Trigun() imho - function. ;)
/me goes back to looking for PerfectAnime()
mf
18th February 2004, 13:31
Originally posted by DarkNite
/me goes back to looking for PerfectAnime()
It is possible, using some smart SSIM functions and a two-pass system. I'd say go ahead and script it. I won't do it cause it's way too ambitious and I don't even need it.
Oh, and a thing to ponder about for FuPP and bond, if Unfilter's convolution darkens the image, would it not also cause chroma darkening? LumaFilter() won't do then.. :sly:
bond
18th February 2004, 13:37
Originally posted by mf
Oh, and a thing to ponder about for FuPP and bond, if Unfilter's convolution darkens the image, would it not also cause chroma darkening? LumaFilter() won't do then..hm good question :mad:
but i already bugged trbarry to have a look if he can resolve this darkening issue in unfilter anyways, cause this would surely be the best option
FuPP
18th February 2004, 14:01
I even did not know that unfilter darkened something 2 days ago. So don't ask me about chroma !
If it is a rounding problem, and if chroma is concerned, picture would be more red or more green I think. So maybe chroma is ok.
mf
18th February 2004, 15:12
Even the chroma is not hard to fix ;). Just use:
i = last
p = 4
y = i.Greyscale().LumaFilter(p)
u = i.UToY().LumaFilter(p)
v = i.VToY().LumaFilter(p)
YToUV(u, v, y)
You can replace p = 4 with the lumafilter value that works for you. And you're right that darkening chroma would shift it towards green, for U is G<->B and V is G<->R.
alky
18th February 2004, 15:59
i capture analog tv usinf hauppauge 250 and recode to divx for storage... i made some comparison shots:
http://web00020.ipax.tk/video
since the captured mpegs arent that sharp every bit of detail is important to me and the still tests look pretty good... i ll do some video test encoding with this script in the next days....
Didée
18th February 2004, 16:45
alky:
While you're at testing, uuuh... *cough* (http://forum.doom9.org/showthread.php?s=&threadid=70916) ... can't speak no more now, more to come soon.
Going to search my cough syrup now. :)
- Didée
Yoda900
19th February 2004, 22:09
for somereason none of the presets work, only thing i can use is hybridFupp(448, 320). I have all the necessary filters needed and i have loaded them into the script but when i try to use any presets vdub crashes?:confused: Is this a bug or am i doing something wrong?
FuPP
19th February 2004, 22:38
Really don't know at this moment. All I can say is that it works ok for some other people, but I guess it does not help you so much. What I can deal with you is to wait next version (brings quality improvements and should come very soon). We will then have a look on this basis.
Regards,
FuPP
PS : did you try with virtualdub or virtualdubmod? Because I suspect instability with this last one (I use it a lot to test and have crashes, time to time).
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.