Graphics Reference
In-Depth Information
Table 8.4 Average kernel
execution times (ms)
Roberts
Sobel
Canny
Java on ARM
15.2
25.6
Uncanny CV on Neon
11.4
15.4
(called from Java)
Table 8.5 Minimum kernel
execution times (ms)
Roberts
Sobel
Canny
Java on ARM
11.0
19.5
Uncanny CV on Neon
1.9
4.4
(called from Java)
Table 8.6 Average
application execution times
(ms)
Roberts
Sobel
Canny
Java on ARM
202.6
212.6
Uncanny CV on Neon
198.2
202.4
(called from Java)
main CPU. On average, the gradients block executes more than two times faster,
and sometimes up to 10 times faster, while the acceleration at the app level was, on
average, 7%.
This conclusion naturally extends to other low-level vision blocks, such as fil-
tering, color space conversions, and image pyramid calculation, all of which are
SIMD-friendly.
Another important realization we had about vision on Android is that the oper-
ating system interrupts the processor frequently and execution time measurements
show a lot of variability. This leads to another advantage of using Neon—it is not
interrupted by the operating system and can give faster and more reliable real-time
guarantees.
Other accelerators . Most application processors used in smart phones and tablets
have additional processing elements that can be used to accelerate vision operations.
They includeDSP andGPUprocessorswhich offer a lot of computational horsepower
particularly useful for acceleration of low-level vision. The problem, however, is that
these accelerators are specific to chipmanufacturer and currently cannot be efficiently
used by Android apps, which are written in hardware-agnostic fashion. It is possible
to circumvent the Android protection mechanisms and to write efficient code that
uses these accelerators, but that code will run only on devices that have the same
accelerator, not on all smart phones and tablets as preferred by Android.
The promise of OpenVX . This issue will be addressed by the OpenVX initiative
by Khronos, which aims to standardize the APIs for many commonly used vision
functions. The implementation on the accelerator that is available on a particular
device will be provided by chip manufacturers so the same code will efficiently run
regardless of the underlying hardware specifics, thus achieving the hardware-agnostic
coding typical for Android apps (Figs. 8.7 and 8.8 ).
 
Search WWH ::




Custom Search