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.

[参考译文] TDA4VH-Q1:关于图参数和节点参数的问题

Guru**** 2456130 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1482766/tda4vh-q1-questions-regarding-graphs-parameters-and-node-parameters

器件型号:TDA4VH-Q1

工具与软件:

尊敬的 TI:

我们需要以尽可能多的 FPS 持续记录 viss/LDC 输出图像。 我想访问 VIS 和 LDC 输出缓冲器。 问题:

1.是否可以访问由设置的缓冲区  tivxSetNodeParameterNumBufByIndex()  TI API 呢? 我已经阅读了 tiovx 图形流水线文档、其中提到应用只能访问 图形参数缓冲区。 这只是想确认。

2.在我的图形中、捕获节点输出是图形参数。 我尝试将 vis 节点输出图像(params idx = 6)也设置为图形参数、但我获得的输出如下( 附加了录音 )我也收到了一些错误。(附加的终端 ss)

我已经阅读了有关如何创建 vis 节点输出作为图形参数的常见问题解答、我正在执行与我的应用中的单凸轮贴片中提到的完全相同的步骤。

捕获和 VIS 输出的缓冲器队列深度为4。

排队出队的代码片段如下所示:

/*!
    * CMS Graph pipeline enqueue references : pipe up + execute first reference
    * Pipe up -> Enqueue input references (NUM_BUFS - 1) times but do not trigger graph execution
    * Execute first reference -> after pipe up, now enqueue a buffer to trigger graph scheduling
    */
   for (buf_id = 0; buf_id < NUM_BUFS; buf_id++)
   {
      status = vxGraphParameterEnqueueReadyRef(class_ii_iv_graph_obj_ptr->graph,
                                               class_ii_iv_graph_obj_ptr->captureObj.graph_parameter_index,
                                               (vx_reference *)&class_ii_iv_graph_obj_ptr->captureObj.raw_image_out_arr[buf_id],
                                               1);
      if (status != VX_SUCCESS)
      {
         GEN3_DBG_PRINTF_ERR("ERROR: graph enqueue failed for capt cl2 cl4 out arr[%d], status = %d\n", buf_id, status);
      }
      status = vxGraphParameterEnqueueReadyRef(class_ii_iv_graph_obj_ptr->graph,
                                                class_ii_iv_graph_obj_ptr->vissObj.graph_parameter_index,
                                                (vx_reference *)&class_ii_iv_graph_obj_ptr->vissObj.out_arr[buf_id],
                                                1);
      if (status != VX_SUCCESS)
      {
         GEN3_DBG_PRINTF_ERR("ERROR: graph enqueue failed for capt cl2 cl4 out arr[%d], status = %d\n", buf_id, status);
      }
   }
 
   /* dequeue first and then after alternate executed reference from graph parameter.
    * check TIVX_OBJ_DESC_QUEUE_MAX_DEPTH if do not want to use dequeue.
    * enqueue back first or alternate reference into graph parameter after dequeue.
    */
   while (!class_ii_iv_graph_obj_ptr->stop_task_graph)
   {
      for (buf_id = 0; buf_id < NUM_BUFS; buf_id++)
      {
         /* Dequeue one image buffer */
         status = vxGraphParameterDequeueDoneRef(class_ii_iv_graph_obj_ptr->graph,
                                                 class_ii_iv_graph_obj_ptr->captureObj.graph_parameter_index,
                                                 (vx_reference *)&raw_image_temp,
                                                 1,
                                                 &num_refs);
         if (status != VX_SUCCESS)
         {
            GEN3_DBG_PRINTF_ERR("ERROR: graph dequeue failed for capt cl2 cl4 out arr[%d], status = %d\n", buf_id, status);
         }
         /* Dequeue one image buffer */
         status = vxGraphParameterDequeueDoneRef(class_ii_iv_graph_obj_ptr->graph,
                                                   class_ii_iv_graph_obj_ptr->vissObj.graph_parameter_index,
                                                   (vx_reference *)&viss_out_temp,
                                                   1,
                                                   &num_refs);
         if (status != VX_SUCCESS)
         {
            GEN3_DBG_PRINTF_ERR("ERROR: graph dequeue failed for viss cl2 cl4 out arr[%d], status = %d\n", buf_id, status);
         }
 
          status = vxGraphParameterEnqueueReadyRef(class_ii_iv_graph_obj_ptr->graph,
                                                  class_ii_iv_graph_obj_ptr->captureObj.graph_parameter_index,
                                                  (vx_reference *)&class_ii_iv_graph_obj_ptr->captureObj.raw_image_out_arr[buf_id],
                                                  1);
         if (status != VX_SUCCESS)
         {
            GEN3_DBG_PRINTF_ERR("ERROR: graph enqueue failed for capt cl2 cl4 out arr[%d], status = %d\n", buf_id, status);
         }
         status = vxGraphParameterEnqueueReadyRef(class_ii_iv_graph_obj_ptr->graph,
                                                   class_ii_iv_graph_obj_ptr->vissObj.graph_parameter_index,
                                                   (vx_reference *)&class_ii_iv_graph_obj_ptr->vissObj.out_arr[buf_id],
                                                   1);
         if (status != VX_SUCCESS)
         {
            GEN3_DBG_PRINTF_ERR("ERROR: graph enqueue failed for viss cl2 cl4 out arr[%d], status = %d\n", buf_id, status);
         }
      }
   }

e2e.ti.com/.../WIN_5F00_20250305_5F00_04_5F00_58_5F00_20_5F00_Pro.mp4

此致、

Lalit

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

    尊敬的 Lalit:

    LiJun C 说:
    1. 是否可以访问由设置的缓冲区  tivxSetNodeParameterNumBufByIndex()  TI API 呢? 我已经阅读了 tiovx 图形流水线文档、其中提到应用只能访问 图形参数缓冲区。 只是想确认。

    否、只能访问图形参数缓冲区。

    请参阅下面随附的补丁来获取 multi_cam_app、从而将 LDC 输出设为图形参数。

    e2e.ti.com/.../ldc_5F00_graph_5F00_parameter.patch

    此致、
    Gokul

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

    尊敬的 Gokul:  

    感谢您的答复。  

    我还将尝试使用 LDC 输出、但是否不可能将 viss 输出也作为图形参数与捕获输出一起创建?

    为什么我得到了如上所述的输出,你能说明在这种情况下发生了什么?

    谢谢!

    Lalit

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

    尊敬的 Lalit:

    无法 同时将 vis 输出作为图形参数与捕获输出一起创建?

    可能存在这种情况、但在流水线的情况下、为每个节点创建图形参数会产生性能问题、因为流水线在您使图形参数出队和入队之前会处于停滞状态。

    如果要求将输出保存到文件中、请在 multi_cam_demo .cfg 文件中使用以下参数

    为什么我得到的输出像上面所说的那样、您能解释一下这种情况下发生了什么吗?

    不确定、但在理想情况下、用于排队和出队的对象是不同的、不应该是这种情况。

    请参考补丁并对您的代码进行相应更改。

    此致、
    Gokul

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

    尊敬的 Gokul:

    我可以看到、multi cam 应用程序正在基于这些标志在图形中添加一个文件写入节点。 我查看了该节点的内核。

    这只是一个简短的问题、因为该节点对大型图像文件执行文件 IO、这是否 阻止/减慢图形?

    此致、
    Lalit

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

    尊敬的 Lalit:

    是的、它确实会减慢图形的速度、它取决于您用于保存文件的存储介质、有一个选项可以控制何时保存到文件、您可以指定要存储的帧数和否 要跳过的帧数。

    此致、
    Gokul