MM API support for VIC deinterlace


I’d like to use the Tegra MultiMedia API to do deinterlace using the VIC (NvVideoConverter element), but it seems there is no support for that. Is this support planned or available somewhere, or is this feature of the VIC hardware unusable?


Hi Ian,
We have no plan to support de-interlace now.
Can you have progressive inputs in your usecase?

No, we need to handle interlaced input. If you do not intend to support this feature then can you at least make the libv4l2 videoconvert plugin source code public? That would possibly allow the community to work on it.


The source code is confidential.

We suggest implement de-interlacing via CUDA.

Given that a VIC instance is needed between capture and encode anyway, and VIC can allegedly do “High-quality de-interlace”, it seems very wasteful of device resource to ignore that capability and push this function off to the GPU.

Parker TRM chapter on VIC has this claim:
“Uses a motion adaptive algorithm to decide whether to BOB or WEAVE fields together. In addition, uses an edge-directed spatial interpolation algorithm in order to avoid any weave artifacts.”
This sounds good, but the holes in nVidia’s public API and lack of support are very disappointing.

How to implement de-interlacing via CUDA on jetson tx2?

We don’t have existing sample in CUDA. Others may share you experience.

You may refer to ffmpeg. It is open source.