The cross-platform specification runs on CPUs, GPUs, DSPs, or dedicated hardware. Khronos leads the way again.
By Jon Peddie
Khronos has just released its OpenVX 1.0 specification for cross-platform acceleration of computer vision applications and libraries. Khronos says OpenVX enables performance- and power-optimized computer vision algorithms for use cases such as face, body and gesture tracking, smart video surveillance, automatic driver assistance systems, object and scene reconstruction, augmented reality, visual inspection, and robotics.
The provisional release of the specification enables developers and implementers to provide feedback before specification finalization, which is expected within six months. The OpenVX 1.0 provisional specification is available at www.khronos.org/openvx.
An OpenVX application expresses vision processing holistically as a graph of function nodes. An OpenVX implementer can optimize graph execution through a wide variety of techniques such as acceleration of nodes on CPUs, GPUs, DSPs, or dedicated hardware, compiler optimizations, node coalescing, and tiled execution to keep sections of processed images in local memories as they flow through the graph. Khronos has released a tiled execution extension alongside the main OpenVX specification to aid this style of optimization. Additionally, Khronos has released the VXU utility library to enable developers first using OpenVX to easily call individual nodes as stand- alone functions for easy code migration.
“Computer vision is central to bringing natural user interfaces and environmental awareness to mobile devices, and OpenVX enables cross-platform processing with the high performance and low power that will be vital to widespread adoption,” said Neil Trevett, president of the Khronos Group. “OpenVX has been designed to be implemented independently or to interoperate within the Khronos standards ecosystem for camera control, sensor fusion, data flow, compute acceleration, and graphics rendering, ensuring that Khronos APIs continue to meet the needs of portable, state-of-the-art applications.”
OpenVX can be used directly by applications or to accelerate higher-level middleware, such as the popular OpenCV open source vision library that is often used for application prototyping. OpenVX will have extensive conformance tests to complement a focused and tightly defined finalized specification for consistent and reliable operation across multiple vendors and platforms, making OpenVX an ideal foundation for shipping production vision applications.
As with any Khronos specification, OpenVX is extensible to enable nodes to be deployed to meet customer needs ahead of being integrated into the core specification. OpenVX is an open, royalty-free standard that enables significant implementation innovation while maintaining a consistent API for developers, from programmable processors through GPUs to dedicated hardware pipelines. And it’s complementary to OpenCV.
What do we think?
With the ratification of OpenVX, Khronos now has the full suite of APIs needed for anyone interested in building an augmented reality (AR) system. One of the most important features of OpenVX is that it, OpenCL, and OpenCV are complementary. We think there will be a lot of new, surprisingly wonderful AR apps by 2015 as developers learn how to harness and exploit this platform.