The Dense Optical Flow module estimates motion vectors between frames. This algorithm consists of multiple stages, and is performed on multiple hardware units:
dwDenseOpticalFlow_calculateOpticalFlow()
.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.
This is the main stage of the pipeline where the Dense Optical Flow is performed. This operation is performed on the NVIDIA NVENC.
In this stage, the Motion Vectors are refined by applying a noise reduction filter. This operation is performed on the PVA.
In this stage, the results are retrieved from PVA to GPU; hence, this stage blocks the CPU until the entire pipeline is finished.