229 lines
6.3 KiB
C
Executable File
229 lines
6.3 KiB
C
Executable File
#ifndef _AWBT_API_H_
|
|
#define _AWBT_API_H_
|
|
|
|
#if defined(__KERNEL__) || defined(__FREERTOS)
|
|
#include "awb_alg.h"
|
|
#include "awb_ui.h"
|
|
#include "awb_nnsc.h"
|
|
#endif
|
|
|
|
#define AWB_CFG_NAME_LENGTH 256
|
|
#define AWB_DTSI_NAME_LENGTH 256
|
|
|
|
#define AWBT_ITEM_NNSC_OFFSET 100
|
|
|
|
/**
|
|
AWB tuning item
|
|
*/
|
|
typedef enum _AWBT_ITEM {
|
|
AWBT_ITEM_VERSION = 0,///< data_type: [Get] UINT32
|
|
AWBT_ITEM_SIZE_TAB, ///< data_type: [Get] AWBT_INFO
|
|
AWBT_ITEM_RLD_CONFIG, ///< data_type: [Set] AWBT_CFG_INFO
|
|
AWBT_ITEM_RLD_DTSI, ///< data_type: [Set] AWBT_DTSI_INFO
|
|
AWBT_ITEM_RESERVE_04,
|
|
AWBT_ITEM_RESERVE_05,
|
|
AWBT_ITEM_RESERVE_06,
|
|
AWBT_ITEM_RESERVE_07,
|
|
AWBT_ITEM_RESERVE_08,
|
|
AWBT_ITEM_RESERVE_09,
|
|
AWBT_ITEM_SCENE = 10,///< data_type: [Set/Get] AWBT_SCENE_MODE
|
|
AWBT_ITEM_WB_RATIO, ///< data_type: [Set/Get] AWBT_WB_RATIO
|
|
AWBT_ITEM_OPERATION, ///< data_type: [Set/Get] AWBT_OPERATION
|
|
AWBT_ITEM_STITCH_ID, ///< data_type: [Set/Get] AWBT_STITCH_ID
|
|
AWBT_ITEM_RESERVE_14,
|
|
AWBT_ITEM_RESERVE_15,
|
|
AWBT_ITEM_RESERVE_16,
|
|
AWBT_ITEM_RESERVE_17,
|
|
AWBT_ITEM_RESERVE_18,
|
|
AWBT_ITEM_RESERVE_19,
|
|
AWBT_ITEM_RESERVE_20,
|
|
AWBT_ITEM_RESERVE_21,
|
|
AWBT_ITEM_RESERVE_22,
|
|
AWBT_ITEM_RESERVE_23,
|
|
AWBT_ITEM_RESERVE_24,
|
|
AWBT_ITEM_RESERVE_25,
|
|
AWBT_ITEM_RESERVE_26,
|
|
AWBT_ITEM_RESERVE_27,
|
|
AWBT_ITEM_RESERVE_28,
|
|
AWBT_ITEM_RESERVE_29,
|
|
AWBT_ITEM_CA_TH = 30,///< data_type: [Set/Get] AWBT_CA_TH
|
|
AWBT_ITEM_TH, ///< data_type: [Set/Get] AWBT_TH
|
|
AWBT_ITEM_LV, ///< data_type: [Set/Get] AWBT_LV
|
|
AWBT_ITEM_CT_WEIGHT, ///< data_type: [Set/Get] AWBT_CT_WEIGHT
|
|
AWBT_ITEM_TARGET, ///< data_type: [Set/Get] AWBT_TARGET
|
|
AWBT_ITEM_CT_INFO = 35,///< data_type: [Set/Get] AWBT_CT_INFO
|
|
AWBT_ITEM_MWB_GAIN, ///< data_type: [Set/Get] AWBT_MWB_GAIN
|
|
AWBT_ITEM_CONVERGE, ///< data_type: [Set/Get] AWBT_CONVERGE
|
|
AWBT_ITEM_EXPAND_BLOCK, ///< data_type: [Set/Get] AWBT_EXPAND_BLOCK
|
|
AWBT_ITEM_MANUAL, ///< data_type: [Set/Get] AWBT_MANUAL
|
|
AWBT_ITEM_STATUS = 40,///< data_type: [Get] AWBT_STATUS
|
|
AWBT_ITEM_CA, ///< data_type: [Get] AWBT_CA
|
|
AWBT_ITEM_FLAG, ///< data_type: [Get] AWBT_FLAG
|
|
AWBT_ITEM_LUMA_WEIGHT, ///< data_type: [Set/Get] AWBT_LUMA_WEIGHT
|
|
AWBT_ITEM_KGAIN_RATIO, ///< data_type: [Set/Get] AWBT_ITEM_KGAIN_RATIO
|
|
AWBT_ITEM_CT_TO_CGAIN = 45,///< data_type: [Get] AWBT_ITEM_CT_TO_CGAIN
|
|
AWBT_ITEM_WIN, ///< data_type: [Set/Get] AWBT_WIN
|
|
AWBT_ITEM_CA_ROI, ///< data_type: [Set/Get] AWBT_CA_ROI
|
|
AWBT_ITEM_RESERVE_48,
|
|
AWBT_ITEM_RESERVE_49,
|
|
AWBT_ITEM_MAX = 50,
|
|
|
|
AWBT_ITEM_NNSC_GREEN_REMOVE = AWBT_ITEM_NNSC_OFFSET,///< data_type: [Set/Get] AWBT_GREEN_REMOVE
|
|
AWBT_ITEM_NNSC_SKIN_REMOVE, ///< data_type: [Set/Get] AWBT_SKIN_REMOVE
|
|
AWBT_ITEM_NNSC_RESERVE_102,
|
|
AWBT_ITEM_NNSC_RESERVE_103,
|
|
AWBT_ITEM_NNSC_RESERVE_104,
|
|
AWBT_ITEM_NNSC_RESERVE_105,
|
|
AWBT_ITEM_NNSC_RESERVE_106,
|
|
AWBT_ITEM_NNSC_RESERVE_107,
|
|
AWBT_ITEM_NNSC_RESERVE_108,
|
|
AWBT_ITEM_NNSC_RESERVE_109,
|
|
AWBT_ITEM_NNSC_MAX = 110,
|
|
ENUM_DUMMY4WORD(AWBT_ITEM)
|
|
} AWBT_ITEM;
|
|
|
|
typedef struct AWBT_INFO {
|
|
UINT32 size_tab[AWBT_ITEM_MAX][2];
|
|
} AWBT_INFO;
|
|
|
|
typedef struct _AWBT_CFG_INFO {
|
|
AWB_ID id;
|
|
CHAR path[AWB_CFG_NAME_LENGTH];
|
|
} AWBT_CFG_INFO;
|
|
|
|
typedef struct _AWBT_DTSI_INFO {
|
|
AWB_ID id;
|
|
CHAR node_path[AWB_DTSI_NAME_LENGTH];
|
|
CHAR file_path[AWB_DTSI_NAME_LENGTH];
|
|
UINT8 *buf_addr;
|
|
} AWBT_DTSI_INFO;
|
|
|
|
typedef struct _AWBT_SCENE_MODE {
|
|
AWB_ID id;
|
|
AWB_SCENE mode;
|
|
} AWBT_SCENE_MODE;
|
|
|
|
typedef struct _AWBT_WB_RATIO {
|
|
AWB_ID id;
|
|
UINT32 r;
|
|
UINT32 b;
|
|
} AWBT_WB_RATIO;
|
|
|
|
typedef struct _AWBT_OPERATION {
|
|
UINT32 id;
|
|
AWB_OPERATION operation;
|
|
} AWBT_OPERATION;
|
|
|
|
typedef struct _AWBT_STITCH_ID {
|
|
UINT32 id;
|
|
AWB_STITCH_ID stitch_id;
|
|
} AWBT_STITCH_ID;
|
|
|
|
typedef struct _AWBT_CA_TH {
|
|
AWB_ID id;
|
|
AWBALG_CA_THRESHOLD ca_th;
|
|
} AWBT_CA_TH;
|
|
|
|
typedef struct _AWBT_TH {
|
|
AWB_ID id;
|
|
AWB_TH th;
|
|
} AWBT_TH;
|
|
|
|
typedef struct _AWBT_LV {
|
|
AWB_ID id;
|
|
AWB_LV lv;
|
|
} AWBT_LV;
|
|
|
|
typedef struct _AWBT_CT_WEIGHT {
|
|
AWB_ID id;
|
|
AWB_CT_WEIGHT ct_weight;
|
|
} AWBT_CT_WEIGHT;
|
|
|
|
typedef struct _AWBT_TARGET {
|
|
AWB_ID id;
|
|
AWB_TARGET target;
|
|
} AWBT_TARGET;
|
|
|
|
typedef struct _AWBT_CT_INFO {
|
|
AWB_ID id;
|
|
AWB_CT_INFO ct_info;
|
|
} AWBT_CT_INFO;
|
|
|
|
typedef struct _AWBT_MWB_GAIN {
|
|
AWB_ID id;
|
|
AWB_MWB_GAIN mwb_gain;
|
|
} AWBT_MWB_GAIN;
|
|
|
|
typedef struct _AWBT_CONVERGE {
|
|
AWB_ID id;
|
|
AWB_CONVERGE converge;
|
|
} AWBT_CONVERGE;
|
|
|
|
typedef struct _AWBT_EXPAND_BLOCK {
|
|
AWB_ID id;
|
|
AWB_EXPAND_BLOCK expand_block;
|
|
} AWBT_EXPAND_BLOCK;
|
|
|
|
typedef struct _AWBT_MANUAL {
|
|
AWB_ID id;
|
|
AWB_MANUAL manual;
|
|
} AWBT_MANUAL;
|
|
|
|
typedef struct _AWBT_STATUS {
|
|
AWB_ID id;
|
|
AWB_STATUS status;
|
|
} AWBT_STATUS;
|
|
|
|
typedef struct _AWBT_CA {
|
|
AWB_ID id;
|
|
AWB_CA ca;
|
|
} AWBT_CA;
|
|
|
|
typedef struct _AWBT_FLAG {
|
|
AWB_ID id;
|
|
AWB_FLAG flag;
|
|
} AWBT_FLAG;
|
|
|
|
typedef struct _AWBT_LUMA_WEIGHT {
|
|
AWB_ID id;
|
|
AWB_LUMA_WEIGHT luma_weight;
|
|
} AWBT_LUMA_WEIGHT;
|
|
|
|
typedef struct _AWBT_KGAIN_RATIO {
|
|
AWB_ID id;
|
|
AWB_KGAIN_RATIO k_gain;
|
|
} AWBT_KGAIN_RATIO;
|
|
|
|
typedef struct _AWBT_CT_TO_CGAIN {
|
|
AWB_ID id;
|
|
AWBALG_CT_TO_CGAIN ct_to_cgain;
|
|
} AWBT_CT_TO_CGAIN;
|
|
|
|
typedef struct _AWBT_WIN {
|
|
AWB_ID id;
|
|
AWB_WINDOW win;
|
|
} AWBT_WIN;
|
|
|
|
typedef struct _AWBT_CA_ROI {
|
|
AWB_ID id;
|
|
URECT ca_roi;
|
|
} AWBT_CA_ROI;
|
|
|
|
// Struct of NNSC Parameter
|
|
typedef struct AWBT_NNSC_INFO {
|
|
UINT32 size_tab[AWBT_ITEM_NNSC_MAX - AWBT_ITEM_NNSC_OFFSET][2];
|
|
} AWBT_NNSC_INFO;
|
|
|
|
typedef struct _AWBT_GREEN_REMOVE {
|
|
AWB_ID id;
|
|
AWB_NNSC_GREEN_REMOVE enable;
|
|
} AWBT_GREEN_REMOVE;
|
|
|
|
typedef struct _AWBT_SKIN_REMOVE {
|
|
AWB_ID id;
|
|
AWB_NNSC_SKIN_REMOVE enable;
|
|
} AWBT_SKIN_REMOVE;
|
|
|
|
#endif
|
|
|