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.


