This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: May I ask if the SDK (08.06.00.12) supports the use of "tivxVideoEncoderNode"?

Part Number: TDA4VM

Hi,

May I ask if the SDK (08.06.00.12) supports the use of "tivxVideoEncoderNode"? Apply the "encode_module" from SDK (07.03) version in SDK (08.06.00.12) to replace the gstreamer encoding method in SDK (08.06.00.12).

Regards,

Yueqian

  • Hi,

    No Encoder node is no longer supported. Encoder is supported via gStreamer or V4L2 on Linux, Please refer to Linux userguide for more information.

    Regards,

    Brijesh

  • Hi Brijesh,

    1.That means there is no interface related to "tivxVideoEncoderNode" in the SDK (08.06.00.12), right?

    2.May I ask how can I optimize CPU usage if I use gstreamer for encoding? The "output io mode=4 capture io mode=2" used here did not have an optimization effect, and the settings are as follows:

     snprintf(params->m_AppSrcNameArr[ch] , CODEC_MAX_LEN_ELEM_NAME, "myAppSrc%d" , ch);
                i += snprintf(&params->m_cmdString[i], CODEC_MAX_LEN_CMD_STR-i,"appsrc format=GST_FORMAT_TIME is-live=true do-timestamp=true block=false name=%s ! queue \n",params->m_AppSrcNameArr[ch]);
                i += snprintf(&params->m_cmdString[i], CODEC_MAX_LEN_CMD_STR-i,"! video/x-raw, width=(int)%d, height=(int)%d, framerate=(fraction)30/1, format=(string)%s, interlace-mode=(string)progressive, colorimetry=(string)bt601 \n",
                                                                                                params->in_width, params->in_height, params->in_format);
                i += snprintf(&params->m_cmdString[i], CODEC_MAX_LEN_CMD_STR-i,"! v4l2h264enc output-io-mode=4 capture-io-mode=2 bitrate=1500000 \n");

    and

     snprintf(params->m_AppSinkNameArr[ch], CODEC_MAX_LEN_ELEM_NAME, "myAppSink%d", ch);
     i += snprintf(&params->m_cmdString[i], CODEC_MAX_LEN_CMD_STR-i,"! appsink name=%s drop=true wait-on-eos=false max-buffers=4\n",params->m_AppSinkNameArr[ch]);

    Regards,

    Yueqian

  • 1.That means there is no interface related to "tivxVideoEncoderNode" in the SDK (08.06.00.12), right?

    Yes, that's correct.

    2.May I ask how can I optimize CPU usage if I use gstreamer for encoding? The "output io mode=4 capture io mode=2" used here did not have an optimization effect, and the settings are as follows:

    Sorry, did not get it. What do you mean optimization here? CPU optimization? 

    Regards,

    Brijesh

  • Yes, I want to optimize the CPU usage of encoding. The CPU usage is high when using the parameters set above.

    Can the data copied from frames be used in shared memory (by pre allocating some memory for recycling). May I ask where the interface encoded in the SDK (08.06.00.12) "app_multi_cam_codec" is located? Can relevant optimizations be carried out?

    Regards,

    Yueqian

  • Hi,

    I would let Sarabesh and Brandon to help you our here. 

    Regards,

    Brijesh

  • OK,Thank you!

    Regards

    Yueqian

  • Hi Brijesh,

    May I ask if there are any other interfaces in TIOVX that can implement encoding and decoding without using gstreamer in SDK (08.06.00.12)? 

    By the way, why have the interfaces related to "tivxVideoEncoderNode" been removed here? What are the drawbacks of "tivxVideoEncoderNode"? What are the advantages of using gstreamer?

    Regards,

    Yueqian

  • Hi Yueqian,

    May I ask if there are any other interfaces in TIOVX that can implement encoding and decoding without using gstreamer in SDK (08.06.00.12)?

    I think you can use V4L2, but not TIOVX. 

    By the way, why have the interfaces related to "tivxVideoEncoderNode" been removed here? What are the drawbacks of "tivxVideoEncoderNode"? What are the advantages of using gstreamer?

    Can we please ask these to your local TI FAE/support team?

    Regards,

    Brijesh

  • OK, Thank you for your suggestions.

    Regards,

    Yueqian

  • Hi Yueqian, 

    Yes, I want to optimize the CPU usage of encoding. The CPU usage is high when using the parameters set above.

    Can the data copied from frames be used in shared memory (by pre allocating some memory for recycling). May I ask where the interface encoded in the SDK (08.06.00.12) "app_multi_cam_codec" is located? Can relevant optimizations be carried out?

    There are optimizations to CPU that can be made using DMA by setting v4l2src to capture-io-mode=5 and then have v4l2h264enc use output-io-mode=4. However, this can only be done for specific camera inputs that the driver supports. What type of camera is being used?

    Thank you,
    Sarabesh S

  • Hi,

    Our camera is of GMSL type.

    Regards,

    Yueqian

  • Hi Yueqian, 

    I believe you can use dmabuf framework to optimize CPU usage when using this camera type. I am looking further into it to see what gstreamer parameters need to be set to allow this when using appsrc. I will update you when I have more information.

    Thanks,
    Sarabesh S

  • Hi,

    OK, looking forward to receiving your good news in a timely manner!

    Regards,

    Yueqian

  • Hi Yueqian, 

    After taking a look, to import DMA buffers to be used by appSrc, you need to add the output-io-mode=4 parameter to the v4l2h264enc element. I saw you have a similar thread with Brandon where he walked through these modifications (https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1308410/tda4vm-hi-does-the-app_multi_cam_codec-application-occupy-cpu-resources-does-encoding-and-decoding-occupy-a-high-proportion).

    Outside of these changes, there is nothing else to reduce the CPU utilization from the encoder pipeline perspective. If there are no further questions I will close this thread.

    Thank you,
    Sarabesh S

  • Hi,

    Okay, thank you for your guidance.

    Regards,

    Yueqian

  • Hi,

    "There are optimizations to CPU that can be made using DMA by setting v4l2src to capture-io-mode=5 and then have v4l2h264enc use output-io-mode=4. However, this can only be done for specific camera inputs that the driver supports. What type of camera is being used?"

    1.May I ask if GMSL cameras support it?

    2.May I ask what type of camera TI comes with?

    3.What is the CPU occupied by camera encoding when using TI equipped cameras and deserializers? Can you provide a comparative reference data on CPU usage?

    Regards,

    Yueqian

  • Hi,

    1. If you go to /opt/imaging and ls the directory, you should see the listed compatible cameras (i.e. ar0233, ar0820, imx219, imx390). GMSL is supported with these arXXXX cameras listed.

    2. Our cameras are typically CSI cameras, but I believe it does not matter what the camera is if it is supported by the driver. 

    3. CPU usage should be the same regardless of what camera is being used as long as its supported by the driver. I will do some tests on the camera I currently have with the SDK version you are on and will update you with my results.

    Thank You,
    Sarabesh S

  • OK, thank you very much!

    Looking forward to your results.

    Regards,

    Yueqian

  • Hi Yueqian, 

    These are my CPU performance statistics with no changes made to the app_multi_cam_codec code with a single camera capture->encode and decode->display. This was done on SDK 9.0 with a IMX390 camera. 

    Summary of CPU load,
    ====================
    
    CPU: mpu1_0: TOTAL LOAD =  12. 9 % ( HWI =   0.11 %, SWI =   0. 4 % )
    CPU: mcu2_0: TOTAL LOAD =  13. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU: mcu2_1: TOTAL LOAD =   1. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU: mcu3_0: TOTAL LOAD =   1. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU: mcu3_1: TOTAL LOAD =   1. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU: mcu4_0: TOTAL LOAD =   1. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU: mcu4_1: TOTAL LOAD =   1. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c7x_1: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c7x_2: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c7x_3: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c7x_4: TOTAL LOAD =   1. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    
    
    HWA performance statistics,
    ===========================
    
    HWA:   VISS: LOAD =   8.27 % ( 50 MP/s )
    HWA:   LDC : LOAD =   7. 9 % ( 49 MP/s )
    HWA:   MSC0: LOAD =  10.96 % ( 98 MP/s )
    
    
    DDR performance statistics,
    ===========================
    
    DDR: READ  BW: AVG =   1213 MB/s, PEAK =  22755 MB/s
    DDR: WRITE BW: AVG =    856 MB/s, PEAK =  11605 MB/s
    DDR: TOTAL BW: AVG =   2069 MB/s, PEAK =  34360 MB/s
    
    
    Detailed CPU performance/memory statistics,
    ===========================================
    
    DDR_SHARED_MEM: Alloc's: 48 alloc's of 95933931 bytes 
    DDR_SHARED_MEM: Free's : 5 free's  of 12441610 bytes 
    DDR_SHARED_MEM: Open's : 43 allocs  of 83492321 bytes 
    
    CPU: mcu2_0: TASK:      FREERTOS_TA:   0. 0 %
    CPU: mcu2_0: TASK:           IPC_RX:   0. 0 %
    CPU: mcu2_0: TASK:       REMOTE_SRV:  87.71 %
    CPU: mcu2_0: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu2_0: TASK:      lwIP main l:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CPU_0:   0. 0 %
    CPU: mcu2_0: TASK:        TIVX_V1NF:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_V1LDC1:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_V1SC1:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_V1MSC2:   0. 0 %
    CPU: mcu2_0: TASK:       TIVXVVISS1:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT1:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT2:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_DISP1:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_DISP2:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CSITX:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT3:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT4:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT5:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT6:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT7:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT8:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DPM2M1:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DPM2M2:   0. 0 %
    
    CPU: mcu2_0: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16047104 B ( 95 % unused)
    CPU: mcu2_0: HEAP:           L3_MEM: size =     262144 B, free =     245248 B ( 93 % unused)
    
    CPU: mcu2_1: TASK:      FREERTOS_TA:   0. 0 %
    CPU: mcu2_1: TASK:           IPC_RX:   0. 0 %
    CPU: mcu2_1: TASK:       REMOTE_SRV:   2. 3 %
    CPU: mcu2_1: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu2_1: TASK:       TIVX_CPU_1:   0. 0 %
    CPU: mcu2_1: TASK:         TIVX_SDE:   0. 0 %
    CPU: mcu2_1: TASK:         TIVX_DOF:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU: mcu2_1: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16776960 B ( 99 % unused)
    CPU: mcu2_1: HEAP:           L3_MEM: size =     262144 B, free =     262144 B (100 % unused)
    
    CPU: mcu3_0: TASK:      FREERTOS_TA:   0. 0 %
    CPU: mcu3_0: TASK:           IPC_RX:   0. 0 %
    CPU: mcu3_0: TASK:       REMOTE_SRV:   0.84 %
    CPU: mcu3_0: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu3_0: TASK:      TIVX_MCU3_0:   0. 0 %
    CPU: mcu3_0: TASK:      IPC_TEST_RX:   0. 0 %
    CPU: mcu3_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_0: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU: mcu3_0: HEAP:    DDR_LOCAL_MEM: size =    8388608 B, free =    8388352 B ( 99 % unused)
    
    CPU: mcu3_1: TASK:      FREERTOS_TA:   0. 0 %
    CPU: mcu3_1: TASK:           IPC_RX:   0. 0 %
    CPU: mcu3_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU: mcu3_1: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu3_1: TASK:      TIVX_MCU3_1:   0. 0 %
    CPU: mcu3_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU: mcu3_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu3_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU: mcu3_1: HEAP:    DDR_LOCAL_MEM: size =    8388608 B, free =    8388352 B ( 99 % unused)
    
    CPU: mcu4_0: TASK:      FREERTOS_TA:   0. 0 %
    CPU: mcu4_0: TASK:           IPC_RX:   0. 0 %
    CPU: mcu4_0: TASK:       REMOTE_SRV:   0. 1 %
    CPU: mcu4_0: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu4_0: TASK:      TIVX_MCU4_0:   0. 0 %
    CPU: mcu4_0: TASK:        TIVX_V2NF:   0. 0 %
    CPU: mcu4_0: TASK:       TIVXV2LDC1:   0. 0 %
    CPU: mcu4_0: TASK:       TIVXV2MSC1:   0. 0 %
    CPU: mcu4_0: TASK:       TIVXV2MSC2:   0. 0 %
    CPU: mcu4_0: TASK:      TIVXV2VISS1:   0. 0 %
    CPU: mcu4_0: TASK:      IPC_TEST_RX:   0. 0 %
    CPU: mcu4_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_0: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_0: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU: mcu4_0: HEAP:    DDR_LOCAL_MEM: size =    8388608 B, free =    8384512 B ( 99 % unused)
    CPU: mcu4_0: HEAP:           L3_MEM: size =     524288 B, free =     524288 B (100 % unused)
    
    CPU: mcu4_1: TASK:      FREERTOS_TA:   0. 0 %
    CPU: mcu4_1: TASK:           IPC_RX:   0. 0 %
    CPU: mcu4_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU: mcu4_1: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu4_1: TASK:      TIVX_MCU4_1:   0. 0 %
    CPU: mcu4_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU: mcu4_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu4_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU: mcu4_1: HEAP:    DDR_LOCAL_MEM: size =    8388608 B, free =    8388352 B ( 99 % unused)
    
    CPU:  c7x_1: TASK:      FREERTOS_TA:   0. 0 %
    CPU:  c7x_1: TASK:           IPC_RX:   0. 0 %
    CPU:  c7x_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c7x_1: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P1:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P2:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P3:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P4:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P5:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P6:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P7:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P8:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c7x_1: HEAP:    DDR_LOCAL_MEM: size =  134217728 B, free =  134217472 B ( 99 % unused)
    CPU:  c7x_1: HEAP:           L3_MEM: size =    3145728 B, free =    3145728 B (100 % unused)
    CPU:  c7x_1: HEAP:           L2_MEM: size =     458752 B, free =     458752 B (100 % unused)
    CPU:  c7x_1: HEAP:           L1_MEM: size =      16384 B, free =      16384 B (100 % unused)
    CPU:  c7x_1: HEAP:  DDR_SCRATCH_MEM: size =  134217728 B, free =  134217728 B (100 % unused)
    CPU:  c7x_1: HEAP:  DDR_NON_CACHE_M: size =  134217728 B, free =  134217728 B (100 % unused)
    CPU:  c7x_1: HEAP:  DDR_SCRATCH_NON: size =  134217728 B, free =  134217728 B (100 % unused)
    
    CPU:  c7x_2: TASK:      FREERTOS_TA:   0. 0 %
    CPU:  c7x_2: TASK:           IPC_RX:   0. 0 %
    CPU:  c7x_2: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c7x_2: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c7x_2: TASK:      TIVX_C72_P1:   0. 0 %
    CPU:  c7x_2: TASK:      TIVX_C72_P2:   0. 0 %
    CPU:  c7x_2: TASK:      TIVX_C72_P3:   0. 0 %
    CPU:  c7x_2: TASK:      TIVX_C72_P4:   0. 0 %
    CPU:  c7x_2: TASK:      TIVX_C72_P5:   0. 0 %
    CPU:  c7x_2: TASK:      TIVX_C72_P6:   0. 0 %
    CPU:  c7x_2: TASK:      TIVX_C72_P7:   0. 0 %
    CPU:  c7x_2: TASK:      TIVX_C72_P8:   0. 0 %
    CPU:  c7x_2: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c7x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_2: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c7x_2: HEAP:    DDR_LOCAL_MEM: size =  134217728 B, free =  134213120 B ( 99 % unused)
    CPU:  c7x_2: HEAP:           L3_MEM: size =    3145728 B, free =    3145728 B (100 % unused)
    CPU:  c7x_2: HEAP:           L2_MEM: size =     458752 B, free =     458752 B (100 % unused)
    CPU:  c7x_2: HEAP:           L1_MEM: size =      16384 B, free =      16384 B (100 % unused)
    CPU:  c7x_2: HEAP:  DDR_SCRATCH_MEM: size =  134217728 B, free =  134217728 B (100 % unused)
    CPU:  c7x_2: HEAP:  DDR_NON_CACHE_M: size =  134217728 B, free =  134217728 B (100 % unused)
    CPU:  c7x_2: HEAP:  DDR_SCRATCH_NON: size =  134217728 B, free =  134217728 B (100 % unused)
    
    CPU:  c7x_3: TASK:      FREERTOS_TA:   0. 0 %
    CPU:  c7x_3: TASK:           IPC_RX:   0. 0 %
    CPU:  c7x_3: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c7x_3: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c7x_3: TASK:      TIVX_C73_P1:   0. 0 %
    CPU:  c7x_3: TASK:      TIVX_C73_P2:   0. 0 %
    CPU:  c7x_3: TASK:      TIVX_C73_P3:   0. 0 %
    CPU:  c7x_3: TASK:      TIVX_C73_P4:   0. 0 %
    CPU:  c7x_3: TASK:      TIVX_C73_P5:   0. 0 %
    CPU:  c7x_3: TASK:      TIVX_C73_P6:   0. 0 %
    CPU:  c7x_3: TASK:      TIVX_C73_P7:   0. 0 %
    CPU:  c7x_3: TASK:      TIVX_C73_P8:   0. 0 %
    CPU:  c7x_3: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c7x_3: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_3: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_3: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_3: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_3: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_3: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_3: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_3: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_3: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_3: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c7x_3: HEAP:    DDR_LOCAL_MEM: size =  134217728 B, free =  134213120 B ( 99 % unused)
    CPU:  c7x_3: HEAP:           L3_MEM: size =    3145728 B, free =    3145728 B (100 % unused)
    CPU:  c7x_3: HEAP:           L2_MEM: size =     458752 B, free =     458752 B (100 % unused)
    CPU:  c7x_3: HEAP:           L1_MEM: size =      16384 B, free =      16384 B (100 % unused)
    CPU:  c7x_3: HEAP:  DDR_SCRATCH_MEM: size =  134217728 B, free =  134217728 B (100 % unused)
    CPU:  c7x_3: HEAP:  DDR_NON_CACHE_M: size =  134217728 B, free =  134217728 B (100 % unused)
    CPU:  c7x_3: HEAP:  DDR_SCRATCH_NON: size =  134217728 B, free =  134217728 B (100 % unused)
    
    CPU:  c7x_4: TASK:      FREERTOS_TA:   0. 0 %
    CPU:  c7x_4: TASK:           IPC_RX:   0. 0 %
    CPU:  c7x_4: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c7x_4: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c7x_4: TASK:      TIVX_C74_P1:   0. 0 %
    CPU:  c7x_4: TASK:      TIVX_C74_P2:   0. 0 %
    CPU:  c7x_4: TASK:      TIVX_C74_P3:   0. 0 %
    CPU:  c7x_4: TASK:      TIVX_C74_P4:   0. 0 %
    CPU:  c7x_4: TASK:      TIVX_C74_P5:   0. 0 %
    CPU:  c7x_4: TASK:      TIVX_C74_P6:   0. 0 %
    CPU:  c7x_4: TASK:      TIVX_C74_P7:   0. 0 %
    CPU:  c7x_4: TASK:      TIVX_C74_P8:   0. 0 %
    CPU:  c7x_4: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c7x_4: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_4: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_4: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_4: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_4: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_4: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_4: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_4: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_4: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_4: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c7x_4: HEAP:    DDR_LOCAL_MEM: size =  134217728 B, free =  134213120 B ( 99 % unused)
    CPU:  c7x_4: HEAP:           L3_MEM: size =    3145728 B, free =    3145728 B (100 % unused)
    CPU:  c7x_4: HEAP:           L2_MEM: size =     458752 B, free =     458752 B (100 % unused)
    CPU:  c7x_4: HEAP:           L1_MEM: size =      16384 B, free =      16384 B (100 % unused)
    CPU:  c7x_4: HEAP:  DDR_SCRATCH_MEM: size =  134217728 B, free =  134217728 B (100 % unused)
    CPU:  c7x_4: HEAP:  DDR_NON_CACHE_M: size =  134217728 B, free =  134217728 B (100 % unused)
    CPU:  c7x_4: HEAP:  DDR_SCRATCH_NON: size =  134217728 B, free =  134217728 B (100 % unused)
    
    
    GRAPH:    capture_graph (#nodes =   4, #executions =   1781)
     NODE:       CAPTURE1:             capture_node: avg =   4363 usecs, min/max =     71 /  61321 usecs, #executions =       1781
     NODE:     VPAC_VISS1:                viss_node: avg =   3995 usecs, min/max =   3917 /   4246 usecs, #executions =       1781
     NODE:         MCU2-0:                aewb_node: avg =    283 usecs, min/max =     36 /   4641 usecs, #executions =       1781
     NODE:      VPAC_LDC1:                 ldc_node: avg =   3041 usecs, min/max =   3012 /   3822 usecs, #executions =       1781
    
    GRAPH:    display_graph (#nodes =   2, #executions =   1776)
     NODE:      VPAC_MSC1:          img_mosaic_node: avg =   4793 usecs, min/max =   4732 /  14338 usecs, #executions =       1776
     NODE:       DISPLAY1:              DisplayNode: avg =   8616 usecs, min/max =     61 /  16987 usecs, #executions =       1776
    
     PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
     PERF:            TOTAL: avg =  42071 usecs, min/max =  34030 /  54810 usecs, #executions =        366
    
     PERF:            TOTAL:   23.76 FPS
    
    GST_WRAPPER PUSH/PULL COUNTS:
    
    Push count : 1787
    Pull count : 1784
    
    

    Thank you,
    Sarabesh S

  • Hi,

    OK, thank you. Could you please obtain the CPU usage status through "top" or "htop" and help me take a picture? So that I can have a more intuitive comparison.

    In addition, besides taking screenshots of CPU usage for a single camera, it would be even more perfect if four cameras could be run to take screenshots of CPU usage.

    Regards,

    Yueqian

  • Hi Yueqian, 

    Sure, attached is the CPU usage statistics through top on a per thread basis. This is also with 4 cameras, using both capture->encode and decode->display. I made no changes to the demo code which means it is not using DMA Buf framework.

    Regards,
    Sarabesh S

  • Hi,

    All rightI found that the CPU usage is basically the same.

    Thank you!

    Regards,

    Yueqian

  • Hi,

    No problem! 

    Regards,
    Sarabesh S