114 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef _NNSC_LIB_
 | |
| #define _NNSC_LIB_
 | |
| 
 | |
| #include "hd_type.h"
 | |
| 
 | |
| //=============================================================================
 | |
| // define
 | |
| //=============================================================================
 | |
| #define NNSC_PARAM_SENSITIVE_BASE 5
 | |
| #define NNSC_PARAM_SENSITIVE_MAX  10
 | |
| #define NNSC_PARAM_STRENGTH_BASE  100
 | |
| #define NNSC_PARAM_STRENGTH_MAX   200
 | |
| 
 | |
| #define NNSC_CA_MAX_WINNUM        (32 * 32)
 | |
| #define NNSC_CA_MAX_NUM           ((1 << 12) -1)
 | |
| 
 | |
| #define NNSC_DBG_TYPE_NULL        0x00000000
 | |
| #define NNSC_DBG_TYPE_MAIN        0x00000001
 | |
| #define NNSC_DBG_TYPE_SCD         0x00000002
 | |
| #define NNSC_DBG_TYPE_AE          0x00000010
 | |
| #define NNSC_DBG_TYPE_AWB         0x00000020
 | |
| #define NNSC_DBG_TYPE_IQ          0x00000040
 | |
| #define NNSC_DBG_TYPE_PARAM       0x00000100
 | |
| #define NNSC_DBG_TYPE_ALL         0xFFFFFFFF
 | |
| 
 | |
| //=============================================================================
 | |
| // struct & enum definition
 | |
| //=============================================================================
 | |
| typedef enum _NNSC_SCORE_ITEM {
 | |
| 	NNSC_SCORE_BACKLIGHT_HUMAN,
 | |
| 	NNSC_SCORE_BACKLIGHT,
 | |
| 	NNSC_SCORE_FOGGY,
 | |
| 	NNSC_SCORE_GRASS_A,
 | |
| 	NNSC_SCORE_GRASS_B,
 | |
| 	NNSC_SCORE_HAND_COLOR,
 | |
| 	NNSC_SCORE_NORMAL,
 | |
| 	NNSC_SCORE_SNOWFIELD,
 | |
| 	NNSC_SCORE_MAX_NUM,
 | |
| 	ENUM_DUMMY4WORD(NNSC_SCORE_ITEM)
 | |
| } NNSC_SCORE_ITEM;
 | |
| 
 | |
| typedef enum _NNSC_TYPE {
 | |
| 	NNSC_TYPE_BACKLIGHT,
 | |
| 	NNSC_TYPE_FOGGY,
 | |
| 	NNSC_TYPE_GRASS,
 | |
| 	NNSC_TYPE_SKIN_COLOR,
 | |
| 	NNSC_TYPE_SNOWFIELD,
 | |
| 	NNSC_TYPE_MAX_NUM,
 | |
| 	ENUM_DUMMY4WORD(NNSC_TYPE)
 | |
| } NNSC_TYPE;
 | |
| 
 | |
| typedef struct _NNSC_TUNE_PARAM {
 | |
| 	UINT32 sensitive;                           ///< range : 0~10, 0 donot detect, 5 normal, 10 sensitive
 | |
| 	UINT32 adj_strength;                        ///< range : 0~200, 0 = max sun tanning, 100 = no adjust, 200 = max whitening for SKIN_COLOR
 | |
| 												///<                0 = no adjust, 100 = 1x adjust, 200 = max adjust for others
 | |
| } NNSC_TUNE_PARAM;
 | |
| 
 | |
| typedef struct _NNSC_SCORE {
 | |
| 	UINT32 score[NNSC_SCORE_MAX_NUM];
 | |
| } NNSC_SCORE;
 | |
| 
 | |
| typedef struct _NNSC_PARAM {
 | |
| 	NNSC_TUNE_PARAM param[NNSC_TYPE_MAX_NUM];
 | |
| } NNSC_PARAM;
 | |
| 
 | |
| typedef struct _NNSC_ADJ {
 | |
| 	UINT32 exp_ratio;                           // range : 0~100, AE implement
 | |
| 	BOOL green_remove;                          // range : 0~1, AWB implement
 | |
| 	BOOL skin_remove;                           // range : 0~1, AWB implement
 | |
| 	UINT32 dark_enh_ratio;                      // range : 0~100, IQ implement
 | |
| 	UINT32 contrast_enh_ratio;                  // range : 0~100, IQ implement
 | |
| 	UINT32 green_enh_ratio;                     // range : 0~100, IQ implement
 | |
| 	UINT32 skin_enh_ratio;                      // range : 0~100, IQ implement
 | |
| } NNSC_ADJ;
 | |
| 
 | |
| typedef struct _NNSC_TEST {
 | |
| 	BOOL enable;
 | |
| 	NNSC_TYPE mode_type;
 | |
| } NNSC_TEST;
 | |
| 
 | |
| typedef struct _SCD_CONTROL {
 | |
| 	BOOL enable;
 | |
| 	BOOL auto_enable;
 | |
| 	BOOL manual_stable;
 | |
| } SCD_CONTROL;
 | |
| 
 | |
| typedef struct _SCD_PARAM {
 | |
| 	UINT32 stable_sensitive;                    // range : 0~10, tolerance count number threshold for stable status
 | |
| 	UINT32 change_sensitive;                    // range : 0~10, tolerance count number threshold for changing status
 | |
| 	UINT32 g_diff_num_th;                       // range : 0~1024, block number threshold of cnhaging block
 | |
| } SCD_PARAM;
 | |
| 
 | |
| typedef struct _SCD_STATISTICS {
 | |
| 	UINT16 ca_r[NNSC_CA_MAX_WINNUM];
 | |
| 	UINT16 ca_g[NNSC_CA_MAX_WINNUM];
 | |
| 	UINT16 ca_b[NNSC_CA_MAX_WINNUM];
 | |
| } SCD_STATISTICS;
 | |
| 
 | |
| //=============================================================================
 | |
| // extern functions
 | |
| //=============================================================================
 | |
| extern HD_RESULT nnsc_adj_cal(NNSC_ADJ *adj_ratio);
 | |
| extern UINT32 nnsc_get_version(void);
 | |
| extern HD_RESULT nnsc_set_score(NNSC_SCORE *score);
 | |
| extern HD_RESULT nnsc_set_param(NNSC_PARAM *param);
 | |
| extern HD_RESULT nnsc_set_test_mode(NNSC_TEST *test);
 | |
| extern HD_RESULT nnsc_set_dbg_out(UINT32 type);
 | |
| extern HD_RESULT nnsc_set_scd_control(SCD_CONTROL *control);
 | |
| extern HD_RESULT nnsc_set_scd_param(SCD_PARAM *param);
 | |
| extern HD_RESULT nnsc_set_scd_statistic(SCD_STATISTICS *statis);
 | |
| 
 | |
| #endif
 | |
| 
 | 
