409 lines
12 KiB
C
Executable File
409 lines
12 KiB
C
Executable File
#ifndef _IQT_API_H_
|
|
#define _IQT_API_H_
|
|
|
|
#if defined(__KERNEL__) || defined(__FREERTOS)
|
|
#include "iq_alg.h"
|
|
#include "iq_ui.h"
|
|
#include "iq_nnsc.h"
|
|
#endif
|
|
|
|
#define IQ_CFG_NAME_LENGTH 256
|
|
#define IQ_DTSI_NAME_LENGTH 256
|
|
|
|
#define IQT_ITEM_NNSC_OFFSET 100
|
|
|
|
/**
|
|
IQ tuning item
|
|
*/
|
|
typedef enum _IQT_ITEM {
|
|
IQT_ITEM_VERSION = 0,///< data_type: [Get] UINT32
|
|
IQT_ITEM_SIZE_TAB, ///< data_type: [Get] IQT_INFO
|
|
IQT_ITEM_RLD_CONFIG, ///< data_type: [Set] IQT_CFG_INFO
|
|
IQT_ITEM_RLD_DTSI, ///< data_type: [Set] IQT_DTSI_INFO
|
|
IQT_ITEM_RESERVE_04,
|
|
IQT_ITEM_RESERVE_05,
|
|
IQT_ITEM_RESERVE_06,
|
|
IQT_ITEM_RESERVE_07,
|
|
IQT_ITEM_RESERVE_08,
|
|
IQT_ITEM_RESERVE_09,
|
|
IQT_ITEM_NR_LV = 10,///< data_type: [Set/Get] IQT_NR_LV
|
|
IQT_ITEM_SHARPNESS_LV, ///< data_type: [Set/Get] IQT_SHARPNESS_LV
|
|
IQT_ITEM_SATURATION_LV, ///< data_type: [Set/Get] IQT_SATURATION_LV
|
|
IQT_ITEM_CONTRAST_LV, ///< data_type: [Set/Get] IQT_CONTRAST_LV
|
|
IQT_ITEM_BRIGHTNESS_LV, ///< data_type: [Set/Get] IQT_BRIGHTNESS_LV
|
|
IQT_ITEM_NIGHT_MODE = 15,///< data_type: [Set/Get] IQT_NIGHT_MODE
|
|
IQT_ITEM_YCC_FORMAT, ///< data_type: [Set/Get] IQT_YCC_FORMAT
|
|
IQT_ITEM_OPERATION, ///< data_type: [Set/Get] IQT_OPERATION
|
|
IQT_ITEM_IMAGEEFFECT, ///< data_type: [Set/Get] IQT_IMAGEEFFECT
|
|
IQT_ITEM_CCID, ///< data_type: [Set/Get] IQT_CCID
|
|
IQT_ITEM_HUE_SHIFT = 20,///< data_type: [Set/Get] IQT_HUE_SHIFT
|
|
IQT_ITEM_SHDR_TONE_LV, ///< data_type: [Set/Get] IQT_SHDR_TONE_LV
|
|
IQT_ITEM_3DNR_LV, ///< data_type: [Set/Get] IQT_3DNR_LV
|
|
IQT_ITEM_RESERVE_23,
|
|
IQT_ITEM_SHADING_VIG_EXT_PARAM, ///< data_type: [Set/Get] IQT_SHADING_VIG_EXT_PARAM
|
|
IQT_ITEM_SHDR_EXT_PARAM, ///< data_type: [Set/Get] IQT_SHDR_EXT_PARAM
|
|
IQT_ITEM_SHADING_INTER_PARAM, ///< data_type: [Set/Get] IQT_SHADING_INTER_PARAM
|
|
IQT_ITEM_SHADING_EXT_PARAM, ///< data_type: [Set/Get] IQT_SHADING_EXT_PARAM
|
|
IQT_ITEM_CST_PARAM, ///< data_type: [Set/Get] IQT_CST_PARAM
|
|
IQT_ITEM_STRIPE_PARAM, ///< data_type: [Set/Get] IQT_STRIPE_PARAM
|
|
IQT_ITEM_YCURVE_PARAM = 30,///< data_type: [Set/Get] IQT_YCURVE_PARAM
|
|
IQT_ITEM_OB_PARAM, ///< data_type: [Set/Get] IQT_OB_PARAM
|
|
IQT_ITEM_NR_PARAM, ///< data_type: [Set/Get] IQT_NR_PARAM
|
|
IQT_ITEM_CFA_PARAM, ///< data_type: [Set/Get] IQT_CFA_PARAM
|
|
IQT_ITEM_VA_PARAM, ///< data_type: [Set/Get] IQT_VA_PARAM
|
|
IQT_ITEM_GAMMA_PARAM = 35,///< data_type: [Set/Get] IQT_GAMMA_PARAM
|
|
IQT_ITEM_CCM_PARAM, ///< data_type: [Set/Get] IQT_CCM_PARAM
|
|
IQT_ITEM_COLOR_PARAM, ///< data_type: [Set/Get] IQT_COLOR_PARAM
|
|
IQT_ITEM_CONTRAST_PARAM, ///< data_type: [Set/Get] IQT_CONTRAST_PARAM
|
|
IQT_ITEM_EDGE_PARAM, ///< data_type: [Set/Get] IQT_EDGE_PARAM
|
|
IQT_ITEM_3DNR_PARAM = 40,///< data_type: [Set/Get] IQT_3DNR_PARAM
|
|
IQT_ITEM_DPC_PARAM, ///< data_type: [Set/Get] IQT_DPC_PARAM
|
|
IQT_ITEM_SHADING_PARAM, ///< data_type: [Set/Get] IQT_SHADING_PARAM
|
|
IQT_ITEM_LDC_PARAM, ///< data_type: [Set/Get] IQT_LDC_PARAM
|
|
IQT_ITEM_RESERVE_44,
|
|
IQT_ITEM_WDR_PARAM = 45,///< data_type: [Set/Get] IQT_WDR_PARAM
|
|
IQT_ITEM_RESERVE_46,
|
|
IQT_ITEM_SHDR_PARAM, ///< data_type: [Set/Get] IQT_SHDR_PARAM
|
|
IQT_ITEM_RGBIR_PARAM, ///< data_type: [Set/Get] IQT_RGBIR_PARAM
|
|
IQT_ITEM_COMPANDING_PARAM, ///< data_type: [Set/Get] IQT_COMPANDING_PARAM
|
|
IQT_ITEM_EDGE_DBG = 50,///< data_type: [Get] IQT_EDGE_DBG
|
|
IQT_ITEM_3DNR_DBG, ///< data_type: [Get] IQT_3DNR_DBG
|
|
IQT_ITEM_SHDR_MODE, ///< data_type: [Set/Get] IQT_SHDR_MODE
|
|
IQT_ITEM_3DNR_MISC_PARAM, ///< data_type: [Set/Get] IQT_3DNR_MISC_PARAM
|
|
IQT_ITEM_RESERVE_54,
|
|
IQT_ITEM_DR_LEVEL = 55,///< data_type: [Get] IQT_DR_LEVEL
|
|
IQT_ITEM_RGBIR_ENH_PARAM, ///< data_type: [Set/Get] IQT_RGBIR_ENH_PARAM
|
|
IQT_ITEM_RGBIR_ENH_ISO, ///< data_type: [Get] IQT_RGBIR_ENH_ISO
|
|
IQT_ITEM_MD_PARAM, ///< data_type: [Set/Get] IQT_MD_PARAM
|
|
IQT_ITEM_POST_SHARPEN_PARAM, ///< data_type: [Set/Get] IQT_POST_SHARPEN_PARAM
|
|
IQT_ITEM_LCA_SUB_RATIO_PARAM = 60,///< data_type: [Set/Get] IQT_LCA_SUB_RATIO_PARAM
|
|
IQT_ITEM_RESERVE_61,
|
|
IQT_ITEM_RESERVE_62,
|
|
IQT_ITEM_RESERVE_63,
|
|
IQT_ITEM_RESERVE_64,
|
|
IQT_ITEM_RESERVE_65,
|
|
IQT_ITEM_RESERVE_66,
|
|
IQT_ITEM_RESERVE_67,
|
|
IQT_ITEM_RESERVE_68,
|
|
IQT_ITEM_RESERVE_69,
|
|
IQT_ITEM_MAX = 70,
|
|
|
|
IQT_ITEM_NNSC_DARK_ENH_RATIO = IQT_ITEM_NNSC_OFFSET,///< data_type: [Set/Get] IQT_DARK_ENH_RATIO
|
|
IQT_ITEM_NNSC_CONTRAST_ENH_RATIO, ///< data_type: [Set/Get] IQT_CONTRAST_ENH_RATIO
|
|
IQT_ITEM_NNSC_GREEN_ENH_RATIO, ///< data_type: [Set/Get] IQT_GREEN_ENH_RATIO
|
|
IQT_ITEM_NNSC_SKIN_ENH_RATIO, ///< data_type: [Set/Get] IQT_SKIN_ENH_RATIO
|
|
IQT_ITEM_NNSC_RESERVE_104,
|
|
IQT_ITEM_NNSC_RESERVE_105,
|
|
IQT_ITEM_NNSC_RESERVE_106,
|
|
IQT_ITEM_NNSC_RESERVE_107,
|
|
IQT_ITEM_NNSC_RESERVE_108,
|
|
IQT_ITEM_NNSC_RESERVE_109,
|
|
IQT_ITEM_NNSC_MAX = 110,
|
|
|
|
ENUM_DUMMY4WORD(IQT_ITEM)
|
|
} IQT_ITEM;
|
|
|
|
// Struct of Parameter
|
|
typedef struct IQT_INFO {
|
|
UINT32 size_tab[IQT_ITEM_MAX][2];
|
|
} IQT_INFO;
|
|
|
|
typedef struct _IQT_CFG_INFO {
|
|
IQ_ID id;
|
|
CHAR path[IQ_CFG_NAME_LENGTH];
|
|
} IQT_CFG_INFO;
|
|
|
|
typedef struct _IQT_DTSI_INFO {
|
|
IQ_ID id;
|
|
CHAR node_path[IQ_DTSI_NAME_LENGTH];
|
|
CHAR file_path[IQ_DTSI_NAME_LENGTH];
|
|
UINT8 *buf_addr;
|
|
} IQT_DTSI_INFO;
|
|
|
|
typedef struct _IQT_NR_LV {
|
|
IQ_ID id;
|
|
IQ_UI_NR_LV lv;
|
|
} IQT_NR_LV;
|
|
|
|
typedef struct _IQT_3DNR_LV {
|
|
IQ_ID id;
|
|
IQ_UI_3DNR_LV lv;
|
|
} IQT_3DNR_LV;
|
|
|
|
typedef struct _IQT_SHARPNESS_LV {
|
|
IQ_ID id;
|
|
IQ_UI_SHARPNESS_LV lv;
|
|
} IQT_SHARPNESS_LV;
|
|
|
|
typedef struct _IQT_SATURATION_LV {
|
|
IQ_ID id;
|
|
IQ_UI_SATURATION_LV lv;
|
|
} IQT_SATURATION_LV;
|
|
|
|
typedef struct _IQT_CONTRAST_LV {
|
|
IQ_ID id;
|
|
IQ_UI_CONTRAST_LV lv;
|
|
} IQT_CONTRAST_LV;
|
|
|
|
typedef struct _IQT_BRIGHTNESS_LV {
|
|
IQ_ID id;
|
|
IQ_UI_BRIGHTNESS_LV lv;
|
|
} IQT_BRIGHTNESS_LV;
|
|
|
|
typedef struct _IQT_NIGHT_MODE {
|
|
IQ_ID id;
|
|
IQ_UI_NIGHT_MODE mode;
|
|
} IQT_NIGHT_MODE;
|
|
|
|
typedef struct _IQT_YCC_FORMAT {
|
|
IQ_ID id;
|
|
IQ_UI_YCC_FORMAT format;
|
|
} IQT_YCC_FORMAT;
|
|
|
|
typedef struct _IQT_OPERATION {
|
|
IQ_ID id;
|
|
IQ_UI_OPERATION operation;
|
|
} IQT_OPERATION;
|
|
|
|
typedef struct _IQT_IMAGEEFFECT {
|
|
IQ_ID id;
|
|
IQ_UI_IMAGEEFFECT effect;
|
|
} IQT_IMAGEEFFECT;
|
|
|
|
typedef struct _IQT_CCID {
|
|
IQ_ID id;
|
|
IQ_UI_CCID ccid;
|
|
} IQT_CCID;
|
|
|
|
typedef struct _IQT_HUE_SHIFT {
|
|
IQ_ID id;
|
|
IQ_UI_HUE_SHIFT hue_shift;
|
|
} IQT_HUE_SHIFT;
|
|
|
|
typedef struct _IQT_SHDR_TONE_LV {
|
|
IQ_ID id;
|
|
IQ_UI_SHDR_TONE_LV lv;
|
|
} IQT_SHDR_TONE_LV;
|
|
|
|
typedef struct _IQT_OB_PARAM {
|
|
IQ_ID id;
|
|
IQ_OB_PARAM ob;
|
|
} IQT_OB_PARAM;
|
|
|
|
typedef struct _IQT_NR_PARAM {
|
|
IQ_ID id;
|
|
IQ_NR_PARAM nr;
|
|
} IQT_NR_PARAM;
|
|
|
|
typedef struct _IQT_CFA_PARAM {
|
|
IQ_ID id;
|
|
IQ_CFA_PARAM cfa;
|
|
} IQT_CFA_PARAM;
|
|
|
|
typedef struct _IQT_VA_PARAM {
|
|
IQ_ID id;
|
|
IQ_VA_PARAM va;
|
|
} IQT_VA_PARAM;
|
|
|
|
typedef struct _IQT_GAMMA_PARAM {
|
|
IQ_ID id;
|
|
IQ_GAMMA_PARAM gamma;
|
|
} IQT_GAMMA_PARAM;
|
|
|
|
typedef struct _IQT_CCM_PARAM {
|
|
IQ_ID id;
|
|
IQ_CCM_PARAM ccm;
|
|
} IQT_CCM_PARAM;
|
|
|
|
typedef struct _IQT_COLOR_PARAM {
|
|
IQ_ID id;
|
|
IQ_COLOR_PARAM color;
|
|
} IQT_COLOR_PARAM;
|
|
|
|
typedef struct _IQT_CONTRAST_PARAM {
|
|
IQ_ID id;
|
|
IQ_CONTRAST_PARAM contrast;
|
|
} IQT_CONTRAST_PARAM;
|
|
|
|
typedef struct _IQT_EDGE_PARAM {
|
|
IQ_ID id;
|
|
IQ_EDGE_PARAM edge;
|
|
} IQT_EDGE_PARAM;
|
|
|
|
typedef struct _IQT_3DNR_PARAM {
|
|
IQ_ID id;
|
|
IQ_3DNR_PARAM _3dnr;
|
|
} IQT_3DNR_PARAM;
|
|
|
|
typedef struct _IQT_3DNR_MISC_PARAM {
|
|
IQ_ID id;
|
|
IQ_3DNR_MISC_PARAM _3dnr_misc;
|
|
} IQT_3DNR_MISC_PARAM;
|
|
|
|
typedef struct _IQT_DPC_PARAM {
|
|
IQ_ID id;
|
|
IQ_DPC_PARAM dpc;
|
|
} IQT_DPC_PARAM;
|
|
|
|
typedef struct _IQT_SHADING_PARAM {
|
|
IQ_ID id;
|
|
IQ_SHADING_PARAM shading;
|
|
} IQT_SHADING_PARAM;
|
|
|
|
typedef struct _IQT_SHADING_INTER_PARAM {
|
|
IQ_ID id;
|
|
IQ_SHADING_INTER_PARAM shading_inter;
|
|
} IQT_SHADING_INTER_PARAM;
|
|
|
|
typedef struct _IQT_SHADING_EXT_PARAM {
|
|
IQ_ID id;
|
|
IQ_SHADING_EXT_PARAM_IF shading_ext_if;
|
|
} IQT_SHADING_EXT_PARAM;
|
|
|
|
typedef struct _IQT_SHADING_VIG_EXT_PARAM {
|
|
IQ_ID id;
|
|
IQ_SHADING_VIG_EXT_PARAM shading_vig_ext;
|
|
} IQT_SHADING_VIG_EXT_PARAM;
|
|
|
|
typedef struct _IQT_LDC_PARAM {
|
|
IQ_ID id;
|
|
IQ_LDC_PARAM ldc;
|
|
} IQT_LDC_PARAM;
|
|
|
|
typedef struct _IQT_WDR_PARAM {
|
|
IQ_ID id;
|
|
IQ_WDR_PARAM wdr;
|
|
} IQT_WDR_PARAM;
|
|
|
|
typedef struct _IQT_SHDR_PARAM {
|
|
IQ_ID id;
|
|
IQ_SHDR_PARAM shdr;
|
|
} IQT_SHDR_PARAM;
|
|
|
|
typedef struct _IQT_SHDR_EXT_PARAM {
|
|
IQ_ID id;
|
|
IQ_SHDR_EXT_PARAM shdr_ext;
|
|
} IQT_SHDR_EXT_PARAM;
|
|
|
|
typedef struct _IQT_RGBIR_PARAM {
|
|
IQ_ID id;
|
|
IQ_RGBIR_PARAM rgbir;
|
|
} IQT_RGBIR_PARAM;
|
|
|
|
typedef struct _IQT_COMPANDING_PARAM {
|
|
IQ_ID id;
|
|
IQ_COMPANDING_PARAM companding;
|
|
} IQT_COMPANDING_PARAM;
|
|
|
|
typedef struct _IQT_POST_SHARPEN_PARAM {
|
|
IQ_ID id;
|
|
IQ_POST_SHARPEN_PARAM post_sharpen;
|
|
} IQT_POST_SHARPEN_PARAM;
|
|
|
|
typedef struct _IQT_LCA_SUB_RATIO_PARAM {
|
|
IQ_ID id;
|
|
IQ_LCA_SUB_RATIO_PARAM lca_sub_ratio;
|
|
} IQT_LCA_SUB_RATIO_PARAM;
|
|
|
|
typedef struct _IQT_RGBIR_ENH_PARAM {
|
|
IQ_ID id;
|
|
IQ_RGBIR_ENH_PARAM rgbir_enh;
|
|
} IQT_RGBIR_ENH_PARAM;
|
|
|
|
typedef struct _IQT_DR_LEVEL {
|
|
IQ_ID id;
|
|
UINT32 dr_level;
|
|
} IQT_DR_LEVEL;
|
|
|
|
typedef struct _IQT_RGBIR_ENH_ISO {
|
|
IQ_ID id;
|
|
UINT32 rgbir_enh_iso;
|
|
} IQT_RGBIR_ENH_ISO;
|
|
|
|
typedef struct _IQT_MD_PARAM {
|
|
IQ_ID id;
|
|
IQ_MD_PARAM md;
|
|
} IQT_MD_PARAM;
|
|
|
|
typedef struct _IQT_CST_PARAM {
|
|
IQ_ID id;
|
|
IQ_CST_PARAM cst;
|
|
} IQT_CST_PARAM;
|
|
|
|
typedef enum _IQT_STRIPE_TYPE {
|
|
IQT_STRIPE_AUTO = 0, //Auto calculation
|
|
IQT_STRIPE_MANUAL_2STRIPE = 2, //Force 2 stripe
|
|
IQT_STRIPE_MANUAL_3STRIPE = 3, //Force 3 stripe
|
|
IQT_STRIPE_MANUAL_4STRIPE = 4, //Force 4 stripe
|
|
IQT_STRIPE_MANUAL_5STRIPE = 5, //Force 5 stripe
|
|
IQT_STRIPE_MANUAL_6STRIPE = 6, //Force 6 stripe
|
|
IQT_STRIPE_MANUAL_7STRIPE = 7, //Force 7 stripe
|
|
IQT_STRIPE_MANUAL_8STRIPE = 8, //Force 8 stripe
|
|
IQT_STRIPE_MANUAL_9STRIPE = 9, //Force 9 stripe
|
|
ENUM_DUMMY4WORD(IQT_STRIPE_TYPE)
|
|
} IQT_STRIPE_TYPE;
|
|
|
|
typedef struct _IQT_STRIPE_PARAM {
|
|
IQ_ID id;
|
|
IQT_STRIPE_TYPE stripe_type;
|
|
} IQT_STRIPE_PARAM;
|
|
|
|
typedef struct _IQT_YCURVE_PARAM {
|
|
IQ_ID id;
|
|
IQ_YCURVE_PARAM ycurve;
|
|
} IQT_YCURVE_PARAM;
|
|
|
|
// NOTE: kernel
|
|
#if defined(__KERNEL__) || defined(__FREERTOS)
|
|
typedef struct {
|
|
IQ_ID id;
|
|
CTL_IPE_ISP_EDGEDBG edge_dbg;
|
|
} IQT_EDGE_DBG;
|
|
|
|
typedef struct {
|
|
IQ_ID id;
|
|
CTL_IME_ISP_TMNR_DBG _3dnr_dbg;
|
|
} IQT_3DNR_DBG;
|
|
#endif
|
|
// NOTE: kernel
|
|
|
|
typedef enum _IQT_SHDR_MODE_SEL {
|
|
IQT_SHDR_MODE_FUSION = 0,
|
|
IQT_SHDR_MODE_SHORT = 1,
|
|
IQT_SHDR_MODE_LONG = 3,
|
|
ENUM_DUMMY4WORD(IQT_SHDR_MODE_SEL)
|
|
} IQT_SHDR_MODE_SEL;
|
|
|
|
typedef struct {
|
|
IQ_ID id;
|
|
IQT_SHDR_MODE_SEL shdr_mode;
|
|
} IQT_SHDR_MODE;
|
|
|
|
// Struct of NNSC Parameter
|
|
typedef struct IQT_NNSC_INFO {
|
|
UINT32 size_tab[IQT_ITEM_NNSC_MAX - IQT_ITEM_NNSC_OFFSET][2];
|
|
} IQT_NNSC_INFO;
|
|
|
|
typedef struct _IQT_DARK_ENH_RATIO {
|
|
IQ_ID id;
|
|
IQ_NNSC_DARK_ENH_RATIO ratio;
|
|
} IQT_DARK_ENH_RATIO;
|
|
|
|
typedef struct _IQT_CONTRAST_ENH_RATIO {
|
|
IQ_ID id;
|
|
IQ_NNSC_CONTRAST_ENH_RATIO ratio;
|
|
} IQT_CONTRAST_ENH_RATIO;
|
|
|
|
typedef struct _IQT_GREEN_ENH_RATIO {
|
|
IQ_ID id;
|
|
IQ_NNSC_GREEN_ENH_RATIO ratio;
|
|
} IQT_GREEN_ENH_RATIO;
|
|
|
|
typedef struct _IQT_SKIN_ENH_RATIO {
|
|
IQ_ID id;
|
|
IQ_NNSC_SKIN_ENH_RATIO ratio;
|
|
} IQT_SKIN_ENH_RATIO;
|
|
|
|
#endif
|
|
|