工具与软件:
尊敬的 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