aboutsummaryrefslogtreecommitdiff
path: root/decoder/drc_src/impd_drc_filter_bank.h
diff options
context:
space:
mode:
Diffstat (limited to 'decoder/drc_src/impd_drc_filter_bank.h')
-rw-r--r--decoder/drc_src/impd_drc_filter_bank.h175
1 files changed, 80 insertions, 95 deletions
diff --git a/decoder/drc_src/impd_drc_filter_bank.h b/decoder/drc_src/impd_drc_filter_bank.h
index d0bf66b..331f0b8 100644
--- a/decoder/drc_src/impd_drc_filter_bank.h
+++ b/decoder/drc_src/impd_drc_filter_bank.h
@@ -21,145 +21,130 @@
#define IMPD_DRC_FILTER_BANK_H
#define FILTER_BANK_PARAMETER_COUNT 16
-#define CASCADE_ALLPASS_COUNT_MAX 9
-#define QMF_NUM_FILT_BANDS 64
-#define QMF_FILT_RESOLUTION 64
+#define CASCADE_ALLPASS_COUNT_MAX 9
+#define QMF_NUM_FILT_BANDS 64
+#define QMF_FILT_RESOLUTION 64
+typedef struct ia_drc_qmf_filt_struct {
+ FLOAT64* ana_buff;
+ FLOAT64* syn_buff;
+ FLOAT64 ana_tab_real[QMF_NUM_FILT_BANDS][2 * QMF_NUM_FILT_BANDS];
+ FLOAT64 ana_tab_imag[QMF_NUM_FILT_BANDS][2 * QMF_NUM_FILT_BANDS];
+ FLOAT64 syn_tab_real[2 * QMF_NUM_FILT_BANDS][QMF_NUM_FILT_BANDS];
+ FLOAT64 syn_tab_imag[2 * QMF_NUM_FILT_BANDS][QMF_NUM_FILT_BANDS];
-typedef struct ia_drc_qmf_filt_struct
-{
-
-FLOAT64* ana_buff;
-FLOAT64* syn_buff;
-FLOAT64 ana_tab_real[QMF_NUM_FILT_BANDS][2*QMF_NUM_FILT_BANDS];
-FLOAT64 ana_tab_imag[QMF_NUM_FILT_BANDS][2*QMF_NUM_FILT_BANDS];
-FLOAT64 syn_tab_real[2*QMF_NUM_FILT_BANDS][QMF_NUM_FILT_BANDS];
-FLOAT64 syn_tab_imag[2*QMF_NUM_FILT_BANDS][QMF_NUM_FILT_BANDS];
-
-}ia_drc_qmf_filt_struct;
+} ia_drc_qmf_filt_struct;
typedef struct {
- FLOAT32 f_cross_norm;
- FLOAT32 gamma;
- FLOAT32 delta;
+ FLOAT32 f_cross_norm;
+ FLOAT32 gamma;
+ FLOAT32 delta;
} ia_filter_bank_params_struct;
-
typedef struct {
- FLOAT32 s00;
- FLOAT32 s01;
- FLOAT32 s10;
- FLOAT32 s11;
+ FLOAT32 s00;
+ FLOAT32 s01;
+ FLOAT32 s10;
+ FLOAT32 s11;
} ia_lr_filter_state_struct;
-
typedef struct {
- FLOAT32 s0;
- FLOAT32 s1;
+ FLOAT32 s0;
+ FLOAT32 s1;
} ia_all_pass_filter_state_struct;
typedef struct {
- FLOAT32 a0;
- FLOAT32 a1;
- FLOAT32 a2;
- FLOAT32 b0;
- FLOAT32 b1;
- FLOAT32 b2;
- FLOAT32 x_p[MAX_CHANNEL_COUNT*2];
- FLOAT32 y_p[MAX_CHANNEL_COUNT*2];
+ FLOAT32 a0;
+ FLOAT32 a1;
+ FLOAT32 a2;
+ FLOAT32 b0;
+ FLOAT32 b1;
+ FLOAT32 b2;
+ FLOAT32 x_p[MAX_CHANNEL_COUNT * 2];
+ FLOAT32 y_p[MAX_CHANNEL_COUNT * 2];
} ia_iir_filter_struct;
typedef struct {
- ia_iir_filter_struct low_pass;
- ia_iir_filter_struct high_pass;
+ ia_iir_filter_struct low_pass;
+ ia_iir_filter_struct high_pass;
} ia_two_band_filt_struct;
typedef struct {
- ia_iir_filter_struct str_low_pass_stage_1;
- ia_iir_filter_struct str_high_pass_stage_1;
- ia_iir_filter_struct str_low_pass_stage_2;
- ia_iir_filter_struct str_high_pass_stage_2;
- ia_iir_filter_struct str_all_pass_stage_2;
+ ia_iir_filter_struct str_low_pass_stage_1;
+ ia_iir_filter_struct str_high_pass_stage_1;
+ ia_iir_filter_struct str_low_pass_stage_2;
+ ia_iir_filter_struct str_high_pass_stage_2;
+ ia_iir_filter_struct str_all_pass_stage_2;
} ia_three_band_filt_struct;
typedef struct {
- ia_iir_filter_struct str_low_pass_stage_1;
- ia_iir_filter_struct str_high_pass_stage_1;
- ia_iir_filter_struct str_all_pass_stage_2_high;
- ia_iir_filter_struct str_all_pass_stage_2_low;
- ia_iir_filter_struct str_low_pass_stage_3_high;
- ia_iir_filter_struct str_high_pass_stage_3_high;
- ia_iir_filter_struct str_low_pass_stage_3_low;
- ia_iir_filter_struct str_high_pass_stage_3_low;
+ ia_iir_filter_struct str_low_pass_stage_1;
+ ia_iir_filter_struct str_high_pass_stage_1;
+ ia_iir_filter_struct str_all_pass_stage_2_high;
+ ia_iir_filter_struct str_all_pass_stage_2_low;
+ ia_iir_filter_struct str_low_pass_stage_3_high;
+ ia_iir_filter_struct str_high_pass_stage_3_high;
+ ia_iir_filter_struct str_low_pass_stage_3_low;
+ ia_iir_filter_struct str_high_pass_stage_3_low;
} ia_four_band_filt_struct;
typedef struct {
- ia_iir_filter_struct str_all_pass_stage;
-} ia_all_pass_filter_sturct;
+ ia_iir_filter_struct str_all_pass_stage;
+} ia_all_pass_filter_sturct;
typedef struct {
- ia_all_pass_filter_sturct str_all_pass_cascade_filter[CASCADE_ALLPASS_COUNT_MAX];
- WORD32 num_filter;
-} ia_all_pass_cascade_struct;
+ ia_all_pass_filter_sturct
+ str_all_pass_cascade_filter[CASCADE_ALLPASS_COUNT_MAX];
+ WORD32 num_filter;
+} ia_all_pass_cascade_struct;
typedef struct {
- WORD32 num_bands;
- WORD32 complexity;
- ia_two_band_filt_struct str_two_band_bank;
- ia_three_band_filt_struct str_three_band_bank;
- ia_four_band_filt_struct str_four_band_bank;
- ia_all_pass_cascade_struct str_all_pass_cascade;
+ WORD32 num_bands;
+ WORD32 complexity;
+ ia_two_band_filt_struct str_two_band_bank;
+ ia_three_band_filt_struct str_three_band_bank;
+ ia_four_band_filt_struct str_four_band_bank;
+ ia_all_pass_cascade_struct str_all_pass_cascade;
} ia_drc_filter_bank_struct;
typedef struct {
- WORD32 nfilter_banks;
- WORD32 num_ph_align_ch_groups;
- WORD32 complexity;
- ia_drc_filter_bank_struct str_drc_filter_bank[8];
+ WORD32 nfilter_banks;
+ WORD32 num_ph_align_ch_groups;
+ WORD32 complexity;
+ ia_drc_filter_bank_struct str_drc_filter_bank[8];
} ia_filter_banks_struct;
-
WORD32
-impd_init_all_filter_banks( ia_uni_drc_coeffs_struct* str_p_loc_drc_coefficients_uni_drc,
- ia_drc_instructions_struct* str_drc_instruction_str,
- ia_filter_banks_struct* ia_filter_banks_struct);
+impd_init_all_filter_banks(
+ ia_uni_drc_coeffs_struct* str_p_loc_drc_coefficients_uni_drc,
+ ia_drc_instructions_struct* str_drc_instruction_str,
+ ia_filter_banks_struct* ia_filter_banks_struct);
VOID impd_two_band_filter_process(ia_two_band_filt_struct* str_two_band_bank,
- WORD32 c,
- WORD32 size,
- FLOAT32* audio_in,
- FLOAT32* audio_out[]);
+ WORD32 c, WORD32 size, FLOAT32* audio_in,
+ FLOAT32* audio_out[]);
-VOID impd_three_band_filter_process(ia_three_band_filt_struct* str_three_band_bank,
- WORD32 c,
- WORD32 size,
- FLOAT32* audio_in,
- FLOAT32* audio_out[]);
+VOID impd_three_band_filter_process(
+ ia_three_band_filt_struct* str_three_band_bank, WORD32 c, WORD32 size,
+ FLOAT32* audio_in, FLOAT32* audio_out[]);
VOID impd_four_band_filter_process(ia_four_band_filt_struct* str_four_band_bank,
- WORD32 c,
- WORD32 size,
- FLOAT32* audio_in,
- FLOAT32* audio_out[]);
+ WORD32 c, WORD32 size, FLOAT32* audio_in,
+ FLOAT32* audio_out[]);
-VOID impd_all_pass_cascade_process(ia_all_pass_cascade_struct *str_all_pass_cascade,
- WORD32 c,
- WORD32 size,
- FLOAT32* audio_in);
+VOID impd_all_pass_cascade_process(
+ ia_all_pass_cascade_struct* str_all_pass_cascade, WORD32 c, WORD32 size,
+ FLOAT32* audio_in);
WORD32
-impd_shape_filt_block_init(ia_shape_filter_block_params_struct* pstr_shape_filter_block_params,
- shape_filter_block* shape_filter_block);
+impd_shape_filt_block_init(
+ ia_shape_filter_block_params_struct* pstr_shape_filter_block_params,
+ shape_filter_block* shape_filter_block);
WORD32
impd_shape_filt_block_adapt(const FLOAT32 drc_gain,
- shape_filter_block* shape_filter_block);
-
-
+ shape_filter_block* shape_filter_block);
-WORD32 impd_shape_filt_block_time_process(shape_filter_block* shape_filter_block,
- FLOAT32* drc_gain,
- const WORD32 channel,
- FLOAT32 *audio_in,
- WORD32 start,
- WORD32 end);
+WORD32 impd_shape_filt_block_time_process(
+ shape_filter_block* shape_filter_block, FLOAT32* drc_gain,
+ const WORD32 channel, FLOAT32* audio_in, WORD32 start, WORD32 end);
#endif