-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
40 lines (28 loc) · 1.39 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Simple* bilateral filter
========================
Copyright (C) 2010 David Beynon <[email protected]>
Based on gimp plugin framework (C) 2000-2003 Michael Natterer <[email protected]>
This package implements a fast "surface blur" effect based on a simplified
bilateral filter. Results are similar to those of "Selective Gaussian Blur",
but performance should be substantially better for large filter sizes.
The main features are as follows:
- O(1) filtering algorithm makes performance almost independent of filter
radius.
To build and install it, just ...
./configure
make
make install
Technical stuff:
The O(1) filtering algorithm is based on a structure called the "integral
histogram". This allows extremely rapid extraction of histograms for
rectangular regions of an image, at the cost of absurd amounts of memory. In
order to keep the memory usage under control the filter works on the image in
tiles, and at a reduced precision. These are currently set to give an overhead
of 64mb.
Image quality may be improved by increasing the number of bins in use, and
performance by increasing the size of tiles. These may be adjusted by editing
"settings.h".
Quality and performance controls may be added to future versions.
The word "simple" refers to the mathematical characteristics of the spatial
filter kernel. Hopefully the code is fairly simple to read, but bits of it
were quite fiddly :)