VPI - Vision Programming Interface

0.2.0 Release

Release Notes v0.1.0

This is the first public release of VPI. As this is a developer preview, it's intended to let our users experiment with the library, allow access to PVA hardware when available, which was previously not possible, and do integration testing in existing systems.

Until VPI-1.0 is released, API and ABI backward compatibility for new versions cannot be 100% guaranteed, although it isn't expected that they will be broken.

As with any developer preview release, use of VPI-0.1.0 in critical systems isn't recommended.

Known Issues

  • Some modules aren't optimized to full extent. Notably:
    • Stereo Disparity Estimator for CUDA can be significantly slower than CPU depending on image height, and its CPU implementation isn't as fast it can be either. If available, PVA backend has a reasonable speed and can be safely used instead.
    • Gaussian Pyramid Generator for PVA is around 62x slower than CUDA when creationg a 5-level pyramid where the base level is 3264x2448, measured on a Jetson AGX Xaviver. CUDA backend performance for this algorithm is on par with what VisionWorks provides and can be used instead.
    • Shared-memory mapping can't be performed in several situations, depending on memory characteristics, source and destination backends, etc. Most notably, in this version, PVA<->CUDA shared mapping is disabled due to technical issues. These and other restrictions will be lifted in future versions.
    • Some stream operations might block the default CUDA stream, affecting CUDA processing outside VPI. This will be addressed in the next release. Always benchmark the code to verify that the backend choices for particular algorithms are well-made, and performance is within expectation.
  • PVA backend implementation of Image Convolver returns bad results for inputs of type VPI_IMAGE_TYPE_Y8 and VPI_IMAGE_TYPE_Y8I when the number of kernel coefficients is greater than or equal to 49. For this reason, vpiSubmitImageConvolver will return an error if passed a kernel this big. This restriction also affects algorithms that are currently implemented on top of image convolver, namely Box Image Filter and Gaussian Image Filter.
  • PVA backend implementation of KLT Bounding Box Tracker doesn't match CUDA and CPU's output. It loses tracking too easily compared to the other backends.
  • PVA backend implemention of Image Convolver may return invalid results if the input kernel isn't normalized. For this reason, 2D Image Convolution sample application returns a black image when run with the PVA backend. As a workaround, try to use Separable Image Convolver for PVA if possible, or use the CUDA backend.

Notices

Disclaimer

ALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, "MATERIALS") ARE BEING PROVIDED "AS IS." NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.

Information furnished is believed to be accurate and reliable. However, NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use. No license is granted by implication of otherwise under any patent rights of NVIDIA Corporation. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all other information previously supplied. NVIDIA Corporation products are not authorized as critical components in life support devices or systems without express written approval of NVIDIA Corporation.

Trademarks

NVIDIA and the NVIDIA logo are trademarks or registered trademarks of NVIDIA Corporation in the U.S. and other countries. Other company and product names may be trademarks of the respective companies with which they are associated.

Copyright

© 2019-2020 NVIDIA Corporation. All rights reserved.