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: CSITX node,Unable to meet 30 fps

Part Number: TDA4VM

My pipeline is capture(raw_data)->viss->csitx,Resolution:3840*2166,viss out uyvy422,csitx node,avg time over 33.3ms.if my pipeline add ldc node,Common viss data with csitx。The average time of csitx node will reach 36ms。

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* CSITX Start */
#define NUM_CHANNELS (1U)
#define CSITX_INST_ID (0U)
#define CSITX_LANE_BAND_SPEED (TIVX_CSITX_LANE_BAND_SPEED_950_TO_1000_MBPS)
#define CSITX_LANE_SPEED_MBPS (1000)
// uint32_t loopCnt;
vx_user_data_object csitx_config;
tivx_csitx_params_t local_csitx_config;
/* CSITX Config initialization */
tivx_csitx_params_init(&local_csitx_config);
local_csitx_config.numInst = 1U;
local_csitx_config.numCh = NUM_CHANNELS;
local_csitx_config.instId[0U] = CSITX_INST_ID;
local_csitx_config.instCfg[0U].rxCompEnable = (uint32_t)vx_true_e;
local_csitx_config.instCfg[0U].rxv1p3MapEnable = (uint32_t)vx_true_e;
local_csitx_config.instCfg[0U].laneBandSpeed = CSITX_LANE_BAND_SPEED;
local_csitx_config.instCfg[0U].laneSpeedMbps = CSITX_LANE_SPEED_MBPS;
local_csitx_config.instCfg[0U].numDataLanes = 4U;
for (loopCnt = 0U;
loopCnt < local_csitx_config.instCfg[0U].numDataLanes;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 感谢您对TI产品的关注!由于问题比较复杂,我需要询问更了解这款芯片的TI资深工程师,再为您解答,一旦得到回复会立即回复给您。您也可以查看下帖了解进展:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1127706/tda4vm-csitx-node-unable-to-meet-30-fps 

  • 请问您能分享完整的performance log吗?可能是 LDC 需要更多时间,但让我们首先分析Log。

  • 是生成的vcd文件么?不能直接上传,我把后缀改成html了,轻下载后去掉app_single_came_capture_csitx - 副本.vcd.html

  • log.log
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=4) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
    804.578661 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
    804.586876 s: VX_ZONE_INIT:Enabled
    804.586895 s: VX_ZONE_ERROR:Enabled
    804.586910 s: VX_ZONE_WARNING:Enabled
    804.587729 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    804.587955 s: VX_ZONE_INIT:[tivxHostInitLocal:86] Initialization Done for HOST !!!
    Single Camera Demo - (c) Texas Instruments 2019
    ========================================================
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    这是运行时log

  • 收到,已转给产品工程师。一旦有回复,我会告知您。

  • app_single_cam_capture_csitx.vcd.htmlapp_single_cam_capture_csitx.html

    这是去掉ldc节点和m2m节点时,csitx稍微超过33.3ms,还是有点丢帧,更改CSITX_LANE_SPEED_MBPS为更大的值也不能提高csitx发送用时,但是减小CSITX_LANE_SPEED_MBPS的值得话,会增大csitx发送用时。

  • 是的,fps 下降似乎是因为 CSITX 节点。

     NODE:          CSITX:                  node_99: avg =  38977 usecs, min/max =  38176 /  42754 usecs, #executions =        103

     NODE:          CSITX:                  node_99: avg =  38705 usecs, min/max =  38044 /  42754 usecs, #executions =       1027

    计算所需的通道速度,我会在 4.5Gbps 左右,所以每个通道设置 1Gbps 是不够的,你可以尝试设置 1.5Gbps 的通道速度吗?

  • 我尝试过不同的通道速度设置,CSITX_LANE_SPEED_MBPS的值设置为900是分界点,高于900并不能提升csitx node的发送速度,但是低于900,比如800,700等,则会明显降低csitxnode的发送速度,会导致每帧的发送用时加长。我之前也有测试过2200的速度,和设置1000是一样的,刚刚也测试了设置1.5G也就是1500,结果是一样的。

  • 请问您使用的是 SDK8.0 或更高版本?因为在 SDK7.3 上,只支持很少的Lane速度。

  • 我用的8.1版本的sdk,在那里能够确认当前版本支持的速度?

  • SDK8.1 确实支持各种 Lane速度。对于您的情况,您能否尝试 1.5Gbps  Lane速度,看看它是否有助于提高 CSITX 性能?

  • 之前提出1.5Gbps Lane速度的时候,我就试过啊,我试过各种速度,但是仿佛900M是上限,超过900M之后csitx性能不再随lane速度提升而提升

  • 系统中运行的所有其他masters 是什么?如果 DDR BW 已经达到峰值,那么它将无法以更快的速度传输。您能否尝试仅运行 1.5Gbps 的 CSITX 并查看它是否有效?

  • app_only_csitx.7z.html系统中没有运行其它任何程序,只有这一个流水线在运行,这个流水线节点信息2楼我有提交。附件html是我测试只有csitx的情况下,band lane speed的值对csitx发送的影响,看起来速度上限被设置在了1000M一样,再提高并不能提高csitx的发送速度。其中500Mbps时每帧55ms左右,1000Mbps,1.5Gbps,2.4Gbps时,每帧大约29ms。基本相同

  • 看来您使用 CSIRX + VISS + LDC + DSS M2M + CSITX 以获得高分辨率。此外,节点是复制的,这意味着正在运行多个通道,看起来像 4 个通道。您可以做一些 DDR BW 的计算吗?我怀疑您可能已达到支持的最大 BW 的边缘。

  • DDR performance statistics,
    ===========================

    DDR: READ BW: AVG = 2619 MB/s, PEAK = 7429 MB/s
    DDR: WRITE BW: AVG = 1851 MB/s, PEAK = 6000 MB/s
    DDR: TOTAL BW: AVG = 4470 MB/s, PEAK = 13429 MB/s

  • 您能否尝试删除其中一个节点,比如说 LDC,看看性能是否有所提高?我怀疑由于高峰值BW,它会延迟帧