OpenVX is an open, royalty-free standard for cross platform acceleration of
computer vision applications. It is designed by the
Khronos Group
The Khronos Group, Inc. is an open, non-profit, member-driven consortium of 170 organizations developing, publishing and maintaining royalty-free interoperability standards for 3D graphics, virtual reality, augmented reality, parallel computation ...
to facilitate portable, optimized and power-efficient processing of methods for vision algorithms. This is aimed for
embedded and
real-time
Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
programs within computer vision and related scenarios. It uses a
connected graph
In mathematics and computer science, connectivity is one of the basic concepts of graph theory: it asks for the minimum number of elements (nodes or edges) that need to be removed to separate the remaining nodes into two or more isolated subgrap ...
representation of operations.
Overview
OpenVX specifies a higher
level of abstraction for programming computer vision use cases than compute frameworks such as
OpenCL
OpenCL (Open Computing Language) is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-progra ...
. 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
A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobi ...
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.
OpenVX is complementary to the open source vision library
OpenCV
OpenCV (''Open Source Computer Vision Library'') is a library of programming functions mainly aimed at real-time computer vision. Originally developed by Intel, it was later supported by Willow Garage then Itseez (which was later acquired by In ...
. 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.
* Updated OpenVX adopters program and OpenVX 1.2 conformance test suite was released on November 21, 2017.
*OpenVX 1.2.1 was released on November 27, 2018.
*OpenVX 1.3 was released on October 22, 2019.
Implementations, frameworks and libraries
AMD MIVisionX- for
AMD
Advanced Micro Devices, Inc. (AMD) is an American multinational semiconductor company based in Santa Clara, California, that develops computer processors and related technologies for business and consumer markets. While it initially manufactur ...
's
CPUs
A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
and
GPUs
A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobil ...
.
Cadence- for
Cadence Design Systems's Tensilica Vision DSPs.
Imagination- for
Imagination Technologies
Imagination Technologies Limited is a British semiconductor and software design company owned by Canyon Bridge Capital Partners, a private equity fund based in Beijing that is ultimately owned by the Chinese government. With its global headquar ...
's PowerVR GPUs
Synopsys- for
Synopsys
Synopsys is an American electronic design automation (EDA) company that focuses on silicon design and verification, silicon intellectual property and software security and quality. Products include tools for logic synthesis and physical de ...
' DesignWare EV Vision Processors
Texas Instruments’ OpenVX (TIOVX)- for
Texas Instruments
Texas Instruments Incorporated (TI) is an American technology company headquartered in Dallas, Texas, that designs and manufactures semiconductors and various integrated circuits, which it sells to electronics designers and manufacturers globa ...
’ Jacinto™ ADAS SoCs.
NVIDIA VisionWorks- for
CUDA-capable Nvidia
Nvidia CorporationOfficially written as NVIDIA and stylized in its logo as VIDIA with the lowercase "n" the same height as the uppercase "VIDIA"; formerly stylized as VIDIA with a large italicized lowercase "n" on products from the mid 1990s to ...
GPUs
A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobil ...
and
SoCs
SOCS (suppressor of cytokine signaling proteins) refers to a family of genes involved in inhibiting the JAK-STAT signaling pathway.
Genes
* CISH
* SOCS1
* SOCS2
* SOCS3
* SOCS4
* SOCS5
* SOCS6
* SOCS7
Suppressor of cytokine signaling 7 is a pro ...
.
OpenVINO- for
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
's
CPUs
A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
,
GPUs
A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobil ...
,
VPUs, and
FPGAs
A field-programmable gate array (FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturinghence the term '' field-programmable''. The FPGA configuration is generally specified using a hardware de ...
.
References
External links
*
OpenVX Specification RegistryOpenVX Sample ImplementationOpenVX Sample ApplicationsOpenVX Tutorial Material
{{Khronos Group standards
Application programming interfaces
Cross-platform software