11static int32_t div_lookup[65537];
12static const int32_t div_Q_factor = 1073741824;
14static inline void div_lookup_generator() {
15 for (
int i = 1; i <= 32768; ++i) {
16 int32_t recip = (int32_t)(div_Q_factor / i);
17 div_lookup[32768 + i] = recip;
18 div_lookup[32768 - i] = 0 - recip;
60#define NUM_BUFS_ADM 30
64#define M_PI 3.14159265358979323846264338327
68#ifndef DEFAULT_ADM_ENHN_GAIN_LIMIT
69#define DEFAULT_ADM_ENHN_GAIN_LIMIT (100.0)
72#ifndef DEFAULT_ADM_NORM_VIEW_DIST
73#define DEFAULT_ADM_NORM_VIEW_DIST (3.0)
76#ifndef DEFAULT_ADM_REF_DISPLAY_HEIGHT
77#define DEFAULT_ADM_REF_DISPLAY_HEIGHT (1080)
80#ifndef ADM_BORDER_FACTOR
81#define ADM_BORDER_FACTOR (0.1)
85#ifndef DEFAULT_ADM_NOISE_WEIGHT
86#define DEFAULT_ADM_NOISE_WEIGHT (0.03125)
90#ifndef DEFAULT_ADM_CSF_SCALE
91#define DEFAULT_ADM_CSF_SCALE (1.0)
95#ifndef DEFAULT_ADM_CSF_DIAG_SCALE
96#define DEFAULT_ADM_CSF_DIAG_SCALE (1.0)
100#ifndef DEFAULT_ADM_MIN_VAL
101#define DEFAULT_ADM_MIN_VAL (0.0)
113#ifndef DEFAULT_ADM_CSF_MODE
114#define DEFAULT_ADM_CSF_MODE (ADM_CSF_MODE_WATSON97)
118#ifndef DEFAULT_ADM_CSF_LUM
119#define DEFAULT_ADM_CSF_LUM (100.0)
122#define DIVS(n, d) ((n) / (d))
124static const int16_t dwt2_db2_coeffs_lo[10] = {15826, 27411, 7345, -4240};
125static const int16_t dwt2_db2_coeffs_hi[10] = {-4240, -7345, 27411, -15826};
127static const int32_t dwt2_db2_coeffs_lo_sum = 46342;
128static const int32_t dwt2_db2_coeffs_hi_sum = 0;
131#define ONE_BY_15 8738
135#define I4_ONE_BY_15 286331153
174 {.a = 0.495, .k = 0.466, .f0 = 0.401, .g = {1.501, 1.0, 0.534, 1.0}},
175 {.a = 1.633, .k = 0.353, .f0 = 0.209, .g = {1.520, 1.0, 0.502, 1.0}},
176 {.a = 0.944, .k = 0.521, .f0 = 0.404, .g = {1.868, 1.0, 0.516, 1.0}}};
188static const float dwt_7_9_basis_function_amplitudes[6][4] = {
189 {0.62171, 0.67234, 0.72709, 0.67234},
190 {0.34537, 0.41317, 0.49428, 0.41317},
191 {0.18004, 0.22727, 0.28688, 0.22727},
192 {0.091401, 0.11792, 0.15214, 0.11792},
193 {0.045943, 0.059758, 0.077727, 0.059758},
194 {0.023013, 0.030018, 0.039156, 0.030018}};
ADM_CSF_MODE
Definition adm_options.h:55
@ ADM_CSF_MODE_WATSON97
Definition adm_options.h:56
@ ADM_CSF_MODE_BARTEN
Definition adm_options.h:57
@ ADM_CSF_MODE_BARTEN_WATSON_BLEND_MAE
Definition integer_adm.h:109
@ ADM_CSF_MODE_BARTEN_WATSON_BLEND
Definition integer_adm.h:108
Definition integer_adm.h:36
i4_adm_dwt_band_t i4_decouple_r
Definition integer_adm.h:53
adm_dwt_band_t decouple_r
Definition integer_adm.h:46
i4_adm_dwt_band_t i4_decouple_a
Definition integer_adm.h:54
adm_dwt_band_t csf_f
Definition integer_adm.h:49
i4_adm_dwt_band_t i4_csf_f
Definition integer_adm.h:56
adm_dwt_band_t ref_dwt2
Definition integer_adm.h:44
adm_dwt_band_t dis_dwt2
Definition integer_adm.h:45
void * buf_y_orig
Definition integer_adm.h:41
i4_adm_dwt_band_t i4_csf_a
Definition integer_adm.h:55
void * data_buf
Definition integer_adm.h:38
void * tmp_ref
Definition integer_adm.h:39
int * ind_y[4]
Definition integer_adm.h:42
size_t ind_size_x
Definition integer_adm.h:37
adm_dwt_band_t decouple_a
Definition integer_adm.h:47
i4_adm_dwt_band_t i4_ref_dwt2
Definition integer_adm.h:51
int * ind_x[4]
Definition integer_adm.h:42
void * buf_x_orig
Definition integer_adm.h:40
i4_adm_dwt_band_t i4_dis_dwt2
Definition integer_adm.h:52
adm_dwt_band_t csf_a
Definition integer_adm.h:48
size_t ind_size_y
Definition integer_adm.h:37
Definition integer_adm.h:22
int16_t * band_v
Definition integer_adm.h:24
int16_t * band_h
Definition integer_adm.h:25
int16_t * band_a
Definition integer_adm.h:23
int16_t * band_d
Definition integer_adm.h:26
Definition adm_tools.h:300
float g[4]
Definition adm_tools.h:304
float f0
Definition adm_tools.h:303
float a
Definition adm_tools.h:301
float k
Definition adm_tools.h:302
Definition integer_adm.h:29
int32_t * band_a
Definition integer_adm.h:30
int32_t * band_d
Definition integer_adm.h:33
int32_t * band_v
Definition integer_adm.h:31
int32_t * band_h
Definition integer_adm.h:32