openVX
Portable, Power-efficient Vision Processing
OpenVX is an open, royalty-free standard for cross platform acceleration of computer vision applications. OpenVX enables performance and power-optimized computer vision processing, especially important in embedded and real-time uses cases such as face, body and gesture tracking, smart video surveillance, advanced driver assistance systems (ADAS), object and scene reconstruction, augmented reality, visual inspection, robotics and more.
OpenVX 1.0.1 Specification
- Specification is available in the Khronos Registry
- OpenVX 1.0.1 Sample Implementation (tar.bz2)
- Post comments on the OpenVX 1.0.1 feedback thread
- Read the OpenVX 1.0.1 Announced Release
- Read the OpenVX 1.0 Launch Release
- OpenVX Resources
OpenVX – Vision Acceleration
Royalty-free open standard API
- Reliably accelerated by hardware vendors
- Tightly defined conformance tests
Targeted at low-power, real-time applications
- Mobile and embedded platforms
Portability across diverse heterogeneous processors
- ISPs, Dedicated hardware, DSPs and DSP arrays, GPUs, Multi-core CPUs …
Doesn’t require high-power CPU/GPU Complex
- Low-power host can setup and manage frame-rate vision processing pipeline
OpenVX Graphs – The Key to Efficiency
OpenVX developers express a graph of image operations (‘Nodes’)
- Nodes can be on any hardware or processor coded in any language
Graph enables implementations to optimize for power and performance
- E.g. Nodes may be fused by the implementation to eliminate memory transfers
- E.g. Processing can be tiled to keep data entirely in local memory/cache
Minimizes host interaction during frame-rate graph execution
- Host processor can setup graph which can then execute almost autonomously
Layered Vision Processing Ecosystem
Lower-level compute APIs can be used to implement OpenVX nodes
- Depending on the available processors
Coding in OpenCL can provide portability across heterogeneous processors
- ISPs, Dedicated hardware, DSPs and DSP arrays, GPUs, Multi-core CPUs …
OpenVX and OpenCV are Complementary
OpenCV | OpenVX | |
---|---|---|
Implementation | Community driven open source library |
Open standard API designed to be implemented by hardware vendors |
Conformance | Extensive OpenCV Test Suite but |
Implementations must pass defined conformance test suite to use trademark |
Consistency |
Available functions can vary depending on implementation / platform |
All core functions must be available in all conformant implementations |
Scope | Very wide |
Tight focus on core hardware accelerated functions for mobile vision – but extensible |
Efficiency | Memory-based architecture |
Graph-based execution |
Typical Use Case |
Rapid experimentation and |
Production development & deployment on mobile and embedded devices |
Embedded |
Re-usable code |
Callable library |