---
title: hi_isp_awb_exp_func
description: "定义AWB回调函数结构体。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/others/ispdevug/ispdevapi_0148.html
sourcePath: /source/zh/canncommercial/900/others/ispdevug/ispdevapi_0148.html
indexId: 0b0845e76dd0dd74166a123379eb62de9700868b61d279922922e2d1f30ecff665
---
# hi_isp_awb_exp_func

#### 说明

定义AWB回调函数结构体。


#### 定义

```
typedef struct {
hi_s32
(*pfn_awb_init)(
hi_s32
handle, const
hi_isp_awb_param
*awb_param,
hi_isp_awb_result
*awb_result);
hi_s32
(*pfn_awb_run)(
hi_s32
handle,
const
hi_isp_awb_info
*awb_info,
hi_isp_awb_result
*awb_result,
hi_s32
reserved);
hi_s32
(*pfn_awb_ctrl)(
hi_s32
handle,
hi_u32
cmd, hi_void *value);
hi_s32
(*pfn_awb_exit)(
hi_s32
handle);
} hi_isp_awb_exp_func;
```


#### 成员

| 成员名称 | 描述 |
| --- | --- |
| pfn\_awb\_init | 初始化AWB的回调函数指针。 |
| pfn\_awb\_run | 运行AWB的回调函数指针。 |
| pfn\_awb\_ctrl | 控制AWB内部状态的回调函数指针。 cmd值需参见hi\_isp\_ctrl\_cmd。 |
| pfn\_awb\_exit | 销毁AWB的回调函数指针。 |


#### 注意事项

- 调用hi_mpi_isp_init时将调用pfn_awb_init回调函数，以初始化AWB算法库。
- pfn_awb_init回调函数的hi_isp_awb_result参数返回ISP启动时的初始AWB增益和初始色彩校正矩阵。
- 调用hi_mpi_isp_run时将调用pfn_awb_run回调函数，以运行AWB算法库，计算得到白平衡增益、色彩校正矩阵。
- 运行时ISP控制单元会隐式调用pfn_awb_ctrl回调函数，通知AWB算法库切换WDR和线性模式、设置ISO和曝光时间（曝光时间单位是us）。设置ISO的目的是为了实现ISO与饱和度的联动，增益大时色度噪声也会比较大，所以需要调节饱和度。设置曝光时间是为了辅助室内外判断。
  当前Firmware定义的ctrl命令详细描述参见hi_isp_ctrl_cmd。

- 调用hi_mpi_isp_exit时将调用pfn_awb_exit回调函数，以销毁AWB算法库。
