| View previous topic :: View next topic |
| Author |
Message |
finecur Guest
|
Posted: Fri Oct 10, 2008 4:33 pm Post subject: fast gaussian filter |
|
|
Do you know any fast implementation of Gaussian smoothing? I mean
beyond making it seperatable...
I found a recursive implementation from the paper "Recursive
implementation of the Gaussian filter", If I use integer but not float
point, however, the result is not accurate.
Any other method? Photoshop>s Gaussian blur is very fast, I am
wondering how they did it. |
|
| |
|
Back to top |
finecur Guest
|
Posted: Fri Oct 10, 2008 5:44 pm Post subject: Re: fast gaussian filter |
|
|
On Oct 10, 10:03 am, Paul Russell <pruss...@sonic.net> wrote:
[quote]finecur wrote:
Do you know any fast implementation of Gaussian smoothing? I mean
beyond making it seperatable...
I found a recursive implementation from the paper "Recursive
implementation of the Gaussian filter", If I use integer but not float
point, however, the result is not accurate.
Any other method? Photoshop>s Gaussian blur is very fast, I am
wondering how they did it.
You need to exploit integer (fixed point) SIMD.
Paul
[/quote]
SIMD is not available for the platform I am working on. |
|
| |
|
Back to top |
Paul Russell Guest
|
Posted: Fri Oct 10, 2008 10:03 pm Post subject: Re: fast gaussian filter |
|
|
finecur wrote:
[quote]Do you know any fast implementation of Gaussian smoothing? I mean
beyond making it seperatable...
I found a recursive implementation from the paper "Recursive
implementation of the Gaussian filter", If I use integer but not float
point, however, the result is not accurate.
Any other method? Photoshop>s Gaussian blur is very fast, I am
wondering how they did it.
[/quote]
You need to exploit integer (fixed point) SIMD.
Paul |
|
| |
|
Back to top |
4N Guest
|
Posted: Sat Oct 11, 2008 1:37 pm Post subject: Re: fast gaussian filter |
|
|
you can try a separable implementation that works for moderately large
radiuses |
|
| |
|
Back to top |
aruzinsky Guest
|
Posted: Sun Oct 12, 2008 3:29 pm Post subject: Re: fast gaussian filter |
|
|
On Oct 10, 11:44 am, finecur <fine...@yahoo.com> wrote:
[quote]On Oct 10, 10:03 am, Paul Russell <pruss...@sonic.net> wrote:
finecur wrote:
Do you know any fast implementation of Gaussian smoothing? I mean
beyond making it seperatable...
I found a recursive implementation from the paper "Recursive
implementation of the Gaussian filter", If I use integer but not float
point, however, the result is not accurate.
Any other method? Photoshop>s Gaussian blur is very fast, I am
wondering how they did it.
You need to exploit integer (fixed point) SIMD.
Paul
SIMD is not available for the platform I am working on.
[/quote]
How do you know Photoshop doesn>t use SIMD? |
|
| |
|
Back to top |
toby Guest
|
Posted: Sun Oct 12, 2008 6:46 pm Post subject: Re: fast gaussian filter |
|
|
On Oct 10, 12:33 pm, finecur <fine...@yahoo.com> wrote:
[quote]Do you know any fast implementation of Gaussian smoothing? I mean
beyond making it seperatable...
I found a recursive implementation from the paper "Recursive
implementation of the Gaussian filter", If I use integer but not float
point, however, the result is not accurate.
Any other method? Photoshop>s Gaussian blur is very fast, I am
wondering how they did it.
[/quote]
Judging from this, http://www.stereopsis.com/kpt/kptblur.html
KPT blurs were even more efficient than Photoshop>s. |
|
| |
|
Back to top |
4N Guest
|
Posted: Sun Oct 12, 2008 10:59 pm Post subject: Re: fast gaussian filter |
|
|
"aruzinsky" <aruzinsky@general-cathexis.com> ha scritto nel messaggio
news:bd16d583-f324-42c4-9a7c-46e14ef018de@v15g2000hsa.googlegroups.com...
On Oct 10, 11:44 am, finecur <fine...@yahoo.com> wrote:
[quote]How do you know Photoshop doesn>t use SIMD?
[/quote]
maybe with "SIMD is not available for the platform I am working on" he means
he uses an old PC not supporting SIMD instructions, therefore they can>t be
used by Photoshop. |
|
| |
|
Back to top |
bugbear Guest
|
Posted: Mon Oct 13, 2008 3:03 pm Post subject: Re: fast gaussian filter |
|
|
toby wrote:
[quote]On Oct 10, 12:33 pm, finecur <fine...@yahoo.com> wrote:
Do you know any fast implementation of Gaussian smoothing? I mean
beyond making it seperatable...
I found a recursive implementation from the paper "Recursive
implementation of the Gaussian filter", If I use integer but not float
point, however, the result is not accurate.
Any other method? Photoshop>s Gaussian blur is very fast, I am
wondering how they did it.
Judging from this, http://www.stereopsis.com/kpt/kptblur.html
KPT blurs were even more efficient than Photoshop>s.
[/quote]
quote:
[quote]This filter applies at exactly the same speed regardless of the blur radius. That means that a 1-pixel blur or a 500-pixel blur will apply at exactly the same speed. Using this when you really want to blur a lot pays off.
[/quote]
Sounds like IIR to me.
There>s an implementation in Gimp, which being open source
provides source code too.
BugBear |
|
| |
|
Back to top |
aruzinsky Guest
|
Posted: Mon Oct 13, 2008 3:55 pm Post subject: Re: fast gaussian filter |
|
|
On Oct 10, 10:33 am, finecur <fine...@yahoo.com> wrote:
[quote]Do you know any fast implementation of Gaussian smoothing? I mean
beyond making it seperatable...
I found a recursive implementation from the paper "Recursive
implementation of the Gaussian filter", If I use integer but not float
point, however, the result is not accurate.
Any other method? Photoshop>s Gaussian blur is very fast, I am
wondering how they did it.
[/quote]
How fast is Photoshop>s Gaussian with a Std.Dev. (which I assume is
radius) of 100?
Using a separable kernel with a support of 6 Std.Dev. and X87 floating
point, I get 8.7 seconds/megapixel on my computer. That seems
adequate for most intents and purposes. I |
|
| |
|
Back to top |
aruzinsky Guest
|
Posted: Mon Oct 13, 2008 5:19 pm Post subject: Re: fast gaussian filter |
|
|
On Oct 13, 10:29 am, bugbear <bugbear@trim_papermule.co.uk_trim>
wrote:
[quote]aruzinsky wrote:
On Oct 10, 10:33 am, finecur <fine...@yahoo.com> wrote:
Do you know any fast implementation of Gaussian smoothing? I mean
beyond making it seperatable...
I found a recursive implementation from the paper "Recursive
implementation of the Gaussian filter", If I use integer but not float
point, however, the result is not accurate.
Any other method? Photoshop>s Gaussian blur is very fast, I am
wondering how they did it.
How fast is Photoshop>s Gaussian with a Std.Dev. (which I assume is
radius) of 100?
Using a separable kernel with a support of 6 Std.Dev. and X87 floating
point, I get 8.7 seconds/megapixel on my computer. That seems
adequate for most intents and purposes. I
On gimp I just applied a 100 pixel gaussian to an RGB image
of 3264x2448 pixels on a fujitsu-seimens laptop.
It took 10.38 seconds.
I>ve appended /proc/cpuinfo to the post, but the highlights are:
Intel(R) Celeron(R) M processor 1500MHz
BugBear- Hide quoted text -
- Show quoted text -
[/quote]
I didn>t say "100 pixel." The size of my kernel was 601 pixels.
Here is the impulse response
http://www.general-cathexis.com/images/Gaussian.png
normalized to [0, 255]. The result was 32 bit floating point before
converting to 8 bit/channel PNG.
My computer is Athlon 64, 1.81 GHz. |
|
| |
|
Back to top |
bugbear Guest
|
Posted: Mon Oct 13, 2008 9:29 pm Post subject: Re: fast gaussian filter |
|
|
aruzinsky wrote:
[quote]On Oct 10, 10:33 am, finecur <fine...@yahoo.com> wrote:
Do you know any fast implementation of Gaussian smoothing? I mean
beyond making it seperatable...
I found a recursive implementation from the paper "Recursive
implementation of the Gaussian filter", If I use integer but not float
point, however, the result is not accurate.
Any other method? Photoshop>s Gaussian blur is very fast, I am
wondering how they did it.
How fast is Photoshop>s Gaussian with a Std.Dev. (which I assume is
radius) of 100?
Using a separable kernel with a support of 6 Std.Dev. and X87 floating
point, I get 8.7 seconds/megapixel on my computer. That seems
adequate for most intents and purposes. I
[/quote]
On gimp I just applied a 100 pixel gaussian to an RGB image
of 3264x2448 pixels on a fujitsu-seimens laptop.
It took 10.38 seconds.
I>ve appended /proc/cpuinfo to the post, but the highlights are:
Intel(R) Celeron(R) M processor 1500MHz
BugBear |
|
| |
|
Back to top |
bugbear Guest
|
Posted: Mon Oct 13, 2008 9:59 pm Post subject: Re: fast gaussian filter |
|
|
bugbear wrote:
[quote]I>ve appended /proc/cpuinfo to the post, but the highlights are:
Intel(R) Celeron(R) M processor 1500MHz
[/quote]
No I hadn>t!
BugBear
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 9
model name : Intel(R) Celeron(R) M processor 1500MHz
stepping : 5
cpu MHz : 1499.846
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr mce cx8 mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe up bts
bogomips : 3001.17
clflush size : 64
power management: |
|
| |
|
Back to top |
Pierre Joye Guest
|
Posted: Tue Oct 14, 2008 7:42 am Post subject: Re: fast gaussian filter |
|
|
On Oct 13, 12:03 pm, bugbear <bugbear@trim_papermule.co.uk_trim>
wrote:
[quote]toby wrote:
On Oct 10, 12:33 pm, finecur <fine...@yahoo.com> wrote:
Do you know any fast implementation of Gaussian smoothing? I mean
beyond making it seperatable...
I found a recursive implementation from the paper "Recursive
implementation of the Gaussian filter", If I use integer but not float
point, however, the result is not accurate.
Any other method? Photoshop>s Gaussian blur is very fast, I am
wondering how they did it.
Judging from this,http://www.stereopsis.com/kpt/kptblur.html
KPT blurs were even more efficient than Photoshop>s.
quote:
>>This filter applies at exactly the same speed regardless of the blur radius. That means that a 1-pixel blur or a 500-pixel blur will apply at exactly the same speed. Using this when you really want to blur a lot pays off.
Sounds like IIR to me.
There>s an implementation in Gimp, which being open source
provides source code too.
[/quote]
Mario Klingenmann implemented some fast blurs function for his flash
projects. The code has been ported to c/c++ (see AGG for example):
http://incubator.quasimondo.com/processing/superfast_blur.php
http://incubator.quasimondo.com/processing/fast_blur_deluxe.php
Not sure if it is exactly what you are looking for, but it may help
already.
Cheers,
--
Pierre
http://blog.thepimp.net | http://www.libgd.org |
|
| |
|
Back to top |
bugbear Guest
|
Posted: Tue Oct 14, 2008 1:47 pm Post subject: Re: fast gaussian filter |
|
|
aruzinsky wrote:
[quote]On Oct 13, 10:29 am, bugbear <bugbear@trim_papermule.co.uk_trim
wrote:
aruzinsky wrote:
On Oct 10, 10:33 am, finecur <fine...@yahoo.com> wrote:
Do you know any fast implementation of Gaussian smoothing? I mean
beyond making it seperatable...
I found a recursive implementation from the paper "Recursive
implementation of the Gaussian filter", If I use integer but not float
point, however, the result is not accurate.
Any other method? Photoshop>s Gaussian blur is very fast, I am
wondering how they did it.
How fast is Photoshop>s Gaussian with a Std.Dev. (which I assume is
radius) of 100?
Using a separable kernel with a support of 6 Std.Dev. and X87 floating
point, I get 8.7 seconds/megapixel on my computer. That seems
adequate for most intents and purposes. I
On gimp I just applied a 100 pixel gaussian to an RGB image
of 3264x2448 pixels on a fujitsu-seimens laptop.
It took 10.38 seconds.
I>ve appended /proc/cpuinfo to the post, but the highlights are:
Intel(R) Celeron(R) M processor 1500MHz
BugBear- Hide quoted text -
- Show quoted text -
I didn>t say "100 pixel." The size of my kernel was 601 pixels.
[/quote]
You said:
"How fast is Photoshop>s Gaussian with a Std.Dev. (which I assume is
radius) of 100?"
So I did radius 100 in Gimp (for comparison with the request
you made of Photoshop)
BugBear |
|
| |
|
Back to top |
aruzinsky Guest
|
Posted: Tue Oct 14, 2008 5:45 pm Post subject: Re: fast gaussian filter |
|
|
On Oct 14, 2:47 am, bugbear <bugbear@trim_papermule.co.uk_trim> wrote:
[quote]aruzinsky wrote:
On Oct 13, 10:29 am, bugbear <bugbear@trim_papermule.co.uk_trim
wrote:
aruzinsky wrote:
On Oct 10, 10:33 am, finecur <fine...@yahoo.com> wrote:
Do you know any fast implementation of Gaussian smoothing? I mean
beyond making it seperatable...
I found a recursive implementation from the paper "Recursive
implementation of the Gaussian filter", If I use integer but not float
point, however, the result is not accurate.
Any other method? Photoshop>s Gaussian blur is very fast, I am
wondering how they did it.
How fast is Photoshop>s Gaussian with a Std.Dev. (which I assume is
radius) of 100?
Using a separable kernel with a support of 6 Std.Dev. and X87 floating
point, I get 8.7 seconds/megapixel on my computer. That seems
adequate for most intents and purposes. I
On gimp I just applied a 100 pixel gaussian to an RGB image
of 3264x2448 pixels on a fujitsu-seimens laptop.
It took 10.38 seconds.
I>ve appended /proc/cpuinfo to the post, but the highlights are:
Intel(R) Celeron(R) M processor 1500MHz
BugBear- Hide quoted text -
- Show quoted text -
I didn>t say "100 pixel." The size of my kernel was 601 pixels.
You said:
"How fast is Photoshop>s Gaussian with a Std.Dev. (which I assume is
radius) of 100?"
So I did radius 100 in Gimp (for comparison with the request
you made of Photoshop)
BugBear- Hide quoted text -
- Show quoted text -
[/quote]
Sorry. You should compare impulse responses to see whether there is a
difference, otherwise we may be comparing apples and oranges. |
|
| |
|
Back to top |
|