AM62P: Improving video processing on processor

Part Number: AM62P

Hi team,
we are having problem with camera processing.
running this commands to configure our scenario.

media-ctl -R '"cdns_csi2rx.30101000.csi-bridge" [0/0 -> 1/0 [1], 0/1 -> 1/1 [1], 0/2 -> 1/2 [1], 0/3 -> 1/3 [1]]'
media-ctl -R '"30102000.ticsi2rx" [0/0 -> 2/0 [1], 0/1 -> 3/0 [1], 0/2 -> 4/0 [1], 0/3 -> 5/0 [1]]'

# /dev/video1
media-ctl -V '"nvp6324_mipi 3-0033":0/0 [fmt:UYVY8_1X16/720x288 field:none]'
media-ctl -V '"30102000.ticsi2rx":0/0 [fmt:UYVY8_1X16/720x288 field:none]' 
media-ctl -V '"cdns_csi2rx.30101000.csi-bridge":0/0 [fmt:UYVY8_1X16/720x288 field:none]' 
v4l2-ctl -z platform:30102000.ticsi2rx -d "30102000.ticsi2rx context 1" -v width=720,height=288,pixelformat=UYVY

# /dev/video2
media-ctl -V '"nvp6324_mipi 3-0033":0/1 [fmt:UYVY8_1X16/1280x720 field:none]'
media-ctl -V '"cdns_csi2rx.30101000.csi-bridge":0/1 [fmt:UYVY8_1X16/1280x720 field:none]'
media-ctl -V '"30102000.ticsi2rx":0/1 [fmt:UYVY8_1X16/1280x720 field:none]'
v4l2-ctl -z platform:30102000.ticsi2rx -d "30102000.ticsi2rx context 2" -v width=1280,height=720,pixelformat=UYVY

# /dev/video3
media-ctl -V '"nvp6324_mipi 3-0033":0/2 [fmt:UYVY8_1X16/720x240 field:none]'
media-ctl -V '"cdns_csi2rx.30101000.csi-bridge":0/2 [fmt:UYVY8_1X16/720x240 field:none]' 
media-ctl -V '"30102000.ticsi2rx":0/2 [fmt:UYVY8_1X16/720x240 field:none]'
v4l2-ctl -z platform:30102000.ticsi2rx -d "30102000.ticsi2rx context 3" -v width=720,height=240,pixelformat=UYVY

# /dev/video4
media-ctl -V '"nvp6324_mipi 3-0033":0/3 [fmt:UYVY8_1X16/720x240 field:none]'
media-ctl -V '"cdns_csi2rx.30101000.csi-bridge":0/3 [fmt:UYVY8_1X16/720x240 field:none]'
media-ctl -V '"30102000.ticsi2rx":0/3 [fmt:UYVY8_1X16/720x240 field:none]'
v4l2-ctl -z platform:30102000.ticsi2rx -d "30102000.ticsi2rx context 4" -v width=720,height=240,pixelformat=UYVY

and using this pipeline we are having a high core consumption, as shown below:

gst-launch-1.0 v4l2src device=/dev/video2 io-mode=4 ! video/x-raw,width=1280,height=720,framerate=30/1,format=UYVY ! ticolorconvert ! video/x-raw,format=NV12 ! waylandsink sync=false
-> Avg Core Consumption: 22,8%

gst-launch-1.0 v4l2src device=/dev/video1 io-mode=4 ! video/x-raw,width=720,height=288,framerate=25/1,format=UYVY ! ticolorconvert ! video/x-raw,format=NV12 ! waylandsink sync=false
-> Avg Core Consumption: 18,6%

gst-launch-1.0 v4l2src device=/dev/video3 io-mode=4 ! video/x-raw,width=720,height=240,framerate=25/1,format=UYVY ! ticolorconvert ! video/x-raw,format=NV12 ! waylandsink sync=false
-> Avg Core Consumption: 18,4%

Our goal is to have this core consumption near to 0%, is there a way to improve this? 

Best Regards.

  • Hi Sergio,

    Waylandsink does some sort of conversion internally in SW, so it would utilize CPU for doing so. Can you try and test with kmssink and see if the behavior changes? 

    Also, on AM62P if the goal is to do video processing on UYVY data, then Video Encode/Decode supports UYVY format for encoding so that would eliminate ticolorconvert (Also, a SW based plugin, which is also causing the CPU utilization to increase).

    Best Regards

    Suren