An Introduction to the NVIDIA Optical Flow SDK

Originally published at:

NVIDIA’s Turing GPUs introduced a new hardware functionality for computing optical flow between images with very high performance. The Optical Flow SDK 1.0 enables developers to tap into the new optical flow functionality. You can download the Optical Flow SDK 1.0 from the NVIDIA developer zone. Until a few years ago, tasks such as recognizing and tracking…


Where can I find full source code of "Using Optical Flow on Decoded Frames from NVDEC" ? , I can't find it in SDK samples.

I am also having trouble finding the source code for the NVOF API. Does NVIDIA have a link they can share or is this API’s source code proprietary?

The article says : “NVIDIA GPUs from Maxwell, Pascal, and Volta generations include one or more video encoder (NVENC) engines which provided a mode called Motion-Estimation-only mode. This mode allowed users to run only motion estimation on NVENC and retrieve the resulting motion vectors (MVs).”

We found the cheapest NVIDIA Maxwell-based card is OEM GTX 745. But with latest driver from November 2021 and Windows 10 build 19041 the test software do not found hardware ME functionality. The returned D3D12_VIDEO_SIZE_RANGE SizeRange are all zeroes and ID3D12VideoMotionEstimator COM object can NOT be created from ID3D12VideoDevice1 interface.

How to find which cheapest NVIDIA cards can fully support DX12 Hardware Motion Estimation functionality. We tested on GTX 1060 and 1070 cards but they are too expensive now for poor developers.

Also do any software emulation possible for developing applications using DX12 Motion Estimation API on the system without hardware chip providing DX12 Hardware Motion Estimation functionality ? I currently in the development attempt to add DX12 ME function to freeware plugin to Avisynth - mvtools2. Using remote debugging to the system with GTX1060 card is rare possible and unability to have software emulation slow down the development process.