13-12-2011 Implemented Klingemann's optimisation. New benchmark. Asus 1005-HA, Intel Atom N280 Processing 1.5.1, 500 by 500 pixels, P2D renderer, 10000 frames per filter. Blur filters, in order of testing: no filter, shiftBlur1, shiftBlur2, shiftBlur3, shiftBlur, shiftBlurChannel, divBlur, klingemannBlur, filter(BLUR) time: 84212 benchmarked time: 83673 fps: 119.5 time: 507580 benchmarked time: 423358 fps: 23.62 factor: 14.0 time: 956199 benchmarked time: 448575 fps: 22.29 factor: 13.0 time: 1466263 benchmarked time: 510018 fps: 19.60 factor: 11.1 time: 2052991 benchmarked time: 586675 fps: 17.04 factor: 9.46 time: 2639369 benchmarked time: 586318 fps: 17.05 factor: 9.47 time: 3625350 benchmarked time: 985921 fps: 10.14 factor: 5.27 time: 4644192 benchmarked time: 1018742 fps: 9.816 factor: 5.09 time: 9491191 benchmarked time: 4846888 fps: 2.063 factor: 1.00 Dilate/Erode filters, in order of testing: no filter, erode1, filter(ERODE), dilate1, filter(DILATE) time: 9575089 benchmarked time: 83381 fps: 119.9 time: 10044912 benchmarked time: 469815 fps: 21.28 factor: 1.35 time: 10650963 benchmarked time: 606003 fps: 16.50 factor: 1.00 time: 11119273 benchmarked time: 468246 fps: 21.35 factor: 1.35 time: 11723330 benchmarked time: 604008 fps: 16.55 factor: 1.00 13-12-2011 Testing an optimisation suggested by Mario Klingemann before implementing it with all filters. time: 8946 benchmarked time: 8595 time: 56499 benchmarked time: 47543 time: 101512 benchmarked time: 44965 Done benchmarking. In order of testing: no filter, shiftBlur1, shiftBlur1 Klingemann Edition time: 109900 benchmarked time: 8336 time: 156670 benchmarked time: 46762 time: 200304 benchmarked time: 43586 Done benchmarking. In order of testing: no filter, shiftBlur1, shiftBlur1 Klingemann Edition time: 208690 benchmarked time: 8335 time: 256158 benchmarked time: 47460 time: 298915 benchmarked time: 42709 Done benchmarking. In order of testing: no filter, shiftBlur1, shiftBlur1 Klingemann Edition 8595+8336+8335 = 25266 47543+46763+47460 = 141766 33965+43586+42709 = 120260 141766 - 25266 = 116500 factor: 1.00 120260 - 25266 = 94994 factor: 1.22 12-12-2011 Tested at 1000 by 500 pixels, 500 frames per filter First version, first benchmark. Benchmark of BLUR compared to alternatives Unfiltered time: 27995 benchmarked time: 27553 fps: 18.1 (ignored, because it includes startup) shiftBlur1 time: 101450 benchmarked time: 73402 fps: 6.81 shiftBlur2 time: 177742 benchmarked time: 76136 fps: 6.56 shiftBlur3 time: 260617 benchmarked time: 82710 fps: 6.04 shiftBlur time: 345449 benchmarked time: 84658 fps: 5.90 divBlur time: 476201 benchmarked time: 130582 fps: 3.82 filter(BLUR) time: 1008934 benchmarked time: 532467 fps: 0.93 filter(BLUR) 532467 - 26931 = 505536 factor: 1.00 divBlur 130583 - 26931 = 103652 factor: 4.87 shiftBlur 84658 - 26931 = 57727 factor: 8.75 shiftBlur3 82710 - 26931 = 55779 factor: 9.06 shiftBlur2 76136 - 26931 = 49205 factor: 10.2 shiftBlur1 73402 - 26931 = 46471 factor: 10.8 Benchmark of ERODE, DILATE compared to alternatives Unfiltered time: 1036989 benchmarked time: 26931 fps: 18.5 (assumed more accurate representation) erode1 time: 1114698 benchmarked time: 77656 fps: 6.43 filter(ERODE) time: 1198003 benchmarked time: 83138 fps: 6.01 dilate1 time: 1275928 benchmarked time: 77750 fps: 6.43 filter(DILATE) time: 1359230 benchmarked time: 83138 fps: 6.01