View Full Version : HybridFuPP 0.991b (06/19/2009)
FuPP
27th April 2009, 14:25
HybridFuPP 0.991b (http://rapidgator.net/file/45193528/HybridFuPP_0.991b.zip.html) <- download
Main improvements since 0.98a :
- 3 modes are now available for main denoising, calling Deen, MDegrain or FFT3DFiler (see the doc)
- It is now possible to use motion compensation whatever denoiser you decide to use. It is of course true when using internal modes that call Deen (D_Mode = 1), MDegrain (D_Mode = 2) or Fft3DFilter (D_Mode=3). But it is even possible to use any temporal or spatio-temporal denoiser with HybridFuPP, using N1 or N2 parameters (see section 'Advanced Parameters'), and get it motion-compensated. In all cases, you will be able to set temporal radius for motion compensation computation, using M_TRadius parameter.
- Miscellaneous Improvements for edges, dark scenes and skin processing
Changes from 0.99a :
- Fixed filtering strength when D_Mode = 3 : parameter S_Str was not taken into account
- Valid range of values for Enh_Str parameter is now checked
- Bl_Size value is now displayed when using Show = ''P''
- Some corrections on the doc (and french doc has been completely updated)
see Readme for complete history.
This Avisynth script allows both resizing and filtering of your videos.
Distinct filters can be applied on different parts of a same picture (edges, static areas, motion, dark and bright areas, skin...) : HybridFuPP is a kind of adaptive processor, allowing picture cleaning, general perception improvements and compressibility gain.
Main idea consists in filtering strongly the less visible parts of the picture, and very softly the more visible. HybridFuPP uses masks to detect areas to process.
In most recent versions, HybridFuPP proposes a more aggressive “psychovisual” approach (although very empirical), allowing to “force” codecs, used while re-encoding output clip, to allocate more bits where and when it is considered to be critical, especially at low bitrates (dark scenes, skinned areas...). All of these new features are of course optional, but are generally activated by default when using preset 'HybridQ'.
Standard processings proposed are : resizing (8 possibilities), denoising (optionally motion-compensated), dark and bright areas special denoising, dark scenes enhancement, edges sharpening or softening (distinct horizontal and vertical settings), edges brightness control, deringing (removing artefacts around edges), deblocking (removing blocks effect generated by mpeg compression) and skin processing.
Although HybridFuPP has been originally designed to process rather clean materials, filtering package used is flexible and powerful enough to be used with more noisy materials too (depending on noise type) : increasing default settings could be though required.
HybridFuPP is provided with some presets allowing beginners to use the script easily and other people to use these presets as basis for their explorations. Moreover, HybridFuPP allows users to define their own processing chains : lot of things are then possible !
Presets available (names are quality related, except for HybridQ, Anime1 and Anime2) :
Very Low
Low
Medium
High
Very High
HybridQ
Anime1
Anime2
Please refer to the doc to see what features are activated or not in each preset
HybridFuPP requires Avisynth v 2.58.
Put HybridFuPP.avsi and provided filters in your avisynth plug-ins directory (by default : C:\Program Files\AviSynth 2.5\plugins). FFT3DFilter.dll requires an additional dll (FFTW3.dll) that must placed into you windows\system32 (or windows\sysWOW directory for Vista).
NB : these DLLs are included in some compressed files, you need first to extract them from each archive
Be sure that UnFilter.dll (v1.5), Deen.dll (v1.0 beta 1), FFT3DFilter.dll (2.1.1), MVTools2.dll (2.4.2), MT_Masktools.dll (v2.0.36), Deblock (v1.2) and Addgrain (v1.0) are loaded in your main script.
C A U T I O N : You MUST use filters versions provided with HybridFuPP, or you will probably get unexpected results or errors !
I strongly recommend you to read the doc if you want to fully understand the possibilities and the meaning of all parameters available.
FuPP
rkalwaitis
27th April 2009, 16:00
Man Ive been waiting for this :) thanks FuPP!!!!
Adub
27th April 2009, 16:17
Well I'll be. You pulled it off Fupp! Now, I just need to find the time to start playing with this thing. ;)
Thank you so much for your excellent work!
FuPP
27th April 2009, 16:54
Thanks !
I have unfortunately already discovered two mistakes :
- filtering strength for D_Mode = 3 (FFT3DFilter) is hardcoded
- I have forgotten to add Bl_Size to the parameters displayed when using Show="P"
I will change that in next version... :stupid:
aegisofrime
27th April 2009, 18:07
Hi FuPP, I'm getting an error : There is no function named "max" on HybridFuPP.avsi lines 442 and 120.
My script is simply HybridFuPP(Preset="HybridQ"), as I'm playing around with it first. Excuse the noobness!
FuPP
27th April 2009, 18:15
Hi,
please check your avisynth version. HybridFuPP requires latest (2.5.8). Let me know.
FuPP
aegisofrime
27th April 2009, 18:22
Ah, that must be it, because I'm still on 2.5.7. For some reason the Multithread plugin works faster on 2.5.7 than 2.5.8, so I stuck with that. I will try 2.5.8 once my current encoding job finishes. Thanks!
FuPP
27th April 2009, 18:49
There is an non official MT build of Avisynth 2.5.8 somewhere around here. I did not have time to test it with HybridFuPP, but I will (and will report).
FuPP
rkalwaitis
27th April 2009, 19:38
FuPP I used the unofficial version of Avisynth 2.5.8 and it worked for me. Even Spline 64 which did not work on the MT version Prior to the latest. Jeremy Duncan's is the latest Im using @ http://forum.doom9.org/showthread.php?t=144852. There may be an issue with tweak.dll and ffdshow, although I have no issues that I could blame unoffical 2.5.8 for.
Fupp played with the super clip transformation following along in the html help me. M_resizer for any type of resizer did not work. I looked at the script and the call should be ME_Resizer.
tried to enhance the grain on the skin setting.
I thought it was done through Enh_str. I received an error Sharpen arguments must be in the ranve of -1.58 to 1.0 ......HybridFupp.avsi, line 319.
Also I used your package of avisynth filter dlls. And the following call.
HybridFupp(D_Mode = 2, ME_Resizer=8, M_TRadius=3, Enh_str=5, skin=true,E_Auto_Str=false, show="p-")
It didnt show up until I changed the Enh_str from default. Also in the readme the Enh_Str can be set from 1-10, but it can not be used higher than 5 or I get the same error sharpen arguments as above. As long as Enh_str is 5 or less then E_Auto_Str can be true.
When I open it in MPC and scan throught the video I get dots (more like dashes) across the screen. But not on all frames. They are white or cyan(blueish in color) This happenend before but I can not for the life of me remember how I overcame it.
How do I switch between MDegrain 1, 2, or 3
Im liking this a lot so far.
thanks Fupp
DarkT
27th April 2009, 20:14
Main improvements in 0.99a :
- 3 modes are now available for main denoising, calling Deen, MDegrain or FFT3DFiler (see the doc)
FuPP
Yesssss, that's what I've been waiting for! I found that Deen was too hardcore, even when I tried to manually define as much as I could... MDegrain would be sweet /me thinks... Well, we'll see...
rkalwaitis
28th April 2009, 20:57
Fupp,
what are the equivilants for thSAD=400, thSCD1=400 and thSCD2=100?
thscd=m_scd?
thsad=thscd?
which leaves thscd2 which is the E_THR right?
Also it seems that mvtools2 can use sadx264 which use SAD functions from x264 codec if available for the blocksize. Apparently this can be set to auto. Can this be added to the script for those of us which use x264. I tried changing your script to do so. It works or appears to work. No way I can test to see if it really works. Im not that clever.
thanks k
FuPP
28th April 2009, 23:23
I looked at the script and the call should be ME_Resizer
yes, sorry for that. I will update the doc.
tried to enhance the grain on the skin setting. I thought it was done through Enh_str (...) in the readme the Enh_Str can be set from 1-10, but it can not be used higher than 5
Need to update the doc about this too. The limit is 5. I will also add an error check.
It didnt show up until I changed the Enh_str from default
sorry I can not reproduce. Maybe I did not get you ?
When I open it in MPC and scan throught the video I get dots (more like dashes) across the screen. But not on all frames. They are white or cyan(blueish in color) This happenend before but I can not for the life of me remember how I overcame it.
Sorry again, but can not reproduce. Are you sure this is not a MPC bug ? Do you get that result with some other players ?
How do I switch between MDegrain 1, 2, or 3
simply using M_TRadius :
D_Mode = 2, M_TRadius = 1 <=> Mdegrain1
D_Mode = 2, M_TRadius = 2 <=> Mdegrain2
D_Mode = 2, M_TRadius = 3 <=> Mdegrain3
M_TRadius is a kind of "universal" parameter :D. It is correctly interpreted whatever denoiser is used, even for Mdegrain (hope so... ;)).
Be aware though that if you use any other already motion-compensated denoiser, you will have to set M_TRadius = 0 to avoid double work and maybe unexpected results.
what are the equivilants for thSAD=400, thSCD1=400 and thSCD2=100?
I suppose you are reffering to MDegrain...
I have let them to default for now (I fully trust Fizick :D),
If I have time, I will try to find a reason to complexify this (or more seriously will do some tests to see if it is relevant to change defaults)
It is true that I have changed them (a long time ago) for motion mask, still used to re-add motion parts over other processings.
For now I am working on an updated french readme ;)
rkalwaitis
29th April 2009, 14:01
It may be the mpc player making the colored dashes.
I trust Fizick too, afterall its his baby.
Thanks for the help.
Its working out pretty good so far :)
rkalwaitis
30th April 2009, 15:12
Fupp does anyone else have a problem with using this version of unfilter? It seems that it makes lines across the screen on the finished product. I looked at it in two different players. So I do not believe it is the player causing the problem. I think that it is when unfilter is used with mdegrain3 with 3 forward and three backward frames. Im not smart enough to figure out where it is applied to those frames. I can reproduce the error with a simpler script using mdegrain and unfilter.
superfilt=MSuper()
forvec1 = MAnalyse(superfilt,isb=false, delta=1, truemotion=true, blksize=16, overlap=8, pelsearch=2, search=3, searchparam=2, DCT=0, global=true, chroma=false,sadx264=0)
forvec2 = MAnalyse(superfilt,isb=false, delta=2, truemotion=true, blksize=16, overlap=8, pelsearch=2, search=3, searchparam=2, DCT=0, global=true, chroma=false,sadx264=0)
forvec3 = MAnalyse(superfilt,isb=false, delta=3, truemotion=true, blksize=16, overlap=8, pelsearch=2, search=3, searchparam=2, DCT=0, global=true, chroma=false,sadx264=0)
bacvec1 = MAnalyse(superfilt,isb=true, delta=1, truemotion=true, blksize=16, overlap=8, pelsearch=2, search=3, searchparam=2, DCT=0, global=true, chroma=false,sadx264=0)
bacvec2 = MAnalyse(superfilt,isb=true, delta=2, truemotion=true, blksize=16, overlap=8, pelsearch=2, search=3, searchparam=2, DCT=0, global=true, chroma=false,sadx264=0)
bacvec3 = MAnalyse(superfilt,isb=true, delta=3, truemotion=true, blksize=16, overlap=8, pelsearch=2, search=3, searchparam=2, DCT=0, global=true, chroma=false,sadx264=0)
denoised =MDegrain3(superfilt,bacvec1,forvec1,bacvec2,forvec2,bacvec3,forvec3,thSAD=300, thSCD1=400, thSCD2=100, plane=4)
return mt_merge(denoised, unfilter (10,10), mt_edge())
sorry, but I can not get 'lines across the screen' with your script. Wich version of avisynth are you using ? Official one or not ?
FuPP
rkalwaitis
4th May 2009, 19:26
I am using the official version of avisynth. I also had problems with edge masking. ie. It shows the edge on the finished product. The white edges over the product final product. I think Im going to clean out my filters and start them all over. To see if it stops both problems.
Ill let you know.
Thanks Fupp
rkalwaitis
17th May 2009, 08:47
Well starting over from scratch seemed to do the trick. Im still not sure what was causing the problems. Probably the rkalwaitis filter :)
ok, good to know it is working for you now.
I will post, maybe tomorrow, the '0.991b' including a few corrections.
FuPP
Benus_MinO
18th May 2009, 19:17
Hello
Do you know how i can denoise that?
http://img38.imageshack.us/img38/6214/helpvic.th.png (http://img38.imageshack.us/my.php?image=helpvic.png)
sorry but I cannot see noise on your picture. If you want me to help you, you may want to post a few frames of your source.
Btw, you can also give a try to : HybridFuPP(x, y, preset="anime1")
x and y are the destination width and height. You can ommit them if you do not want to resize.
FuPP
aNToK
18th June 2009, 03:35
Guess I'm a bit late to the party or a little slow, but is there a working download location for version 0.99a? All links to versions of hybridfupp except 0.98a just lead me to the filefront homepage.
FuPP
18th June 2009, 09:18
Yes, link seems to be broken. Anyway, I will post 0.991b today. I should have done this for a while, but I was a bit busy...
FuPP
aNToK
18th June 2009, 20:14
New version, cool! Still having fun playing with all the parameters and seeing what they can do.
Thanks for the reply!
FuPP
19th June 2009, 14:04
Updated to 0.991b (see post #1) :)
FuPP
rkalwaitis
1st July 2009, 06:20
Fupp
I finally finished moving and am now ready to play again. Thanks for sharing your hard work with us.
Magix_995
6th April 2010, 08:40
Any working link ?
:confused:
With http://avisynth.org/mediawiki/upload/e/eb/HybridFuPP.avsi I'm unable to find deen.dll (and it's old version ?)
FuPP
6th April 2010, 23:44
Hi,
I have updated the link in the first post.
Thanks for interest,
FuPP
PS : every filter you need is in the archive :)
Magix_995
7th April 2010, 12:06
Hi,
Thanks for support
SilaSurfer
19th May 2011, 19:28
Hello Fupp. I just tried your function and I'm very pleased with it. I just have some questions about some settings.
This would be the right call if I wanted to replace Unfilter with another sharpener?
HybridFupp(x,y,preset="HybridQ", E1="favorite sharpener") and mask is the sharpened with it right?
Well I'm dealing somethimes with clean sources so replacing denoisers in your function like
HybridFupp(x,y,preset="HybridQ", N2="RemoveGrain(mode=2)") seems ok?
I like the way your function is using masktools to improve the visual details. Just need to find that sweet spot. Nice work, man. ;) Wish you all the best.
Hi SilaSurfer,
HybridFupp(x,y,preset="HybridQ", E1="favorite sharpener") and mask is the sharpened with it right?
Yes, E1 is used to override default edges processing done before resizing operations (use E2 if you want to process edges after resizing operations ; be aware you will have then to override E1 too in that case, using E1="", E2="your_favorite_sharpener").
HybridFupp(x,y,preset="HybridQ", N2="RemoveGrain(mode=2)") seems ok
correct.
I like the way your function is using masktools to improve the visual details. Just need to find that sweet spot. Nice work, man. Wish you all the best.
thanks a lot for your kind words :)
SilaSurfer
21st May 2011, 15:29
You're welcome Fupp. Sorry for typo's, I was at work when typing my post (yeah I also browse this forum at work, just don't tell my boss):D
HqbridQ preset is tweaked for compressibility gain that is why it uses diffrent resamplers to resample diffrent parts of the image, but Edge, Skin and Dark areas enhancements are not intended for compressibility gain? (correct me if I'm wrong)
Avarage bitrates for me spread from 1400 to 2000Kbps with Xvid for Dvd's, for Blu-rays I use x264 where I resample down to 720p. My goal is preserving more details in my backups and not achieving highest compressibility. So something like this comes to mind:
HybridFupp(x,y,preset="Very High", N1="", N2=RemoveGrain(mode=2), Fast=false, Enh_Str=5, EM_Mode=1, E_thr=135-200, E_Auto_Str=Auto, E_Str_N=7-10, DS_Enh=true, DS_Enh_Thr=48, Skin=true)
Combining HybridQ with Very High preset, taking actually just those settings that increase picture details and not those that raise the compressibility.
What if I use higher E_thr setting, will that detect edges more accurate? I used "Show" option in your function, and the more E_thr is raised, reddish color around the edges starts to disappear. Future request: HybridQ settings that are aimed for higher bitrates would be nice. :p Thanks
Mounir
22nd May 2011, 19:20
How does this filter compare to fft3dfilter ?
Didée
22nd May 2011, 21:25
How does this filter compare to fft3dfilter ?
FFT3DFilter is more snigirgilicious, HybridFuPP is more snagargalicious.
Mounir
22nd May 2011, 23:11
Hmm can you say it again ? i don't speak Gibberish
@SilaSurfer
HybridQ uses some special features intended to process more radically the source, as skin processing, multiple resizers, dark areas processing and so on, while maintaining good compressibility : the goal is to drive a little bit more the codec used for encoding. Other presets like 'very High', 'Medium', 'Low' are more 'classic'.
E_Thr = 135 enables to detect edges while not getting noise. In my opinion, good values are between 130-140.
As always, all settings depend on :
- your source
- codec and bitrate used
- your taste
@Didée
True. More or less... :)
@Mounir
FFT3DFilter is a denoiser. HybridFuPP is a multi-processor (using FFT3DFilter in some cases).
SilaSurfer
24th May 2011, 12:19
Thanks Fupp for short explanation. I know it depends on the source and individual taste. Anyway, again nice function. It has a spot in my favorite to use scripts.
4.6.2011
Fupp Could these three functions from HybridFupp be used independantly:
Skin Enhancment
Adding grain on the edges
Dark Scene Enhancment
I would like to use those three alone if possible because I'm not resizing a perticular source.
nibus
18th February 2012, 04:18
Thanks for this great script Fupp! I've been using HybridQ on some lower bitrate encodes and they've turned out great (better than alternatives at higher bitrates in fact).
When resizing to standard resolutions (360p/480p) does HybridFupp work best when applied at 1080p, or would it work better to scale down to say 720p first and then apply HybridFupp?
Tommy B.
18th February 2012, 20:37
Thanks for the nice script - works pretty good and I really love this skin preserving feature :)
I had an issue though which was related to blocking in dark areas using HybridQ mode:
http://img7.imagebanana.com/img/28yxvycn/thumb/block.png (http://www.imagebanana.com/view/28yxvycn/block.png)
I have added "overlap" to the MV-parts and that fixed it:
http://img7.imagebanana.com/img/0e9z4d4o/thumb/unblock.png (http://www.imagebanana.com/view/0e9z4d4o/unblock.png)
Changed this code:
bv = M_process && M_TRadius >=1 ? MAnalyse(super, isb = true, lambda=1000, blksize=Bl_size) : NulC
fv = M_process && M_TRadius >=1 ? MAnalyse(super, isb = false, lambda=1000, blksize=Bl_size) : NulC
bv2 = M_process && M_TRadius >=2 ? MAnalyse(super, isb = true, lambda=1000, blksize=Bl_size, delta=2) : NulC
fv2 = M_process && M_TRadius >=2 ? MAnalyse(super, isb = false, lambda=1000, blksize=Bl_size, delta=2) : NulC
bv3 = M_process && M_TRadius >=3 ? MAnalyse(super, isb = true, lambda=1000, blksize=Bl_size, delta=3) : NulC
fv3 = M_process && M_TRadius >=3 ? MAnalyse(super, isb = false, lambda=1000, blksize=Bl_size, delta=3) : NulC
into this:
bv = M_process && M_TRadius >=1 ? MAnalyse(super, isb = true, lambda=1000, blksize=Bl_size, overlap=Bl_size/2) : NulC
fv = M_process && M_TRadius >=1 ? MAnalyse(super, isb = false, lambda=1000, blksize=Bl_size, overlap=Bl_size/2) : NulC
bv2 = M_process && M_TRadius >=2 ? MAnalyse(super, isb = true, lambda=1000, blksize=Bl_size, delta=2, overlap=Bl_size/2) : NulC
fv2 = M_process && M_TRadius >=2 ? MAnalyse(super, isb = false, lambda=1000, blksize=Bl_size, delta=2, overlap=Bl_size/2) : NulC
bv3 = M_process && M_TRadius >=3 ? MAnalyse(super, isb = true, lambda=1000, blksize=Bl_size, delta=3, overlap=Bl_size/2) : NulC
fv3 = M_process && M_TRadius >=3 ? MAnalyse(super, isb = false, lambda=1000, blksize=Bl_size, delta=3, overlap=Bl_size/2) : NulC
nibus
19th February 2012, 09:29
Thanks Tommy B, I've been searching on how to remedy this blocking and up until now had now luck.
FuPP
20th February 2012, 00:22
Hi,
I had fixed overlaping (don't know how I could miss that !) and some other little things in HybridFuPP 0.992b but never posted it. If you are interested, I will.
FuPP
nibus
31st March 2012, 11:32
Hi,
I had fixed overlaping (don't know how I could miss that !) and some other little things in HybridFuPP 0.992b but never posted it. If you are interested, I will.
FuPP
Any news on the updated version Mr. FuPP?
FuPP
2nd April 2012, 10:19
actually, 0.992b exists for a long time. But there is something I want to fix about 'show' function and did not have time for that. I will try next weekend and will post if ok. Sorry for the delay...
FuPP
Jynrion
23rd September 2012, 11:29
Hi FuPP,
I'm a big fan of your work on this script and i'm wondering if you have the possibility to release in the open v.0.992B :]
Thanks a lot, hoping to see it soon.
ps: link is broken in first post
FuPP
23rd September 2012, 18:46
Link fixed on first page (HybridFuPP 0.991b)
I will take the time to update to 0.993b this week.
Thanks for your interest !
FuPP
nibus
6th October 2012, 13:10
How about that update mr FuPP? :) Starting some encodes and would like to have the latest version.
FuPP
8th October 2012, 09:48
Sorry... I can't find time to work on 0.993b (need to fix a few things in command 'show'). I will post today 0.992b instead. You will have to wait more for 0.993b...
Sorry again,
FuPP
nibus
8th October 2012, 09:54
Thanks for your hard work :)
As a side note, I can't ever see a difference when adjusting the "M_Str" option in mode 2. It doesn't appear to raise or lower the denoising strength at all.
FuPP
8th October 2012, 20:13
0.992 posted in a new thread.
Tested M_Str with MP_Mode = 2, could not reproduce your problem (I can see a difference between 0 and 255, for instance... Of course only in motion areas)
Hybridfupp(608, 320, show="", MP_Mode=2, M_Str=255)
Please test with 0.992b. If still the same post your entire HybridFuPP line in the new thread.
A few thoughts : could be related to the preset used. Use show="P" to check what is said about M_Str. Did you check if some motion was detected, using show="M" where you checked ? This parameter is only useful in motion areas...
FuPP
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.