Performance

The filters of Adaptive Vision Studio are highly optimized for modern multicore processors with SSE2 technology. The table below shows results of a vision libraries performance benchmark.

Vision Libraries Benchmark

Filter Adaptive Vision Another "powerful" product OpenCV
Image negation 0.073 ms 0.078 ms
Add two images (pixel by pixel) 0.088 ms 0.151 ms 0.121 ms
Image difference (pixel by pixel) 0.089 ms 0.155 ms 0.121 ms
Rgb to Hsv conversion (3xUINT8) 1.10 ms 3.31 ms 4.37 ms
Gauss filter 3x3 0.089 ms 0.420 ms 0.514 ms
Gauss filter 5x5 0.096 ms 0.685 ms 0.800 ms
Gauss filter 21x21 (std-dev: 4.3) 1.42 ms 3.30 ms 4.25 ms
Mean filter 21x21 0.359 ms 0.327 ms 1.753 ms
Image erosion 3x3 0.080 ms 0.158 ms 0.149 ms
Image erosion 5x5 0.090 ms 0.174 ms 0.188 ms
Sobel gradient amplitude (sum) 0.120 ms 0.123 ms
Sobel gradient amplitude (hypot) 0.211 ms 0.885 ms
Threshold to region 0.35 ms 0.34 ms

The above results correspond to 640x480 resolution, 1xUINT8 on an Intel Core i7 - 2.67 GHz (4 cores) machine. To assure consistent cache conditions big images were used and the results were normalized.

SEE and Multi-Core Optimization

Filters of Adaptive Vision Studio are optimized for SSE technology and for multi-core processors. Speed-up factors that can be achieved with these techniques are however highly dependent on the particular operator. Simple pixel-by-pixel transforms after SSE-based optimizations already reach memory bandwidth limits. On the other hand, more complex filters such as Gauss smoothing can achieve even 10 times lower execution times than with C++ optimizations only.

Filter Not optimized SSE SSE & Multicore (4 cores) SEE Speed-up Factor Multi-core Speed-up Factor Total Speed-up Factor
ThresholdImage 0.443 ms 0.214 ms 0.201 ms 2.1 1.1 2.2
SmoothImage_GaussFast (3x3) 0.827 ms 0.415 ms 0.196 ms 2.0 2.1 4.2
RotateImage 1.84 ms 1.84 ms 0.75 ms 1.0 2.5 2.5
SmoothImage_Gauss (21x21) 12.10 ms 5.06 ms 1.37 ms 2.4 3.7 8.8

The above results correspond to 640x480 resolution, 1xUINT8 on an Intel Q9550 - 2.83 GHz (4 cores) machine. To assure consistent cache conditions big images were used and the results were normalized.