OpenVX Programming Guide - 1st Edition - ISBN: 9780128164259

OpenVX Programming Guide

1st Edition

0.0 star rating Write a review
Authors: Frank Brill Victor Erukhimov Steve Ramm Radhakrishna Giduthuru
Paperback ISBN: 9780128164259
Imprint: Academic Press
Published Date: 1st June 2020
Page Count: 375
Sales tax will be calculated at check-out Price includes VAT/GST

Institutional Subscription

Secure Checkout

Personal information is secured with SSL technology.

Free Shipping

Free global shipping
No minimum order.


OpenVX Programming Guide presents definitive information on OpenVX 1.2 and 1.3, the Neural Network and other extensions, along with the OpenVX Safety Critical standard. This book gives a high-level overview of the openVX standard, its design principles and the overall structure. Sections cover computer vision functions and the graph API, providing examples of usage for the majority of functions. It is intended both for the first time user of OpenVX as well as a reference for experienced OpenVX developers.

Key Features

  • Helps readers understand the OpenVX standard and gain insights on why various options are chosen
  • Enables users to instantly start developing efficient OpenVX code
  • Presents design principles and how to use them to create robust code


Engineers developing products with a component of computer vision and intelligence in areas such as automotive safety, video surveillance, computational photography, autonomous mobile robots and drones. Computer Engineering students and researchers

Table of Contents

1. Introduction

  • What is OpenVX and why do we need it?
  • How portable is OpenVX
  • Graph API with opaque memory model
  • OpenVX vs. OpenCV and OpenCL
  • What you should know before reading this book

2. Build your first OpenVX program

  • With Immediate Mode API
  • With Graph API

3. Using the Graph API to write efficient portable code

  • Node parameters
  • Graph parameters
  • Execution model
  • Asynchronous execution
  • Control flow
  • User kernels and nodes
  • Examples

4. Building an OpenVX graph

  • Linking nodes
  • Graph verification
  • Parameter validation
  • What can be changed at runtime?
  • Examples

5. Deploying an OpenVX graph to a target platform

  • Exporting and importing objects
  • The XML schema extension
  • Immutable graphs

6. Basic image transformations

  • Data objects: image, matrix
  • Convolution
  • Region of interest
  • Border modes
  • Undistortion with Remap
  • Image filtering example
  • Virtual objects
  • Filter stacking example

7. Background subtraction and object detection

  • Threshold
  • Distribution
  • User kernels
  • Object detection example

8. Computational photography

  • LUT
  • Pyramid
  • Example

9. Efficient data input/output

  • Import an image to OpenVX
  • Import a video stream to OpenVX
  • Accessing OpenVX data

10. Tracking

  • Data structures: keypoint, array
  • Delay object
  • Optical flow example

11. Use OpenVX for deep neural networks

  • Neural Network Extension
  • Tensor objects
  • How to import a network into OpenVX
  • Examples

12. OpenVX safety critical applications

  • Feature subsets
  • Determinism

13. Using OpenVX with other vision frameworks

  • General remarks
  • OpenCL
  • OpenCV

14. Making the most of your OpenVX code

  • Using OpenVX debugging capabilities to understand what is going on
  • Profiling your OpenVX code
  • Optimization tips


No. of pages:
© Academic Press 2020
1st June 2020
Academic Press
Paperback ISBN:

About the Author

Frank Brill

Frank Brill manages OpenVX software development for Cadence’s Tensilica Imaging and Vision DSP organization. He began his career doing computer vision research and development for video surveillance applications at Texas Instruments, and then moved into silicon device program management, where he was responsible for several digital still camera and multimedia chips. Since then, Frank has managed computer vision R&D groups at TI, NVIDIA, Samsung and now at Cadence, and has represented all four companies in the Khronos OpenVX working group. He joined Cadence in 2016 to work on OpenVX, and currently serves as chairperson of the OpenVX working group.

Affiliations and Expertise

Design Engineering Director, Cadence

Victor Erukhimov

Victor Erukhimov is a CEO of Itseez3D, the company that democratizes 3D model creation. He also co-founded Itseez, Inc. that focused on developing computer vision solutions running on embedded platforms, specifically automotive safety systems. He held the positions of CTO, CEO and President at Itseez, before the company was acquired by Intel Corporation in 2016. Victor also was the chair of the OpenVX working group in 2012-2016, helping to create the standard for cross-platform computer vision API. He is the author of many papers in the areas of computer vision and machine learning, as well as several US and international patents. Victor participates in the development and maintenance of the OpenCV library.

Affiliations and Expertise

CEO, itSeez3D

Steve Ramm

Stephen Ramm is currently a principal software engineer with Etas, a subsidiary of Bosch, where he is involved with Adaptive Autosar, working on reliable frameworks and development environments for for advanced functionality in the automotive, rail and other safety-critical industries. Until late 2017 he was Director of AI and Vision software at Imagination Technologies, where one of his responsibilities was the team producing an implementation of OpenVX accelerated by Imagination's GPU architecture. Prior to that Stephen has held various positions in technical management, research and design and applied mathematics with experience in fields as varied as optical design, nutritional analysis, advanced statistics and calibration techniques, RF electronics, NMR, detonators for explosives in deep mines, electronics at board and silicon level and development tools for the games industry. Stephen was formerly an editor of the OpenVX specification, former chair of the OpenVX Safety-critical sub-committee, and a former member of the OpenGL Safety Critical group and Safety Critical Advisory Panel within Khronos. He is a member of the Institute of Physics and a Chartered Physicist. He studied at York University in the UK where he was awarded a first class honours degree in Physics and Computer Science in 1980. He has three grown-up children and two granddaughters and lives with his wife in Elvington, North Yorkshire.

Affiliations and Expertise

York University

Radhakrishna Giduthuru

Radhakrishna Giduthuri is a principal engineer at Intel focussing on software architecture for AI products. Prior to Intel, he built computer vision, deep learning, and video compression software acceleration libraries for AMD GPUs & CPUs. He has extensive background with software architecture, development, and performance tuning for various computer architectures ranging from general purpose DSPs, customizable DSPs, media processors, heterogeneous processors, GPUs, and several CPUs. He is the editor of Khronos OpenVX working group and a member of Khronos NNEF (Neural Network Exchange Format) and OpenCL safety-critical working groups. For several years, he was a member of SMPTE video compression standardizing committee. He is an active member of IEEE Signal Processing Society and winner of outstanding leadership and professional services award for IEEE Central Area in 2016. Radhakrishna holds an M.Tech. from IIT Kharagpur, India.

Affiliations and Expertise

Radhakrishna Giduthuri, Principal Engineer

Ratings and Reviews