=================================================================================== Release 1.5 =================================================================================== SUPPORTED SOFTWARE (1) NVIDIA(R) Jetson(TM) TX1 OS : NVIDIA(R) Tegra(R) Linux Driver Package R24.2 (L4T) OpenCV : OpenCV 2.4.13 CUDA : NVIDIA(R) CUDA(R) 8.0 (2) NVIDIA(R) DRIVE(TM) PX2 OS : NVIDIA(R) Vibrante(TM) 4 Linux (V4L) OpenCV : OpenCV 2.4.13 CUDA : NVIDIA(R) CUDA(R) 8.0 (3) Desktop X86_64 Ubuntu 14.04, with Kepler(TM) (compute capability 3.x), Maxwell(TM) (compute capability 5.x) and Pascal(TM) (compute capability 6.x) GPU generations OS : Ubuntu 14.04 x86_64 OpenCV : OpenCV 2.4.13 CUDA : NVIDIA(R) CUDA(R) 8.0 (4) Desktop X86_64 Ubuntu 16.04, with Kepler(TM) (compute capability 3.x), Maxwell(TM) (compute capability 5.x) and Pascal(TM) (compute capability 6.x) GPU generations OS : Ubuntu 16.04 x86_64 OpenCV : OpenCV 2.4.13 CUDA : NVIDIA(R) CUDA(R) 8.0 (5) Windows 8 x64, with Kepler(TM) (compute capability 3.x), Maxwell(TM) (compute capability 5.x) and Pascal(TM) (compute capability 6.x) GPU generations, Microsoft Visual Studio 2013 (Any edition, except Express) OS : Windows 8 x64 OpenCV : OpenCV 2.4.13 CUDA : NVIDIA(R) CUDA(R) 8.0 GENERAL This release implements extensions to stereo functionality and implements OpenVX 1.1 features. (see https://www.khronos.org/registry/vx/specs/1.1/html/index.html). NOTE: VisionWorks and NVXIO multimedia interface for its samples are now compiled with gcc tools 4.8.x to enable developers with older version of the tools instead of the native tools found in the L4T image. Developers need to install older version of the tools (sudo apt-get install gcc-4.8.x) to avoid tools mismatch problems. After gcc/g++ 4.8.x installation you will have to run 'sudo update-alternatives' to set gcc/g++ as the default compiler version. Please refer to L4T release notes for specific instructions. NEW FEATURES - New samples that demonstrate VisionWorks CUDA API usage: - Feature Tracker - Object Tracker - New SGBM primitives that can be used to build custom stereo pipeline. Stereo matching sample is updated to demonstrate the new primitives usage in the following ways: - Simple analogue of current SGBM primitive. - Pyramidal approach that shows better performance and reduces memory usage. - Census transform of input image and Hamming cost computation. - OpenVX 1.1 Features - New image and vision processing functions: * LaplacianPyramid, LaplacianReconstruct and NonLinearFilter. * vxCreateMatrixFromPattern function that can be used in combination with NonLinearFilter primitive. - Methods and Data type updates * New Data tyuObjectArray data type that can be used in user nodes and for batch processing. * Target management API via the following functions: vxSetNodeTarget and vxSetImmediateModeTarget. * Node replication mechanism that adds pyramid processing and batch processing support to existing kernels. * vxSwapImageHandle method that allows to update data pointers for image created from handle. * Kernel and library IDs allocation mechanism via vxAllocateUserKernelId and vxAllocateUserKernelLibraryId functions. * vxRetainReference and vxReleaseReference methods that allow to manage reference counter of any object. * vxSetReferenceName method that can be used for debug purpose. * vxUnloadKernels function to unload kernel modules. * vxSetMetaFormatFromReference that allows to copy meta-data from exemplar reference to vx_meta_format object. * vxCreateImageFromChannel function that allows to create vx_image object based on parent vx_image channel without copy. * vxRegisterAutoAging function that allows to register vx_delay object in vx_graph to automatically age it after each graph execution. - New features in NVXIO library: - NV12 format support for rendering operations. It can be used to create a full pipeline that operates on NV12 format without color conversions. - New NVXIO API for VisionWorks CUDA layer (FrameSource, Render and Render3D). The use of this API is shown in the new CUDA Layer samples. - New "VisionWorks Quick Start" tutorial in documentation that shows how to easily leverage VisionWorks library in a computer vision application. CHANGES - List of changes in the new OpenVX 1.1 version: - Some types and functions were declared as deprecated and were moved to separate `vx_compatibility.h` header. - Most of attributes constants were renamed, ATTRIBUTE word was removed (for example, VX_IMAGE_ATTRIBUTE_WIDTH was renamed to VX_IMAGE_WIDTH). Old names were declared as deprecated and were moved to compatibility header. - Access/Commit and Read/Write methods for all data objects were declared as deprecated and were replaced by new Map/Unmap and Copy methods. - vxAddKernel function was declared as deprecated and replaced with vxAddUserKernel. The new function uses updated API for kernel validation callback. The new callback processes all input and output parameters in one call. - Primitives support valid region property of images and correctly calculate valid region of output images. The kernels that calculate some statistics of input image process only valid pixels. New vxSetImageValidRectangle function to change the valid region of the image. New VX_VALID_RECT_CALLBACK attribute of vx_meta_format object that allows to set callback for user kernels, which will calculate valid regions for outputs based on input valid regions. - vxHint method was extended to support custom parameters. - New vx_pixel_value_t structure that is used in vxCreateUniformImage method. - vx_border_mode_t structure was replaced with vx_border_t, which uses new vx_pixel_value_t structure for constant value. - Performance measurements for graphs and nodes are disabled by default. - Framework updates: - New nvxSetLogZone function to control debug log from the code. It is a code analogue for NVX_LOG environment variable. - nvx_module_version_t is used as a part of nvx_version_info_t structure. - Performance measurement directive now is inherited during graph execution, not verification. - nvxMapImagePatch/nvxUnmapImagePatch methods were removed in favor of vxMapImagePatch/vxUnmapImagePatch. - nvxCreateImageFromChannel function was removed in favor of vxCreateImageFromChannel. - nvxRegisterAutoAging function was removed in favor of vxRegisterAutoAging. The behavior of the function has changed: now it ages the delay after each graph execution independently from its status. - nvxSetNodeTargetDevice, NVX_CONTEXT_ATTRIBUTE_IMMEDIATE_TARGET_DEVICE and nvx_device_type_e were removed in favor of vxSetNodeTarget, vxSetImmediateModeTarget and nvx_target_e, respectively. - NVX_CONTEXT_ATTRIBUTE_INITIAL_CUDA_DEVICE_ID and NVX_NODE_ATTRIBUTE_CUDA_STREAM were replaced by respectively NVX_CONTEXT_INITIAL_CUDA_DEVICE and NVX_NODE_CUDA_STREAM in order to follow the new OpenVX 1.1 attribute naming convention. - NVX_DIRECTIVE__ENABLE, NVX_DIRECTIVE__DISABLE and NVX_DIRECTIVE__DEFAULT were replaced by respectively VX_DIRECTIVE_ENABLE_, NVX_DIRECTIVE_DISABLE_ and NVX_DIRECTIVE_DEFAULT_ in order to follow the OpenVX directive naming convention. - Primitives updates: - SemiGlobalMatching primitive API was extended with new parameters: - ct_win_size and hc_win_size to control census transform and hamming cost computation. - flags to control cost filtering and pyramidal approach. - Added CPU optimized implementation for `HarrisTrack` primitive. - Optimized the following CUDA primitives (up to 10% speedup): - EqualizeHist - CannyEdgeDetector - IME - CustomConvolution - HoughSegments - HoughCircles - FastCorners - HarrisCorners - Remap - WarpAffine and WarpPerspective - ScaleImage - GaussianPyramid - Modified CPU GaussianPyramid primitive to produce same results as CUDA version. - Remap primitive was extended to support color images (RGB and RGBX). - S16 format support for ScaleImage primitive. - NVXIO and samples updates: - NVXIO library was split to separate Debian packages `libvisionworks-nvxio` and `libvisionworks-nvxio-dev`. NVXIO source code is available as Debian source package. - Removed image scaling from NVXIO FrameSource implementations. - Improvements for bounding box rendering, which gives up to 2-3 times speedup. - NVTX library support in NVXIO (for native Linux compilation). It can be used to profile FrameSource and Render public API. - Optimized memory transfers in FrameSource implementations. - Removed deprecated `Application::sleepToLimitFPS` method from NVXIO library. FIXED ISSUES - Restrict the Threshold kernel to UINT8 thresholds. The CPU implementation didn't work correctly if LOWER/UPPER/VALUE were outside the [0; 255] range. - Fixed CUDA implementation for `HarrisTrack` kernel. Old implementation might lose pixels close to image boundaries. - Fixed disparities calculation close to left border in SGBM algorithm. - Fixed SGBM input validation to check that input width is divisible by 4. - Fixed NVXIO lines render, when the same VBO was used to upload CPU bounding boxes and via OpenGL CUDA interoperability layer. - Made setting vx_threshold's data type in a vx_meta_format optional. - Fixed rounding bug in CPU implementation of ScaleImage, Warp and Remap that might lead to incorrect results in rare cases. - Fixed overflow bug in HarrisCorners for gradient size = 7, which caused invalid keypoints detection. KNOWN ISSUES - Built-in camera capture via GStreamer doesn't fail in case of physical absence of camera module on Jetson TX1 platform. - Samples rendering rarely fails with SIGSEGV inside EGL due to internal EGL library issue on L4T R24.2 (Jetson TX1 board). =================================================================================== Release 1.4 =================================================================================== SUPPORTED SOFTWARE (1) NVIDIA(R) Jetson(TM) TK1 Pro OS : NVIDIA(R) Vibrante(TM) 3 Linux (V3L RC2) OpenCV : OpenCV 2.4.12.3 CUDA : NVIDIA(R) CUDA(R) 7.0 (2) NVIDIA(R) Jetson(TM) TK1 OS : NVIDIA(R) Tegra(R) Linux Driver Package R21.4 (L4T) OpenCV : OpenCV 2.4.12.3 CUDA : NVIDIA(R) CUDA(R) 6.5 (3) NVIDIA(R) Jetson(TM) TX1 OS : NVIDIA(R) Tegra(R) Linux Driver Package R24.1 (L4T) OpenCV : OpenCV 2.4.12.3 CUDA : NVIDIA(R) CUDA(R) 7.0 (4) NVIDIA(R) DRIVE(TM) PX2 (P2379 C01) OS : NVIDIA(R) Vibrante(TM) 4 Linux (V4L) OpenCV : OpenCV 2.4.12.3 CUDA : NVIDIA(R) CUDA(R) 8.0 (5) Desktop X86_64 Ubuntu 14.04, with Kepler(TM) (compute capability 3.x) and Maxwell(TM) (compute capability 5.x) GPU generations OS : Ubuntu 14.04 x86_64 OpenCV : OpenCV 2.4.12.3 CUDA : NVIDIA(R) CUDA(R) 7.0 (6) Windows 8 x64, with Kepler(TM) (compute capability 3.x) and Maxwell(TM) (compute capability 5.x) GPU generations, Microsoft Visual Studio 2013 (Any edition, except Express) OS : Windows 8 x64 OpenCV : OpenCV 2.4.12.3 CUDA : NVIDIA(R) CUDA(R) 7.0 NEW FEATURES - New VisionWorks CUDA API, which provides direct low level access to VisionWorks CUDA kernels is introduced as an alpha feature. VisionWorks CUDA API does not use OpenVX framework and provides full control over scheduling, streaming and memory allocations to the developers without the framework. This API is intended for advanced CUDA developers. Note that this API is introduced as an alpha feature and will be extended and modified with the feedback from the developers. - DrivePX2 iGPU C01 board support. - Support for Block linear buffers via CUDA Arrays for `vx_image` object. The CUDA array can be imported from the application via `vxCreateImageFromHandle` and can be exported to the application via `nvxMapImagePatch`. - Asynchronous multi-streamed execution for OpenVX graphs. Asynchronous execution is now enabled as the default mode of operation for OpenVX graph execution. - Debug tools and feature enhancements - Console log mechanism with various log message zones, activated with the NVX_LOG environment variable - Graph verification options, activated with the NVX_GRAPH environment variable. - Dot file generation for OpenVX graphs has been enhanced. - The NVX_PROF environment variable to activate VisionWorks profiling markers to appear with NVIDIA Visual profiler. Note that it should be set to 'nvtx' to activate the profiling. CHANGES - Packaging Changes: - `libvisionworks-dev` debian package was split onto `libvisionworks-dev` package with development files (headers and .so links) and `libvisionworks-samples` package with VisionWorks samples and NVXIO library. - Asynchronous execution support - Enabled asynchronous CUDA execution by default. The graph mode API now leverages asynchronous execution by default, to disable, use `-O1` graph option. - Improved some of the algorithms and pipelines by removing/reducing CPU-GPU synchronizations by leveraging asynchronous execution. - Primitive Updates - Optimized CUDA implementation of `OpticalFlowPyrLK` primitive (up to 10x speedup on TX1 and up to 2x speedup on TK1). - Improved `FindHomography` primitive: - Added `nvx_keypointf_t` type support. - Added more parameters (number of iterations, confidence) to control the primitive behavior. - The Gaussian Pyramid primitive now accepts level 0 of the output pyramid as input image The pyramid object is a bidirectional parameter in this case, what saves a copy of level 0. - Optimized `CopyImage` primitive for CPU<->GPU copy case (up to 2x speedup). - Added CUDA implementation for `Laplacian3x3` primitive. - Added CPU NEON optimized implementation for `OpticalFlowPyrLK`. - Added CPU optimized implementation for `FastTrack`. - Framework changes - The OpenVX 'single writer' rule has been relaxed to accept in the same graph a node that generates a data object and another node that takes this data object as bidirectional parameter. - Relaxed the thread safety rules to allow concurrently executed graphs to share inputs. - A `vx_delay` object can be used as input parameter for custom user kernel. The feature can be used to create generic temporal filtering kernels, for example. `vx_delay` object can be only input parameter, bidirectional and output are forbidden. - Debugging Enhancements - Added new "Debugging and profiling" section to user documentation. - Improved the dot file generation for graphs, added meta data information for all data objects, introduced more detailed view for pyramids and delays. - Improved VisionWorks library profiling information for NVIDIA Visual Profiler tool: - Used different colors for different operations (API, node execution, memory operations). - Used more explicit naming scheme. - The NVX_PROF environment variable (that must be set to 'nvtx') replaces the former NVX_ENABLE_PROFILER environment variable for activating the profiling. - NVXIO and samples changes: - Switched to a different method of maintaining a frame rate limitation to make it more stable on Windows. Introduced new `nvxio::SyncTimer` class for that purpose and deprecated old `nvxio::Application::sleepToLimitFPS` method. All samples were updated to use new `nvxio::SyncTimer` class. - Removed deprecated `nvxio::Render::putText` method. - Introduced new OpenGL based render for OpenCV video writer back-end on Windows platform. - Removed cameraID option from nvgstcamera capture sample. - Made OpenGL context switch exception safe. - Documentation updates and improvements: - Documented the target device possibilities for all primitives. - Added OpenCV to VisionWorks porting guide as "OpenCV Interoperability tutorial". - Added VisionWorks and NVXIO tutorials, which cover basic concepts of the libraries. - Added information about performance management on Jetson TX1 platform. FIXED ISSUES - Fixed `FindHomography` primitive behavior on lost points. Now the primitive will not process points with `tracking_status == 0`. - Fixed frame rate limitation issue on Windows, which caused some samples to run at a lower frame rate than expected (25-29 FPS). KNOWN ISSUES - VisionWorks install and uninstall instructions in VisionWorks Toolkit Reference Documentation has erroneously contain VisionWorks-nvxio and VisionWorks-nvxio-dev package names in the "sudo apt-get install" and "sudo apt-get remove" steps. Please remove these references from your installation; README-Linux.txt has the correct steps listed. - The `stereo_matching` demo is not real-time on Jetson TK1 platform. - Camera capture via GStreamer doesn't fail in case of physical absence of camera module on Jetson TX1 platform. - Repeatedly opening/closing a GStreamer pipeline can break GPU access until reboot on L4T R21.4 (Jetson TK1 board). - Samples rendering rarely fails with SIGSEGV inside EGL due to internal EGL library issue on L4T R24.1 (Jetson TX1 board). - Samples and demos on DrivePX2 iGPU C01 board can sporadically hang with no response. =================================================================================== Release 1.2 =================================================================================== SUPPORTED SOFTWARE (1) NVIDIA(R) Jetson(TM) TK1 Pro OS : NVIDIA(R) Vibrante(TM) 3 Linux (V3L RC2) OpenCV : OpenCV 2.4.12.3 CUDA : NVIDIA(R) CUDA(R) 7.0 (2) NVIDIA(R) Jetson(TM) TK1 OS : NVIDIA(R) Tegra(R) Linux Driver Package R21.4 (L4T) OpenCV : OpenCV 2.4.12.3 CUDA : NVIDIA(R) CUDA(R) 6.5 (3) NVIDIA(R) DRIVE(TM) PX (P2379 B00), E2580 OS : NVIDIA(R) Vibrante(TM) 4 Linux (V4L) OpenCV : OpenCV 2.4.12.3 CUDA : NVIDIA(R) CUDA(R) 7.0 (4) NVIDIA(R) Jetson(TM) TX1 OS : NVIDIA(R) Tegra(R) Linux Driver Package R23.2 (L4T) OpenCV : OpenCV 2.4.12.3 CUDA : NVIDIA(R) CUDA(R) 7.0 (5) Desktop X86_64 Ubuntu 12.04, with Kepler(TM) (compute capability 3.x) and Maxwell(TM) (compute capability 5.x) GPU generations OS : Ubuntu 12.04 x86_64 OpenCV : OpenCV 2.4.12.3 CUDA : NVIDIA(R) CUDA(R) 7.0 (6) Desktop X86_64 Ubuntu 14.04, with Kepler(TM) (compute capability 3.x) and Maxwell(TM) (compute capability 5.x) GPU generations OS : Ubuntu 14.04 x86_64 OpenCV : OpenCV 2.4.12.3 CUDA : NVIDIA(R) CUDA(R) 7.0 (7) Windows 8 x64, with Kepler(TM) (compute capability 3.x) and Maxwell(TM) (compute capability 5.x) GPU generations, Microsoft Visual Studio 2013 Update 5 (Any edition, except Express) OS : Windows 8 x64 OpenCV : OpenCV 2.4.12.3 CUDA : NVIDIA(R) CUDA(R) 7.0 NEW FEATURES - Framework Features: - First release of asynchronous execution mode for CUDA primitives in graph processing mode. This feature is not enable by default, it is experimental, and it can be enabled by setting NVX_GRAPH_OPTIONS environment variable to '-O3'. - Non-contiguous memory support for imported images. Now `vxCreateImageFromHandle` function supports memory layouts with `stride_x` larger than pixel size, like interleaved channels. New `nvxMapImagePatch` and `nvxUnmapImagePatch` functions that allow to map `vx_image` object into contiguous buffer without gaps between pixels in a row. - New `nvxMapRemapPatch` and `nvxUnmapRemapPatch` methods that provide faster access without memory copy for `vx_remap` object. - New primitives and algorithm components: - `FindHomography` primitive, used in Video Stabilization. - Primitives for Iterative Motion Estimation algorithm: `CreateMotionField`, RefineMotionField`, `PartitionMotionField`, `MultiplyByScalar`. - Demo and Sample Pipeline enhancements: - New "Video Stabilization" demo that demonstrates a simple pipeline for video stabilization. - New "Motion Estimation" demo that demonstrates Iterative Motion Estimation algorithm. - "NvMedia camera" pipeline sample on DRIVE PX B00 platform is enhanced to support OmniVision 10640 cameras. - Optional support for NVIDIA Visual Profiler on Linux platforms. Now VisionWorks can generate API trace in NVIDIA Visual Profiler timeline if NVTX library is installed (as a part of CUDA runtime package). - NVXIO multimedia IO enhancements: - Support for full-screen rendering mode: - Scale mode and full-screen mode can be controlled by options of the `createRender` function. Scale mode is enabled by default, full-screen is disabled. - Full-screen mode can be enabled via `--nvxio_fullscreen` command line option, the image is up-scaled to fit the window. - If a window does not fit into display size, it's down-scaled while preserving the aspect ratio. - If an image does not fit into window, it's down-scaled preserving the original aspect ratio. - NvMedia API Omni Vision cameras functionality is wrapped in NVXIO `FrameSource` interface. - Rendering of semi-transparent text boxes. CHANGES - Framework changes: - Improved the management of virtual objects (images, pyramids, arrays): - Added the notion of mutability. Only undefined meta-data at creation time are mutable. - Virtual images can now change format multiple times (if the format is mutable). - Partially defined dimensions for images are now supported. - ROI and channel sub-images can be created from a virtual image only if its meta-data are immutable. - A virtual pyramid can be defined from its levels (a consistency check is done when a pyramid is read). - Pyramid levels of a meta-data mutable pyramid are mutable, only if this mutation occurs in their scope graph. If the mutation is requested in a sub-graph, pyramid levels meta-data are considered as immutable. - Added checks if the output virtual object has well defined meta-data in output validation process for primitives that require it. - Vision Primitive updates: - Extended `FastTrack` and `HarrisTrack` primitives to handle large image sizes with number of pixels up to 2^32. - Extended `Multiply` primitive to support `NVX_DF_IMAGE_F32` format. - Miscellaneous: - Extended `visionworks_suffix_version` field of `nvx_version_info_t` structure to 12 bytes. - Used more accurate CUDA dependencies for debian packages. Now main `libvisionworks` package depends only on CUDA runtime package and recommends CUDA NPP package. Removed redundant dependencies from CUBLAS and CUSPARSE libraries. - Updated "NvMedia camera" sample to match with Vibrante PDK modifications. - Removed "NvMedia video" elementary stream playback sample, its functionality is available in the "Player" sample through NVXIO if h264 elementary stream is passed as input. - NVXIO and samples improvements: - Text is now rendered in half-transparent bounding black box. - Avoided extra texture creation if the window size is smaller then actual rendered image. - Refactored GStreamer wrappers and factor out common code. - Removed redundant debug printing from `FrameSource` NVXIO classes. - Enhanced `OptionHandler` error messages for non-representable values. - Added documentation chapter with information about NVXIO thread safety. - `Render::putText` method was deprecated, new `Render::putTextViewport` method was added as replacement. - Added overload for `Render::putFeatures` method with per-feature style support. - Added target video bitrate configuration via environment variable (`NVXIO_VIDEO_RENDER_BITRATE`) for `GStreamerVideoRender`. - Added rounded corners support for `Render::putObjectLocation` method. - Refactored `nvmedia_camera` sample, reused NVXIO FrameSource interface. FIXED ISSUES - Imported images (created via `vxCreateImageFromHandle`) now synchronize internal buffers on destruction (when total reference counter is zero), at the time the memory ownership is back to the application. After destruction application's memory will contain up-to-date data. - Made VisionWorks independent from cudaSetDevice calls made by user. Added documentation regarding VisionWorks usage and limitations on multi-gpu systems. New `NVX_NODE_ATTRIBUTE_CUDA_STREAM` attribute was added for user implemented CUDA nodes. - Fixed keypoint's score value calculated by `HarrisTrack` primitives. In previous release it returned `actual_score - threshold` value instead of `actual_score`. - Added missed `NVX_DF_IMAGE_2F32` image format support to CUDA variant of `CopyImage` primitive. - Fixed reference leak when using ROI from virtual image inside graph processing. - Added a missing rectangle check in the `vxCreateImageFromROI` function. - Fixed segmentation fault in `MedianFlow` primitive with scale estimation when size of input array lower than 2. Now the primitive will report an error in this case. - Fixed invalid data that can occur if a sub-region of image or array is accessed in WRITE_ONLY mode. - Fixed `vxRegisterUserStruct` in case of type IDs overflow, now the function will return `VX_TYPE_INVALID`, if the namespace of types has been exhausted. - Fixed crashes when a node immutable parameter is optional and missing. - NVXIO and samples fixes: - Added support of video files with variable bit-rate on V4L platforms. - Fixed several issues with GLFW windows on Windows platform (window's size and aspect ratio). - Removed video trembling at the very end of the "OpenGL Interoperability" sample. - Fixed cursor handling in case when window was scaled to smallest size. - Fixed motion field rendering in case if windows size doesn't match with image size. - Fixed PointCloudRender implementation, removed useless and erroneous `vxWriteMatrix` calls. - Fixed rectangles rendering artifacts in `Render::putObjectLocation` method. KNOWN ISSUES - When VisionWorks samples are run extended hours (12hours or more) the application might hang due to platform SW issue. - 'FindHomography` primitive uses all points pair in homography computation irrespective of the tracking status. The developers should consider explicitly filtering out invalid pairs that were marked as lost by tracking algorithm, this will help reduce the number of outliers. - Parallel reading from several nvxio::FrameSource instances in single thread leads to segmentation fault on close on Vibrante 3 Linux (Jetson Pro Platforms). - On Jetson TX1 platforms, Camera frame rate cannot be set due to a platform SW issue. - The `stereo_matching` demo is not real-time on Jetson TK1 platform. - Memory leaks in GStreamer NvMedia plugins and in VisionWorks samples that use it on DRIVE PX (P2379 B00) platform. - Omni Vision 10635 cameras do not work properly on E2580 board due to platform issue. - Camera capture via GStreamer doesn't fail in case of physical absence of camera module on Jetson TX1 platform. - On Windows, sample frame rate limiting is imprecise, which may cause some samples to run at a lower frame rate than expected (25-29 FPS). =================================================================================== Release 1.0 =================================================================================== SUPPORTED SOFTWARE (1) NVIDIA(R) Jetson(TM) TK1 Pro OS : NVIDIA(R) Vibrante(TM) 3 Linux (V3L RC1) OpenCV : OpenCV 2.4.12.2 and OpenCV 2.4.12.3 (latest) CUDA : NVIDIA(R) CUDA(R) 7.0 (2) NVIDIA(R) Jetson(TM) TK1 OS : NVIDIA(R) Tegra(R) Linux Driver Package R21.4 (L4T) OpenCV : OpenCV 2.4.12.2 and OpenCV 2.4.12.3 (latest) CUDA : NVIDIA(R) CUDA(R) 6.5 (3) NVIDIA(R) DRIVE(TM) PX (P2379 B00), E2580 OS : NVIDIA(R) Vibrante(TM) 4 Linux (V4L) OpenCV : OpenCV 2.4.12.2 and OpenCV 2.4.12.3 (latest) CUDA : NVIDIA(R) CUDA(R) 7.0 (4) NVIDIA(R) Jetson TX1 (P2371) OS : NVIDIA(R) Tegra(R) Linux Driver Package R23 (L4T) OpenCV : OpenCV 2.4.12.2 and OpenCV 2.4.12.3 (latest) CUDA : NVIDIA(R) CUDA(R) 7.0 (5) Desktop X86_64 Ubuntu 12.04, with Kepler(TM) (compute capability 3.x) and Maxwell(TM) (compute capability 5.x) GPU generations OS : Ubuntu 12.04 x86_64 OpenCV : OpenCV 2.4.12.2 and OpenCV 2.4.12.3 (latest) CUDA : NVIDIA(R) CUDA(R) 7.0 (6) Desktop X86_64 Ubuntu 14.04, with Kepler(TM) (compute capability 3.x) and Maxwell(TM) (compute capability 5.x) GPU generations OS : Ubuntu 14.04 x86_64 OpenCV : OpenCV 2.4.12.2 and OpenCV 2.4.12.3 (latest) CUDA : NVIDIA(R) CUDA(R) 7.0 (7) Windows 8 x64, with Kepler(TM) (compute capability 3.x) and Maxwell(TM) (compute capability 5.x) GPU generations, Microsoft Visual Studio 2013 (Any edition, except Express) OS : Windows 8 x64 OpenCV : public OpenCV 2.4.12 CUDA : NVIDIA(R) CUDA(R) 7.0 GENERAL This is the first public release for L4T customers. NOTE: This file covers previous releases of VisionWorks which is applicable to various platform customers that this library supports. If you are using this library as a public library for the first release, "FIXED ISSUES" and "CHANGES" sections of 1.0 release notes as well as the previous releases' log might not be of importance to you. Please do refer to the "KNOWN ISSUES" section below. For our existing customers, the focus of this release is enabling hardware accelerated decode and new camera capture sample for L4T R23 platforms. NEW FEATURES - Camera capture sample for L4T R23 that demonstrates how to access camera on L4T R23 platforms, and its corresponding camera capture interface in NVXIO. - Support for hardware accelerated video decoding in NVXIO for L4T R23 and V4L platforms. CHANGES - Improvements in integration with debugging and profiling tools. - Stereo Matching Demo is enhanced with new color mode display option and corrected allowed parameter ranges for this demo. - Removed unused camera model enumeration (nvx_camera_model_e) type. - Performance improvement for Convolution primitive for 11x11 case for Tegra Maxwell platforms. - On Vibrante platforms, there are now two video playback samples: NvMedia Video Playback Sample app and Video Playback Sample app. Video Playback Sample app abstracts NvMedia and other multimedia API SW stack within NVXIO layer, simplifying the sample pipelines. NvMedia video playback sample will be deprecated in later versions. FIXED ISSUES - Documentation Fixes: - Added missing descriptions for several components - Updated input data description section of the Sample and Demo Applications in the Reference Manual. - Unified hardware codec information for Vibrante(™) platforms - Added instructions for individual compilation of samples. - NvMedia Camera Sample Fixes: - Updated NvMedia camera sample display interface and its documentation to describe histogram equalization mode applied to the captured images. - Fixed issue which caused segmentation fault in NvMedia camera sample at finalization stage on V4L platform. - Fixed privileges issue with NvMedia camera sample. - Corrected screen placement of OpenGL Interoperability Sample window when the application is started. - Fixed usage of mask in FastTrack primitive so that all the features outside of the mask are excluded properly. - Fixed NVXIO OpenGL rendering of feature points and lines where the input values were discarded when the infernal Buffer capacity was insufficient to hold all the elements. - Restored compatibility of library headers with pure C. KNOWN ISSUES - Concurrent reads from multiple nvxio::FrameSource instances initiated from a single thread lead to segmentation fault on Vibrante platforms on close. - Reference leak while using ROI from virtual image inside graph processing. - Video files with variable bit-rate are not supported on Vibrante 4 Linux platform (DRIVE PX and E2580 boards) due to a GStreamer issue on these platforms. - nvmedia_video sample requires super-user privileges on V4L platform. - H.264 elementary video streams are not supported on Jetson TX1 platforms (P2371).