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: how to increate the fps of M2M deinterleave image

Part Number: TDA4VM

Hi Brijesh,

    According to the discussion in the following post, I would like to know why change the input of displaym2m from vx_image to array can reduce the execution  time of capture and displaym2m?

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1303553/tda4vm-if-ub960-work-in-line-interleave-mode-and-with-4-camera-how-to-separate-4-camera-image-into-separate-buffers?pifragment-323307=1#pifragment-323307=2

Thank you in advance!

  • Hi Qing Wang,

    The only advantage is, instead of 4 function calls for processing 4 replicated nodes, it would just call single function call and process each image one by one. There might not be big performance improvement- or reduction in execution time.

    Regards,

    Brijesh

  • Hi Brijesh,

       I still have some questions and wait for your answer.

       1、According to my understanding,the images output by the camera in interleave format are only stored in one capture buffer, even if the input of displaym2m is an array,displaym2m can only process the buffer with the image each time. How does the input array of displaym2m take different image of capture and process them all at once ?

      2、the current graph structure is capture->m2m->scaler-display.when m2m without replication,the execution time of capture about 50ms,m2m is 12ms.when m2m with replication,the execution time of capture about 10-25ms,m2m is about 50ms.I would like to ask how to reduce the execution  time of capture when m2m is not replicated?

    Thank you so much!

  • Hi qing wang,

     1、According to my understanding,the images output by the camera in interleave format are only stored in one capture buffer, even if the input of displaym2m is an array,displaym2m can only process the buffer with the image each time. How does the input array of displaym2m take different image of capture and process them all at once ?

    I think the input to the display m2m is not an object array. Though capture outputs object array, it has just one valid image and this image is interleaved image. Display M2M node is going to use this interleaved input image and object array of output image and process them one by one.

      2、the current graph structure is capture->m2m->scaler-display.when m2m without replication,the execution time of capture about 50ms,m2m is 12ms.when m2m with replication,the execution time of capture about 10-25ms,m2m is about 50ms.I would like to ask how to reduce the execution  time of capture when m2m is not replicated?

    What's the input resolution that you are processing in the display m2m or capture output? 

    When you replicate the display m2m, it is going to process the input for 4 times, so 12ms x 4 is around 50ms. 

    When it is not replicated, it should take expected around 12ms. Now in this case, if the capture is taking 50ms, it is not because of the display m2m node. What's the output fps from the sensor? Is sensor outputting at 30fps? 

    Regards,

    Brijesh 

  • I think the input to the display m2m is not an object array. Though capture outputs object array, it has just one valid image and this image is interleaved image. Display M2M node is going to use this interleaved input image and object array of output image and process them one by one.

    This question is based on changing displaym2m input from image to array

    What's the input resolution that you are processing in the display m2m or capture output? 

    UYVY,1280x5140

    When it is not replicated, it should take expected around 12ms. Now in this case, if the capture is taking 50ms, it is not because of the display m2m node. What's the output fps from the sensor? Is sensor outputting at 30fps? 

    sensor outputing is at 25fps

  • Hi wang,

    This question is based on changing displaym2m input from image to array

    But why do you want to change input to an array?

    Input to the displaym2m is not changed to array, isn't it? We just changed output to object array. Input is still same coming from the capture node. 

    UYVY,1280x5140

    For this resolution, display m2m is expected to take around 12ms, so the performance is matching. 

    sensor outputing is at 25fps

    Then capture node's performance should be around 40ms. If it is taking more than 40ms, then one of the node in the path/graph is not running realtime and so capture might be dropping the frames. Can you please performance stats of the complete graph and share it?

    Regards,

    Brijesh