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.

[参考译文] J721EXSOMXEVM:[EP2000][DRA829V]【摄像头】后续双摄像头帧以 1080p 30fps 视频捕捉丢失

Guru**** 2928980 points

Other Parts Discussed in Thread: TDA4VM

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1645782/j721exsomxevm-ep2000-dra829v-camera-follow-up-dual-camera-frame-dropped-at-1080p-30fps-video-capture

器件型号: J721EXSOMXEVM
Thread: TDA4VM 中讨论的其他器件

TI SDK 版本:10.01.00.04  
尊敬的团队:

根据先前的线程、
J721EXSOMXEVM:[EP2000][DRA829V]【摄像头】双摄像头帧以 1080p 30fps 的速率丢弃视频捕捉 — 处理器论坛-处理器 — TI E2E 支持论坛 

我试图实现 split_graph 更改、并增加了用于 multi_cam_codec 的帧缓冲区数量。 有关详细信息、请查看随附的主题。

我看到 fps 从 22fps 提高到 25fps。 但是、由于摄像头输出为 30fps、仍然可以观察到帧下降。 我们需要实现 30fps 视频捕获。

请检查随附的日志、
vision_app_video_cature_logs.zip 

请帮助检查瓶颈现在在哪里、缓冲区和流水线是否得到了正确利用?
我们可以在这里改进以实现 30fps 视频帧速率。

谢谢。此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sumanta:

    我试图实现 split_graph 更改、并增加了用于 multi_cam_codec 的帧缓冲区数量。

    我看到 Gokul 在上一个主题中一直在帮助您解决软件问题。

    我看到 fps 从 22fps 提高到 25fps。 但是、由于摄像头输出为 30fps、仍然可以观察到帧下降。 [/报价]

    您使用的 VPAC 频率 (720MHz 或 650MHz) 是多少?

    您是否还能仅使用单个摄像头来共享 VISS、LDC 和 MSC 执行时间?

    我们需要实现 30fps 的视频捕获。

    720MHz 的 VPAC 似乎可以支持 2 个 8MP 摄像头、因为它大约是 720MHz 时钟频率的~70%。

    GRAPH:    capture_graph (#nodes =  10, #executions =     59)
     NODE:       CAPTURE1:             capture_node: avg =  17161 usecs, min/max =    487 /  44163 usecs, #executions =         59
     NODE:          MPU-0:       obj_arr_split_node: avg =     46 usecs, min/max =     17 /    321 usecs, #executions =         60
     NODE:     VPAC_VISS1:               viss_node2: avg =  17083 usecs, min/max =  13581 /  19093 usecs, #executions =         60
     NODE:         MCU2-0:               aewb_node2: avg =   1684 usecs, min/max =    222 /  13121 usecs, #executions =         60
     NODE:      VPAC_LDC1:                ldc_node2: avg =  19560 usecs, min/max =  14301 /  22723 usecs, #executions =         60
     NODE:      VPAC_MSC2:             scaler_node2: avg =  22845 usecs, min/max =  18922 /  36367 usecs, #executions =         60
     NODE:     VPAC_VISS1:                viss_node: avg =  17486 usecs, min/max =  13000 /  18900 usecs, #executions =         60
     NODE:         MCU2-0:                aewb_node: avg =   1594 usecs, min/max =    136 /  16069 usecs, #executions =         60
     NODE:      VPAC_LDC1:                 ldc_node: avg =  19803 usecs, min/max =  16086 /  24282 usecs, #executions =         60
     NODE:      VPAC_MSC1:              scaler_node: avg =  23195 usecs, min/max =  20972 /  28092 usecs, #executions =         60
    
     PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
     PERF:       APPSRC_ENQ: avg =  18019 usecs, min/max =   6929 /  49533 usecs, #executions =         59
     PERF:       APPSRC_DEQ: avg =     10 usecs, min/max =      3 /     22 usecs, #executions =         60
     PERF:            TOTAL: avg =  37488 usecs, min/max =      9 / 151924 usecs, #executions =         66
    
     PERF:            TOTAL:   26.67 FPS
    

    根据日志、MSC 完成每帧需要~23ms、LDC ~19.8ms。
    FPS 似乎被 LDC 限制为 26.67 (MSC 的 23ms 可能对于 MSC0 和 MSC1 分开、但只有 1 个 LDC H/W)。

    您可以使用单个摄像头来检查 LDC 性能。
    如果时间也~19ms、则仅 LDC 可能会存在某种问题。
    否则、整个 DDR BW 中可能会存在某种问题。

    如果您在循环中没有 LDC 进行确认的情况下检查 2 倍摄像头性能、可能会有所帮助。

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hi Gang Hua、

    感谢您分析日志。

    您使用哪种 VPAC 频率 (720MHz 或 650MHz)?

    我们使用 720MHz 来传输 VPAC。 您可能会找到日志“[MCU2_0]   19.024532 s:SCICLIENT:Sciclient_pmSetModuleClkFreq 模块=290 clk=0 freq=720000000“。


    您能否还与单个摄像头共享 VISS、LDC 和 MSC 执行时间?

    是的、请查找随附的单摄像机捕获日志。
    /cfs-file/__key/communityserver-discussions-components-files/791/single_5F00_camera_5F00_video_5F00_capture_5F00_log.zip

    请您浏览并告诉我们。


    谢谢。此致、
    Sumanta.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sumanta:

    我们正在将 720MHz 用于 VPAC。

    感谢您的确认!
    这是限制 VPAC 处理速度的唯一硬件设置。
    唯一的其他硬件因素是 DDR BW、即如果整个系统达到 DDR BW 限制、VPAC 可能会减慢。

    在日志中、有 39%的 DDR 负载。
    我不确定这是否接近系统限制、因为我自己不熟悉 DDR 负载。

    DDR:负载= 39%(使用 6812/17064MB/s)

    是的、请查找随附的单摄像机捕获日志。
    节点:CAPTURE1:Capture_node:Avg = 34615 个用例、最小值/最大值= 34294 / 53130 个用例、#executions = 70
    节点:VPAC_VISS1:viss_node:Avg = 12288 个用例、最小值/最大值= 12228 / 12585 个用例、#executions = 70
    节点:VPAC_LDC1:LDC_node:Avg = 12398 个用例、最小值/最大值= 11924 / 12714 个用例、#executions = 70
    节点:VPAC_MSC1:标量节点:Avg = 17952 个用例、最小值/最大值= 17864 / 18188 个用例、#executions = 70

    上述数字对于 720MHz VPAC 和单个 800 万像素摄像头看起来很合理。

    [报价 userid=“656552“ url=“~/support/processors-group/processors/f/processors-forum/1645782/j721exsomxevm-ep2000-dra829v-camera-follow-up-dual-camera-frame-dropped-at-1080p-30fps-video-capture/6348192

    请您浏览并告诉我们。

    [/报价]

    作为您的参考、我们已经使用多摄像头应用(无 LDC 运行)在具有 2 个 IMX728 (8MP) 摄像头的 TDA4VM EVM 上进行了测试。

    节点:CAPTURE1:Capture_node:Avg = 33291 个用例、最小/最大= 15326 / 62258 个用例、#executions = 211
    节点:VPAC_VISS1:viss_node2:Avg = 14804 个用例、最小值/最大值= 14123 / 16089 个用例、#executions = 211
    节点:VPAC_VISS1:viss_node:Avg = 14329 个 用例、最小值/最大值= 14120 / 14518 个用例、#executions = 211
    节点:VPAC_MSC1:马赛克节点:Avg = 2127 个用例、最小值/最大值= 20213 / 45630 个用例、#executions = 211
    性能: 总计: 30.21 FPS

    要确认减速是由于系统中的 LDC 或 DDR BW 导致的、您是否能够关闭或绕过 LDC 以检查 fps?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hi Gang Hua、

    在 MULTI_cam_codec 应用中禁用 LDC 非常困难。

    我们已经验证了多摄像头应用能够在支持 LDC 的情况下实现 30fps 帧速率(适用于 2 个摄像头)。 但使用 multi_cam_codec 时、无法达到 30fps。
    但是、您是否能够使用 multi_cam_codec 应用程序验证相同、以便为 2 个帧速率为 30fps 的摄像头生成 1080p 视频(因为视频编解码器限制只处理 1080p 帧)?

    此致、
    Sumanta.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sumanta:

    我们已经验证了多摄像头应用能够在 LDC 为 2 个摄像头启用 4K 30fps 的情况下实现 30fps 的帧速率。 [/报价]

    对不起,我不知道这里的历史。
    我认为您的问题与 VPAC 有关、因为该主题已分配给我。

    在此验证中、您是否包括除编解码器之外的所有内容(具有完全相同的用例和 VPAC 设置)?
    如果是这种情况、您能否分享性能日志?

    、但使用 multi_cam_codec 时、无法达到 30fps。

    如果所有捕获和 VPAC 组件都能够以 30fps 的速率一起运行、那么这可能是系统 DDR BW 限制或编解码器的问题。

    但您是否能够使用 multi_cam_codec 应用程序验证相同、以便为 2 个帧速率为 30fps 的摄像头生成 1080p 视频(因为视频编解码器限制只处理 1080p 帧)?

    我不熟悉编解码器在这里发表任何评论。
    TDA4VM TRM 指出、该器件可支持 2 个 1080p 30fps 编码。

    复制我的朋友 Brijesh Jadav 和 Gokul S  、以了解他们对编解码器和系统性能的评论。

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Gokul/Birjesh:

    对上述分析有何评论?


    此致、
    Sumanta Maity

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hi Gang Hua、

    禁用 LDC 时、我看到视频 fps 达到 29fps。

    LDC 似乎是一个瓶颈。


    谢谢。此致、
    Sumanta.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sumanta:

    当我禁用 LDC 时、我看到视频 fps 达到 29fps。
    [/报价]

    正如您在上面进行的测试一样、 对于 720MHz VPAC 上的双路 8MP 用例、LDC 可以 30fps 地使用 VISS/MSC 等运行。
    这约为 VPAC 负载的“2*8*30/720 = 67%“。

    这是我们在具有多摄像头应用和 2 个 IMX728(包括 VISS、LDC、MSC 和 DSS)的 TDA4VM EVM 上的测试结果。
    每个 LDC 执行在每帧~13ms 内完成。

    GRAPH: app_multi_cam_graph (#nodes =  10, #executions =    380)
     NODE:       CAPTURE1:             capture_node: avg =  33171 usecs, min/max =  14002 /  61994 usecs, #executions =        380
     NODE:          MPU-0:       obj_arr_split_node: avg =     13 usecs, min/max =     11 /     39 usecs, #executions =        380
     NODE:     VPAC_VISS1:               viss_node2: avg =  13539 usecs, min/max =  12968 /  15014 usecs, #executions =        380
     NODE:         MCU2-0:               aewb_node2: avg =    908 usecs, min/max =     85 /  11960 usecs, #executions =        380
     NODE:      VPAC_LDC1:                ldc_node2: avg =  12895 usecs, min/max =  11945 /  14166 usecs, #executions =        380
     NODE:     VPAC_VISS1:                viss_node: avg =  13184 usecs, min/max =  12876 /  14486 usecs, #executions =        380
     NODE:         MCU2-0:                aewb_node: avg =    969 usecs, min/max =     79 /  17896 usecs, #executions =        380
     NODE:      VPAC_LDC1:                 ldc_node: avg =  13228 usecs, min/max =  11985 /  16057 usecs, #executions =        380
     NODE:      VPAC_MSC1:              mosaic_node: avg =  19872 usecs, min/max =  18392 /  57574 usecs, #executions =        380
     NODE:       DISPLAY1:              DisplayNode: avg =   8388 usecs, min/max =     93 /  27257 usecs, #executions =        380
     
     PERF:            TOTAL:   30.11 FPS
     

    [报价 userid=“656552“ url=“~/support/processors-group/processors/f/processors-forum/1645782/j721exsomxevm-ep2000-dra829v-camera-follow-up-dual-camera-frame-dropped-at-1080p-30fps-video-capture/6362085

    LDC 似乎是一个瓶颈。

    [/报价]

    瓶颈通常是整个系统(包括 LDC)的 DDR BW。
    如果您在系统中卸下任何具有大量 DDR 访问权限的组件、fps 应该会有所改善。

    对于 LDC、您可以使用 ISP 调优工具来优化 OBW/OBH/PAD 参数、如果您尚未这样做、则可以减少其 DDR 开销。

    在系统级别、优化 DDR 整体性能可以提高 fps。
    我们需要 Brijesh Jadav 和 Gokul S 来提供帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sumantha:

    正如 Gang 提到的、您正在对 LDC 使用最优参数? 如果没有、您能否首先使用最佳参数进行检查?  

    此致、

    Brijesh