Jetson TK1 - color space conversion (YUV422 to I420)

Jetson TK1 multimedia user guide says we can use ‘nvvidconv’ gstreamer plugin for color space conversion. In the TRM, VIC (Video Image Compositor) has the capability to do color space conversion.

So, my understanding is that ‘nvvidconv’ gstreamer plugin makes use of VIC hardware unit to do the color space conversion.

Is my understanding correct?

Jai Ganesh

nvvidconv is HW-accelerated, this is correct, either through the video HW unit(s) or the GPU. For example it will give better performance + utilization on Tegra than the CPU-based ffmpegcolorspace element typically seen in gstreamer pipelines.

Here is the statics of color space conversion using nvvideoconv and ffmpegcolorspace.

Using gstreamer, I am getting 1080p@50 FPS from camera sensor (YUV422 format) and feeding that to nvvideoconv plugin. During the color space conversion, two CPU cores are active and average CPU load is 120% (CPU1 load + CPU2 load). The output of nvvideoconv (after converting to I420) is 1080p@33 FPS.

In the same test case, instead of using nvvideoconv, ffmpegcolorspace is used. During this color space conversion, only one CPU core is active and its load is 100% and the output of the ffmpegcolorspcae is 1080p@28 FPS.

My question is, when nvvideoconv uses hardware unit, why 2 cores should be active, but when using ffmpegcolorspace (which use CPU for its color space conversion) uses only one core?