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.

DM368 capture frame rate problem for 1080p30

Other Parts Discussed in Thread: TVP7002

Our IP camera consists of Zoom module, TVP7002, and DM368.

TVP7002 can not support 1080P30, but the work-around at http://e2e.ti.com/support/embedded/f/354/t/70031.aspx is applied.

Our CAPTURE routine is the same as APPRO IPNC SW.

But, capture frame-rate is just 19-20 fps.

=======================================================================
 Module   | Avg Time/Frame | Frame-rate | Total time | Total Frames |
 CAPTURE  |          51.16 |      19.55 |      15347 |          300 |
 RESIZE0  |          43.11 |      23.19 |      12934 |          300 |
 ENCODE0  |          34.97 |      28.59 |      10492 |          300 |
 ENCODE1  |           2.56 |     390.62 |        384 |          150 |

RESIZE0 frame rate can be highered by setting clkDivM and clkDivN.

ENCODE0 time is OK.

Only CAPTURE frame rate is the problem.

Do you have any idea to higher capture frame rate?

 

 

  • Hi,

    do u have a buffer copy to a display activated? If i take your performance measures into account it looks like. 

    The capture time measure includes the time needed by the image processing sequence of

    1. getting image buffer from ISIF or DDR interface

    2. going through the image pipe (~5 ms)

    3. make a buffer copy to give the image to the display (~5 ms).

    4. give the buffer to the parallel working threads making encoding/ resizing 

     (here take the thread into account which takes the most time (RESIZE0 43.11ms)).

     

    U can save time by deactivate the display output.

     

  • Hi, I have disabled display output. The result frame rate of Capture is the same as before.

    Capture, resize and encode thread runs parallel.

    I can increase the performance of RESIZER, but I can not increase the frame rate of the capture.

    The causes of low capture frame rate may be TVP7002 or Capture part for 1080P30.

     

  • Hi,

    I would recommend not using ISIF-->DDR-->RSZ-->DDR path that you are currently following for 1080P30 usecase. Capture would show to be slowest as it will get bottle necked by resizer which again can get bottle necked by encoder. In your case, it seems like resizer is the slowest component and hence slowing down the capture.

    So first and foremost, i would recommend change your capture path to ISIF-->RSZ-->DDR. In this case, RSZ would run at the capture rate and the only thing that would block is the encoder.

    The other thing to try out would be removing resizer operation completely. I mean decouple resizer+encoder from the capture thread. Just keep on capturing and releasing the buffers. This will ensure if your capture standaloone is meeting 30fps or not.

    Regards,

    Anshuman

    PS: Please mark the post as verified, if you think it has answered the question. Thanks.

  • Hi,

    I think that your recommendation is correct.

    But, I have to resize 4 streams (1920x1080, D1,CIF,QCIF) from the ISIF output.

    Is it possiblle for your recommended ISIF->RSZ->DDR path?

    As far as I know, there is only two resizer in DM368.

  • Hi,

    Seung Youl Lee said:

    But, I have to resize 4 streams (1920x1080, D1,CIF,QCIF) from the ISIF output.

    Is it possiblle for your recommended ISIF->RSZ->DDR path?

     

    As you commented, you can get only two resolutions from resizer. So getting 1080P,D1, CIF and QCIF is not possible in the path that we mentioned. I would still not recommend you to run the resizer in DDR input mode as it is going to take up lot of your bandwidth. Instead i would suggest you to use software resize operation from D1 to CIF to QCIF. There are some software resize APIs available on VICP that you can use. If you need those APIs, i would request you to please contact your local TI sales/FAE.

    BTW, did you confirm if your capture frame rate is happening at 30fps or not?

    Regards,

    Anshuman

  • Hi,

    Seung Youl Lee said:

    But, I have to resize 4 streams (1920x1080, D1,CIF,QCIF) from the ISIF output.

    Is it possiblle for your recommended ISIF->RSZ->DDR path?

     

    As you commented, you can get only two resolutions from resizer. So getting 1080P,D1, CIF and QCIF is not possible in the path that we mentioned. I would still not recommend you to run the resizer in DDR input mode as it is going to take up lot of your bandwidth. Instead i would suggest you to use software resize operation from D1 to CIF to QCIF. There are some software resize APIs available on VICP that you can use. If you need those APIs, i would request you to please contact your local TI sales/FAE.

    BTW, did you confirm if your capture frame rate is happening at 30fps or not?

    Regards,

    Anshuman

  • Hi,

    I have verified that our capture path is ISIF->DDR->RESIZE->DDR.

    Not yet tested your recommended path. Appro IPNC SW av_server uses your recommended path. It has 30 fps.

    Due to resizer problem, we did not use resizer in continuous mode.

    If 1080P30 is very urgent than 4 streams, I wll try your recommended path.

    Thank you.

  • Seung Youl Lee said:

    Not yet tested your recommended path. Appro IPNC SW av_server uses your recommended path. It has 30 fps.

    Just want to clarify, IPNC SW av_server uses ISIF-->IPIPE-->RSZ-->DDR path for all 1080P30 usecases. I hope you also had the same observation when you wrote the above statement.

    Regards,

    Anshuman

     

  • I have tried to implement your recommended path using APPRO IPNC SW.

    But, I still has the bottleneck when capturing. capture frame rate is 23 FPS.

    Module   | Avg Time/Frame | Frame-rate | Total time | Total Frames |
     CAPTURE  |          42.76 |      23.39 |      12827 |          300 |
     ENCODE0  |          32.34 |      30.92 |       9669 |          299 |

    Capture means that capture + resizing. Resizing consist of 1920x1080 YUV422 -> 1920x1080 YUV420 conversion and 1920->1080 -> 320 x 192.

    The VCLK of TVP7002 out is 30 Hz verifified by the oscilloscope. Maybe, the resizer performance can be the bottleneck.

    How to increase the resizer performance in continuous mode?

     

     

     

  • If you are using IPNC SW, then you might want to check the sensorfps that you are setting for 1080P mode in avserverui.c. Initially, it was set to 24fps for 1080P mode. So even if the input source would be giving 30fps, we might be ignoring the frames.

    Which version of IPNC SW do you use?

    Regards,

    Anshuman

  • sensorFPS is set to 30FPS.

    My version of IPNC SW is 2.0.0.

    It seems TVP7002 register setting problem because according to TVP7002 register setting, the maximum frame rate is varied.

     

  • Hi,

    Seung Youl Lee said:

    It seems TVP7002 register setting problem because according to TVP7002 register setting, the maximum frame rate is varied.

    Do you mean, you found out the problem with the lower fps? I was wondering if you could do the simple test of checking the capture fps alone. The IPNC SW comes with a moduletest utility where you can do test on drv_capture alone. But then you have to modify module test for drv_capture to configure your TVP7002 driver instead of the default RAW sensor driver that we have in IPNC.

    Regards,

    Anshuman

    PS: Please mark this post as verified, if you think it has answered your question. Thanks.