OpenVX
![]() | |
Developer(s) | Khronos Group |
---|---|
Stable release | 1.3.1 / November 7, 2023; 9 months ago (2023-11-07) |
Written in | C |
Operating system | Cross-platform |
Platform | Cross-platform |
Type | API |
Website | www |
OpenVX is an open, royalty-free standard for cross-platform acceleration of computer vision applications. It is designed by the Khronos Group to facilitate portable, optimized and power-efficient processing of methods for vision algorithms. This is aimed for embedded and real-time programs within computer vision and related scenarios. It uses a connected graph representation of operations.
Overview
OpenVX specifies a higher level of abstraction for programming computer vision use cases than compute frameworks such as OpenCL. The high level makes the programming easy and the underlying execution will be efficient on different computing architectures. This is done while having a consistent and portable vision acceleration API.
OpenVX is based on a connected graph of vision nodes that can execute the preferred chain of operations. It uses an opaque memory model, allowing to move image data between the host (CPU) memory and accelerator, such as GPU memory. As a result, the OpenVX implementation can optimize the execution through various techniques, such as acceleration on various processing units or dedicated hardware. This architecture facilitates applications programmed in OpenVX on different systems with different power and performance, including battery-sensitive, vision-enabled, wearable displays.[1]
OpenVX is complementary to the open source vision library OpenCV. OpenVX in some applications offers a better optimized graph management than OpenCV.
History
- OpenVX 1.0 specification was released in October 2014.
- OpenVX sample implementation was released in December 2014.
- OpenVX 1.1 specification was released on May 2, 2016.
- OpenVX 1.2 was released on May 1, 2017.[2]
- Updated OpenVX adopters program and OpenVX 1.2 conformance test suite was released on November 21, 2017.[3]
- OpenVX 1.2.1 was released on November 27, 2018.[4]
- OpenVX 1.3 was released on October 22, 2019.[5]
Implementations, frameworks and libraries
- AMD MIVisionX - for AMD's CPUs and GPUs.
- Cadence - for Cadence Design Systems's Tensilica Vision DSPs.
- Imagination - for Imagination Technologies's PowerVR GPUs
- Synopsys - for Synopsys' DesignWare EV Vision Processors
- Texas Instruments’ OpenVX (TIOVX) - for Texas Instruments’ Jacinto™ ADAS SoCs.
- NVIDIA VisionWorks - for CUDA-capable Nvidia GPUs and SoCs.
- OpenVINO - for Intel's CPUs, GPUs, VPUs, and FPGAs.
References
- ^ Brill, Frank; Erukhimov, Victor; Giduthuru, Radha; Ramm, Stephen (2020). OpenVX Programming Guide. Elsevier.
- ^ "Khronos Releases OpenVX 1.2 Specification for Cross-Platform Acceleration of Power-Efficient Vision". May 2017.
- ^ "Khronos Releases Updated OpenVX Adopters Program". The Khronos Group. 2017-11-21. Retrieved 2017-12-06.
- ^ "Khronos OpenVX Registry - The Khronos Group Inc". www.khronos.org. Retrieved 2019-08-05.
- ^ "Khronos Releases OpenVX 1.3 Open Standard for Cross-Platform Vision and Machine Intelligence Acceleration". 22 October 2019.
External links
- Official website for OpenVX
- OpenVX Specification Registry
- OpenVX Sample Implementation
- OpenVX Sample Applications
- OpenVX Tutorial Material