1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
  | #define ADRC_Y_NUM             17 
 |    
 |    
 |  typedef struct AdrcGain_s { 
 |      // M4_ARRAY_DESC("EnvLv", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(3), M4_DYNAMIC(1)) 
 |      float*            EnvLv; 
 |      int EnvLv_len; 
 |      // M4_ARRAY_DESC("DrcGain", "f32", M4_SIZE(1,100), M4_RANGE(1,8), "4",M4_DIGIT(2), M4_DYNAMIC(1)) 
 |      float*            DrcGain; //sw_drc_gain 
 |      int DrcGain_len; 
 |      // M4_ARRAY_DESC("Alpha", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0.2",M4_DIGIT(2), M4_DYNAMIC(1)) 
 |      float*            Alpha; 
 |      int Alpha_len; 
 |      // M4_ARRAY_DESC("Clip", "f32", M4_SIZE(1,100), M4_RANGE(0,64), "16",M4_DIGIT(2), M4_DYNAMIC(1)) 
 |      float*            Clip;  //sw_drc_position, step: 1/255 
 |      int Clip_len; 
 |  } AdrcGain_t; 
 |    
 |  typedef struct HighLight_s { 
 |      // M4_ARRAY_DESC("EnvLv", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(3), M4_DYNAMIC(1)) 
 |      float*            EnvLv; 
 |      int EnvLv_len; 
 |      // M4_ARRAY_DESC("Strength", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "1",M4_DIGIT(2), M4_DYNAMIC(1)) 
 |      float*            Strength;  //sw_drc_weig_maxl,  range[0,1], step 1/16 
 |      int Strength_len; 
 |  } HighLight_t; 
 |    
 |  typedef struct LocalData_s 
 |  { 
 |      // M4_ARRAY_DESC("EnvLv", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(2), M4_DYNAMIC(1)) 
 |      float*            EnvLv; 
 |      int EnvLv_len; 
 |      // M4_ARRAY_DESC("LocalWeit", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "1",M4_DIGIT(2), M4_DYNAMIC(1)) 
 |      float*            LocalWeit;  //sw_drc_weig_bilat, range[0 , 1], step: 1/16 
 |      int LocalWeit_len; 
 |      // M4_ARRAY_DESC("GlobalContrast", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(3), M4_DYNAMIC(1)) 
 |      float*            GlobalContrast; //sw_drc_lpdetail_ratio, setp 1/4096 
 |      int GlobalContrast_len; 
 |      // M4_ARRAY_DESC("LoLitContrast", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(3), M4_DYNAMIC(1)) 
 |      float*            LoLitContrast; //sw_drc_hpdetail_ratio, setp 1/4096 
 |      int LoLitContrast_len; 
 |  } LocalData_t; 
 |    
 |  typedef struct local_s { 
 |      // M4_ARRAY_TABLE_DESC("LocalTMOData", "array_table_ui", "none") 
 |      LocalData_t LocalTMOData; 
 |      // M4_NUMBER_DESC("curPixWeit", "f32", M4_RANGE(0,1), "0.37", M4_DIGIT(3)) 
 |      float curPixWeit; //sw_drc_weicur_pix,  range[0,1],step: 1/255 
 |      // M4_NUMBER_DESC("preFrameWeit", "f32", M4_RANGE(0,1), "1.0", M4_DIGIT(3)) 
 |      float preFrameWeit;//sw_adrc_weipre_frame ,range[0,1],step: 1/255 
 |      // M4_NUMBER_DESC("Range_force_sgm", "f32", M4_RANGE(0,1), "0.0", M4_DIGIT(4)) 
 |      float Range_force_sgm; //sw_drc_force_sgm_inv0 ,range[0,1], step 1/8191 
 |      // M4_NUMBER_DESC("Range_sgm_cur", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4)) 
 |      float Range_sgm_cur; //sw_drc_range_sgm_inv1, range[0,1], step 1/8191 
 |      // M4_NUMBER_DESC("Range_sgm_pre", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4)) 
 |      float Range_sgm_pre; //sw_drc_range_sgm_inv0,range[0,1], step 1/8191 
 |      // M4_NUMBER_DESC("Space_sgm_cur", "u16", M4_RANGE(0,4095), "4068", M4_DIGIT(0)) 
 |      int Space_sgm_cur; //sw_drc_space_sgm_inv1 
 |      // M4_NUMBER_DESC("Space_sgm_pre", "u16", M4_RANGE(0,4095), "3968", M4_DIGIT(0)) 
 |      int Space_sgm_pre; //sw_drc_space_sgm_inv0 
 |  } local_t; 
 |    
 |  typedef enum CompressMode_e { 
 |      COMPRESS_AUTO     = 0, 
 |      COMPRESS_MANUAL   = 1, 
 |  } CompressMode_t; 
 |    
 |  typedef struct Compress_s { 
 |      // M4_ENUM_DESC("Mode", "CompressMode_t", "COMPRESS_AUTO") 
 |      CompressMode_t Mode; 
 |      // M4_ARRAY_MARK_DESC("Manual_curve", "u32", M4_SIZE(1,17),  M4_RANGE(0, 8192), "[0, 558, 1087, 1588, 2063, 2515, 2944, 3353, 3744, 4473, 5139, 5751, 6316, 6838, 7322, 7772, 8192]", M4_DIGIT(0), M4_DYNAMIC(0), "curve_table") 
 |      uint16_t       Manual_curve[ADRC_Y_NUM]; 
 |  } Compress_t; 
 |    
 |  typedef struct CalibDbV2_Adrc_s { 
 |      // M4_BOOL_DESC("Enable", "1") 
 |      bool Enable; 
 |      // M4_ARRAY_TABLE_DESC("DrcGain", "array_table_ui", "none") 
 |      AdrcGain_t DrcGain; 
 |      // M4_ARRAY_TABLE_DESC("HiLight", "array_table_ui", "none") 
 |      HighLight_t HiLight; 
 |      // M4_STRUCT_DESC("LocalTMOSetting", "normal_ui_style") 
 |      local_t LocalTMOSetting; 
 |      // M4_STRUCT_DESC("CompressSetting", "normal_ui_style") 
 |      Compress_t CompressSetting; 
 |      // M4_ARRAY_DESC("Scale_y", "u16", M4_SIZE(1,17),  M4_RANGE(0, 2048), "[0,2,20,76,193,381,631,772,919,1066,1211,1479,1700,1863,1968,2024,2048]", M4_DIGIT(0), M4_DYNAMIC(0)) 
 |      int Scale_y[ADRC_Y_NUM]; 
 |      // M4_NUMBER_DESC("ByPassThr", "f32", M4_RANGE(0,1), "0", M4_DIGIT(4)) 
 |      float ByPassThr; 
 |      // M4_NUMBER_DESC("Edge_Weit", "f32",  M4_RANGE(0,1), "1",M4_DIGIT(3)) 
 |      float Edge_Weit; //sw_drc_edge_scl, range[0,1], step 1/255 
 |      // M4_BOOL_DESC("OutPutLongFrame", "0") 
 |      bool  OutPutLongFrame;  //sw_drc_min_ogain 
 |      // M4_NUMBER_DESC("IIR_frame", "u8", M4_RANGE(1,1000), "16", M4_DIGIT(0)) 
 |      int IIR_frame; //sw_drc_iir_frame, range [1, 1000] 
 |      // M4_NUMBER_DESC("Tolerance", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3)) 
 |      float                  Tolerance; 
 |      // M4_NUMBER_DESC("damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(3)) 
 |      float damp; 
 |  } CalibDbV2_Adrc_t; 
 |    
 |  typedef struct CalibDbV2_drc_s { 
 |      // M4_STRUCT_DESC("DrcTuningPara", "normal_ui_style") 
 |      CalibDbV2_Adrc_t DrcTuningPara; 
 |  } CalibDbV2_drc_t; 
 |    
 |  #pragma once 
 |  
  |