OpenVX Logo

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 use 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.3 is Here!

The OpenVX 1.3 specification was released on October 22nd 2019

OpenVX: Vision Acceleration

OpenVX extends easily with reusable vision acceleration functions to every low-power domain. This provides a key advantage, promoting wide adoption, for OpenVX and for developers this delivers the following:

  • Royalty-free open standard API that is reliably accelerated by hardware vendors and tightly defined conformance tests.
  • Targeted at low-power, real-time applications including mobile and embedded platforms.
  • Portability across diverse heterogeneous processors, including ISPs, dedicated hardware, DSPs and DSP arrays, GPUs, multi-core CPUs, and more.
  • No requirement for a high-power CPU/GPU complex. A low-power host can set up and manage frame-rate vision processing pipelines.

OpenVX Graph

OpenVX allows graph-level processing optimizations, which lets implementations to fuse nodes when possible to achieve better overall performance. The graph also allows for auto graph-level memory optimizations to achieve a low memory footprint. OpenVX graph-optimized workloads can be deployed on a wide range of computer hardware, including small embedded CPUs, ASICs, APUs, discrete GPUs, and heterogeneous servers.

  • OpenVX developers express a graph of image operations, called ‘nodes,’ which can be on any hardware or processor coded in any language.
  • OpenVX Graphs enable implementations to optimize power and performance. Nodes may be fused by the implementation to eliminate memory transfers, and processing can be tiled to keep data entirely in local memory/cache.
  • Host interaction is minimized by the OpenVX Graph during frame-rate graph execution. The host processor can set up a graph which can then execute almost autonomously.

Layered Vision Processing Ecosystem

Implementers may use OpenCL or compute shaders to implement OpenVX nodes on programmable processors. Developers can use OpenVX to easily connect those nodes into a graph. The OpenVX graph enables implementers to optimize execution across diverse hardware architectures. OpenVX enables the graph to be extended to include hardware architectures that don’t support programmable APIs.

Conformant Implementations

Hardware vendors provide optimized OpenVX drivers, architected to get the best performance form their silicon architecture and ready for developers to use. Conformant OpenVX drivers are available from the following vendors:

New in OpenVX 1.3

Now that the OpenVX API has grown to an extensive set of functions, there is interest in creating implementations that target a set of features rather than covering the entire OpenVX API. In order to offer this option while still managing the API to prevent excessive fragmentation regarding which implementations offer which features, the OpenVX 1.3 specification defines a collection of feature sets that form coherent and useful subsets of the OpenVX API. These feature sets include the following:

  • Base feature set (Basic graph infrastructure)
  • Vision (OpenVX 1.1 equivalent vision functions)
  • Enhanced Vision (Vision functions introduced in OpenVX 1.2)
  • Neural Network (OpenVX 1.2 equivalent neural-network functions, plus the neural network extension and the tensor objects)
  • NNEF (Kernel import plus the tensor objects)
  • Binary Image support (U1)
  • Deployment feature set (for safety critical usage)

Along with the release of OpenVX 1.3, the pipelining, neural network, and import kernel extensions are being updated. For the list of all extensions and features, go to the OpenVX registry .

OpenVX History

The OpenVX specification and conformance tests were released in 2014. This was followed by the version 1.0.1 specification and open source sample implementation in 2015, version 1.1 at the Embedded Vision Summit in 2016, and version 1.2 was released in 2017 at the Embedded Vision Summit.

OpenVX Feature Sets

To enable deployment flexibility while avoiding fragmentation, OpenVX 1.3 defines a number of feature sets that are targeted at common embedded use cases. Hardware vendors can include one or more complete feature sets in their implementations to meet the needs of their customers and be fully conformant. The flexibility of OpenVX enables deployment on a diverse range of accelerator architectures, and feature sets are expected to dramatically increase the breadth and diversity of available OpenVX implementations. The defined OpenVX 1.3 feature sets include:

  • Graph Infrastructure (baseline for other Feature Sets),
  • Default Vision,
  • Enhanced Vision (functions introduced in OpenVX 1.2),
  • Neural Network Inferencing (including tensor objects),
  • NNEF Kernel import (including tensor objects),
  • Binary Images,
  • Safety Critical (reduced features to enable easier safety certification).

OpenVX and OpenCV are Complementary

  OpenCV OpenVX
Implementation Community driven open source library Callable library implemented and shipped by hardware vendors
Conformance Extensive OpenCV Test Suite but no formal Adopters program Implementations pass defined conformance test suite to use trademark
Scope Very wide.
1000s of imaging and vision functions
Multiple camera APIs/interfaces
Tight focus on core hardware accelerated functions for mobile vision and inferencing. Uses external camera drivers
Acceleration OpenCV 3.0 Transparent API (or T-API) enables function offload to OpenCL devices Implementation free to use any underlying API such as OpenCL. Uses OpenCL for custom Nodes
Efficiency OpenCV 4.0 G-API graph model for some filters, arithmetic/binary operations, and well-defined geometrical transformations Graph-based execution of all Nodes.
Optimizable computation and data transfer
Inferencing Deep Neural Network module. API to construct neural networks from layers for forward pass computations only. Import from ONNX, TensorFlow, Torch, Caffe Neural Network layers and operations represented directly in the OpenVX Graph. NNEF direct import

Industry Quotes

“As a working group, we’ve invested a lot in creating an extensive set of functions that can meet all the needs of OpenVX users. There has been interest in creating implementations that target only a subset of the features that are specific to and necessary for the application. We’ve built OpenVX 1.3 with flexibility in mind, to offer a menu of options for users who want to stay conformant but don’t need the entire specification for their application. We believe this work increases performance portability and scalability of OpenVX across vendors, enabling greater ease of implementation and promoting adoption of the standard while still enabling interoperability.”

Kiriti Nagesh Gowda
OpenVX Working Group Chair, AMD

“AMD has always supported open, royalty-free standards for HPC and Machine Learning, we believe this will benefit the research community and the industry as a whole. AMD was the first to open source highly optimized implementation of OpenVX in MIVisionX Toolkit as part of the ROCm Ecosystem which is being used by many in the industry and academia. OpenVX 1.3 with extensive support to computer vision and machine learning will help keep up the momentum in the industry.”

“We are excited to be a partner to Khronos in developing the CTS and samples for Version 1.3 and porting it to Raspberry Pi. This will provide guidance to developers in the ecosystem and enable them to develop a wider range of applications more quickly using a smaller memory footprint while achieving better performance. This is an exciting next step in the march towards more capable computer vision and machine learning systems and MulticoreWare is proud to be a leader in this ecosystem.”

DAGK Karunakaran
CEO of MulticoreWare

“ICURO has been collaborating with AMD in proliferating computer vision machine learning models. ICURO welcomes and supports the adoption of OpenVX 1.3 for innovative business use cases across multiple industries. Our artificial intelligence (AI) lab in Silicon Valley has accelerated the development and deployment of full-stack robotic vision applications powered by AMD edge processors and OpenVX stack. We are delighted to be a strategic partner of AMD in delivering high-value, high-return AI solutions for retail, industry 4.0, warehouse, logistics, healthcare, and several other industries.”

Bipin Thomas
President of ICURO

“Texas Instruments reinforces our support of OpenVX and its benefits to customers developing ADAS-to-autonomous applications for the automotive market. The OpenVX standard helps us to offer an easy-to-use SDK platform for customers developing embedded applications on multi-core, heterogeneous architectures such as TI’s Driver Assist (TDAx) SOCs.”