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, robotics and more. The provisional release of the specification enables developers and implementers to provide feedback before specification finalization, which is expected within six months.
OpenVX enables significant implementation innovation while maintaining a consistent API for developers. 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 provisional tiled execution extension alongside the main OpenVX specification to enable user custom kernels to exploit this style of optimization. Additionally, Khronos has released the VXU™ utility library to enable developers using OpenVX to call individual nodes as standalone functions for easy code migration.
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. Finally, as any Khronos specification, OpenVX is extensible to enable nodes to be deployed to meet customer needs, ahead of being integrated into the core specification.