View Full Version : Fractal denoising: FRFun


Soulhunter
19th April 2006, 20:32
Ok, here (http://forum.doom9.org/showthread.php?t=109925) is the original thread and here (http://soulhunter.chronocrossdev.com/data/frfun3b_rev3.zip) is the binary... Please post feedback regarding its denoising capability's [comparisons to other denoisers, situations where it works well, situations where it fails...]

Oh, and dont ask for the source, Im not the author of this filter... ;P

EDIT: Look here... (http://forum.doom9.org/showthread.php?p=825604#post825604) and here (http://forum.doom9.org/showthread.php?p=862358#post862358)!


Tia n' Bye

BigDid
19th April 2006, 21:11
Hi Soulhunter,

Thanks for the good work. FRFun seems great and quicker than FFT3dfilter :)

I am a total noob concerning avisynth filters, could you elaborate more on FRFun specially concerning the parameters ?

I have seen interesting things on your page, could you consider adding a few denoisers in your denoiser comparison? I'm thinking about Fft3dgpu (to see speed advantages and if PSNR is equal or close to Fft3dfilter) and Removegrain, maybe mode7 or 8, to see if close or quicker than degrainmedian ?

Thank you for your time.

Did

Soulhunter
19th April 2006, 22:52
FRFun3b(T,Tuv,S)

The first parameter "T" is the luma threshold the second "Tuv" the chroma threshold (both are floats). As most sources have less chroma noise than luma noise its a good idea to keep the chroma threshold lower than the luma threshold! The last parameter "S" is the subsampling: More subsampling = less processing = faster, but also less precise! Its a "speed -vs- quality" trade...

For the denoiser comparison: Well, Im still looking for a better metric to measure the denoising quality! MSUs blur metric (http://forum.doom9.org/showthread.php?t=107214) looked promising, but after some tests I discovered that its useless (at least for my purpose). But as soon I find something better, Ill start a bigger and better comparison... So, stay tuned!


Bye

Alain2
20th April 2006, 00:24
Oh so it's float again ; is speed as good as previous 3b version with int parameters ? (I know, I will test, but a small indication from you is always nice :) )

What is the address of your webpage as mentionned by BigDid ? I only see the irc link in your signature...

Soulhunter
20th April 2006, 00:35
Oh so it's float again ; is speed as good as previous 3b version with int parameters ?
Yes, should be ~ the same!

What is the address of your webpage as mentionned by BigDid ?
Hint: The link to the frfun binary points to it!


Bye

zlab
20th April 2006, 06:13
Hi,
Any suggestion for lo, medium noise filtering parameters? pls.

Arlong
20th April 2006, 09:26
That's a nice filter. I tried it with FrFun(3,2,2) and this is what I get:

Source
http://img161.imageshack.us/img161/6600/vob5sk.th.png (http://img161.imageshack.us/my.php?image=vob5sk.png)

FrFun
http://img507.imageshack.us/img507/4245/xvid8xr.th.png (http://img507.imageshack.us/my.php?image=xvid8xr.png)

It removes well grain and kills noise without harming too much detail. Well, maybe hair looks a little overfiltered.

FFT3dFilter(sigma=10,sigma2=0.9,sigma3=0.9,sigma4=6) is worse in terms of noise reduction: the walls are still crowded with grain. Detail level seems to be almost equal in both pictures.

http://img162.imageshack.us/img162/7460/withfft8hf.th.png (http://img162.imageshack.us/my.php?image=withfft8hf.png)

Disabled
21st April 2006, 14:22
For me it looks like Frfun did a much better job. It removed more noise and kept more detail at least her cloth look more detailed than with fft3d.
I guess I will do some tests myself now!

Mug Funky
21st April 2006, 16:15
remember that fft3d can go temporal (in several ways too... bt=0 is my favourite but one has to be very careful with sigmas).

btw, i find that this is a good one for speed:
frfun3b(6,6,3)
degrainmedian()

i noticed a tendency toward "salt and pepper" jaggies when subsampling is increased, but following with degrainmedian will reduce those (this is more for the encoder's benefit than the viewer).

good filter - i can't wait to see the bollocks optimised out of it and a temporal mode introduced :). with motion-compensation it could be a real noise killer, but i'd only use it on really big frame sizes because it appears to eat details for lunch if abused.

Serbianboss
21st April 2006, 19:24
@Mug Funky

i am interesting when you use degrainmedian() command thas degrainmedian work with default parametars like this (limitY=4,limitUV=6,mode=1) or not?

What all of you suggest parametars for little noise and with much noise on interlaced film?

AVIL
21st April 2006, 21:37
@Soulhunter

Good filter. It cleans well with default parameters (rare thing). It loss any detail (e.g. shadows in faces) but generally is not noticeable. I think that a temporal behaviour could preserve some detail but I have not clue how to do it. It is very good fighting blocks from mov files. Tend to be slow but not in excess. Anyway is another tool for the box. Thanks.

levi
23rd April 2006, 20:54
link not working?

Soulhunter
24th April 2006, 13:49
no, link working!


Bye

guada 2
24th April 2006, 23:26
" Soul"

It is a very good filter, but it is a little slow.
:thanks:

Heini011
25th April 2006, 00:58
current binary:

FrFun3b(3,2,2)

avisynth open failure:
script error: Invalid arguments to function "FrFrun3B"

foxyshadis
25th April 2006, 01:02
avisynth won't autocast int to float or vice versa. Use 3.0, 2.0, 2.0. >.> (I could have sworn this was working before, but perhaps not.)

Soulhunter
25th April 2006, 02:07
Humm, frfun3b(3,2,2) works perfectly here, I just downloaded and re-installed the dll from the link above to get sure... :\ Maybe its related to the avisynth version (I use 2.56)!? Oh, and btw, the last param (subsampling) is int, not float, so it should be frfun3b(3,2,2) or frfun3b(3.0,2.0,2), but not frfun3b(3.0,2.0,2.0)!

EDIT: Just noticed Heini011 wrote 'script error: Invalid arguments to function "FrFrun3B"'. But it should be "FrFun3B" not "FrFrun3B"! Leaves the question if it was a typo in the avs (problem solved) or the post (problem not solved) ^^


Bye

AI
25th April 2006, 05:14
for me frFun similar MSmooth, but easier (less parametrs) and faster
i.e. good planar denoiser for anime (becose anime have clear (sharp) borders, and frFun not spare blur (not excess clearance))
with temporal blur (http://forum.doom9.org/showthread.php?p=817752#post817752) for background I have very good denoiser for very noise anime.

PS Excuse me my bad English

mgh
27th April 2006, 06:18
it should be called a video cleaner-improves videos from commercial vcds in the sense that it reduces artefacts quite a bit and lets you see more details than before.
I have couple of problematic clips from vcds which i keep trying with various filters. This one takes the cake.
Thanx

Zarxrax
28th April 2006, 20:52
I just tried this filter, and all I can say is "WOW!"
I've tried it on some anime clips that have heavy amounts of film grain, and it can totally remove the grain! its amazing! No other smoother I have tried seems to even come close to this. This thing is amazing at preserving edges as well. The only problem I see is that it does seem to heavily blur some things that are real detail, if they arent defined very well to begin with, such as some texture on the ground, walls, etc.

thoralf
29th April 2006, 18:39
really nice filter, albeit slow as hell ... i prefer it over fft3d as it keeps more detail.
I'd like to know a bit more about its inner workings: how exactly do fractals help to eliminate noise and blocking?

thanks,
thoralf.

BigDid
29th April 2006, 19:07
...The only problem I see is that it does seem to heavily blur some things that are real detail, if they arent defined very well to begin with, ...
+1, even witout really strong params.

Could it help doing a soft/small sharpening before frfun, like a removegrain(mode=25) ?

I'll try to re-use the capture in which I discovered that or, if deleted, look at the next capture so not immediately.

Did

AI
29th April 2006, 19:38
Could it help doing a soft/small sharpening before frfun, like a removegrain(mode=25)?I use for prefilter for frfun3b, frfun3b too, with bigger parametrs...
for example:FrFun3b(4,3,6)
FrFun3b(3,2,4)

Serbianboss
2nd May 2006, 12:29
Which parametars is good for noisy capures, and which parametars is good for low noisy captures?

best regard

BigDid
2nd May 2006, 19:49
Which parametars is good for noisy capures, and which parametars is good for low noisy captures?...
Well,

Just re-use older posts from this thread as a basis:
-Default as a balanced start
-noisy captures, re-use AI params with 2 occurences, you have an example with pictures for:
FrFun3b(4,3,6)
FrFun3b(2.8,1.8,4) here (1st and 2nd pics): http://forum.doom9.org/showthread.php?p=821817#post821817
; lower params if not strong enough.
-low noise captures, higher params like FrFun3b(4,3,6) as a start?

Did

Serbianboss
3rd May 2006, 14:07
thanks

BigDid
3rd May 2006, 20:12
thanks
You are welcome.

As the use of this filter is new, it could be helpful for others readers for you to come back with the params you used with success :)

Did

Soulhunter
5th May 2006, 14:52
EDIT: Link removed, look here... (http://forum.doom9.org/showthread.php?p=825604#post825604)


Bye

Alain2
5th May 2006, 16:01
Would it be possible you make the help file just a bit more descriptive? What is lambda? The subsampling parameter has disapeared ?

guada 2
5th May 2006, 16:15
Hello Soulhunter,

Could you post the changelog please.
Just to see something..

Bye.

Fizick
5th May 2006, 21:07
Soulhunter,
please ask your second Ego :) for reference article.

Backwoods
5th May 2006, 22:08
*cough* mf *cough*

tsp
5th May 2006, 22:46
Would be nice to know if it was a candidate for a GPU version

AS
5th May 2006, 23:02
Let's just say the author would like remain anonymous and leave it at that...

tsp
5th May 2006, 23:15
http://www.f4.fhtw-berlin.de/~barthel/paper/spie_5266-5.pdf
maybe?

Soulhunter
5th May 2006, 23:24
Let's just say the author would like remain anonymous and leave it at that...
Yeah, and no source or reference article... for now, sorry! About the new parameter: Simply said, as higher you set the lambda param, as more aggressive smoothing you get... and yes, the subsampling param was removed! For the "changelog" thing: Well, the version jump from 3 to 7 indicates that a lot was changed... Lets just say it should be better than the old version, and the rest you have to find out on ya own!


Thanks n' Bye

Soulhunter
5th May 2006, 23:35
http://www.f4.fhtw-berlin.de/~barthel/paper/spie_5266-5.pdf
maybe?
Maybe, dunno! But it uses overlapping to make the subsampling less ugly iirc... >.>


Bye

foxyshadis
6th May 2006, 04:36
Hahaha, you guys treat it like it's illegal and you don't really want anyone using it, or if any description of the method gets out all the commercial companies will be rushing to implement his new algorithm and make millions off it.

Or maybe it's a code, and only the conspirators hold the key. ;)

I'm not annoyed, I just think the cloak & dagger around it is goofy.

AI
6th May 2006, 14:11
As for me, last version is faster;)

becose I use this script
FrFun3b(4,3,6)
FrFun3b(3,2,4)I found alternative on new version:FrFun7(1,4,3)
FrFun7(1,3,2)It's slower

PS. That I understand both version use alike algorithm cleaning
but different term finishing cleaning

PPS Excuse me my bad English

PPPS What is undocumented integer parameter "P"?
Then P > 0 new version is faster ;)

AS
6th May 2006, 14:19
Hahaha, you guys treat it like it's illegal and you don't really want anyone using it, or if any description of the method gets out all the commercial companies will be rushing to implement his new algorithm and make millions off it.

Or maybe it's a code, and only the conspirators hold the key. ;)

I'm not annoyed, I just think the cloak & dagger around it is goofy.

Look, if the author wants to release the code, then he will. Until then, it would be wrong not to respect his decision. So you can stop your conspiracy theories.

Backwoods
6th May 2006, 21:17
Someone is over defensive. Let's just enjoy the updates.

Soulhunter
6th May 2006, 21:39
Let's just enjoy the updates.
Exactly! :)


Bye

Alain2
6th May 2006, 23:39
What are the default values? Are the 3 param (Lambda, T, Tuv) floats? Ranges for these param are 0 -> +oo?
I appreciate the work and the share of it, but it would be nice if the readme could contain at least these info

Soulhunter
7th May 2006, 14:36
Ok, it seems there was a bug in FRFun rev1...

New version with better readme is on the way!


Bye

Soulhunter
7th May 2006, 20:26
EDIT: Link removed, look here... (http://forum.doom9.org/showthread.php?p=825604#post825604)


Bye

Alain2
7th May 2006, 21:40
Thanks for the improved readme :) (and the fixed dll of course ^^)

Soulhunter
7th May 2006, 23:35
EDIT: Link removed, look here... (http://forum.doom9.org/showthread.php?p=825604#post825604)


Bye

Arlong
8th May 2006, 11:27
Thanks SH. A very promising filter, indeed, growing better!

Just a little note: FRFun7 needs X and Y axis to be multiple of 8, otherwise it'll introduce green bars on the bottom and the right of the frame. So one has to place FRFun7 before crop or after resize (even between crop and resize, but cropping width and height with multples of 8).

Sorry for my english mistakes :p

foxyshadis
8th May 2006, 11:39
I tried it on some mildly noisy mpegs: Awesome. Best ringing ("mosquito noise") removal ever, with so little damage to detail. I haven't tried it on really detailed work yet though. Needs a sharpener at the end to really bring out the best, though, since it slightly blurs lines.

Only thing I noticed is that it sometimes jumbles up banding pretty good - in the original it was a smooth gradient of bands (meh), after it's all disturbed. It'd probably look great if it didn't have to get truncated back to yv12. Not always, just some I saw.

This needs to replace SPP deblocking; it's quite slow, but so is SPP, and this looks a lot better.

AI
8th May 2006, 13:33
WOW...
FrFun7 is "Spatio-temporal Smoothers", but FrFun3b is only "Spatial Smoothers" ;)

I know, becose need more memory for internal cache (I use SetMemoryMax)

i.e. may be good idea use "motion compensation" for better cleaning

PS and not filtred fist and last frames

Alain2
8th May 2006, 15:49
i.e. may be good idea use "motion compensation" for better cleaning
Well if combined with RemoveNoiceMC (http://forum.doom9.org/showthread.php?t=110078), it does a nice job :) (on anime at least. didn't try on films yet)

Soulhunter
9th May 2006, 04:39
Just a little note: FRFun7 needs X and Y axis to be multiple of 8, otherwise it'll introduce green bars on the bottom and the right of the frame. So one has to place FRFun7 before crop or after resize (even between crop and resize, but cropping width and height with multples of 8).
Right, I should add this info to the readme asap... ^^;


Bye

Soulhunter
9th May 2006, 04:52
WOW...
FrFun7 is "Spatio-temporal Smoothers", but FrFun3b is only "Spatial Smoothers" ;)

I know, becose need more memory for internal cache (I use SetMemoryMax)
Hehe, have you also compared the speed?

Could be surprising... ;)


Bye

Firesurfer
9th May 2006, 08:22
Thanks for v7!

Combined like:

AviSource("some.file")
DeGrainMedian(mode=2)
FrFun7(1.1,2.5,1.5)

give amazing results with my analog TV captures. Fine Detail is still there, massive amounts of noise gone, and still fast enough.

And the sharpening is not always needed when used at low thresholds.

AS
9th May 2006, 13:46
As corrected by the author, it's still a spatial smoother, as there is no temporal denoising.

AI
9th May 2006, 21:24
As corrected by the author, it's still a spatial smoother, as there is no temporal denoising.My conclusions:
1) The first and last frame wont get processed
2) optimization for multisequencing fft3dGPU and hard CPU filters
(I receive increased temporal radius)
3) for "my very hard cleaner script" need more memory then I have
(then increased temporal radius need more memory for internal cache)

I have thought that ver7 use previous and next frames

PS Excuse me my very bad English

AEtH
9th May 2006, 22:30
Awesome work! :thanks:

@Soulhunter
Is there any chance to process first and last frames?

Soulhunter
9th May 2006, 22:40
Is there any chance to process first and last frames?
Will be fixed in the next rev, same goes for the mod8 thing... ^^


Bye

Soulhunter
10th May 2006, 00:56
FRFun7 rev6 (http://soulhunter.chronocrossdev.com/data/frfun7_rev6.zip)


Bye

kevin23
10th May 2006, 17:14
Really Nice Filter but damn slow.

Though was just fooling around with this & LSF in my script.

FrFun7(1.1,2.5,1.5)
LimitedSharpenFaster(smode=4)


Speed in CCE was 0.21 & a sample of 1000 frames was 7.96mb

Now i used this script of LSf with Soothe
dull = last
sharp = dull.LimitedSharpenFaster(smode=4)
FrFun7(1.1,2.5,1.5)
Soothe( sharp, dull, 24)

Speed in CCE jumped to 0.44 & sample was 7.7mb in size.

Quality wise not much difference in both the clips.

Using Frfun7 only also gave a speed of 0.22 so what makes it go faster with Soothe and placed as it is in the script.

Alain2
10th May 2006, 18:12
dull = last
sharp = dull.LimitedSharpenFaster(smode=4)
FrFun7(1.1,2.5,1.5)
Soothe( sharp, dull, 24)

If really written like that, then FrFun is not used at all, soothe is working on the clips sharp and dull and nothing else here...

Maybe you wanted to say
sharp = sharp.FrFun7(1.1,2.5,1.5)

kevin23
10th May 2006, 19:25
If really written like that, then FrFun is not used at all, soothe is working on the clips sharp and dull and nothing else here...

Maybe you wanted to say
sharp = sharp.FrFun7(1.1,2.5,1.5)


Yep My bad ,

acrespo
22nd May 2006, 04:17
Any news about this filter?

Soulhunter
22nd May 2006, 04:31
Any news about this filter?
News? Like what?


Bye

acrespo
22nd May 2006, 14:03
Like new versions with speed improvements for example. ;)

Soulhunter
22nd May 2006, 15:24
Like new versions with speed improvements for example. ;)
Well, its already multiple times faster than the initial version (really, muuuch faster) and all reported bugs were fixed... The only thing I could imagine would be improved efficiency, but as nobody found situations where its lacks (at least nobody reported something, eh!?) I dont see much need for a new version! But maybe the author thinks different, lets wait n' see... ^^


Bye

Alain2
22nd May 2006, 16:48
It's not easy to see what pb can arise when we don't know what is the working principle behind... For me for instance, using lambda > 1.5 is not really good because it's blurring too much details. When using smaller lambdas, it doesn't seem to do noticable wrong things, and it is one filter in the chain filters of my scripts. Speedwise, it's not a bottleneck in my scripts, so that's fast enough ;)

Great filter :)

Zarxrax
22nd May 2006, 17:59
Well so far as improvements go, would it make sense to make this a 3d filter with its own unique temporal cleaning? Or is it just as good to use a seperate filter?

JuanC
29th May 2006, 02:24
I’ve been trying this filter on my analog TV captures, and I really like what it does, especially for anime.

I have to report an oddity: I am testing FrFun on a documentary that includes some black&white clips. My script: Mpeg2source()
Tcomb()
TFM()
TDecimate()
DeGrainMedian()
FrFun7() Goes at 8-9 fps as long as the video has color, but when it gets to the B&W parts, it goes down to 5-6 fps, then it returns to 8-9 fps when it reaches colored parts, and so forth…

Mug Funky
29th May 2006, 04:33
hmm. try it on a pure black clip and see what happens... maybe it doesn't like seeing chroma as flat 128

foxyshadis
19th June 2006, 02:43
http://foxyshadis.slightlydark.com/random/frfun-green.jpg
I very much doubt this discoloration is an intended effect of the filter. I'd also like to turn chroma processing off for these b&w movies, same reason Juan mentioned.

Suchy
29th June 2006, 21:02
I found bug in frfun3b or in textsub.

I noticed that if frfun3b(x) is before TextSub(y) then subs aren't rendered.

Script works (no errors), but here is no subs.
ANy ideas?

AVISource("F:\Encoding\movie.avi",audio=false)

UnDot()
frfun3b(3,0,1)
Dup(threshold=.5,blend=true)
Convolution3D(preset="animeBQ")
FluxSmoothST()
frfun3b(2,0,1)

TextSub("F:\Encoding\subs.ass")

Now subtitles aren't displayed.

AVISource("F:\Encoding\movie.avi",audio=false)

UnDot()
frfun3b(3,0,1)
Dup(threshold=.5,blend=true)
Convolution3D(preset="animeBQ")
FluxSmoothST()
#frfun3b(2,0,1)

TextSub("F:\Encoding\subs.ass")

And now everything is ok.

foxyshadis
30th June 2006, 06:25
frfun7 is the current version, have you tried it?

It seems like this might become a MarcFD-style forgotten filter though...

Suchy
30th June 2006, 11:18
ok thanks.
I chcecked with version 7
Subtitles are ok, but filtering by frfun7 is other than filtering with a same parametrs by frfun3b

Werido.

Soulhunter
30th June 2006, 11:37
Yeah, FrFun3's processing is different from FrFun7's... Btw, I was told the bug with TextSub is caused by missing emms, probably we'll see a fix the next days!

EDIT: Or in the next weeks... months... >.>


Thanks n' Bye

DarkFoon
4th August 2006, 13:36
Hmm, this is a very interesting filter.
However, I have a few complaints. These may just be the result of being awake 24 hours straight but here goes ;)
1) frfun3b with settings (3,2,1) produces much better denoising on my anime TV capture than frfun7 with the default settings, albeit at half the speed of frfun7. (screenshots will be provided later)

2) I'm still not too certain of what lambda does except make the filter less useful. ;) (it has something to do with the smoothing I gather)

Regarding the problem Juan is having with discoloration, I've noticed that filters using FFT libraries have a similar issue of altering the color.

On the whole, I cannot express how excited I am about this filter. It is incredible, truly incredible. I haven't seen denoising this good for free, and even for cost I haven't seen many that meet or surpass this in quality/speed.

The "Iron Curtain" around the development of this filter makes me think that it is some kind of scholastic project (perhaps a masters thesis or some such).
However, satan himself could be making this filter and I wouldn't care; it's too incredible. :D
Keep up the good work, I hope there will be improvements, I could see where it needs a few.

Soulhunter
7th August 2006, 17:27
Thanks for the feedback, satan appreciates... ^^


Tia n' Bye

Soulhunter
12th August 2006, 17:02
Just for fun, a quality optimized (http://soulhunter.chronocrossdev.com/dcpart1.htm) version of FRFun3

- FRFun3d rev1 (http://soulhunter.chronocrossdev.com/data/frfun3d_r1.zip)


Bye

Suchy
12th August 2006, 17:20
thanks

unmei
23rd August 2006, 17:23
I get the impression it doesn't like body hair =)

Just tried this filter today, stacked beside FFT3Dfilter to compare. While FFT3Dfilter tends to smooth out stuff, this one is more likely to create what i'd call "facettes" or posterisation.

While i think this can be very helpful for anime, on the TV capture i played with it has very ugly side effects on mentioned hair but sometimes also on plain skin even below default values (and that is *way* less noise reduction that i tried to achieve, since the cap is pretty noisy).
At first i suspected the effect was caused by combination with peach further above in the script, but peach only slightly affects the result - the posterisation happens even if i leave peach away.

applies to frfun3b and frfun7, i don't know about frfun3d yet but i suspect it is inherent to concept of these filters

scilli
9th September 2006, 02:55
Very nice filter. I like the results better than fft3dfilter in some cases. Like DarkFoon i'm noticing a difference in quality on anime captures between FrFun3b and FrFun7. If there wasn't a GPU version for fft3dfilter I think I'd completely switch to this:). Keep up the good work.

Alain2
9th September 2006, 13:08
fft3d and frfun7 have both good points, and I often use both on anime, but frfun7 (maybe frfun3b as well, didnt try) has this bug of slightly changing the color, as mentionned by foxyshadis. It's not just a shift I think, I can't find a proper the offset, and it can be annoying sometimes, but on anime it often doesn't really matter

Suchy
25th September 2006, 23:41
How are default params values for simple: frfun3d()?

I Ask, because I used this and now my anime is blurred too much (not very very much, but it's possible to notice).

Generally, how values you recommend for anime sources encoded in typical XviD nice quality (i want reencode+filter it now).

superuser
20th June 2007, 04:22
just curious, in background are there any improvements going on this filter, esp multithreading support?

Soulhunter
20th June 2007, 11:54
There isnt much left to improve [the thing with the altered chroma aside...] or do you have some suggestions? And, no multithreading... Afaik the author doesnt even have a multi core processor! But, maybe we will see a new version of DCTFun one day... Probably after Tritical releases his DCTFilter!?


Bye

superuser
22nd June 2007, 05:50
^ thnxs for feedback ... no other suggestions as such

Serbianboss
20th September 2007, 13:25
This filter have color artifacts when using yuy2 sources.

Sources are Pal, DV avi, interlaced(VHS captures),capture via Canopus 110 and when using Panasonic dv codec or cedocida 0.20 and when using yuy2 colorspace, filter produce color artifacts.

Pictures:
This is original dv avi picture
http://img146.imageshack.us/img146/4787/originalmk4.jpg (http://imageshack.us)

This is frfun:
http://img146.imageshack.us/img146/2024/yuy2sourcexx0.jpg (http://imageshack.us)

As you can see second picture have a lot colors artifacts, it can be little fixed if we reduced "t" parametar but that is not solution.

Only if i use YV12 colorspace or if we write convertoyv12() everything is ok.

Script which i used:
AVISource("C:\Documents and Settings\tst\Desktop\test.avi")
converttoyuy2(interlaced=true)
frfun7(lambda=3,t=10,tuv=2)


I know that this script isnt good for interlaced sources, its test just to show artefacts.
I am using FRFun 7 revison 6

Archimedes
20th September 2007, 16:41
Only if i use YV12 colorspace or if we write convertoyv12() everything is ok.
So use the YV12 color space instead. :-)

With a little trick you can use the YV12 color space without loosing any chroma information.

LoadPlugin("plugins\FrFun7\frfun7.dll")

AviSource("video.avi")
ConvertToYUY2()

PointResize(last.Width, last.Height * 2)
ConvertToYV12()
ff7(1.1, 6.0, 0.0)
ConvertToYUY2()
PointResize(last.Width, last.Height / 2)

function ff7(clip input, float Lambda, float T, float Tuv) {
T == 0 ? input : input.PointResize(input.Width, input.Height / 2).\
frfun7(
\ Lambda = Lambda,
\ T = T,
\ Tuv = 0.0
\ ).\
PointResize(input.Width, input.Height).MergeChroma(input, 1)
Tuv == 0 ? last : last.\
frfun7(
\ Lambda = Lambda,
\ T = 0.0,
\ Tuv = Tuv
\ )
}

This is an example for progressive video.

The trick is, blow up your YUY2 source with PointResize(last.Width, last.Height * 2), before you convert it to the YV12 color space. After that, all chroma informations are available. Only the luma informations are doubled. Therefore, luma and chroma has to be filtered separately. After filtering, ConvertToYUY2() and PointResize(last.Width, last.Height / 2) will bring you back to the "roots".

Soulhunter
20th September 2007, 18:30
Yeah, good chance it only works correctly with YV12 input... Just like the other plugins by pruned... Should add a "Needs YV12 input" to the readme, heh!? ;]


Thx n' Bye

Serbianboss
20th September 2007, 19:04
it just work with yv12

Does frfun is spatial or spatial-temporal filter

Archimedes
21st September 2007, 12:03
Here is a script for interlaced sources.

LoadPlugin("plugins\FrFun7\frfun7.dll")
LoadCPlugin("plugins\Yadif\yadif.dll")

AviSource("video.avi")
Yadif(mode = 1)
ConvertToYUY2()

PointResize(last.Width, last.Height * 2)
ConvertToYV12()
ff7(1.1, 6.0, 0.0)
ConvertToYUY2()
PointResize(last.Width, last.Height / 2)

# field order
AssumeBFF()
SeparateFields().SelectEvery(4, 0, 3).Weave()

function ff7(clip input, float Lambda, float T, float Tuv) {
T == 0 ? input : input.PointResize(input.Width, input.Height / 2).\
frfun7(
\ Lambda = Lambda,
\ T = T,
\ Tuv = 0.0
\ ).\
PointResize(input.Width, input.Height).MergeChroma(input, 1)
Tuv == 0 ? last : last.\
frfun7(
\ Lambda = Lambda,
\ T = 0.0,
\ Tuv = Tuv
\ )
}
Compared to other options like "interlaced denoising" and "SeparateFields" the output looks good to me (tested with a short dv video sequence).

Soulhunter
21st September 2007, 13:05
Does frfun is spatial or spatial-temporal filter
Link! (http://forum.doom9.org/showthread.php?p=825369#post825369)


Bye

Serbianboss
22nd September 2007, 13:44
thanks for interlaced script.

Because frfun is spatial filter could we just use on interlaced content this script:


AVISource("C:\kaseta2.avi")
converttoyv12(interlaced=true) ##for frfun7

separatefields()
frfun7(1.1, 6.0, 0.0)
weave()
converttoyuy2(interlaced=true) ##for CCE

squid_80
22nd September 2007, 15:59
If it's not a temporal filter why is it pulling the previous and next frames from the filter chain?

Soulhunter
22nd September 2007, 20:34
Temporal filtering was added to the code for testing, but as it was too destructive, pruned disabled by default... The first/last frame thing is just something he forgot to fix/remove... Consider it as bug! ;]


Bye

foxyshadis
23rd September 2007, 00:17
:rolleyes: All of which could have been fixed in 20-30 minutes a year or so ago, with the code. Oh well. (You'd think posting the code would be the perfect way to abandon a once-closed project.)

Serbianboss
23rd September 2007, 17:40
any comment on my script, 3 post above

AVIL
23rd September 2007, 23:44
@Serbianboss

A field separated from an interlaced frame has many high frequency components (due to interline steps). So a spatial filter could be fooled easily. IMHO bobbing is preferable to separating fileds. After filtering you can reinterlace with selectevery/weave.

Serbianboss
24th September 2007, 12:11
i know for bobbing, but i interested when using just spatial filters can be used with separate fields/weave. I read doom9 guide when said that if using just spatial filter that can be used separate fields/weave.

Vesi
23rd October 2007, 23:14
thank you very much Soulhunter for this awesome filter.
I tried the default setting, FRFun7(Lambda=1.1,T=6.0,Tuv=0)
for my new dvd and the result locks awesome, hope i did the right setting?
@ i checked some script you made for tests and i found you set tuv in all =0 why?
could you give some hints on how to set it for light and strong filtering?

Soulhunter
25th October 2007, 18:51
I tried the default setting, FRFun7(Lambda=1.1,T=6.0,Tuv=0)
for my new dvd and the result locks awesome, hope i did the right setting? ...could you give some hints on how to set it for light and strong filtering?
How could I know this? FrFun7's settings, actually the whole filterchain you setup, needs to be tweaked individually for each source, as each source has individual characteristics/problems! Simply raise the T param till you think that enough luma noise is removed... Same with Tuv, its the same, just for chroma noise!

i checked some script you made for tests and i found you set tuv in all =0 why?
Tests? The comparison on my page by chance? I only added luma noise to the source... So I set the denoisers to only process the luma plane [well, if the denoiser supported separate luma/chroma processing].


Bye

Soulhunter
25th October 2007, 19:42
:rolleyes: All of which could have been fixed in 20-30 minutes a year or so ago, with the code. Oh well. (You'd think posting the code would be the perfect way to abandon a once-closed project.)

- Super lazy author fixing his nested assembly mess -> Hard task

- User adding 2 frames to his source via avs which takes >30 secs -> Easy task

Ps: Sorry for the late reply... Seems Ive overlooked your post the last time I checked this thread! ^^;

Bye

Vesi
25th October 2007, 20:17
Thanks Soulhunter for your replay.
i think i got you some how, that for light denoising should increase the T param along with TUV till it is enough, and for strong denoising, raise them.
Is the default value for T and Tuv in your openion are light or strong?
-Lambda adjusts the power of the local denoising
The default value is 1.1, should we touch this as well for light or strong denoising, any recommended value?

Soulhunter
25th October 2007, 20:34
...for light denoising should increase the T param along with TUV till it is enough, and for strong denoising, raise them...
Could be changed to "...i should increase the T param along with TUV [if the source contains noise in the chroma planes] till it is enough...". But if you really need some numbers as point of reference... For mild noise probably >3, for medium noise 3-5, for strong noise <5!


Lambda adjusts the power of the local denoising
The default value is 1.1, should we touch this as well for light or strong denoising, any recommended value?
The default should be fine in most cases... But feel free to raise it n see if it improves the output! As you can see in my denoiser comparison, higher values gave slightly better metric results... Tho this doesnt mean its also more visually pleasing!


Bye

Vesi
25th October 2007, 20:45
^^ thanks again, will start working with this filter, and I am pretty sure it wouldn't disappoint me, as i saw some positive reviews from it.

squid_80
26th October 2007, 00:18
- Super lazy author fixing his nested assembly mess -> Hard task

- User adding 2 frames to his source via avs which takes >30 secs -> Easy task

It's not just a matter of adding padding frames, it's the fact that the filter works slower than it should in some cases because it's reading three frames when it only needs one of them.

Soulhunter
26th October 2007, 14:55
FRFun7 buffers the input...

If youd use it sequentially you wouldnt get a speedup!


Bye

foxyshadis
27th October 2007, 23:44
Sure, but it defeats the purpose of pull-processing; frfun().selectevery(5) would process 3 times as many frames as necessary, which could be excruciatingly slow in certain motion-compensated denoising scenarios.

Soulhunter
28th October 2007, 02:00
Uhm, wouldnt "SelectEvery(5).FRFun7()" solve this problem?


Bye

squid_80
28th October 2007, 09:04
FRFun7 buffers the input...

If youd use it sequentially you wouldnt get a speedup!


Bye

No it doesn't. If it's pulling frames from a slow filter and there's not enough memory to cache frames, performance suffers. For no other reason than a coding bug that apparently wasn't fixed.

Forget it anyway. You're not the author so I shouldn't expect you to do anything about it and the source code isn't available, so it's a pointless conversation and I shouldn't have started it.

Reel.Deel
7th September 2013, 13:48
Sorry to resurrect this thread. I did not want to start a new thread just for this.

FrFun7 2013 (https://www.dropbox.com/s/mrvuou0kpnkkeg9/frfun7%202013.zip) [Dropbox]

FrFun7 2013 (http://www.mediafire.com/download/8dktprhcle7rcst/frfun7_2013.zip) [MediaFire]

FrFun7 no longer buffers the input (http://forum.doom9.org/showpost.php?p=1047721&postcount=95).
This update yields a handsome 81% speed increase. :)

StainlessS
7th September 2013, 14:05
Thank you RD.
Is source available for the mod ?

EDIT: Judging by previous posts on source, source may not available.
No doc in zip, here doc from earlier frfun7_rev6.zip, no idea if current.


FRFun7(Lambda=Float,T=Float,Tuv=Float)


Lambda adjusts the power of the local denoising
The default value is 1.1

T limits the max luma denoising power for edges
The default value is 6.0

Tuv does the same as T, but for the chroma
The default value is 2.0


~TrimmedBush

GMJCZP
3rd November 2014, 03:59
I had some problems using frfun3d and SetMTMode, it is hung up on me more than once. Is not there the possibility of an upgrade, as frfun7? Thank you.

TheFluff
3rd November 2014, 20:49
yes, I'm sure if you post enough someone who posted in this thread seven years ago will pop and do something useful

thescrapyard
13th November 2014, 10:00
It is possible though .....

I posted a request for PeachSmoother even though thats an ancient YUY2 plugin and it took a couple of days but it re-appeared in its original form and also updated to the latest API, but not YV12 more the pity

But still impressive response for something from 10 years ago


Now, if somebody could re-post the links so I can get all the related plugins such as GrapeSmoother, as I missed them last time it was reposted on a temporary basis

johnmeyer
13th November 2014, 16:14
What is with all these necro'd threads recently?

StainlessS
13th November 2014, 19:24
What is with all these necro'd threads recently?

as opposed to all of the bright shiny new ones.


@thescrapyard,
I think the reason I did not do YV12 was that it was in i86 assy, and I dont speak that and so could not do conversion.

StainlessS
14th November 2014, 02:29
Now, if somebody could re-post the links so I can get all the related plugins such as GrapeSmoother, as I missed them last time it was reposted on a temporary basis

What I've got. Dubb Filters(source):
http://www.mediafire.com/download/plaqtpomoffpyap/Dubb-filters.zip

Orig Peach:
http://www.mediafire.com/download/1177784vh5eqznf/peachsmoother_25_dll_20030801.zip

Peach CPP (avisynth v2.5+ CPP API with plugin autoload, dll+source):
http://www.mediafire.com/download/052rrbkwcqdu5rv/PeachSmoother20140428-SSSCompile-TAKE2.zip

Not sure, I think Wilbert might have dll/source repository for Dubb's Filters.

EDIT: GrapeSmoother dll:
http://www.mediafire.com/download/c1d2iz9a0u31lp8/grapesmoother_25_dll_20030801.zip

Guava-Comb:
http://www.mediafire.com/download/1o8ej9bc8qk7xr6/guavacomb_25_dll_20030801.zip

GMJCZP
14th November 2014, 02:52
Although the request of old filters different to frfun not belong to this topic, thank you very much StainlessS for your effort. It might be a good idea to open another topic about this. turbopascal7 started with some homework and be good to relive some more.
What do you think StainlessS and our friends?