Shadertoy-Shaders/Image-Filtering/Optimized-Bilateral-Filter/README.md

900 B

Optimized-Bilateral-Filter

overview.png

In part 1 you can the example image with noise applied to it. In sector 2 you can see the denoised image and in sector 3 is the original unfiltered image.

A biliteral filter is essentially a gaussian blur filter with an extra weight applied per pixel. This weight is a the luminance range between the target pixel to filter and the sourounding pixels passed into a gaussian weight function.

Optimization

Instead of applying a very costly gaussian blur filter we can optimize it by using a tent blur filter instead. This allows to speed up the performance by replacing the gaussian weight function with a tent blur kernel. Additionally we can optimize the squareroot of the gaussian weight function for the luminance range away.