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: Improving the processing speed of custom avp4 demo

Part Number: TDA4VM

Tool/software:

My SDK version: RTOS 10.01.00.04

Hi TI experts,

I'm creating a custom app based on "app_tidl_avp4", and I've made the following two changes:

  1. Change display output to SRV
  2. Change TIDL from Seg to OD

This change has caused a performance drop across the graph, it's now around 20fps.

GRAPH: custom_app_graph (#nodes =  11, #executions =  39722)
 NODE:       CAPTURE1:             capture_node: avg =   1622 usecs, min/max =    154 /  61714 usecs, #executions =      39722
 NODE:     VPAC_VISS1:                viss_node: avg =  18505 usecs, min/max =  17735 /  24338 usecs, #executions =      39722
 NODE:         MCU2-0:                aewb_node: avg =    455 usecs, min/max =    154 /  65242 usecs, #executions =      39722
 NODE:      VPAC_LDC1:                 ldc_node: avg =  16601 usecs, min/max =  13899 /  24016 usecs, #executions =      39722
 NODE:      VPAC_MSC2:              scaler_node: avg =  26454 usecs, min/max =  21934 /  33801 usecs, #executions =      39722
 NODE:          DSP-1:              PreProcNode: avg =   3554 usecs, min/max =   3328 /   4447 usecs, #executions =      39722
 NODE:       DSP_C7-1:                tidl_node: avg =  49816 usecs, min/max =  47580 /  54819 usecs, #executions =      39722
 NODE:          DSP-2:    DrawBoxDetectionsNode: avg =  14447 usecs, min/max =   8209 /  19117 usecs, #executions =      39722
 NODE:      VPAC_MSC1:              mosaic_node: avg =  16820 usecs, min/max =   3871 /  84152 usecs, #executions =      39722
 NODE:          MPU-0:          OpenGL_SRV_Node: avg =  15226 usecs, min/max =  11878 /  46502 usecs, #executions =      39722
 NODE:       DISPLAY1:              DisplayNode: avg =   8845 usecs, min/max =    106 /  33199 usecs, #executions =      39729

 PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
 PERF:            TOTAL: avg =  49885 usecs, min/max =  32556 /  74620 usecs, #executions =      17449

 PERF:            TOTAL:   20. 4 FPS

I thought that by splitting the graphs into two, one for the SRV side and one for the OD side, I could improve performance.(The red and blue areas in the figure below)

But splitting the graph into two did not improve the performance.

GRAPH: custom_app_graph1 (#nodes =   5, #executions =    296)
 NODE:       CAPTURE1:             capture_node: avg =  13394 usecs, min/max =    166 /  59766 usecs, #executions =        296
 NODE:     VPAC_VISS1:                viss_node: avg =  19128 usecs, min/max =  17962 /  20964 usecs, #executions =        296
 NODE:         MCU2-0:                aewb_node: avg =    310 usecs, min/max =    156 /   1371 usecs, #executions =        296
 NODE:          MPU-0:          OpenGL_SRV_Node: avg =  11470 usecs, min/max =  10603 /  44925 usecs, #executions =        296
 NODE:       DISPLAY1:              DisplayNode: avg =   9912 usecs, min/max =     89 /  16342 usecs, #executions =        296

GRAPH: custom_app_graph2 (#nodes =   6, #executions =    148)
 NODE:      VPAC_LDC1:                 ldc_node: avg =  14735 usecs, min/max =  13905 /  15450 usecs, #executions =        148
 NODE:      VPAC_MSC2:              scaler_node: avg =  23128 usecs, min/max =  20792 /  24294 usecs, #executions =        148
 NODE:          DSP-1:              PreProcNode: avg =   3243 usecs, min/max =   3108 /   3427 usecs, #executions =        148
 NODE:       DSP_C7-1:                tidl_node: avg =  45332 usecs, min/max =  41988 /  48336 usecs, #executions =        148
 NODE:          DSP-2:    DrawBoxDetectionsNode: avg =   7428 usecs, min/max =   7023 /  13685 usecs, #executions =        151
 NODE:      VPAC_MSC1:              mosaic_node: avg =   4696 usecs, min/max =   3857 /  29426 usecs, #executions =        151

 PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
 PERF:            TOTAL: avg =  50167 usecs, min/max =     20 / 188239 usecs, #executions =        304

 PERF:            TOTAL:   19.93 FPS

My goal is to have SRV running at 30fps and OD running at 15fps. Could you please give me some advice how I can achieve this?

Regards,

Daigo