The filters of Adaptive Vision Studio are highly optimized for modern multi-core processors with SSE2 technology. The table below shows results of a vision libraries performance benchmark.
|Filter||Adaptive Vision Library 3.1.2||Another product||OpenCV 220.127.116.11|
|Image negation||0.055 ms||0.103 ms||0.055 ms|
|Add two images (pixel by pixel)||0.055 ms||0.128 ms||0.055 ms|
|Image difference (pixel by pixel)||0.050 ms||0.125 ms||0.055 ms|
|RGB to HSV conversion (3xUINT8)||0.632 ms||1.243 ms||0.586 ms|
|Gauss filter 3x3||0.063 ms||0.290 ms||0.439 ms|
|Gauss filter 5x5||0.071 ms||0.323 ms||0.661 ms|
|Gauss filter 21x21 (std-dev: 4.3)||0.559 ms||1.815 ms||3.132 ms|
|Mean filter 21x21||0.315 ms||0.146 ms||0.637 ms|
|Image erosion 3x3||0.055 ms||0.127 ms||0.156 ms|
|Image erosion 5x5||0.059 ms||0.128 ms||0.209 ms|
|Sobel gradient amplitude (sum)||0.082 ms||0.092 ms|
|Sobel gradient amplitude (hypot)||0.125 ms||0.126 ms|
|Threshold to region||0.061 ms||0.032 ms|
|Splitting region into blobs||0.039 ms||0.082 ms|
|Bilinear image resize||0.205 ms||0.272 ms||0.114 ms|
The above results correspond to 640x480 resolution, 1xUINT8 on an Intel Core i7 - 3.4 GHz (4 cores) machine. To assure consistent cache conditions big images were used and the results were normalized.
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.