DriveWorks SDK Reference
4.0.0 Release
For Test and Development only

Dense Optical Flow

About This Module

The Dense Optical Flow module estimates motion vectors between frames. This algorithm consists of multiple stages, and is performed on multiple hardware units:

  • VIC (Video Image Compositor).
  • NVIDIA NVENC (NVIDIA Video Encoder).
  • PVA (Programmable Vision Accelerator).
This module is currently only available on the NVIDIA DRIVE AGX Developer Kit, where these hardware units are present.
The Dense Optical Flow pipeline is composed of four stages based on the hardware unit they are executed on. These stages are performed in order by calling dwDenseOpticalFlow_calculateOpticalFlow().

Stage 1: Data Preparation

This stage is responsible for preparing the input image by converting memory layout and/or streaming data to the relevant hardware unit. This operation is performed on the VIC.

Stage 2: Motion Vector Estimation

This is the main stage of the pipeline where the Dense Optical Flow is performed. This operation is performed on the NVIDIA NVENC.

Stage 3: Motion Vector Refinement

In this stage, the Motion Vectors are refined by applying a noise reduction filter. This operation is performed on the PVA.

Stage 4: Retrieval of Results

In this stage, the results are retrieved from PVA to GPU; hence, this stage blocks the CPU until the entire pipeline is finished.

Relevant Tutorials