Log in

View Full Version : ChroNoFix Filter


Marc FD
14th July 2002, 17:59
Hi !
I've make an another little filter :D
I've always searched for a good (and fast) chroma denoiser for AviSynth for VHS or other analog sources. Since i'm able to do avs filters, i've decided to code one ;)

The filter is not finished, so do not expect a (good) chroma denoiser.
In fact, i realease this because i've added a debug mode (with negatives values) to see the effects of my filter and to improve it.
And it really rocks :cool:
With it, you can see the following planes of a clip :
Y,U,V,UV,HSL Hue and HSL Saturation
in colors or greyscale :)

From what i've tested it's very efficient (in -7 and -9 debug mode)
to see the compressions artifacts of XviD or DivX or even MPEG-2 videos :devil:

Test it :D :
Dl ChroNoFix beta1 : http://ziquash.chez.tiscali.fr/ChroNoFix%20beta1.zip

bill_baroud
15th July 2002, 02:06
hey thanks for the filter, i was just wondering how i can see the effect of a SmoothHiQ just on Chroma(with MergeLuma)


good work !

Marc FD
15th July 2002, 13:14
If you are searching for a real Chroma Noise Fixer, i will release a working version of ChroNoFix Very soon (i've just to tune the internal engine a bit ...)

Marc FD
15th July 2002, 16:53
Okay here is ChroNoFix beta2 : a real CDNF+B_HSL filter :cool:
WARNING : the arg list is 12 args long :devil:

bill_baroud
16th July 2002, 01:36
i continue to play with !


but ..... damn i don't understand all your param ^^;
could you explain it a little bit more, or it's a pain, and i have to search myself =) ?

have you some links about what's a good Chroma channel (well i don't know which sort of artefact i need to search) ?


thanks anyway for this filter.

Marc FD
16th July 2002, 19:10
I don't know :D
Seriously, this filter is, as you mentionned it, "a toy" :
I don't know special algos to clean chroma noise :(
What i've done is a little HSB-oriented single-pixel temporal blender :
you calc dY = |Yn-Y(n-1)|, dH = |Hn-H(n-1)|, dH = |Hn-H(n-1)|
then you use the functions to detemine the "is-it noise ?" value :
iin = (iinfY(dY)*2+iinfH(dH)+iinfH(dH))/4
and after that i blend the H and S planes :
H = Hn*bfH(iin)+H(n-1)*bfH(1-iin)
S = Sn*bfS(iin)+S(n-1)*bfS(1-iin)
all the vars are ratios (v<1) and n is the frame number :)
Got it ?? (it is just a little algo i invented ...)

(you can draw them using 0 mode : the 3 firsts are iinfY,iinfH,iinfS and then bfH and finally bfS )

I'm now working on a Motion Compensation engine. ( to code a temp-spatial MoComp noise blender/fixer/softener :devil: )

PS : If you have any links/doc on algos/methods/ect.. to do filters i'm very interessed :)