Reputation: 6835
Evidently there is this high quality KDE algorithm that is used in the computer graphics industry, but everyone I've asked refuse to tell me what it is. I've implemented http://en.wikipedia.org/wiki/Kernel_density_estimation , but noise is still a big problem. I've seen renderings of this "high quality KDE" and the outputs are far more superior than the ones you get from the KDE algorithm described on wikipedia. Does anyone know what this highly secretive KDE algorithm is?
An example of a variation of the standard KDE in use is the flam3 program, which is a fractal flame rendering and animation program. Problem with flam3 is that its rendered images contain noise. Chaotica, another fractal flame rendering program, uses this 'higher quality' KDE algorithm to eliminate noise and thus produces much higher quality renders. Chaotica isn't open source, but it implements the same fractal flame algorithm which requires a density estimation algorithm. Also, the author of Chaotica has stated that it uses a different KDE that is used in the computer graphics industry.
Upvotes: 3
Views: 1049
Reputation: 5068
You are probably on the wrong track here. The noise you are worried about is not a bad KDE, it's your input data. You can smooth it or sample it better (not more, but smarter).
About your example: The last time I looked at flame, it just forward iterates the system and accumulates density. This could be easily smoothed by keeping count of how often you accumulated per pixel and use that as an input to a blur filter. Or you could do better in estimating numerical error per sample and perturbing it's location or weight by that. Or use higher precision to reduce noise.
Upvotes: 0
Reputation: 9796
KDE is not normally used for graphics at least not the final output. I think what you might be looking for is bicubic interpolation or maybe cubic hermite spine
Upvotes: 1