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:查询函数 DECODE_H3A_HEADER_DCC

Guru**** 2463330 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1477520/tda4vm-query-about-function-decode_h3a_header_dcc

器件型号:TDA4VM

工具与软件:

尊敬的 TI 专家:

我对 vx_aewb_target.c 文件中的函数 DECODE_H3A_HEADER_DCC 有疑问。 我在这里粘贴该函数的定义。

static uint8_t * decode_h3a_header_dcc (uint8_t * h3a_buf、iss_ipee_h3a_aewb * h3a_dcc_cfg、
                                                           uint16_t * n_row 、uint16_t *n_col、uint16_t * n_pix)

   uint16_t winh;
   uint16_t winv;

   if (0 == h3a_dcc_cfg->h_skip)
   {
       printf ("警告:h_skip = 0。 设置为1以避免除以零错误\n");
       h3a_dcc_cfg->h_skip = 1;
   }

   if (0 == h3a_dcc_cfg->v_skip)
   {
       printf ("警告:v_skip = 0。 设置为1以避免除以零错误\n");
       h3a_dcc_cfg->v_skip = 1;
   }

   WINh =(h3A_DCC_cfg->h_size + h3A_DCC_cfg->h_skip - 1)/h3A_DCC_cfg->h_skip;
   winv =(h3a_dcc_cfg->v_size + h3a_dcc_cfg->v_skip - 1)/h3a_dcc_cfg->v_skip;

   *n_row = h3a_dcc_cfg->v_count;
   *n_col = h3a_dcc_cfg->h_count;
   *n_pix = winh * winv;
   vx_print (vx_zone_info、"decode_h3a_header_dCC:num_rows =%d\n"、*n_row);
   vx_print (vx_zone_info、"decode_h3a_header_dCC:num_cols =%d\n"、*n_col);
   vx_print (vx_zone_info、"decode_h3a_header_dcc:num_pix =%d\n"、*n_pix);

   返回 h3a_buf;
}

我们可以看到第3个输入参数是 n_row 的指针。 n_row 指针分配为 v_count。

在 TIvxAewbProcess 函数中切换到该函数的调用。

...

 uint8_t * h3a_buf = NULL;
               if (NULL == nodePrms->DCC_OUTPUT_PARAMS)
               {
                   h3a_buf = decode_h3a_header ((uint8_t *) h3a_aew_af_target_ptr->data、
                                            &nodePrms->p_awb_params->ti_awb_data_in.frame_data.h3a_data_x、
                                            &nodePrms->p_awb_params->ti_awb_data_in.frame_data.h3a_data_y、
                                            &nodePrms->p_awb_params->ti_awb_data_in.frame_data.pix_in_pax);
               }
               设计
               {
                   h3a_buf = decode_h3a_header_dcc ((uint8_t *) h3a_aew_af_target_ptr->data、
                                            &nodePrms->DCC_OUTPUT_PARAMS->ipipipipepeH3A_AEWBCfg、
                                            &nodePrms->p_awb_params->ti_awb_data_in.frame_data.h3a_data_x、
                                            &nodePrms->p_awb_params->ti_awb_data_in.frame_data.h3a_data_y、
                                            &nodePrms->p_awb_params->ti_awb_data_in.frame_data.pix_in_pax);
               }

...

请不要对第三个参数 H3A_DATA_x 进行排序 其定义如下:

typedef 结构{
   h3a_aewb_paxel_data_t* h3A_res;    //添加一个计时器来输入 AWB 的数据
   uint16_t              H3A_DATA_x; // H3A 数据的 X 大小、块(像素)
   uint16_t              h3a_data_y; // H3A 数据的 Y 大小、块(像素)
   uint16_t              pix_in_pax;
} AWB_FRAME_DATA_t;

因此、X 轴块的数量被输入到 n_row。 通常、n_row 表示 Y 轴块的数量。  

DECODE_H3A_HEADER_DCC 函数的此调用是否正确? 我是说将 H3A_DATA_x 分配给 n_row。 如果基于参数名称、这似乎令人困惑。 您能帮助根据这一概念检查一下吗?

此致、

Zhishen

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

    尊敬的 zs:

    您使用的是哪个版本的 SDK?

    这个问题看起来我们已经修复了很长时间。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1283047/faq-tda4vh-am62a-how-to-create-the-cac-mesh-lut-for-dcc-tuning-tool-input

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

    尊敬的 Gang:

    感谢您的提醒。 我在 SDK 8.1.13中发现了此问题、但在 SDK 9.0中切换了 x 和 y。

    ...

    if (NULL == nodePrms->DCC_OUTPUT_PARAMS)

    h3a_buf = decode_h3a_header ((uint8_t *) h3a_aew_af_target_ptr->data、
    &nodePrms->p_awb_params->ti_awb_data_in.frame_data.h3a_data_y、
    &nodePrms->p_awb_params->ti_awb_data_in.frame_data.h3a_data_x、
    &nodePrms->p_awb_params->ti_awb_data_in.frame_data.pix_in_pax);
    }
    设计

    h3a_buf = DECOC_H3A_HEADER_DCC ((uint8_t *) h3a_aew_af_target_ptr->data、
    &nodePrms->DCC_OUTPUT_PARAMS->ipipipipepeH3A_AEWBCfg、
    &nodePrms->p_awb_params->ti_awb_data_in.frame_data.h3a_data_y、
    &nodePrms->p_awb_params->ti_awb_data_in.frame_data。 H3A_DATA_x、
    &nodePrms->p_awb_params->ti_awb_data_in.frame_data.pix_in_pax);
    }

    AWB_TI_Parse_h3a_buf (h3a_buf、nodePrms->p_awb_params、nodePrms->AWB_H3A_res、nodePrms->p_h3A_merge);

    ...

    BTW、您提到的链接不是与 H3A 相关、而是与 CAC 相关。 H3A 是否有影响或关联?

    此致、

    Zhishen

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

    我之前粘贴了错误的链接。

    这是指 https://git.ti.com/cgit/processor-sdk/imaging/tree/kernels/aewb/arm/vx_aewb_target.c?h=main#n732