---
title: 向ISP注册AWB算法
description: "1. 用户需要在自开发定制的AWB库中实现以下回调函数（回调函数的说明请参见hi_isp_awb_exp_func），如下表所示：| 成员名称 | 描述 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/others/ispdevug/ispdevug_0008.html
sourcePath: /source/zh/canncommercial/900/others/ispdevug/ispdevug_0008.html
indexId: a8e56dad6916a128b4ea8a4dfb4ad3937967fa6047b1859d502788d141c92ad464
---
# 向ISP注册AWB算法

1. 用户需要在自开发定制的AWB库中实现以下回调函数（回调函数的说明请参见hi_isp_awb_exp_func），如下表所示：| 成员名称 | 描述 |
| --- | --- |
| pfn\_awb\_init | 初始化AWB的回调函数指针。 调用hi\_mpi\_isp\_init时将调用pfn\_awb\_init回调函数，以初始化AWB算法库。 |
| pfn\_awb\_run | 运行AWB的回调函数指针。 调用hi\_mpi\_isp\_run时将调用pfn\_awb\_run回调函数，以运行AWB算法库，计算得到白平衡增益、色彩校正矩阵。 |
| pfn\_awb\_ctrl | 控制AWB内部状态的回调函数指针。 pfn\_awb\_ctrl的目的是改变算法库内部状态。运行时，Firmware会隐式调用pfn\_awb\_ctrl回调函数，通知AWB算法库切换WDR和线性模式、设置ISO和曝光时间。设置ISO的目的是为了实现ISO与饱和度的联动，增益大时色度噪声也会比较大，所以需要调节饱和度。设置曝光时间是为了awb算法判断环境照度，优化场景效果。pfn\_awb\_ctrl回调函数中的cmd值需参见hi\_isp\_ctrl\_cmd。 |
| pfn\_awb\_exit | 销毁AWB的回调函数指针。 调用hi\_mpi\_isp\_exit时将调用pfn\_awb\_exit回调函数，以销毁AWB算法库。 |


2. AWB算法实现了一个hi_mpi_awb_register的注册函数，在这个函数中调用ISP提供的hi_mpi_isp_awb_lib_reg_callback接口向ISP库注册AWB算法，示例和AE算法库注册类似。
