Loading apps/encoder.c +14 −0 Original line number Diff line number Diff line Loading @@ -195,6 +195,9 @@ int main( #ifdef DEBUG_SBA int16_t numTransportChannels = 1; #endif #ifdef NONBE_FIX_1165_APPLY_LIMITER_ON_ENCODER_DMX int32_t cnt_frames_limited, noClipping; #endif #endif #ifdef DEBUGGING Loading Loading @@ -792,6 +795,17 @@ int main( } #ifdef DEBUGGING #ifdef NONBE_FIX_1165_APPLY_LIMITER_ON_ENCODER_DMX if ( ( cnt_frames_limited = IVAS_ENC_GetCntFramesLimited( hIvasEnc ) ) > 0 ) { fprintf( stdout, "\nLimiter applied in %d frames.\n\n", cnt_frames_limited ); } if ( ( noClipping = IVAS_ENC_GetNoCLipping( hIvasEnc ) ) > 0 ) { fprintf( stdout, "Clipping (saturation) detected: %d samples clipped!!!\n\n", noClipping ); } #endif print_snr(); #endif /*------------------------------------------------------------------------------------------* Loading lib_com/ivas_cnst.h +63 −0 Original line number Diff line number Diff line Loading @@ -1778,6 +1778,69 @@ typedef enum } STEREO_DMX_EVS_PRC; /*----------------------------------------------------------------------------------* * Static downmix scaling factors *----------------------------------------------------------------------------------*/ #ifdef NONBE_FIX_1165_STATIC_SCAL_MCMASA /* McMASA */ /* 5.1 */ #define ivas_mcmasa_dmx_scal_fac_CICP6_1tc_static ( 2.44948983f ) #define ivas_mcmasa_dmx_scal_fac_CICP6_1tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP6_1tc_static ) /* 7.1 */ #define ivas_mcmasa_dmx_scal_fac_CICP12_1tc_static ( 2.82842708f ) #define ivas_mcmasa_dmx_scal_fac_CICP12_1tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP12_1tc_static ) /* 5.1+2 */ #define ivas_mcmasa_dmx_scal_fac_CICP14_1tc_static ( 2.82842708f ) #define ivas_mcmasa_dmx_scal_fac_CICP14_1tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP14_1tc_static ) /* 5.1+4 */ #define ivas_mcmasa_dmx_scal_fac_CICP16_1tc_static ( 3.1622777f ) #define ivas_mcmasa_dmx_scal_fac_CICP16_1tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP16_1tc_static ) #define ivas_mcmasa_dmx_scal_fac_CICP16_2tc_static ( 2.44948983f ) #define ivas_mcmasa_dmx_scal_fac_CICP16_2tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP16_2tc_static ) #define ivas_mcmasa_dmx_scal_fac_CICP16_3tc_static ( 2.0f ) #define ivas_mcmasa_dmx_scal_fac_CICP16_3tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP16_3tc_static ) /* 7.1+4 */ #define ivas_mcmasa_dmx_scal_fac_CICP19_1tc_static ( 3.46410155f ) #define ivas_mcmasa_dmx_scal_fac_CICP19_1tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP19_1tc_static ) #define ivas_mcmasa_dmx_scal_fac_CICP19_2tc_static ( 2.64575124f ) #define ivas_mcmasa_dmx_scal_fac_CICP19_2tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP19_2tc_static ) #define ivas_mcmasa_dmx_scal_fac_CICP19_3tc_static ( 2.23606801f ) #define ivas_mcmasa_dmx_scal_fac_CICP19_3tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP19_3tc_static ) /* Separated channel */ #define ivas_mcmasa_dmx_scal_fac_sep_chan_static ( 2.0f ) #define ivas_mcmasa_dmx_scal_fac_sep_chan_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_sep_chan_static ) #endif #ifdef NONBE_FIX_1165_STATIC_SCAL_OMASA /* OMASA */ /* Approximates that 2 channels sum coherently and rest are incoherent */ #define ivas_omasa_dmx_scal_fac_2ch_static ( 2.0f ) #define ivas_omasa_dmx_scal_fac_2ch_static_inv ( 1.0f / ivas_omasa_dmx_scal_fac_2ch_static ) #define ivas_omasa_dmx_scal_fac_3ch_static ( 2.23606801f ) #define ivas_omasa_dmx_scal_fac_3ch_static_inv ( 1.0f / ivas_omasa_dmx_scal_fac_3ch_static ) #define ivas_omasa_dmx_scal_fac_4ch_static ( 2.44948983f ) #define ivas_omasa_dmx_scal_fac_4ch_static_inv ( 1.0f / ivas_omasa_dmx_scal_fac_4ch_static ) #define ivas_omasa_dmx_scal_fac_5ch_static ( 2.64575124f ) #define ivas_omasa_dmx_scal_fac_5ch_static_inv ( 1.0f / ivas_omasa_dmx_scal_fac_5ch_static ) #endif #endif /* clang-format on */ /* IVAS_CNST_H */ lib_com/ivas_prot.h +16 −0 Original line number Diff line number Diff line Loading @@ -5343,6 +5343,14 @@ ivas_error ivas_mcmasa_dec_reconfig( Decoder_Struct *st_ivas /* i/o: IVAS decoder handle */ ); #ifdef NONBE_FIX_1165_STATIC_SCAL_MCMASA void ivas_mcmasa_gain_umx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ float *data_f[], /* i/o: output signals */ const int16_t output_frame /* i : output frame length per channel */ ); #endif void ivas_mcmasa_setNumTransportChannels( int16_t* nchan_transport, /* o : Pointer to number of transport channels to be set */ int16_t* element_mode, /* o : Pointer to element mode to be set */ Loading Loading @@ -5805,6 +5813,14 @@ void ivas_omasa_modify_masa_energy_ratios( float masa_to_total_energy_ratio[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_MAXIMUM_CODING_SUBBANDS] ); #ifdef NONBE_FIX_1165_STATIC_SCAL_OMASA void ivas_omasa_gain_umx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ float *data_f[], /* i/o: output signals */ const int16_t output_frame /* i : output frame length per channel */ ); #endif /*----------------------------------------------------------------------------------* * TD Binaural Object renderer Loading lib_com/ivas_rom_com.c +124 −11 Original line number Diff line number Diff line Loading @@ -1831,18 +1831,33 @@ const int16_t Param_MC_index[MAX_CICP_CHANNELS] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP6_2tc_static 4.f /* orig: (2.0f + 2.f * INV_SQRT2) */ #define ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP6_2tc_static) #endif const float ivas_param_mc_dmx_fac_CICP6_2tc[12] = { 1.0f, 0.0f, INV_SQRT2, INV_SQRT2, 1.0f, 0.0f, /*Lt*/ 0.0f, 1.0f, INV_SQRT2, INV_SQRT2, 0.0f, 1.0f /*Rt*/ }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP12_2tc_static 4.f /* orig: (3.0f + 2.f * INV_SQRT2) */ #define ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP12_2tc_static) #endif const float ivas_param_mc_dmx_fac_CICP12_2tc[16] = { 1.0f, 0.0f, INV_SQRT2, INV_SQRT2, 1.0f, 0.0f, 1.0f, 0.0f, /*Lt*/ 0.0f, 1.0f, INV_SQRT2, INV_SQRT2, 0.0f, 1.0f, 0.0f, 1.0f /*Rt*/ }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP12_3tc_static 4.f /* orig: (3.0f) */ #define ivas_param_mc_dmx_scal_fac_CICP12_3tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP12_3tc_static) #endif const float ivas_param_mc_dmx_fac_CICP12_3tc[24] = { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, /*Lt*/ Loading @@ -1850,11 +1865,22 @@ const float ivas_param_mc_dmx_fac_CICP12_3tc[24] = 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f /*Ct*/ }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP14_2tc_static 4.f /* orig: (3.0f + 2.f * INV_SQRT2) */ #define ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP14_2tc_static) #endif const float ivas_param_mc_dmx_fac_CICP14_2tc[16] = { 1.0f, 0.0f, INV_SQRT2, INV_SQRT2, 1.0f, 0.0f, 1.0f, 0.0f, /*Lt*/ 0.0f, 1.0f, INV_SQRT2, INV_SQRT2, 0.0f, 1.0f, 0.0f, 1.0f /*Rt*/ }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP14_3tc_static 4.f /* orig: (3.0f) */ #define ivas_param_mc_dmx_scal_fac_CICP14_3tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP14_3tc_static) #endif const float ivas_param_mc_dmx_fac_CICP14_3tc[24] = { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, /*Lt*/ Loading @@ -1862,6 +1888,11 @@ const float ivas_param_mc_dmx_fac_CICP14_3tc[24] = 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, /*Ct*/ }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP16_3tc_static (4.0f) #define ivas_param_mc_dmx_scal_fac_CICP16_3tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP16_3tc_static) #endif const float ivas_param_mc_dmx_fac_CICP16_3tc[30] = { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, /*Lt*/ Loading @@ -1869,6 +1900,11 @@ const float ivas_param_mc_dmx_fac_CICP16_3tc[30] = 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f /*Ct*/ }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP19_3tc_static 4.f /* orig: (5.0f) */ #define ivas_param_mc_dmx_scal_fac_CICP19_3tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP19_3tc_static) #endif const float ivas_param_mc_dmx_fac_CICP19_3tc[36] = { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, /*Lt*/ Loading Loading @@ -2188,7 +2224,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP6_2tc, &ivas_param_mc_icc_mapping_CICP6_2tc, &ivas_param_mc_dmx_fac_CICP6_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP6_2tc[0], ivas_param_mc_dmx_scal_fac_CICP6_2tc_static, ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP6_2tc[0] #endif }, /* CICP6 64000 */ { Loading @@ -2199,7 +2241,14 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP6_2tc, &ivas_param_mc_icc_mapping_CICP6_2tc, &ivas_param_mc_dmx_fac_CICP6_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP6_2tc[0], ivas_param_mc_dmx_scal_fac_CICP6_2tc_static, ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP6_2tc[0] #endif }, /* CICP6 80000 */ { Loading @@ -2210,7 +2259,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP6_2tc, &ivas_param_mc_icc_mapping_CICP6_2tc, &ivas_param_mc_dmx_fac_CICP6_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP6_2tc[0], ivas_param_mc_dmx_scal_fac_CICP6_2tc_static, ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP6_2tc[0] #endif }, /* CICP12 48000 */ { Loading @@ -2221,7 +2276,14 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP12_2tc, &ivas_param_mc_icc_mapping_CICP12_2tc, &ivas_param_mc_dmx_fac_CICP12_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP12_2tc[0], ivas_param_mc_dmx_scal_fac_CICP12_2tc_static, ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP12_2tc[0] #endif }, /* CICP12 64000 */ { Loading @@ -2232,7 +2294,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP12_2tc, &ivas_param_mc_icc_mapping_CICP12_2tc, &ivas_param_mc_dmx_fac_CICP12_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP12_2tc[0], ivas_param_mc_dmx_scal_fac_CICP12_2tc_static, ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP12_2tc[0] #endif }, /* CICP12 80000 */ { Loading @@ -2243,7 +2311,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP12_2tc, &ivas_param_mc_icc_mapping_CICP12_2tc, &ivas_param_mc_dmx_fac_CICP12_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP12_2tc[0], ivas_param_mc_dmx_scal_fac_CICP12_2tc_static, ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP12_2tc[0] #endif }, /* CICP12 96000 */ { Loading @@ -2254,7 +2328,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP12_3tc, &ivas_param_mc_icc_mapping_CICP12_3tc, &ivas_param_mc_dmx_fac_CICP12_3tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP12_3tc[0], ivas_param_mc_dmx_scal_fac_CICP12_3tc_static, ivas_param_mc_dmx_scal_fac_CICP12_3tc_static_inv #else &ivas_param_mc_ild_fac_CICP12_3tc[0] #endif }, /* CICP14 48000 */ { Loading @@ -2265,7 +2345,14 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP14_2tc, &ivas_param_mc_icc_mapping_CICP14_2tc, &ivas_param_mc_dmx_fac_CICP14_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP14_2tc[0], ivas_param_mc_dmx_scal_fac_CICP14_2tc_static, ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP14_2tc[0] #endif }, /* CICP14 64000 */ { Loading @@ -2276,7 +2363,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP14_2tc, &ivas_param_mc_icc_mapping_CICP14_2tc, &ivas_param_mc_dmx_fac_CICP14_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP14_2tc[0], ivas_param_mc_dmx_scal_fac_CICP14_2tc_static, ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP14_2tc[0] #endif }, /* CICP14 80000 */ { Loading @@ -2287,7 +2380,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP14_2tc, &ivas_param_mc_icc_mapping_CICP14_2tc, &ivas_param_mc_dmx_fac_CICP14_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP14_2tc[0], ivas_param_mc_dmx_scal_fac_CICP14_2tc_static, ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP14_2tc[0] #endif }, /* CICP14 96000 */ { Loading @@ -2298,7 +2397,14 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP14_3tc, &ivas_param_mc_icc_mapping_CICP14_3tc, &ivas_param_mc_dmx_fac_CICP14_3tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP14_3tc[0], ivas_param_mc_dmx_scal_fac_CICP14_3tc_static, ivas_param_mc_dmx_scal_fac_CICP14_3tc_static_inv #else &ivas_param_mc_ild_fac_CICP14_3tc[0] #endif }, /* CICP16 96000 */ { Loading @@ -2309,7 +2415,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP16_3tc, &ivas_param_mc_icc_mapping_CICP16_3tc, &ivas_param_mc_dmx_fac_CICP16_3tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP16_3tc[0], ivas_param_mc_dmx_scal_fac_CICP16_3tc_static, ivas_param_mc_dmx_scal_fac_CICP16_3tc_static_inv #else &ivas_param_mc_ild_fac_CICP16_3tc[0] #endif }, /* CICP16 128000 */ { Loading @@ -2320,7 +2432,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP16_3tc, &ivas_param_mc_icc_mapping_CICP16_3tc, &ivas_param_mc_dmx_fac_CICP16_3tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP16_3tc[0], ivas_param_mc_dmx_scal_fac_CICP16_3tc_static, ivas_param_mc_dmx_scal_fac_CICP16_3tc_static_inv #else &ivas_param_mc_ild_fac_CICP16_3tc[0] #endif }, /* CICP19 128000 */ { Loading @@ -2331,19 +2449,14 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP19_3tc, &ivas_param_mc_icc_mapping_CICP19_3tc, &ivas_param_mc_dmx_fac_CICP19_3tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP19_3tc[0], ivas_param_mc_dmx_scal_fac_CICP19_3tc_static, ivas_param_mc_dmx_scal_fac_CICP19_3tc_static_inv #else &ivas_param_mc_ild_fac_CICP19_3tc[0] #endif }, /* CICP19 160000 */ { MC_LS_SETUP_7_1_4, 12, 4, IVAS_160k, &ivas_param_mc_ild_mapping_CICP19_4tc, &ivas_param_mc_icc_mapping_CICP19_4tc, &ivas_param_mc_dmx_fac_CICP19_4tc[0], &ivas_param_mc_ild_fac_CICP19_4tc[0] } }; const float ivas_param_mc_quant_ild_5d1_48[PARAM_MC_SZ_ILD_QUANTIZER_4BITS] = Loading lib_com/ivas_stat_com.h +29 −0 Original line number Diff line number Diff line Loading @@ -576,6 +576,10 @@ typedef struct ivas_param_mc_conf_struct /* structure for ROM Table */ const PARAM_MC_ICC_MAPPING *icc_mapping_conf; const float *dmx_fac; const float *ild_factors; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC float static_dmx_fac; float static_dmx_fac_inv; #endif } PARAM_MC_CONF; Loading Loading @@ -787,5 +791,30 @@ typedef struct ivas_param_ism_data_structure } PARAM_ISM_CONFIG_DATA, *PARAM_ISM_CONFIG_HANDLE; #ifdef NONBE_FIX_1165_APPLY_LIMITER_ON_ENCODER_DMX /*----------------------------------------------------------------------------------* * Limiter structure *----------------------------------------------------------------------------------*/ typedef struct { int16_t max_num_channels; int16_t num_channels; float **channel_ptrs; int32_t sampling_rate; float gain; float release_heuristic; float attack_constant; int16_t strong_saturation_count; #ifdef DEBUGGING int32_t cnt_frames_limited; /* counter of frames in which the limiter is applied */ #endif } IVAS_LIMITER, *IVAS_LIMITER_HANDLE; #endif #endif /* IVAS_STAT_COM */ Loading
apps/encoder.c +14 −0 Original line number Diff line number Diff line Loading @@ -195,6 +195,9 @@ int main( #ifdef DEBUG_SBA int16_t numTransportChannels = 1; #endif #ifdef NONBE_FIX_1165_APPLY_LIMITER_ON_ENCODER_DMX int32_t cnt_frames_limited, noClipping; #endif #endif #ifdef DEBUGGING Loading Loading @@ -792,6 +795,17 @@ int main( } #ifdef DEBUGGING #ifdef NONBE_FIX_1165_APPLY_LIMITER_ON_ENCODER_DMX if ( ( cnt_frames_limited = IVAS_ENC_GetCntFramesLimited( hIvasEnc ) ) > 0 ) { fprintf( stdout, "\nLimiter applied in %d frames.\n\n", cnt_frames_limited ); } if ( ( noClipping = IVAS_ENC_GetNoCLipping( hIvasEnc ) ) > 0 ) { fprintf( stdout, "Clipping (saturation) detected: %d samples clipped!!!\n\n", noClipping ); } #endif print_snr(); #endif /*------------------------------------------------------------------------------------------* Loading
lib_com/ivas_cnst.h +63 −0 Original line number Diff line number Diff line Loading @@ -1778,6 +1778,69 @@ typedef enum } STEREO_DMX_EVS_PRC; /*----------------------------------------------------------------------------------* * Static downmix scaling factors *----------------------------------------------------------------------------------*/ #ifdef NONBE_FIX_1165_STATIC_SCAL_MCMASA /* McMASA */ /* 5.1 */ #define ivas_mcmasa_dmx_scal_fac_CICP6_1tc_static ( 2.44948983f ) #define ivas_mcmasa_dmx_scal_fac_CICP6_1tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP6_1tc_static ) /* 7.1 */ #define ivas_mcmasa_dmx_scal_fac_CICP12_1tc_static ( 2.82842708f ) #define ivas_mcmasa_dmx_scal_fac_CICP12_1tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP12_1tc_static ) /* 5.1+2 */ #define ivas_mcmasa_dmx_scal_fac_CICP14_1tc_static ( 2.82842708f ) #define ivas_mcmasa_dmx_scal_fac_CICP14_1tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP14_1tc_static ) /* 5.1+4 */ #define ivas_mcmasa_dmx_scal_fac_CICP16_1tc_static ( 3.1622777f ) #define ivas_mcmasa_dmx_scal_fac_CICP16_1tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP16_1tc_static ) #define ivas_mcmasa_dmx_scal_fac_CICP16_2tc_static ( 2.44948983f ) #define ivas_mcmasa_dmx_scal_fac_CICP16_2tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP16_2tc_static ) #define ivas_mcmasa_dmx_scal_fac_CICP16_3tc_static ( 2.0f ) #define ivas_mcmasa_dmx_scal_fac_CICP16_3tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP16_3tc_static ) /* 7.1+4 */ #define ivas_mcmasa_dmx_scal_fac_CICP19_1tc_static ( 3.46410155f ) #define ivas_mcmasa_dmx_scal_fac_CICP19_1tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP19_1tc_static ) #define ivas_mcmasa_dmx_scal_fac_CICP19_2tc_static ( 2.64575124f ) #define ivas_mcmasa_dmx_scal_fac_CICP19_2tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP19_2tc_static ) #define ivas_mcmasa_dmx_scal_fac_CICP19_3tc_static ( 2.23606801f ) #define ivas_mcmasa_dmx_scal_fac_CICP19_3tc_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_CICP19_3tc_static ) /* Separated channel */ #define ivas_mcmasa_dmx_scal_fac_sep_chan_static ( 2.0f ) #define ivas_mcmasa_dmx_scal_fac_sep_chan_static_inv ( 1.0f / ivas_mcmasa_dmx_scal_fac_sep_chan_static ) #endif #ifdef NONBE_FIX_1165_STATIC_SCAL_OMASA /* OMASA */ /* Approximates that 2 channels sum coherently and rest are incoherent */ #define ivas_omasa_dmx_scal_fac_2ch_static ( 2.0f ) #define ivas_omasa_dmx_scal_fac_2ch_static_inv ( 1.0f / ivas_omasa_dmx_scal_fac_2ch_static ) #define ivas_omasa_dmx_scal_fac_3ch_static ( 2.23606801f ) #define ivas_omasa_dmx_scal_fac_3ch_static_inv ( 1.0f / ivas_omasa_dmx_scal_fac_3ch_static ) #define ivas_omasa_dmx_scal_fac_4ch_static ( 2.44948983f ) #define ivas_omasa_dmx_scal_fac_4ch_static_inv ( 1.0f / ivas_omasa_dmx_scal_fac_4ch_static ) #define ivas_omasa_dmx_scal_fac_5ch_static ( 2.64575124f ) #define ivas_omasa_dmx_scal_fac_5ch_static_inv ( 1.0f / ivas_omasa_dmx_scal_fac_5ch_static ) #endif #endif /* clang-format on */ /* IVAS_CNST_H */
lib_com/ivas_prot.h +16 −0 Original line number Diff line number Diff line Loading @@ -5343,6 +5343,14 @@ ivas_error ivas_mcmasa_dec_reconfig( Decoder_Struct *st_ivas /* i/o: IVAS decoder handle */ ); #ifdef NONBE_FIX_1165_STATIC_SCAL_MCMASA void ivas_mcmasa_gain_umx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ float *data_f[], /* i/o: output signals */ const int16_t output_frame /* i : output frame length per channel */ ); #endif void ivas_mcmasa_setNumTransportChannels( int16_t* nchan_transport, /* o : Pointer to number of transport channels to be set */ int16_t* element_mode, /* o : Pointer to element mode to be set */ Loading Loading @@ -5805,6 +5813,14 @@ void ivas_omasa_modify_masa_energy_ratios( float masa_to_total_energy_ratio[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_MAXIMUM_CODING_SUBBANDS] ); #ifdef NONBE_FIX_1165_STATIC_SCAL_OMASA void ivas_omasa_gain_umx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ float *data_f[], /* i/o: output signals */ const int16_t output_frame /* i : output frame length per channel */ ); #endif /*----------------------------------------------------------------------------------* * TD Binaural Object renderer Loading
lib_com/ivas_rom_com.c +124 −11 Original line number Diff line number Diff line Loading @@ -1831,18 +1831,33 @@ const int16_t Param_MC_index[MAX_CICP_CHANNELS] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP6_2tc_static 4.f /* orig: (2.0f + 2.f * INV_SQRT2) */ #define ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP6_2tc_static) #endif const float ivas_param_mc_dmx_fac_CICP6_2tc[12] = { 1.0f, 0.0f, INV_SQRT2, INV_SQRT2, 1.0f, 0.0f, /*Lt*/ 0.0f, 1.0f, INV_SQRT2, INV_SQRT2, 0.0f, 1.0f /*Rt*/ }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP12_2tc_static 4.f /* orig: (3.0f + 2.f * INV_SQRT2) */ #define ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP12_2tc_static) #endif const float ivas_param_mc_dmx_fac_CICP12_2tc[16] = { 1.0f, 0.0f, INV_SQRT2, INV_SQRT2, 1.0f, 0.0f, 1.0f, 0.0f, /*Lt*/ 0.0f, 1.0f, INV_SQRT2, INV_SQRT2, 0.0f, 1.0f, 0.0f, 1.0f /*Rt*/ }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP12_3tc_static 4.f /* orig: (3.0f) */ #define ivas_param_mc_dmx_scal_fac_CICP12_3tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP12_3tc_static) #endif const float ivas_param_mc_dmx_fac_CICP12_3tc[24] = { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, /*Lt*/ Loading @@ -1850,11 +1865,22 @@ const float ivas_param_mc_dmx_fac_CICP12_3tc[24] = 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f /*Ct*/ }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP14_2tc_static 4.f /* orig: (3.0f + 2.f * INV_SQRT2) */ #define ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP14_2tc_static) #endif const float ivas_param_mc_dmx_fac_CICP14_2tc[16] = { 1.0f, 0.0f, INV_SQRT2, INV_SQRT2, 1.0f, 0.0f, 1.0f, 0.0f, /*Lt*/ 0.0f, 1.0f, INV_SQRT2, INV_SQRT2, 0.0f, 1.0f, 0.0f, 1.0f /*Rt*/ }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP14_3tc_static 4.f /* orig: (3.0f) */ #define ivas_param_mc_dmx_scal_fac_CICP14_3tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP14_3tc_static) #endif const float ivas_param_mc_dmx_fac_CICP14_3tc[24] = { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, /*Lt*/ Loading @@ -1862,6 +1888,11 @@ const float ivas_param_mc_dmx_fac_CICP14_3tc[24] = 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, /*Ct*/ }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP16_3tc_static (4.0f) #define ivas_param_mc_dmx_scal_fac_CICP16_3tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP16_3tc_static) #endif const float ivas_param_mc_dmx_fac_CICP16_3tc[30] = { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, /*Lt*/ Loading @@ -1869,6 +1900,11 @@ const float ivas_param_mc_dmx_fac_CICP16_3tc[30] = 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f /*Ct*/ }; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC #define ivas_param_mc_dmx_scal_fac_CICP19_3tc_static 4.f /* orig: (5.0f) */ #define ivas_param_mc_dmx_scal_fac_CICP19_3tc_static_inv (1.f / ivas_param_mc_dmx_scal_fac_CICP19_3tc_static) #endif const float ivas_param_mc_dmx_fac_CICP19_3tc[36] = { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, /*Lt*/ Loading Loading @@ -2188,7 +2224,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP6_2tc, &ivas_param_mc_icc_mapping_CICP6_2tc, &ivas_param_mc_dmx_fac_CICP6_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP6_2tc[0], ivas_param_mc_dmx_scal_fac_CICP6_2tc_static, ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP6_2tc[0] #endif }, /* CICP6 64000 */ { Loading @@ -2199,7 +2241,14 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP6_2tc, &ivas_param_mc_icc_mapping_CICP6_2tc, &ivas_param_mc_dmx_fac_CICP6_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP6_2tc[0], ivas_param_mc_dmx_scal_fac_CICP6_2tc_static, ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP6_2tc[0] #endif }, /* CICP6 80000 */ { Loading @@ -2210,7 +2259,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP6_2tc, &ivas_param_mc_icc_mapping_CICP6_2tc, &ivas_param_mc_dmx_fac_CICP6_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP6_2tc[0], ivas_param_mc_dmx_scal_fac_CICP6_2tc_static, ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP6_2tc[0] #endif }, /* CICP12 48000 */ { Loading @@ -2221,7 +2276,14 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP12_2tc, &ivas_param_mc_icc_mapping_CICP12_2tc, &ivas_param_mc_dmx_fac_CICP12_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP12_2tc[0], ivas_param_mc_dmx_scal_fac_CICP12_2tc_static, ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP12_2tc[0] #endif }, /* CICP12 64000 */ { Loading @@ -2232,7 +2294,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP12_2tc, &ivas_param_mc_icc_mapping_CICP12_2tc, &ivas_param_mc_dmx_fac_CICP12_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP12_2tc[0], ivas_param_mc_dmx_scal_fac_CICP12_2tc_static, ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP12_2tc[0] #endif }, /* CICP12 80000 */ { Loading @@ -2243,7 +2311,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP12_2tc, &ivas_param_mc_icc_mapping_CICP12_2tc, &ivas_param_mc_dmx_fac_CICP12_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP12_2tc[0], ivas_param_mc_dmx_scal_fac_CICP12_2tc_static, ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP12_2tc[0] #endif }, /* CICP12 96000 */ { Loading @@ -2254,7 +2328,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP12_3tc, &ivas_param_mc_icc_mapping_CICP12_3tc, &ivas_param_mc_dmx_fac_CICP12_3tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP12_3tc[0], ivas_param_mc_dmx_scal_fac_CICP12_3tc_static, ivas_param_mc_dmx_scal_fac_CICP12_3tc_static_inv #else &ivas_param_mc_ild_fac_CICP12_3tc[0] #endif }, /* CICP14 48000 */ { Loading @@ -2265,7 +2345,14 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP14_2tc, &ivas_param_mc_icc_mapping_CICP14_2tc, &ivas_param_mc_dmx_fac_CICP14_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP14_2tc[0], ivas_param_mc_dmx_scal_fac_CICP14_2tc_static, ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP14_2tc[0] #endif }, /* CICP14 64000 */ { Loading @@ -2276,7 +2363,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP14_2tc, &ivas_param_mc_icc_mapping_CICP14_2tc, &ivas_param_mc_dmx_fac_CICP14_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP14_2tc[0], ivas_param_mc_dmx_scal_fac_CICP14_2tc_static, ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP14_2tc[0] #endif }, /* CICP14 80000 */ { Loading @@ -2287,7 +2380,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP14_2tc, &ivas_param_mc_icc_mapping_CICP14_2tc, &ivas_param_mc_dmx_fac_CICP14_2tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP14_2tc[0], ivas_param_mc_dmx_scal_fac_CICP14_2tc_static, ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv #else &ivas_param_mc_ild_fac_CICP14_2tc[0] #endif }, /* CICP14 96000 */ { Loading @@ -2298,7 +2397,14 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP14_3tc, &ivas_param_mc_icc_mapping_CICP14_3tc, &ivas_param_mc_dmx_fac_CICP14_3tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP14_3tc[0], ivas_param_mc_dmx_scal_fac_CICP14_3tc_static, ivas_param_mc_dmx_scal_fac_CICP14_3tc_static_inv #else &ivas_param_mc_ild_fac_CICP14_3tc[0] #endif }, /* CICP16 96000 */ { Loading @@ -2309,7 +2415,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP16_3tc, &ivas_param_mc_icc_mapping_CICP16_3tc, &ivas_param_mc_dmx_fac_CICP16_3tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP16_3tc[0], ivas_param_mc_dmx_scal_fac_CICP16_3tc_static, ivas_param_mc_dmx_scal_fac_CICP16_3tc_static_inv #else &ivas_param_mc_ild_fac_CICP16_3tc[0] #endif }, /* CICP16 128000 */ { Loading @@ -2320,7 +2432,13 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP16_3tc, &ivas_param_mc_icc_mapping_CICP16_3tc, &ivas_param_mc_dmx_fac_CICP16_3tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP16_3tc[0], ivas_param_mc_dmx_scal_fac_CICP16_3tc_static, ivas_param_mc_dmx_scal_fac_CICP16_3tc_static_inv #else &ivas_param_mc_ild_fac_CICP16_3tc[0] #endif }, /* CICP19 128000 */ { Loading @@ -2331,19 +2449,14 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_ild_mapping_CICP19_3tc, &ivas_param_mc_icc_mapping_CICP19_3tc, &ivas_param_mc_dmx_fac_CICP19_3tc[0], #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC &ivas_param_mc_ild_fac_CICP19_3tc[0], ivas_param_mc_dmx_scal_fac_CICP19_3tc_static, ivas_param_mc_dmx_scal_fac_CICP19_3tc_static_inv #else &ivas_param_mc_ild_fac_CICP19_3tc[0] #endif }, /* CICP19 160000 */ { MC_LS_SETUP_7_1_4, 12, 4, IVAS_160k, &ivas_param_mc_ild_mapping_CICP19_4tc, &ivas_param_mc_icc_mapping_CICP19_4tc, &ivas_param_mc_dmx_fac_CICP19_4tc[0], &ivas_param_mc_ild_fac_CICP19_4tc[0] } }; const float ivas_param_mc_quant_ild_5d1_48[PARAM_MC_SZ_ILD_QUANTIZER_4BITS] = Loading
lib_com/ivas_stat_com.h +29 −0 Original line number Diff line number Diff line Loading @@ -576,6 +576,10 @@ typedef struct ivas_param_mc_conf_struct /* structure for ROM Table */ const PARAM_MC_ICC_MAPPING *icc_mapping_conf; const float *dmx_fac; const float *ild_factors; #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC float static_dmx_fac; float static_dmx_fac_inv; #endif } PARAM_MC_CONF; Loading Loading @@ -787,5 +791,30 @@ typedef struct ivas_param_ism_data_structure } PARAM_ISM_CONFIG_DATA, *PARAM_ISM_CONFIG_HANDLE; #ifdef NONBE_FIX_1165_APPLY_LIMITER_ON_ENCODER_DMX /*----------------------------------------------------------------------------------* * Limiter structure *----------------------------------------------------------------------------------*/ typedef struct { int16_t max_num_channels; int16_t num_channels; float **channel_ptrs; int32_t sampling_rate; float gain; float release_heuristic; float attack_constant; int16_t strong_saturation_count; #ifdef DEBUGGING int32_t cnt_frames_limited; /* counter of frames in which the limiter is applied */ #endif } IVAS_LIMITER, *IVAS_LIMITER_HANDLE; #endif #endif /* IVAS_STAT_COM */