View Single Post
Old 1st July 2004, 16:31   #18  |  Link
kassandro
Registered User
 
Join Date: May 2003
Location: Germany
Posts: 502
Didée,
you would be right, if for a whole line there would be difference of 10 between neighbouring pixels, then you would see blockiness like in Soulhunter's screen shots. However, if he really cleans everywhere, but with change limitation to avoid artifacts, then blockiness would hardly be possible. Blockiness is possible, if he would use dct/idct filtering like trbarry, or he would clean only some blocks, like RemoveDirt, which has no change limitation, or if he would use a block rather than a pixel dependent cleaning routine. For me personally change limitation is a very primitive kind of artifact protection, because such kind of cleaning has very little effect on sharp dirt. On the other hand, change limitation can be nicely combined with minmax clipping, which I employ in RemoveDirt. Consequently I could get a temporal change limited cleaner with 200-400 fps on my 1.3 GHZ Celeron, which doesn't require any deblocking. It should be very similar to Faerydust.
Now spatial cleaning is a very different subject. Firstly, there are the convolution based denoisers, which I deeply hate. Secondly, there is trbarry's dct filter and vaguedenoiser, which seems to use a dwt (= discret wavelet transform) instead of dct. Unlike convolution based filters these filters are based on very sound mathematical ideas. Nevertheless they do not make sense to me, because any advanced codec does such kind of filtering all the time and in a more compression efficient way. Thus instead of using such filters one should better raise the quantiser of the codec. Then finally there is trbarry's Undot, which uses some kind of spatial minmax clipping. This is a fast, simple, virtually artifact free, spatial denoiser, which makes sense for any progressive clip but unfortunately takes out only very little noise. I pushed the idea of Undot a lot further and RemoveGrain is the result. An inofficial release can be found by searching for RemoveGrain in this forum. It is stable but slow. The official release will be SSE turbo charged. Because of the above variety Pixiedust's spatial cleaning method is hard to guess, but temporally with change limitation (change limitation does not make sense for Undot like denoisers) I can certainly do better.
Dust was written before Avisynth went yv12. As we can read from the above documentation, it converts internally the interleaved yuy2 color space to a planar color space, processes the frame and then converts it back to yuy2. Thus yv12 would have been the ideal color space for Dust, because all these conversion would not have been necessary.
kassandro is offline   Reply With Quote