PDA

View Full Version : convolution3d - will "5d" gain quality?


lex3
14th October 2002, 13:34
Hi, all!

1st: thanks to all participated in the rise of c3d! :)

Is there any chance that adding radius option (either both spatial & temporal or separately) will allow to increase the quality of noise filtering (it stands to reason that by the cost of lower speed :( )?

@Vlad59:
Will it be hard to add such an option (or 2 separate options) for spatial & temporal radius? With vs. without code optimizations?

Thanks, lex3

sh0dan
14th October 2002, 13:47
Adding bigger radius to c3d will make it much slower - now 27 (3x3x3) pixels are touched per pixel. Making radius will make this figure 125 (5x5x5), which is a factor 5 slowdown (at least) - cache misses will probably rise from it, which will slow it further down.

btw, vlad is the author, so I think you should ask him.

lex3
14th October 2002, 14:03
Well, sure it will be slower, but for filters allowing changing radius that results in valuable changes in the output.

May be here we have the same situation?


Yes, sorry. Sure Vlad is the right person to ask. Corrected above.

Thanks, lex3

vlad59
14th October 2002, 14:03
I agree with Sh0dan analysis.
So I think it would be a bad idea to have a full 5*5*5 matrix.

I thought of having 3 5*3 matrix :

1 1 1 1 1
1 1 1 1 1
1 1 1 1 1


As the matrix is only longer horizontaly, the cache should be well used (at least Tom said that to me and I believe him ;) ). And this shouldn't cause too much time penalties.

But I never made a single test about it so it's pure theory.

lex3
14th October 2002, 14:22
Probably this may become the most common pattern to use for TV captures, but sometimes time spent matters less than the quality. :)

So, is there any chance to add such option(s)?
- temporal radius - 3 (default), 5, 7, 9
- horizontal radius - 3 (default), 5, 7, 9 (11, 13 ???)
- vertical radius - 3 (default), 5, 7, 9 (11, 13 ???)

vlad59
14th October 2002, 14:32
Honestly there is a chance.

But the real question is when ?????
And as my worktime is getting bigger and bigger, I can't answer to this question.

lex3
14th October 2002, 14:39
You are right: when - this is the Q.

Well, lets wait.

WarpEnterprises
14th October 2002, 15:42
@vlad59: Here from me too a great THANKS for your great filter.
It has evolved to a part of the Avisynth standard toolbox (and this is not solely my opinion).

OUTPinged_
14th October 2002, 16:57
how about a "temporal pixel lock" option?

"if difference between prev/curr/next temporal values is lower than thresh, use same pixel's in prev. frame value."

or something like that

also, there is more:

having 3x3x3 array of values and a noise thresh, how about marking a pixel as "static" (if no pixels differ more than noise thresh 3x3spatial in curr frame of corresponding 3x3 in prev and next frames) and increasing(ie doubling) it's temporal thresh's? That may futher reduce ghosting which we get with high temporal thresh values.