Leistung

Die Filter des Adaptive Vision Studio sind hoch optimiert für moderne Multicore-Prozessoren mit SSE2-Technologie. Die folgende Tabelle zeigt die Ergebnisse einer Vision-Bibliotheken Performance-Benchmark.

Benchmark von Vision-Bibliotheken

Filter Adaptive Vision ein Anderes annerkantes Produkt OpenCV
Invertieren eines Bildes 0.073 ms 0.078 ms
Addition von zwei Bildern (pixelweise) 0.088 ms 0.151 ms 0.121 ms
Substraktion von zwei Bildern (pixelweise) 0.089 ms 0.155 ms 0.121 ms
Transformation vom RGB- zu HSV-Farbraum (3xUINT8) 1.10 ms 3.31 ms 4.37 ms
Gauß-Filter 3x3 0.089 ms 0.420 ms 0.514 ms
Gauß-Filter 5x5 0.096 ms 0.685 ms 0.800 ms
Gauß-Filter 21x21 (StdDev: 4.3) 1.42 ms 3.30 ms 4.25 ms
Mean filter 21x21 0.359 ms 0.327 ms 1.753 ms
Verdünnung (Erosion) 3x3 0.080 ms 0.158 ms 0.149 ms
Verdünnung (Erosion) 5x5 0.090 ms 0.174 ms 0.188 ms
Sobel-Operator Gradient-Amplitude (sum) 0.120 ms 0.123 ms
Sobel-Operator Gradient-Amplitude (hypot) 0.211 ms 0.885 ms
Schwellenwertsegmentation 0.35 ms 0.34 ms

Die obigen Ergebnisse entsprechen einer 640x480 Auflösung, 1xUINT8 per Pixel auf einem Intel Core i7. Um konsistente Cache-Bedingungen sicherzustellen, große Bilder wurden verwendet und die Ergebnisse wurden normalisiert.

SEE- und Multicore-Optimierung

Filter von Adaptive Vision Studio sind für SSE-Technologie und Multi-Core-Prozessoren optimiert. Speed-up Faktoren, die mit diesen Techniken erreicht werden können, sind jedoch in hohem Maße von der jeweiligen Operation abhängig. Einfache Pixelweise-Transformationen erreichen nach SSE-basierten Optimierungen bereits die Grenze des Datendurchsatzes des Speichers. Andererseits lassen sich komplexere Filter, wie Gauß-Glättung, bis sogar 10-mal niedriger Laufzeit beschleunigen, als mit nur C++-Optimierungen.

Filter Nicht optimiert SSE SSE u. Mehrkern (4 Kerne) SSE Speedup-Faktor Mehrkern Speedup-Faktor Speedup insgesamt
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

Die obigen Ergebnisse entsprechen einer 640x480 Auflösung, 1xUINT8 per Pixel auf einem Intel Q9550 - 2.83 GHz (4 Kerne). Um konsistente Cache-Bedingungen sicherzustellen, große Bilder wurden verwendet und die Ergebnisse wurden normalisiert.