Pookie
2nd September 2007, 23:35
RemoveGrainHD 0.1
A collection of Avisynth 2.5x denoising filters
By Rainer Wittmann
http://www.removegrainhd.de.tf/
HD stands for High Definition, i.e. for high resolution input. For this kind of video RemoveGrain, which changes a pixel in terms of its eight direct neighbours, may be too narrow, because due to the high resolution noise often consists of pixel clusters rather than isolated pixels. Thus instead of RemoveGrain's 3x3 neighbourhood the filter RemoveGrainHD uses a rather arbitrary symmetric rectangle (preferrably but not neccessarily a square) around a pixel to process it. Of course not all the many RemoveGrain modes can be extended to this setting. In fact, the current version of RemoveGrainHD only contains the 4 original modes, with which RemoveGrain was started once. Nevertheless a useful Repair variant, which serves the same purpose as the Repair plugin of the RemoveGrain package, is included as well. There is even a spatio-temporal version called TemporalRemoveGrainHD, which has no counterpart in RemoveGrain at all. While RemoveGrain uses a very high level of parallelism - the SSE2/SSE3 version processes 16 pixels simultaneously - this is unfortunately no more possible for RemoveGrainHD. It is a rather ordinary C/C++ program without any inline assembler code. Nevertheless performance is not that bad thanks to some ideas, which I have taken from Tonny Petersen's (called tsp on the Doom9 forum) medianblur filter. However, there are some subtle changes, which should also improve Medianblur. Thus I have reimplemented Medianblur in this plugin. This filter is called Quantile, because it not only can calculate the median of an arbitrary surrounding rectangle but also arbitrary quantiles of these rectangels. The median then is just a special quantile. RemoveGrainHD can be emulated with an Avisynth script, which involves two instances of the filter Quantile and two Lutxy instances. However, such a script is substantially slower.
A collection of Avisynth 2.5x denoising filters
By Rainer Wittmann
http://www.removegrainhd.de.tf/
HD stands for High Definition, i.e. for high resolution input. For this kind of video RemoveGrain, which changes a pixel in terms of its eight direct neighbours, may be too narrow, because due to the high resolution noise often consists of pixel clusters rather than isolated pixels. Thus instead of RemoveGrain's 3x3 neighbourhood the filter RemoveGrainHD uses a rather arbitrary symmetric rectangle (preferrably but not neccessarily a square) around a pixel to process it. Of course not all the many RemoveGrain modes can be extended to this setting. In fact, the current version of RemoveGrainHD only contains the 4 original modes, with which RemoveGrain was started once. Nevertheless a useful Repair variant, which serves the same purpose as the Repair plugin of the RemoveGrain package, is included as well. There is even a spatio-temporal version called TemporalRemoveGrainHD, which has no counterpart in RemoveGrain at all. While RemoveGrain uses a very high level of parallelism - the SSE2/SSE3 version processes 16 pixels simultaneously - this is unfortunately no more possible for RemoveGrainHD. It is a rather ordinary C/C++ program without any inline assembler code. Nevertheless performance is not that bad thanks to some ideas, which I have taken from Tonny Petersen's (called tsp on the Doom9 forum) medianblur filter. However, there are some subtle changes, which should also improve Medianblur. Thus I have reimplemented Medianblur in this plugin. This filter is called Quantile, because it not only can calculate the median of an arbitrary surrounding rectangle but also arbitrary quantiles of these rectangels. The median then is just a special quantile. RemoveGrainHD can be emulated with an Avisynth script, which involves two instances of the filter Quantile and two Lutxy instances. However, such a script is substantially slower.