I’ve successfully used NVENC optical flow through VPI for quite some time. I now have an use case for a high-bit depth camera and optical flow. However, VPI only accepts NV12 frames in this case. Looking at some DRIVE OS docs and the libraries (libnvmedia.so) present on my L4T install, the underlying functions also seem to support 16-bit luma-only images.
Our use case is global motion estimation for 16-bit grayscale camera frames, preferrably without downquantization to 8 bits.
I have 2 questions:
Do you have any suggestions for our use case outlined above?
Could you point me towards possible methods for improving the quality of the flow vectors? Comparing the vector maps to ones from the newer architecture, there is a large difference. We already use forward-backward flow comparison to filter out bad vectors.
We currently use the Xavier NX, JetPack 4.6.2, VPI 1.1/1.2.
Is there any other API available on Linux 4 Tegra which exposes the Y16 capability of NvMedia?
If there is, is there a benefit to using it in terms of quality, i.e. does the hardware use the full range or would it be downquantized internally anyway?