TuyaOS
tkl_isp.h
浏览该文件的文档.
1
11#ifndef __TKL_ISP_H__
12#define __TKL_ISP_H__
13
14#include "tuya_cloud_types.h"
15#include "tkl_media.h"
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21typedef enum
22{
23 AUTO_MODE = 0,
24 DAY_MODE,
25 NIGHT_MODE,
26 COLOR_AUTO_MODE, // color mode - auto
27 COLOR_DAY_MODE, // color mode - day
28 COLOR_NIGHT_MODE, // color mode - night
29 MODE_MAX,
30}TKL_ISP_DN_MODE_E; // day and night mode
31
32typedef enum
33{
34 FLICKER_TYPE_DISABLE = 0, // disable antiflicker
35 FLICKER_TYPE_50HZ = 1, // 50Hz
36 FLICKER_TYPE_60HZ = 2, // 60Hz
37 FLICKER_TYPE_AUTO = 3, // auto mode
38 FLICKER_TYPE_MAX,
39}TKL_ISP_FLICKER_TYPE_E; // antiflicker mode
40
41typedef struct
42{
43 UINT32_T brightness; // brightness
44 UINT32_T saturation; // saturation
45 UINT32_T contrast; // contrast
46 UINT32_T sharpness; // sharpness
47 UINT32_T gamma; // gamma
48}TKL_ISP_FIG_STYLE_CONFIG_T; // user style config
49
50typedef struct
51{
52 UINT32_T awbMode; // AWB mode, 0-auto, 1-manual, 2-extend style(warm/cool/natural)
53 UINT32_T manualRGain; // manual - RGain
54 UINT32_T manualGGain; // manual - GGain
55 UINT32_T manualBGain; // manual - BGain
56 UINT32_T awbExtendStyle; /* extend style,0-2700K,1-3500K,2-4100K,3-5000K,4-6500K */
57}TKL_ISP_AWB_CONFIG_T; /* user AWB style config */
58
59typedef struct
60{
61 UINT32_T wdrMode; // WDR mode, 0-disable, 1-auto, 2-manual
62 UINT32_T autoWdrStr; // auto WDR strength
63 UINT32_T manualWdrStr; // manual WDR strength
64}TKL_ISP_WDR_CONFIG_T; // user WDR style config
65
66typedef struct
67{
68 UINT32_T denoiseMode; // denoise mode, 0-auto, 1-adjustable
69 UINT32_T tempDenoiseStr; // time domain denoise strength
70 UINT32_T specDenoiseStr; // space domain denoise strength
71}TKL_ISP_DENOISE_CONFIG_T; // user denoise config
72
73typedef struct
74{
75 UINT32_T flipMode; // flip, 0-disable, 1-enable
76 UINT32_T mirrorMode; // mirror, 0-disable, 1-enable
77}TKL_ISP_MIRROR_FLIP_CONFIG_T; // user mirror and flip config
78
79typedef struct
80{
81 INT32_T cur_irmode; // current dn mode
82 UINT32_T dayToNight; // day to night threshold
83 UINT32_T nightToDay; // night to day threshold
84 UINT32_T dnSwitchOffset; // day and night switch offset
85 FLOAT_T offsetR[2]; // offsetR,R[0] default 0.01
86 FLOAT_T offsetG[2]; // offsetG,G[0] default 0.01
87 FLOAT_T offsetB[2]; // offsetB,B[0] default 0.01
88 FLOAT_T coffR[6]; // coefficient - R
89 FLOAT_T coffG[6]; // coefficient - G
90 FLOAT_T coffB[6]; // coefficient - B
91}TKL_ISP_DN_SWITCH_CONFIG_T; // ADN config
92
93/*ISP数据格式*/
94typedef struct
95{
96 FLOAT_T coffR[6]; // coefficient - R
97 FLOAT_T coffG[6]; // coefficient - G
98 FLOAT_T coffB[6]; // coefficient - B
99 UINT16_T GlobalR; // global R mean
100 UINT16_T GlobalG; // global G mean
101 UINT16_T GlobalB; // global B mean
102 UINT16_T RGain; // RGain
103 UINT16_T BGain; // BGain
104 UINT16_T GrGain; // GrGain
105 UINT16_T GbGain; // GbGain
106 INT32_T ExpTime; // sensor exposure time
107 INT32_T AGain; // sensor analog gain
108 INT32_T DGain; // sensor digital gain
109 INT32_T ISPDGain; // ISP gain
110 INT32_T ISO; // sensor total gain, again*dgain*ispdgain
111 INT32_T OverExpFlag; // over exposure flag
112 FLOAT_T RGBComponent; // sum of RGB
113 FLOAT_T Illumination; // temporary illumination
114 FLOAT_T Exposure; // total exposure value
116
117typedef struct
118{
119 FLOAT_T R_Return;
120 FLOAT_T G_Return;
121 FLOAT_T B_Return;
123
124typedef struct
125{
126 UINT32_T smartirMode; // SMART-IR mode, 0-disable, 1-auto, 2-manual
127 UINT32_T smartirHtoL[6]; // high to low power threshold
128 UINT32_T smartirLtoH[6]; // low to high power threshold
129 UINT32_T smartirPower[6]; // power of every stages
130 UINT32_T manualSmartirStr; // manual smartit strength
131}TKL_ISP_SMARTIR_CONFIG_T; // SMART-IR config
132
133typedef struct
134{
135 UINT32_T shadingMode; // shading mode, 0-disable, 1-enable
136 UINT32_T shadingR[255];
137 UINT32_T shadingG[255];
138 UINT32_T shadingB[255];
139}TKL_ISP_SHADING_CONFIG_T; // shading config
140
141typedef struct
142{
143 UINT32_T defogMode; // defog mode, 0-disable, 1-enable
144 UINT32_T autoDefogStr; // defog strength
145}TKL_ISP_RESERVED_CONFIG_T; // defog config
146
147typedef struct
148{
149 UINT32_T ispLogEnable; // isp debug log, 0-disable, 1-enable
150 UINT32_T ispLogLevel; // isp debug level
151}TKL_ISP_DEBUG_CONFIG_T; // isp debug config
152
153typedef struct
154{
155 INT32_T irmode; // day and night mode
156 TKL_ISP_FIG_STYLE_CONFIG_T isp_fig_style_config; // user style config
157 TKL_ISP_AWB_CONFIG_T isp_awb_config; // user awb style config
158 TKL_ISP_WDR_CONFIG_T isp_wdr_config; // user wdr style config
159 TKL_ISP_DENOISE_CONFIG_T isp_denoise_config; // user denoise config
160 TKL_ISP_MIRROR_FLIP_CONFIG_T isp_flip_config; // user mirror and flip config
161 TKL_ISP_DN_SWITCH_CONFIG_T isp_dn_switch_config; // ADN config
162 TKL_ISP_SMARTIR_CONFIG_T isp_smartir_config; // SMART-IR config
163 TKL_ISP_SHADING_CONFIG_T isp_shading_config; // shading config
164 TKL_ISP_RESERVED_CONFIG_T isp_reserved_config; // reserved config
165}TKL_ISP_PARAM_INFO_T; // isp param
166
167typedef struct
168{
169 /*AWB*/
170 INT32_T isAwbStable;
171 UINT16_T colorTemp;
172 UINT16_T RGain;
173 UINT16_T BGain;
174 /*AE*/
175 INT32_T isAeStable;
176 UINT32_T US;
177 UINT32_T SensorGain;
178 UINT32_T ISPGain;
179 UINT32_T BV;
180 UINT32_T SceneTarget;
181 /*ADN*/
182 UINT32_T dayToNight;
183 UINT32_T nightToDay;
184 UINT32_T Illumination;
185}TKL_ISP_LOG_INFO_T; // isp debug log info
186
194OPERATE_RET tkl_vi_isp_load_isp_file(TKL_ISP_DN_MODE_E irmode);
195
204OPERATE_RET tkl_vi_isp_get_antiflicker(TKL_VI_CHN_E chn, TKL_ISP_FLICKER_TYPE_E *eAntiFlicker);
205
214OPERATE_RET tkl_vi_isp_set_antiflicker(TKL_VI_CHN_E chn, TKL_ISP_FLICKER_TYPE_E eAntiFlicker);
215
224OPERATE_RET tkl_vi_isp_set_color_to_gray(TKL_VI_CHN_E chn, TKL_ISP_DN_MODE_E irmode);
225
235OPERATE_RET tkl_vi_dnswitch_get_illumin(TKL_VI_CHN_E chn, TKL_ISP_DN_MODE_E irmode, INT32_T *illumin_result);
236
245OPERATE_RET tkl_vi_isp_get_sensor_fps(TKL_VI_CHN_E chn, INT32_T *sensor_fps);
246
255OPERATE_RET tkl_vi_isp_set_sensor_fps(TKL_VI_CHN_E chn, INT32_T sensor_fps);
256
265OPERATE_RET tkl_vi_isp_get_param(TKL_VI_CHN_E chn, TKL_ISP_LOG_INFO_T *pstISPParam);
266
267#ifdef __cplusplus
268} // extern "C"
269#endif
270
271#endif
Definition: tkl_isp.h:51
Definition: tkl_isp.h:148
Definition: tkl_isp.h:67
Definition: tkl_isp.h:118
Definition: tkl_isp.h:95
Definition: tkl_isp.h:80
Definition: tkl_isp.h:42
Definition: tkl_isp.h:168
Definition: tkl_isp.h:74
Definition: tkl_isp.h:154
Definition: tkl_isp.h:142
Definition: tkl_isp.h:134
Definition: tkl_isp.h:125
Definition: tkl_isp.h:60
OPERATE_RET tkl_vi_isp_set_color_to_gray(TKL_VI_CHN_E chn, TKL_ISP_DN_MODE_E irmode)
vi isp set color to gray
OPERATE_RET tkl_vi_isp_load_isp_file(TKL_ISP_DN_MODE_E irmode)
vi load isp file
OPERATE_RET tkl_vi_isp_get_antiflicker(TKL_VI_CHN_E chn, TKL_ISP_FLICKER_TYPE_E *eAntiFlicker)
vi isp get antiflicker
OPERATE_RET tkl_vi_isp_get_sensor_fps(TKL_VI_CHN_E chn, INT32_T *sensor_fps)
vi isp get sensor fps
OPERATE_RET tkl_vi_isp_set_antiflicker(TKL_VI_CHN_E chn, TKL_ISP_FLICKER_TYPE_E eAntiFlicker)
vi isp set antiflicker
OPERATE_RET tkl_vi_isp_set_sensor_fps(TKL_VI_CHN_E chn, INT32_T sensor_fps)
vi isp set sensor fps
OPERATE_RET tkl_vi_dnswitch_get_illumin(TKL_VI_CHN_E chn, TKL_ISP_DN_MODE_E irmode, INT32_T *illumin_result)
vi dnswitch get illumin
OPERATE_RET tkl_vi_isp_get_param(TKL_VI_CHN_E chn, TKL_ISP_LOG_INFO_T *pstISPParam)
vi isp get param
Audio and video generic type definition header file