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:输出视频非常慢/不流畅/非常落后。

Guru**** 2548540 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1301914/tda4vm-the-output-video-is-very-slow-not-smooth-very-laggy

器件型号:TDA4VM

您好,TI 工程师:

环境:传感器的输出为 YUV_422、viss 和 aewb 关闭;

问题描述:运行 run_app_multi_cam.sh 时、输出视频非常慢/不流畅/ 非常落后

输出如下:

e2e.ti.com/.../cb3be7912b5b3340b483315eaf35820d.mp4

1) 1) LDC 是否完全支持解析 YUV_422并将其转换为 NV12格式?

2) 2)视频的问题在哪里是非常卡住的? 有什么想法或建议吗?

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

    您好!

    请问您是否将 YUV422图像馈送到开箱即用的 SDK multiam 演示中? 或者您是否修改了演示?

    您能告诉我图像的分辨率是多少、DATA_RATE 是多少?

    您是否还可以共享 PERF_Stats 信息? 为此、您可以在运行演示时按"p"。

    此致、

    尼基尔

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

    您好!

    1) 1)演示在 SDK 中运行多程序、但我使用输出 YUV422格式的摄像头传感器。 在多演示代码中、我刚刚禁用了 viss 和 aewb。

    2) 图像分辨率为1920x1080。 以下是来自传感器的信息:

    3)  

     Enter Choice: p
    
    
    Summary of CPU load,
    ====================
    
    CPU: mpu1_0: TOTAL LOAD =   0. 8 % ( HWI =   0. 2 %, SWI =   0. 0 % )
    CPU: mcu2_0: TOTAL LOAD =   8. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU: mcu2_1: TOTAL LOAD =   1. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c6x_1: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c6x_2: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c7x_1: TOTAL LOAD =   1. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    
    
    HWA performance statistics,
    ===========================
    
    HWA:   LDC : LOAD =   0.54 % ( 2 MP/s )
    HWA:   MSC0: LOAD =   0.38 % ( 2 MP/s )
    HWA:   MSC1: LOAD =   0.38 % ( 2 MP/s )
    
    
    DDR performance statistics,
    ===========================
    
    DDR: READ  BW: AVG =    210 MB/s, PEAK =   3579 MB/s
    DDR: WRITE BW: AVG =    250 MB/s, PEAK =   1551 MB/s
    DDR: TOTAL BW: AVG =    460 MB/s, PEAK =   5130 MB/s
    
    
    Detailed CPU performance/memory statistics,
    ===========================================
    
    DDR_SHARED_MEM: Alloc's: 44 alloc's of 129104960 bytes
    DDR_SHARED_MEM: Free's : 0 free's  of 0 bytes
    DDR_SHARED_MEM: Open's : 44 allocs  of 129104960 bytes
    DDR_SHARED_MEM: Total size: 536870912 bytes
    
    CPU: mcu2_0: TASK:           IPC_RX:   0. 0 %
    CPU: mcu2_0: TASK:       REMOTE_SRV:   0. 1 %
    CPU: mcu2_0: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CPU_0:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_VPAC_N:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_VPAC_L:   0. 2 %
    CPU: mcu2_0: TASK:      TIVX_VPAC_M:   0.48 %
    CPU: mcu2_0: TASK:      TIVX_VPAC_M:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_VPAC_V:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT1:   0. 2 %
    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_DISP_M:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DISP_M:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DISP_M:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DISP_M:   0. 0 %
    
    CPU: mcu2_0: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16701440 B ( 99 % unused)
    CPU: mcu2_0: HEAP:           L3_MEM: size =     262144 B, free =     261888 B ( 99 % unused)
    
    CPU: mcu2_1: TASK:           IPC_RX:   0. 0 %
    CPU: mcu2_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU: mcu2_1: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu2_1: TASK:         TIVX_SDE:   0. 0 %
    CPU: mcu2_1: TASK:         TIVX_DOF:   0. 0 %
    CPU: mcu2_1: TASK:       TIVX_CPU_1:   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: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU: mcu2_1: HEAP:           L3_MEM: size =     262144 B, free =     262144 B (100 % unused)
    
    CPU:  c6x_1: TASK:           IPC_RX:   0. 0 %
    CPU:  c6x_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c6x_1: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c6x_1: TASK:         TIVX_CPU:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c6x_1: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU:  c6x_1: HEAP:           L2_MEM: size =     229376 B, free =     229376 B (100 % unused)
    CPU:  c6x_1: HEAP:  DDR_SCRATCH_MEM: size =   50331648 B, free =   50331648 B (100 % unused)
    
    CPU:  c6x_2: TASK:           IPC_RX:   0. 0 %
    CPU:  c6x_2: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c6x_2: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c6x_2: TASK:         TIVX_CPU:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c6x_2: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU:  c6x_2: HEAP:           L2_MEM: size =     229376 B, free =     229376 B (100 % unused)
    CPU:  c6x_2: HEAP:  DDR_SCRATCH_MEM: size =   50331648 B, free =   50331648 B (100 % unused)
    
    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_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   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: HEAP:    DDR_LOCAL_MEM: size =  268435456 B, free =  268435200 B ( 99 % unused)
    CPU:  c7x_1: HEAP:           L3_MEM: size =    8159232 B, free =    8159232 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 =  385875968 B, free =  385875968 B (100 % unused)
    
    
    GRAPH: app_multi_cam_graph (#nodes =   4, #executions =      4)
     NODE:       CAPTURE1:             capture_node: avg = 6015366 usecs, min/max =  32223 / 23297913 usecs, #executions =          4
     NODE:      VPAC_LDC1:                 ldc_node: avg =  15062 usecs, min/max =  13954 /  17285 usecs, #executions =          4
     NODE:      VPAC_MSC1:              mosaic_node: avg =  40323 usecs, min/max =  38415 /  42025 usecs, #executions =          4
     NODE:       DISPLAY1:              DisplayNode: avg =   3285 usecs, min/max =    160 /   8987 usecs, #executions =          4
    
     PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
     PERF:            TOTAL: avg = 7789266 usecs, min/max =  33858 / 23297979 usecs, #executions =          3
    
     PERF:            TOTAL:    0.12 FPS
    
    app_run_graph_for_one_pipeline: frame 7 beginning
    
    
     =========================
     Demo : Camera Demo
     =========================
    
     s: Save CSIx, VISS and LDC outputs
    
     p: Print performance statistics
    
     x: Exit
    
     Enter Choice:
    
    
     =========================
     Demo : Camera Demo
     =========================
    
     s: Save CSIx, VISS and LDC outputs
    
     p: Print performance statistics
    
     x: Exit
    
     Enter Choice: [MCU2_0]    123.059100 s: ==========================================================
    [MCU2_0]    123.059203 s:  Capture Status: Instance|0
    [MCU2_0]    123.059241 s: ==========================================================
    [MCU2_0]    123.059287 s:  overflowCount: 0
    [MCU2_0]    123.059320 s:  spuriousUdmaIntrCount: 0
    [MCU2_0]    123.059355 s:  frontFIFOOvflCount: 0
    [MCU2_0]    123.059385 s:  crcCount: 0
    [MCU2_0]    123.059414 s:  eccCount: 0
    [MCU2_0]    123.059443 s:  correctedEccCount: 0
    [MCU2_0]    123.059476 s:  dataIdErrorCount: 0
    [MCU2_0]    123.059508 s:  invalidAccessCount: 0
    [MCU2_0]    123.059541 s:  invalidSpCount: 0
    [MCU2_0]    123.059619 s:  strmFIFOOvflCount[0]: 0
    [MCU2_0]    123.059654 s:  Channel Num | Frame Queue Count | Frame De-queue Count | Frame Drop Count | Error Frame Count |
    [MCU2_0]    123.059811 s:            0 |                 8 |                    7 |              849 |                 0 |
    [MCU2_0]    123.059893 s:            1 |                 8 |                    7 |              869 |                 0 |
    [MCU2_0]    123.059968 s:            2 |                 8 |                    6 |              436 |                 0 |
    [MCU2_0]    123.060113 s:            3 |                 8 |                    7 |              150 |                 0 |
    app_run_graph_for_one_pipeline: frame 8 beginning
    app_run_graph_for_one_pipeline: frame 9 beginning
    

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

    此外、我使用的器件是 j721e。

    谢谢。

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

    您好!

    从捕获节点统计信息来看、捕获节点似乎需要6秒来处理映像

    Capture_node:平均值= 6015366 usecs

    您能否多次打印 perf 统计信息,以检查此值是否仍然存在?

    另外、您能否确保传感器实际以30 fps 的速率进行流式传输?  

    我建议先检查1个传感器、然后再检查4个传感器。 请问您是否已经尝试过这个方法?

    此致、

    尼基尔

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

    是,我已经尝试执行单个演示、fps = 30、没关系、是正常的。 四个摄像头传感器正常独立工作。

    这意味着传感器正常。

    关于多演示, 我打印了很多次, capture_node : Avg is increed :

    GRAPH: app_multi_cam_graph (#nodes =   4, #executions =      1)
     NODE:       CAPTURE1:             capture_node: avg = 611955 usecs, min/max = 611955 / 611955 usecs, #executions =          1
     NODE:      VPAC_LDC1:                 ldc_node: avg =  14028 usecs, min/max =  14028 /  14028 usecs, #executions =          1
     NODE:      VPAC_MSC1:              mosaic_node: avg =  38384 usecs, min/max =  38384 /  38384 usecs, #executions =          1
     NODE:       DISPLAY1:              DisplayNode: avg =     86 usecs, min/max =     86 /     86 usecs, #executions =          1
    
     PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
     PERF:            TOTAL: avg = 208992 usecs, min/max =      7 / 626921 usecs, #executions =          3
    
     PERF:            TOTAL:    4.78 FPS
    
    ------------------------------------------------------------------
    
    GRAPH: app_multi_cam_graph (#nodes =   4, #executions =     32)
     NODE:       CAPTURE1:             capture_node: avg = 1187878 usecs, min/max =  33258 / 16263708 usecs, #executions =         32
     NODE:      VPAC_LDC1:                 ldc_node: avg =  14054 usecs, min/max =  13917 /  14303 usecs, #executions =         32
     NODE:      VPAC_MSC1:              mosaic_node: avg =  14735 usecs, min/max =  11258 /  38654 usecs, #executions =         32
     NODE:       DISPLAY1:              DisplayNode: avg =  10453 usecs, min/max =     86 /  14004 usecs, #executions =         32
    
     PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
     PERF:            TOTAL: avg = 1206559 usecs, min/max =  33312 / 16263963 usecs, #executions =         31
    
     PERF:            TOTAL:    0.82 FPS
    
    ------------------------------------------------------------------
    
    GRAPH: app_multi_cam_graph (#nodes =   4, #executions =     35)
     NODE:       CAPTURE1:             capture_node: avg = 1335939 usecs, min/max =  32220 / 16263708 usecs, #executions =         35
     NODE:      VPAC_LDC1:                 ldc_node: avg =  14060 usecs, min/max =  13917 /  14303 usecs, #executions =         35
     NODE:      VPAC_MSC1:              mosaic_node: avg =  14458 usecs, min/max =  11258 /  38654 usecs, #executions =         35
     NODE:       DISPLAY1:              DisplayNode: avg =  10946 usecs, min/max =     86 /  16585 usecs, #executions =         35
    
     PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
     PERF:            TOTAL: avg = 2915655 usecs, min/max =  32510 / 8680513 usecs, #executions =          3
    
     PERF:            TOTAL:    0.34 FPS
     
     ------------------------------------------------------------------
     
     GRAPH: app_multi_cam_graph (#nodes =   4, #executions =     38)
     NODE:       CAPTURE1:             capture_node: avg = 1861639 usecs, min/max =  32210 / 23918934 usecs, #executions =         38
     NODE:      VPAC_LDC1:                 ldc_node: avg =  14067 usecs, min/max =  13917 /  14303 usecs, #executions =         38
     NODE:      VPAC_MSC1:              mosaic_node: avg =  14224 usecs, min/max =  11258 /  38654 usecs, #executions =         38
     NODE:       DISPLAY1:              DisplayNode: avg =  11179 usecs, min/max =     86 /  16585 usecs, #executions =         38
    
     PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
     PERF:            TOTAL: avg = 8091629 usecs, min/max =     45 / 23919146 usecs, #executions =          3
    
     PERF:            TOTAL:    0.12 FPS
    
    ------------------------------------------------------------------
    
    GRAPH: app_multi_cam_graph (#nodes =   4, #executions =     44)
     NODE:       CAPTURE1:             capture_node: avg = 2084093 usecs, min/max =  32210 / 23918934 usecs, #executions =         44
     NODE:      VPAC_LDC1:                 ldc_node: avg =  14072 usecs, min/max =  13917 /  14303 usecs, #executions =         44
     NODE:      VPAC_MSC1:              mosaic_node: avg =  13853 usecs, min/max =  11258 /  38654 usecs, #executions =         44
     NODE:       DISPLAY1:              DisplayNode: avg =  10880 usecs, min/max =     86 /  16585 usecs, #executions =         44
    
     PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
     PERF:            TOTAL: avg = 3445017 usecs, min/max =  32953 / 12652451 usecs, #executions =          6
    
     PERF:            TOTAL:    0.29 FPS
     
     ------------------------------------------------------------------
     
     GRAPH: app_multi_cam_graph (#nodes =   4, #executions =     47)
     NODE:       CAPTURE1:             capture_node: avg = 2322102 usecs, min/max =  32210 / 23918934 usecs, #executions =         47
     NODE:      VPAC_LDC1:                 ldc_node: avg =  14081 usecs, min/max =  13917 /  14521 usecs, #executions =         47
     NODE:      VPAC_MSC1:              mosaic_node: avg =  13705 usecs, min/max =  11258 /  38654 usecs, #executions =         47
     NODE:       DISPLAY1:              DisplayNode: avg =  11104 usecs, min/max =     86 /  16585 usecs, #executions =         47
    
     PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
     PERF:            TOTAL: avg = 5813401 usecs, min/max =  32887 / 17373475 usecs, #executions =          3
    
     PERF:            TOTAL:    0.17 FPS

    您能看到什么吗? 非常感谢!

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

    您好!

    通过打印、我能够在删除队列成员时找到卡纸。

    API: vxGraphParameterDequeueDoneRef()
                /* wait until a reference is dequeued */
                do
                {
                    ref = NULL;
                    status = tivxDataRefQueueDequeueDoneRef(data_ref_q, &ref);
                    if((status == (vx_status)VX_SUCCESS) && (ref != NULL))
                    {
                        /* reference is dequeued break from do - while loop with success */
                        exit_loop = (vx_bool)vx_true_e;
                    }
                    else
                    {
                        /* wait for "ref available for dequeue" event */
                        status = tivxDataRefQueueWaitDoneRef(data_ref_q,
                                graph->timeout_val);
                        if(status!=(vx_status)VX_SUCCESS)
                        {
                            /* some error in waiting for event, break loop with error */
                            exit_loop = (vx_bool)vx_true_e;
                        }
                    }
                } while(exit_loop == (vx_bool)vx_false_e);

    我不知道这是什么原因,我也不知道。

    谢谢。

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

    [MCU2_0]    824.388228 s:  Channel Num | Frame Queue Count | Frame De-queue Count | Frame Drop Count | Error Frame Count |
    [MCU2_0]    824.388301 s:            0 |                 8 |                    7 |              896 |                 0 |
    [MCU2_0]    824.388372 s:            1 |                 8 |                    7 |             1086 |                 0 |
    [MCU2_0]    824.388444 s:            2 |                 8 |                    6 |               81 |                 0 |
    [MCU2_0]    824.388515 s:            3 |                 8 |                    7 |              745 |                 0 |

    通过打印,确定丢失的帧的位置。

    此外,我看到相关的问题,与这个问题一致,但没有解决。

    TDA4VM:TDA4运行 run_app_multi_cam.sh 显示8MP 摄像头问题-处理器论坛-处理器- TI E2E 支持论坛

    我正在寻找如何更改缓冲区大小和  虚拟通道映射。

    如果您知道它在哪里、您能告诉我吗?

    谢谢。

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

    您好!

    是的、去队列 API 中出现卡塞现象是因为捕获节点尚未释放该缓冲区。  

    捕捉节点似乎需要1187878秒来处理、这太高了。

    我想知道您 在捕获节点参数中为 CSI-Rx 设置的数据速率是多少吗?

    此致、

    尼基尔

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

    您好!

    你所指的是-- sensorObj->sensorParams.sensorInfo.csi_laneBandSpeed;?

    它的值为14。

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

    我的意思是  

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

    您好!

    我认为有三个问题值得怀疑:虚拟通道映射问题、CSI 速率问题和数据缓冲区问题。 对于 CSI_RX、我尝试调整了其他速率、但没有改善。 此外、我不知道在代码中的什么位置可以调试虚拟通道映射和数据缓冲区问题。 你可以告诉我吗? 你有什么其他建议?

    此致、

    约旦

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

    这是通道配置和日志:

    sensor_driver cfg:
    
    static int32_t imx390c_yuv_Config(uint32_t chId, void *pSensorHdl, uint32_t sensor_features_requested)
    {
        int32_t status = 0;
        I2cParams *deserCfg = NULL;
        I2cParams *serCfg = NULL;
        int8_t ub9xxInstanceId = getUB960InstIdFromChId(chId);
        uint32_t i2cInstId;
        IssSensors_Handle * pSenHandle = (IssSensors_Handle*)pSensorHdl;
        IssSensor_CreateParams * pCreatePrms;
    
        assert(NULL != pSenHandle);
        pCreatePrms = pSenHandle->createPrms;
        assert(NULL != pCreatePrms);
        printf("######func:%s, line:%d, ub9xxInstanceId = %#x, chId=%#x, sensor_features_requested = %#x\n", __func__, __LINE__, ub9xxInstanceId, chId, sensor_features_requested);
    
        deserCfg = imx390c_yuvSensorRegConfig.desCfgPreScript;
        serCfg = imx390c_yuvSensorRegConfig.serCfgPreScript;
        i2cInstId = pCreatePrms->i2cInstId;//pCreatePrms->i2cInstId;
        printf("######func:%s, line:%d, i2cInstId = %#x\n", __func__, __LINE__, i2cInstId);
        if(NULL != deserCfg)
        {
            status = ub960_cfgScript(deserCfg, ub9xxInstanceId);
        }
    
        if(0 == status)
        {
            if(NULL != serCfg)
            {
                appLogWaitMsecs(100);
    			printf("===ub953_cfgScript chId=%d i2cAddrSer=%x\n",chId, pCreatePrms->i2cAddrSer[chId]);
    			status = ub953_cfgScript(i2cInstId, pCreatePrms->i2cAddrSer[chId], serCfg);
            }
        }
    
        return (status);
    }
    
    

    capture node cfg:
    
    static vx_status configure_capture_params(vx_context context, CaptureObj *captureObj, SensorObj *sensorObj)
    {
        vx_status status = VX_SUCCESS;
    
        vx_uint32 num_capt_instances;
        vx_int32 id, lane, ch, vcNum;
        int32_t ch_mask = sensorObj->ch_mask;
    
        if(ch_mask > 0xF)
        {
            num_capt_instances= 2;
        }
        else
        {
            num_capt_instances= 1;
        }
    
        captureObj->capture_format = sensorObj->sensor_out_format;
    
        tivx_capture_params_init(&captureObj->params);
    
        if (captureObj->enable_error_detection || captureObj->test_mode)
        {
            captureObj->params.timeout        = 90;
            captureObj->params.timeoutInitial = 500;
        }
        captureObj->params.numInst  = num_capt_instances;
        captureObj->params.numCh    = sensorObj->num_cameras_enabled;
    
        for(id = 0; id < num_capt_instances; id++)
        {
            captureObj->params.instId[id]                       = id;
            captureObj->params.instCfg[id].enableCsiv2p0Support = (uint32_t)vx_true_e;
            captureObj->params.instCfg[id].numDataLanes         = sensorObj->sensorParams.sensorInfo.numDataLanes;
            APP_PRINTF("captureObj->params.numDataLanes = %d \n", captureObj->params.instCfg[id].numDataLanes);
            APP_PRINTF("captureObj->params.csi_laneBandSpeed = %#x \n", sensorObj->sensorParams.sensorInfo.csi_laneBandSpeed);
            captureObj->params.instCfg[id].laneBandSpeed        = sensorObj->sensorParams.sensorInfo.csi_laneBandSpeed;
    
            for (lane = 0; lane < captureObj->params.instCfg[id].numDataLanes; lane++)
            {
                captureObj->params.instCfg[id].dataLanesMap[lane] = lane + 1;
                APP_PRINTF("captureObj->params.dataLanesMap[%d] = %d \n",
                            lane,
                            captureObj->params.instCfg[id].dataLanesMap[lane]);
            }
        }
    
        ch = 0;/*Camera Physical Channel Number*/
        vcNum = 0;/*CSI2 Virtual Channel Number*/
        id = 0;/*CSI2 Instance ID*/
        while(ch_mask > 0)
        {
            if(ch > 3)
            {
                id = 1;
            }
            else
            {
                id = 0;
            }
            if(ch_mask & 0x1)
            {
                captureObj->params.chVcNum[vcNum] = ch%4;
                captureObj->params.chInstMap[vcNum] = id;
                vcNum++;
            }
            ch++;
            ch_mask = ch_mask >> 1;
        }
    
        captureObj->config = vxCreateUserDataObject(context, "tivx_capture_params_t", sizeof(tivx_capture_params_t), &captureObj->params);
        status = vxGetStatus((vx_reference)captureObj->config);
    
        if(status != VX_SUCCESS)
        {
            printf("[CAPTURE_MODULE] - Unable to create capture config object! \n");
        }
        else
        {
            vxSetReferenceName((vx_reference)captureObj->config, "capture_node_config");
        }
    
        return status;
    }

    log:
    [MCU2_0]     62.008877 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_PWRON
    [MCU2_0]     62.008954 s: IM_SENSOR_CMD_PWRON : channel_mask = 0xf
    [MCU2_0]     62.009363 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_CONFIG
    [MCU2_0]     62.009427 s: Application requested features = 0x120
    [MCU2_0]
    [MCU2_0]     62.009473 s: UB960 config start
    [MCU2_0]     62.265383 s: End of UB960 config
    [MCU2_0]     62.265453 s: UB960 config start
    [MCU2_0]     62.521385 s: End of UB960 config
    [MCU2_0]     62.521451 s: Configuring camera # 0
    [MCU2_0]     62.521548 s: ######func:imx390c_yuv_Config, line:204, ub9xxInstanceId = 0x0, chId=0x0, sensor_features_requested = 0x120
    [MCU2_0]     62.521624 s: ######func:imx390c_yuv_Config, line:209, i2cInstId = 0x6
    [MCU2_0]     62.521661 s: UB960 config start
    [MCU2_0]     62.553383 s: End of UB960 config
    [MCU2_0]     62.653336 s: ===ub953_cfgScript chId=0 i2cAddrSer=74
    [MCU2_0]     62.653386 s: ub953 config start : slaveAddr = 0x74
    [MCU2_0]     63.014391 s:  End of UB953 config
    [MCU2_0]     63.014459 s: Configuring camera # 1
    [MCU2_0]     63.014557 s: ######func:imx390c_yuv_Config, line:204, ub9xxInstanceId = 0x0, chId=0x1, sensor_features_requested = 0x120
    [MCU2_0]     63.014633 s: ######func:imx390c_yuv_Config, line:209, i2cInstId = 0x6
    [MCU2_0]     63.014669 s: UB960 config start
    [MCU2_0]     63.046392 s: End of UB960 config
    [MCU2_0]     63.146336 s: ===ub953_cfgScript chId=1 i2cAddrSer=76
    [MCU2_0]     63.146386 s: ub953 config start : slaveAddr = 0x76
    [MCU2_0]     63.507387 s:  End of UB953 config
    [MCU2_0]     63.507453 s: Configuring camera # 2
    [MCU2_0]     63.507552 s: ######func:imx390c_yuv_Config, line:204, ub9xxInstanceId = 0x0, chId=0x2, sensor_features_requested = 0x120
    [MCU2_0]     63.507628 s: ######func:imx390c_yuv_Config, line:209, i2cInstId = 0x6
    [MCU2_0]     63.507666 s: UB960 config start
    [MCU2_0]     63.539385 s: End of UB960 config
    [MCU2_0]     63.639333 s: ===ub953_cfgScript chId=2 i2cAddrSer=78
    [MCU2_0]     63.639382 s: ub953 config start : slaveAddr = 0x78
    [MCU2_0]     64.000395 s:  End of UB953 config
    [MCU2_0]     64.000462 s: Configuring camera # 3
    [MCU2_0]     64.000558 s: ######func:imx390c_yuv_Config, line:204, ub9xxInstanceId = 0x0, chId=0x3, sensor_features_requested = 0x120
    [MCU2_0]     64.000631 s: ######func:imx390c_yuv_Config, line:209, i2cInstId = 0x6
    [MCU2_0]     64.000669 s: UB960 config start
    [MCU2_0]     64.032386 s: End of UB960 config
    [MCU2_0]     64.132332 s: ===ub953_cfgScript chId=3 i2cAddrSer=7a
    [MCU2_0]     64.132381 s: ub953 config start : slaveAddr = 0x7a
        64.493668 s: ISS: Initializing sensor [SG2-IMX390C-5200-FPDLINK] ... Done !!!
    Sensor init done!
    captureObj->params.numDataLanes = 4
    captureObj->params.csi_laneBandSpeed = 0xa
    captureObj->params.dataLanesMap[0] = 1
    captureObj->params.dataLanesMap[1] = 2
    captureObj->params.dataLanesMap[2] = 3
    captureObj->params.dataLanesMap[3] = 4
    

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

    关于 Virture 通道,在 configure_capture_params()中 :

        ch = 0;/*Camera Physical Channel Number*/
        vcNum = 0;/*CSI2 Virtual Channel Number*/
        id = 0;/*CSI2 Instance ID*/
        printf("######func:%s, line:%d, 1_ch_mask:%#x\n", __func__, __LINE__, ch_mask);
        while(ch_mask > 0)
        {
            if(ch > 3)
            {
                id = 1;
            }
            else
            {
                id = 0;
            }
            if(ch_mask & 0x1)
            {
                captureObj->params.chVcNum[vcNum] = ch%4;
                captureObj->params.chInstMap[vcNum] = id;
                vcNum++;
            }
            ch++;
            ch_mask = ch_mask >> 1;
        }
        printf("######func:%s, line:%d, ch:%#x, vcNum:%#x, id:%d\n", __func__, __LINE__, ch, vcNum, id);
        printf("######func:%s, line:%d, 2_ch_mask:%#x\n", __func__, __LINE__, ch_mask);

    日志:

    captureObj->params.numDataLanes = 4
    captureObj->params.csi_laneBandSpeed = 0xe
    captureObj->params.dataLanesMap[0] = 1
    captureObj->params.dataLanesMap[1] = 2
    captureObj->params.dataLanesMap[2] = 3
    captureObj->params.dataLanesMap[3] = 4
    ######func:configure_capture_params, line:119, 1_ch_mask:0xf
    ######func:configure_capture_params, line:139, ch:0x4, vcNum:0x4, id:0
    ######func:configure_capture_params, line:140, 2_ch_mask:0

    Virture 通道正常。

    ---------------------------------------------------------------------------------------------------------

    关于 buf 深度、  

    我将 "#define APP_MAX_BUFQ_DEPTH (4)"更  改为"6"、

    将"#define APP_BUFFER_Q_DEPTH (4)"更改为"6"。

    ---------------------------------------------------------------------------------------------------------

    所有这些尝试都没有得到改善。

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

    传感器配置:

    static IssSensor_CreateParams  imx390c_yuvCreatePrms = {
        CAMERA_SG2_IMX390C_5200_FPDLINK,     /*sensor name*/
        0x6,                             /*i2cInstId*/
        {
            SENSOR_0_I2C_ALIAS, SENSOR_1_I2C_ALIAS, SENSOR_2_I2C_ALIAS, SENSOR_3_I2C_ALIAS,
            SENSOR_4_I2C_ALIAS, SENSOR_5_I2C_ALIAS, SENSOR_6_I2C_ALIAS, SENSOR_7_I2C_ALIAS
        },/*i2cAddrSensor*/
        {
            SER_0_I2C_ALIAS, SER_1_I2C_ALIAS, SER_2_I2C_ALIAS, SER_3_I2C_ALIAS,
            SER_4_I2C_ALIAS, SER_5_I2C_ALIAS, SER_6_I2C_ALIAS, SER_7_I2C_ALIAS
        },/*i2cAddrSer*/
        /*IssSensor_Info*/
        {
            {
                IMX390C_YUV_OUT_WIDTH,               /*width=1920*/
                IMX390C_YUV_OUT_HEIGHT,              /*height=1080*/
                1,                              /*num_exposures*/
                vx_false_e,                     /*line_interleaved*/
                {
                    {VX_DF_IMAGE_UYVY, 7},    /*dataFormat and MSB [0]*/
                },
                0,                              /*meta_height_before*/
                0,                              /*meta_height_after*/
            },
            ISS_SENSOR_IMX390C_YUV_FEATURES,     /*features*/
            ALGORITHMS_ISS_AEWB_MODE_NONE,  /*aewbMode*/
            30,                             /*fps*/
            4,                              /*numDataLanes*/
            {1, 2, 3, 4},                   /*dataLanesMap*/
            {0, 0, 0, 0},                   /*dataLanesPolarity*/
            CSIRX_LANE_BAND_SPEED_800_TO_880_MBPS, /*csi_laneBandSpeed*/
        },
        4,                                   /*numChan*/
        6100,                                /*dccId*/
    };

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

    运行 APP_MULTI 程序,选择一个 单个和两个摄像头视频输出正常,三个和四个摄像头将丢失大量帧。

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

    您好!

    在 multicam 应用程序中,捕获节点参数"captrureObj->params.instCfg[id].numPixels"默认设置为0。

    您能否将此值增大到"1"并检查您是否有任何改进?

    您可以将其添加到  配置捕获参数 ()英寸 /vision_apps/modules/app_capture_module.c src

    此致、

    尼基尔

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

    您好!  

    现象:

    代码:

    for(id = 0; id < num_capt_instances; id++)
        {
            captureObj->params.instId[id]                       = id;
            captureObj->params.instCfg[id].enableCsiv2p0Support = (uint32_t)vx_true_e;
            captureObj->params.instCfg[id].numDataLanes         = sensorObj->sensorParams.sensorInfo.numDataLanes;
            APP_PRINTF("captureObj->params.numDataLanes = %d \n", captureObj->params.instCfg[id].numDataLanes);
            APP_PRINTF("captureObj->params.csi_laneBandSpeed = %#x \n", sensorObj->sensorParams.sensorInfo.csi_laneBandSpeed);
            captureObj->params.instCfg[id].laneBandSpeed        = sensorObj->sensorParams.sensorInfo.csi_laneBandSpeed;
            captureObj->params.instCfg[id].numPixels            = 1;
            APP_PRINTF("captureObj->params.numPixels = %d \n", captureObj->params.instCfg[id].numPixels);
            for (lane = 0; lane < captureObj->params.instCfg[id].numDataLanes; lane++)
            {
                captureObj->params.instCfg[id].dataLanesMap[lane] = lane + 1;
                APP_PRINTF("captureObj->params.dataLanesMap[%d] = %d \n",
                            lane,
                            captureObj->params.instCfg[id].dataLanesMap[lane]);
            }
        }

    日志:

    Summary of CPU load,
    ====================
    
    CPU: mpu1_0: TOTAL LOAD =   0.20 % ( HWI =   0. 1 %, SWI =   0. 0 % )
    CPU: mcu2_0: TOTAL LOAD =  22. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU: mcu2_1: TOTAL LOAD =  16. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c6x_1: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c6x_2: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c7x_1: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    
    
    HWA performance statistics,
    ===========================
    
    HWA:   LDC : LOAD =   0.40 % ( 2 MP/s )
    HWA:   MSC0: LOAD =   0.30 % ( 2 MP/s )
    HWA:   MSC1: LOAD =   0.30 % ( 2 MP/s )
    
    
    DDR performance statistics,
    ===========================
    
    DDR: READ  BW: AVG =    209 MB/s, PEAK =   3973 MB/s
    DDR: WRITE BW: AVG =    104 MB/s, PEAK =   1354 MB/s
    DDR: TOTAL BW: AVG =    313 MB/s, PEAK =   5327 MB/s
    
    
    Detailed CPU performance/memory statistics,
    ===========================================
    
    DDR_SHARED_MEM: Alloc's: 51 alloc's of 129105836 bytes
    DDR_SHARED_MEM: Free's : 0 free's  of 0 bytes
    DDR_SHARED_MEM: Open's : 51 allocs  of 129105836 bytes
    DDR_SHARED_MEM: Total size: 536870912 bytes
    
    CPU: mcu2_0: TASK:           IPC_RX:   0. 0 %
    CPU: mcu2_0: TASK:       REMOTE_SRV:   0. 3 %
    CPU: mcu2_0: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CPU_0:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_VPAC_N:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_VPAC_L:   0. 2 %
    CPU: mcu2_0: TASK:      TIVX_VPAC_M:   0.13 %
    CPU: mcu2_0: TASK:      TIVX_VPAC_M:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_VPAC_V:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT1:   0. 1 %
    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_DISP_M:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DISP_M:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DISP_M:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DISP_M:   0. 0 %
    
    CPU: mcu2_0: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16701440 B ( 99 % unused)
    CPU: mcu2_0: HEAP:           L3_MEM: size =     262144 B, free =     261888 B ( 99 % unused)
    
    CPU: mcu2_1: TASK:           IPC_RX:   0. 0 %
    CPU: mcu2_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU: mcu2_1: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu2_1: TASK:         TIVX_SDE:   0. 0 %
    CPU: mcu2_1: TASK:         TIVX_DOF:   0. 0 %
    CPU: mcu2_1: TASK:       TIVX_CPU_1:   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: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU: mcu2_1: HEAP:           L3_MEM: size =     262144 B, free =     262144 B (100 % unused)
    
    CPU:  c6x_1: TASK:           IPC_RX:   0. 0 %
    CPU:  c6x_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c6x_1: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c6x_1: TASK:         TIVX_CPU:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c6x_1: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU:  c6x_1: HEAP:           L2_MEM: size =     229376 B, free =     229376 B (100 % unused)
    CPU:  c6x_1: HEAP:  DDR_SCRATCH_MEM: size =   50331648 B, free =   50331648 B (100 % unused)
    
    CPU:  c6x_2: TASK:           IPC_RX:   0. 0 %
    CPU:  c6x_2: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c6x_2: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c6x_2: TASK:         TIVX_CPU:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c6x_2: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU:  c6x_2: HEAP:           L2_MEM: size =     229376 B, free =     229376 B (100 % unused)
    CPU:  c6x_2: HEAP:  DDR_SCRATCH_MEM: size =   50331648 B, free =   50331648 B (100 % unused)
    
    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_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C7_1_P:   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: HEAP:    DDR_LOCAL_MEM: size =  268435456 B, free =  268435200 B ( 99 % unused)
    CPU:  c7x_1: HEAP:           L3_MEM: size =    8159232 B, free =    8159232 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 =  385875968 B, free =  385875968 B (100 % unused)
    
    
    GRAPH: app_multi_cam_graph (#nodes =   5, #executions =     13)
     NODE:       CAPTURE1:             capture_node: avg = 3382973 usecs, min/max =  33178 / 15627208 usecs, #executions =         13
     NODE:      VPAC_LDC1:                 ldc_node: avg =  14095 usecs, min/max =  13899 /  14392 usecs, #executions =         13
     NODE:      VPAC_MSC1:              mosaic_node: avg =  19859 usecs, min/max =  11279 /  38864 usecs, #executions =         13
     NODE:       DISPLAY1:              DisplayNode: avg =   8138 usecs, min/max =     88 /  14319 usecs, #executions =         13
     NODE:          A72-0:       capture_write_node: avg =   2655 usecs, min/max =     25 /  34190 usecs, #executions =         13
    
     PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
     PERF:            TOTAL: avg = 2933012 usecs, min/max =     10 / 15607380 usecs, #executions =         15
    
     PERF:            TOTAL:    0.34 FPS
    

    框架脱落的问题没有改善。 在这个基础上,两个摄像头被试了,帧被丢弃,一个摄像头没有丢帧。

    此致、

    约旦

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

    尊敬的  Nikhil:

    接下来需要进行什么调试? 你有什么建议。

    此致、

    约旦

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

    您好、Jordan、

    完成上述更改后、即 numPixels = 1、

    您是否还可以尝试使用以下补丁进行更改、并使用以下更改重新编译 SDK?

    /cfs-file/__key/communityserver-discussions-components-files/791/YUV422_5F00_fix.patch

    应在 PDK 存储库中应用补丁。

    您是否在使用 SDK 8.6?

    此致、

    尼基尔

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

    尊敬的  Nikhil:

    我使用的是 SDK 8.4。 您建议我们使用哪个 SDK 版本?

    此致、

    约旦

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

    您好、Jordan、

    上述补丁已集成到 SDK 9.1中。

    是否可以移植到此 SDK 版本?

    我建议首先在 SDK 8.4上测试该补丁。 如果此操作有效、您可以继续执行相同的操作。  

    但最好使用最新的 SDK。

    此致、

    尼基尔

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

    尊敬的  Nikhil:

    我将补丁放在 csirx_drvUdma.c 中。

    运行该程序后、以下日志中的变量值也是正确的。 我 分别试过两部和三部相机,性能和以前一样。  似乎没有帮助。

    日志:  

    captureObj->params.numDataLanes = 4
    captureObj->params.csi_laneBandSpeed = 0xe
    captureObj->params.numPixels = 0
    captureObj->params.dataLanesMap[0] = 1
    captureObj->params.dataLanesMap[1] = 2
    captureObj->params.dataLanesMap[2] = 3
    captureObj->params.dataLanesMap[3] = 4
    ######func:configure_capture_params, line:120, 1_ch_mask:0x7
    ######func:configure_capture_params, line:140, ch:0x3, vcNum:0x3, id:0
    ######func:configure_capture_params, line:141, 2_ch_mask:0
    ######func:configure_capture_output_write, line:309, en_out_capture_write: = 1
    LDC init done!
    Img Mosaic init done!
    Display init done!
    App Init Done!
    Graph create done!
    Capture graph done!
    LDC graph done!
    Img Mosaic graph done!
    Display graph done!
    Pipeline params setup done!
    App Create Graph Done!
    [MCU2_0]     66.864796 s:  End of UB953 config
    [MCU2_0]     66.864860 s: IM_SENSOR_CMD_CONFIG returning status = 0
    [MCU2_0]     66.874526 s: src/csirx_drv.c @ Line 1820:
    [MCU2_0]     66.874584 s: ######instObj->numCaptCh:0x0
    [MCU2_0]     66.874636 s: src/csirx_drvUdma.c @ Line 144:
    [MCU2_0]     66.874764 s: ######inCsiDataType:0x1e, dataFormat:0x0, chObj->status:0
    [MCU2_0]     66.874821 s: src/csirx_drvUdma.c @ Line 219:
    [MCU2_0]     66.874859 s: ######numPixelsStrm0:0x0
    [MCU2_0]     66.876575 s: src/csirx_drv.c @ Line 1820:
    [MCU2_0]     66.876629 s: ######instObj->numCaptCh:0x1
    [MCU2_0]     66.876738 s: src/csirx_drvUdma.c @ Line 144:
    [MCU2_0]     66.876793 s: ######inCsiDataType:0x1e, dataFormat:0x0, chObj->status:0
    [MCU2_0]     66.876840 s: src/csirx_drvUdma.c @ Line 219:
    [MCU2_0]     66.876875 s: ######numPixelsStrm0:0x0
    [MCU2_0]     66.878572 s: src/csirx_drv.c @ Line 1820:
    [MCU2_0]     66.878625 s: ######instObj->numCaptCh:0x2
    [MCU2_0]     66.878737 s: src/csirx_drvUdma.c @ Line 144:
    [MCU2_0]     66.878795 s: ######inCsiDataType:0x1e, dataFormat:0x0, chObj->status:0
    [MCU2_0]     66.878846 s: src/csirx_drvUdma.c @ Line 219:
    [MCU2_0]     66.878879 s: ######numPixelsStrm0:0x0
    

    inCsiDataType:0x1E、dataFormat:0x0  //FVID2_CSI2_DF_YUV422_8B、FVID2_DF_YUV422I_UYVY  

    numPixelsStrm0:0x0

    CSI_laneBandSpeed = 0xe

    CH:0x3、vcNum:0x3

    此致、

    约旦

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

    e2e.ti.com/.../imx390c_5F00_yuv.zip

    驱动器参考 GW _ar0233_YUV。

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

    您好、Jordan、

    我可以从您的日志中看到  

    CaptureObj->params.numPixels = 0

    完成上述更改后、即 numPixels = 1、

    您是否还可以尝试使用以下补丁进行更改、并使用以下更改重新编译 SDK?

    [/报价]

    我之前提到将这个值保留为1、然后应用这个补丁。 您能确认是否选中相同项吗?

    另外、根据 PDK 日志、您是说您应用了补丁并将这些日志放在 csirx_drvUdma.c 中了吗? 如果是、这将确认更改已生效。 我的理解是否正确?

    如果不是,是否可以在进行更改的修补程序中添加一个日志,以确保正确应用更改(如果尚未执行)。

    此致、

    尼基尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    另外,根据 PDK 日志,您是说您应用了修补程序,并将这些日志放在 csirx_drvUdma.c 中了吗? [/报价]

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

    好的、这意味着应用的补丁已成功构建并且更改已生效。

    我之前提到过保留此文件为1,然后应用此修补程序。 您能否确认您是否选中了相同的选项?

    您能告诉我这方面的信息吗?

    此致、

    尼基尔

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

    我只是对它进行了测试。 启用3个摄像头、仍然不稳定。

    此致、

    尼基尔

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

    您好!

    这是意料之外的。 这应该可以解决此问题。

    我们必须对此进行进一步调试。

    我只注意到下面的日志

    GRAPH: app_multi_cam_graph (#nodes =   5, #executions =     13)
     NODE:       CAPTURE1:             capture_node: avg = 3382973 usecs, min/max =  33178 / 15627208 usecs, #executions =         13
     NODE:      VPAC_LDC1:                 ldc_node: avg =  14095 usecs, min/max =  13899 /  14392 usecs, #executions =         13
     NODE:      VPAC_MSC1:              mosaic_node: avg =  19859 usecs, min/max =  11279 /  38864 usecs, #executions =         13
     NODE:       DISPLAY1:              DisplayNode: avg =   8138 usecs, min/max =     88 /  14319 usecs, #executions =         13
     NODE:          A72-0:       capture_write_node: avg =   2655 usecs, min/max =     25 /  34190 usecs, #executions =   

    您是否看到此问题 没有 CAPTURE_WRITE_NODE?  您是否可以禁用此节点并检查是否尚未执行此操作?

    如果在此之后没有任何变化、请尝试以下操作来确定问题。

    您是否可以注释掉图中的所有节点、只是运行图中的捕获节点并检查性能统计数据、如果您能够使捕获节点以33毫秒或其仍在几秒内执行?

    如果仍以秒为单位显示、则至少我们已将问题隔离到捕获节点。

    下一步是仅运行图形中的捕获节点、即您的 perf_stats 日志应该只具有如下所示的捕获图形  

    图表:APP_MULTI_CAM_GRACE (#nodes = x、#executations = x)
    节点:CAPTURE1:CAPTURE1:CAPTURE_NODE:Avg = xxx usecs、最小值/最大值= xx / xx usecs、#executations = x

    此致、

    尼基尔

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

    您好!

    我接下来应该怎么做? ub960还是 UDMA?

    此致、

    约旦

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

    您好、Jordan、

    此处有2个问题。

    1.您单独与捕获节点共享的日志具有  numPixelsStrm0:0x0 已打印。

    是否可以在 numPixelsStrm0时与我共享相同的日志? :0x1?  

    那么、您看到的 FPS 是什么?

    2.在串行器配置中,我看到您已启用了 CRC 生成器,但我没有看到在 SDK 中启用此生成器。 您是否可以提供以下内容 0x72 并检查是否有任何改进? 或者您是否在解串器中使用该 CRC 信息?

    {0x02、0x73、0x10}-发送器 CRC 发生器  

    是否已更改 iss_sensors.c 中的 UB960解串器配置? 从您共享的文件中、我只看到在解串器配置中设置了 CSI-TX 速度。

     imx390c_yuV_Config()缺少传感器配置。 您是否在其他地方进行传感器寄存器配置?

    此致、

    尼基尔

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

    您好、Jordan、

    我希望您在这里再尝试一个实验。

    我知道您为什么以800Mbps 的速率传输帧吗? 我认为这是非常慢的数据速率、可使用1920 x 1080 YUV422数据实现30FPS。

    您能否在 UB960和 CSI-Rx 中增加传输端的数据速率、并检查这样是否能缩短传输时间?

    在 SDK 中、我们在1936 x 1100 RAW12 IMX390情况下将0x12保持为 lanebandspeed。

    因此、您的值应至少为0x12或更高。  

    您可以尝试一下吗?

    注意:数据速率应设置为发送端、UB960和 CSI-Rx

    此致、

    尼基尔

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

    尊敬的  Nikhil:

    这是一件令人兴奋的事情!

    我配置了 UB960和 CSI-Rx 且运行稳定。  以前、我仅配置了 CSI-Rx。

    非常感谢您的帮助!

    此致、

    约旦