Strona www.adaptive-vision.com używa plików cookie do obsługi użytkowników oraz do celów statystycznych.
Zgodnie z nowymi przepisami mamy obowiązek Państwa o tym poinformować.
Szczegółowe informacje znajdą Państwo w naszej polityce prywatności.

Zamknij tę informację
POL ENG GER 中文(繁體) 中文(简体)

Wydajność


Narzędzia Adaptive Vision w pełni wykorzystują możliwości współczesnych procesorów - w szczególności instrukcje SSE/AVX/NEON i obliczenia równoległe w architekturach wielordzeniowych. Poniższa tabela zawiera wyniki testu porównawczego Adaptive Vision Studio i konkurencyjnych bibliotek.

Porównanie wydajności bibliotek wizyjnych

Filtr Adaptive Vision Studio 4.12 Inny produkt OpenCV 4.2
Negacja obrazu 0.030 ms 0.032 ms 0.025 ms
Suma obrazów 0.029 ms 0.047 ms 0.036 ms
Różnica obrazów 0.036 ms 0.045 ms 0.030 ms
Konwersja RGB do HSV 0.127 ms 1.026 ms 0.129 ms
Rozmycie Gaussa 3x3 0.031 ms 0.035 ms 0.037 ms
Rozmycie Gaussa 5x5 0.033 ms 0.073 ms 0.052 ms
Rozmycie Gaussa 21x21 0.311 ms 0.355 ms 0.240 ms
Filtr uśredniający 21x21 0.100 ms 0.102 ms 0.291 ms
Erozja 3x3 0.030 ms 0.035 ms 0.050 ms
Erozja 5x5 0.030 ms 0.036 ms 0.059 ms
Obli. amplitudy gradientu Sobela (sum) 0.032 ms 0.035 ms
Obli. amplitudy gradientu Sobela (hypot) 0.034 ms 0.040 ms
Progowanie do regionu 0.043 ms 0.076 ms
Spójne składowe regionu 0.119 ms 0.206 ms
Dwuliniowe skalowanie obrazu 0.131 ms 0.108 ms 0.052 ms

Powyższe rezultaty odpowiadają ośmiobitowemu obrazowi o rozdzielczości 640X480 na procesorze Intel Core i5 - 3.2 GHz. Celem eliminacji komponentu nieprzypadkowego z błedu mierniczego trzydziestokrotnie pomnożono przez 10 liczbę powtórzeń każdej operacji. Uzyskano następującą sekwencję powtórzeniową: 10, 20, 30, ..., 300. Następnie do uzyskanych czasów wykonania dopasowano prostą linię. Przy pomocy tego podejścia stały błąd powiązany z początkiem i końcem pomiaru odzwierciedla przesunięcie linii, podczas gdy czas wykonania wyrażany jest nierównością linii. W ramach podwyższenia precyzji pomiarów przetestowano duże obrazy, a wyniki znormalizowano. Warto zwrócić uwagę, że funkcje pochodzące z różnych bibliotek nie zawsze doprowadzą do takich samych danych wyjściowych.


Optymalizacja SSE i wielordzeniowa

Filtry Adaptive Vision Studio są zoptymalizowane pod kątem technologii SSE/AVX/NEON i procesorów wielordzeniowych. Przyspieszenie uzyskiwane dzięki tym optymalizacjom i zrównoleglaniu obliczeń na procesorach wielordzeniowych jest jednak silnie zależne od specyfiki konkretnego operatora. Elementarne operacje wykonywane na każdym pikselu obrazu z osobna zrealizowane przy pomocy instrukcji SSE osiągają wydajność bliską operacji samego tylko dostępu do przetwarzanej pamięci. W przypadku bardziej złożonych filtrów, takich jak rozmycie Gaussa, możliwe jest uzyskanie przyspieszenia nawet o rząd wielkości w stosunku do klasycznych implementacji.

Ranking procesorów

Poniższa tabela prezentuje wydajność różnych procesorów podczas wykonwywania filtrów (im wyżej, tym lepiej). Zestawienie to można traktować jako odniesienie podczas wybierania właściwego sprzętu dla konkretnych aplikacji.

Kategoria porównania Wynik łączny
Konfiguracja urządzenia Silnik wykonawczy Przetwarzanie obrazu Analiza obrazu Przetwarzanie regionów Aplikacje
Intel Atom D525
1.80GHz / 1MB cache / 2 cores / 4 GB RAM
54.9 32.7 41.1 61.7 53.1 48.7
Intel Core 2 Duo T6400
2.00GHz / 2MB cache / 2 cores / 3 GB RAM
54.9 79.4 87.1 108.2 105.4 87.0
Intel Atom E3845
1.91GHz / 2MB cache / 4 cores / 4 GB RAM
100.0 100.0 100.0 100.0 100.0 100.0
AMD FX-4100 Quad-Core
3.60 GHz / 8MB cache / 4 cores/ 8 GB RAM
112.3 213.4 164.8 218.7 174.6 176.7
AMD Athlon II X2 270
3.40 GHz / 2MB cache / 2 cores/ 8 GB RAM
311.6 136.8 171.6 210.0 212.0 208.4
Intel Core-i7 3612QM
2.10GHz / 6MB cache / 4 cores/ 4 GB RAM
427.8 534.6 303.6 295.9 352.6 382.9
Intel Core-i7 2600K
3.40GHz / 8MB cache / 4 cores/ 8 GB RAM
507.6 593.4 346.8 345.9 393.1 437.4
Intel Core-i5 3470
3.20GHz / 6MB cache / 4 cores/ 16 GB RAM
545.3 628.1 355.1 324.7 403.6 455.0
Intel Core-i5 3570K
3.40GHz / 6MB cache / 4 cores/ 8 GB RAM
554.6 645.5 359.0 360.4 416.5 467.2
Intel Core-i5 4460
3.20GHz / 6MB cache / 4 cores/ 16 GB RAM
611.6 667.6 366.6 356.9 421.3 484.8
Intel Core-i7 4800MQ
2.70GHz / 6MB cache / 4 cores/ 12 GB RAM
628.3 678.7 380.5 378.9 420.8 483.5
Intel Core-i7 6700HQ
2.60GHz / 6MB cache / 4 cores/ 16 GB RAM
641.8 710.0 365.9 366.8 416.3 500.2
Intel Core-i7 4800MQ
2.70GHz / 6MB cache / 4 cores/ 16 GB RAM
640.2 699.1 380.9 378.8 412.6 502.3
Intel Core-i5 6500
3.20GHz / 6MB cache / 4 cores/ 16 GB RAM
663.7 794.0 395.7 390.2 458.1 540.3
Intel Core-i5 7500
3.40GHz / 6MB cache / 4 cores/ 16 GB RAM
684.3 830.1 422.0 406.8 492.6 567.1
Intel Core-i7 4790K
4.00GHz / 8MB cache / 4 cores/ 16 GB RAM
798.2 887.5 474.7 461.1 550.1 634.3
Intel Core-i7 8700K
3.70GHz / 12MB cache / 6 cores/ 16 GB RAM
862.5 1364.7 587.8 491.3 594.3 780.1
AMD Ryzen 7 2700X
3.70GHz / 20MB cache / 8 cores/ 16 GB RAM
667.9 1407.1 535.9 439.0 419.6 693.9

Im wyższy wynik tym większa wydajność komputera.
Podczas tych testów wykonywano stałą liczbę operacji, a następnie badano czasy ich wykonania. Uzyskane wartości zostały znormalizowane.