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.

[参考译文] TDA4AL-Q1:H3A 解析需要进行计算

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1501706/tda4al-q1-calrification-needed-on-h3a-parsing

器件型号:TDA4AL-Q1

工具/软件:

HiGang Hua

我们正在研究分析 H3A 数据,然后再输入到自动曝光。 我们需要对这方面作出几项澄清。

In file  imaging/kernels/aewb/arm/vx_aewb_target.c 、在下面的函数中。 TI 正在做平均 gr 和 GB 值.然而,我们没有得到为什么+1 ,你的家伙正在做( sum_gr + sum_GB + 1)>> 1 )。请说明吗?请参阅下面的突出显示的代码。

静态 void parse_h3A_out (uint8_t h3a_buf[]、int32_t n_col、int32_t n_row、
int32_t、int32_t id_gr、int32_t id_Gb、int32_t id_b、
h3a_aewb_pixel_data_t *h3A_data)

uint8_t * cur_addr = h3a_buf;
INT n_WIN = 0;
int j、i;

对于(j = 0;j < n_row;j++)

对于(i = 0;i < n_col;i++)

uint16_t * pAewbWinData =(uint16_t *) cur_addr;

uint32_t sum_gr = pAewbWinData[id_gr];
uint32_t sum_GB = pAewbWinData[id_GB];
uint16_t sum_g =(uint16_t)((sum_gr + sum_GB + 1)>> 1);

h3A_data[j * n_col + i].green = sum_g;
h3A_data[j * n_col + i].red = pAewbWinData[id_r];
h3A_data[j * n_col + i].blue = pAewbWinData[id_b];

CUR_addr += sizeof (uint16_t)* 8;
N_WIN++;

if (n_win % 8 == 0)

CUR_addr += sizeof (uint16_t)* 8;
}
}

if ((cur_addr - h3a_buf)% 32 == 16)

CUR_addr += 16;
}
}
}

此致

Sriharsha.

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

    您好、Sriharsha、

    Unknown 说:
    然而,我们没有得到为什么+1 ,你的家伙在做( sum_gr + sum_GB + 1)>> 1 )。

    这用于四舍五入。

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

    Hi Gang Hua

    感谢您的答复。

    下面是我的后续问题。

    在 TI_aaa_ae.c 中的 TI_AE_DO 函数中、TI 使用以下公式计算 ry、gy

       int32_t =(0x4d * R_GAIN + 128)>> 8;
       int32_t =(0x96 * g_gain + 128)>> 8;
       int32_t by =(0x1d * b_Gain + 128)>> 8;

    1)您能否解释一下为什么 r_gain 和 g_gain 和 b_gain 初始化为256

    2)为什么 TI 需要将 r_gain、g_gain、b_gain 分别与0x4d、0x96、0x1d 相乘? 依据什么基础

       是否需要这种十六进制值?

    3) TI 为什么需要进行256分频(>256)?

    此致

    Sriharsha.

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

    您好、 Sriharsha、

    1)您能解释一下为什么 r_gain & g_gain & b_gain 初始化为256

    我认为我们不会真正改变这些增益。
    它们应固定为256。

    2)为什么 TI 需要分别将 r_gain、g_gain、b_gain 与0x4d、0x96、0x1d 相乘? 以什么为依据

    我假设这用于常用转换系数中从 R、G、B 到 Y 的转换。

    [引述 userid="563563" url="~/support/processors-group/processors/f/processors-forum/1501706/tda4al-q1-calrification-needed-on-h3a-parsing/5773293 #5773293"]

    3) TI 为什么需要进行256分频(>256)?

    [/报价]

    我想您是指">>8"。
    这应该是正常的整数运算。