概述
3A algorithm consists of auto exposure ,auto white balance and auto focous.The describtion sequence is based on different files.
1.config.c (vendor/qcom/proprietary/mm-camera/targers/gtcommon/config/config.c)
(1)int8_t config_init_ctrl(void)
Is a damon thread,the beginning is int8_t config_init_ctrl(void) ,in this function there is a invoked function isp3a_init(&cfgctrl) == FALSE),the cfgctrl is global variable.cfgctrl is initialized in this function,and among the following procedurce ,lots parameters are from this parameter.
(2)int8_t isp3a_init(void *cctrl)
int8_t isp3a_init(void *cctrl)
{
...
isp3a_ctrl_t *ctrl3a = &(ctrl->isp3aCtrl); // is pointer conversion, so,realization, is cfgctrl be initiated.
sensor_ctrl_t *sensor = &(ctrl->sensorCtrl);
/*sensor_from_chromatix_3a_t,this structrue is related with the chromatix_XXX.h file,which we use to tune camera*/
sensor_from_chromatix_3a_t *chroma = &(sensor->chromatixAnd3a);
/*Parameters got above be used*/
isp3a_load_chroma(chroma, &(ctrl3a->isp3a_input.isp3a_chromatix)); //Filed of ctrl3a be assigned
isp3a_load_sensor(sensor, &(ctrl3a->isp3a_input.isp3a_sensor)); //Filed of ctrl3a be assigned
if (!aec_init(ctrl3a))
CDBG("aec init failedn");
if (!awb_init(ctrl3a))
CDBG("awb init failedn");
if (!af_init(ctrl3a))
CDBG("af init failedn");
if (!sd_init(ctrl3a ))
CDBG("sd init failedn");
ctrl3a->isp3a_input.vfeStatStruct = malloc(sizeof(isp3a_stats_out_t));
if (ctrl3a->isp3a_input.vfeStatStruct == NULL) {
CDBG("ctrl3a->isp3a_input.vfeStatStruct malloc failedn");
return FALSE;
}
....
} /* isp3a_init */
2.awb.c vendor/qcom/proprietary/mm-camera/targets/tgtcommon/isp3a/awb
(1)int8_t awb_init(isp3a_ctrl_t *ctrl3a)
In this function awbCtrl be created and assigned first, and thenawb_settings_init(ctrl3a) be called.
(2)static void awb_settings_init(isp3a_ctrl_t *ctrl3a)
最后
以上就是感性大米为你收集整理的qualcomm platform 3a algorithm -- awb的全部内容,希望文章能够帮你解决qualcomm platform 3a algorithm -- awb所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复