Loading lib_com/ivas_rom_com.c +99 −0 Original line number Diff line number Diff line Loading @@ -1831,18 +1831,30 @@ 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 const float ivas_param_mc_dmx_scal_fac_CICP6_2tc_static = (2.0f + 2.f * INV_SQRT2); const float ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv = 1.f / (2.0f + 2.f * INV_SQRT2); #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 const float ivas_param_mc_dmx_scal_fac_CICP12_2tc_static = (3.0f + 2.f * INV_SQRT2); const float ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv = 1.f / (3.0f + 2.f * INV_SQRT2); #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 const float ivas_param_mc_dmx_scal_fac_CICP12_3tc_static = (3.0f); const float ivas_param_mc_dmx_scal_fac_CICP12_3tc_static_inv = 1.f / (3.0f); #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 +1862,20 @@ 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 const float ivas_param_mc_dmx_scal_fac_CICP14_2tc_static = (3.0f + 2.f * INV_SQRT2); const float ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv = 1.f / (3.0f + 2.f * INV_SQRT2); #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 const float ivas_param_mc_dmx_scal_fac_CICP14_3tc_static = (3.0f); const float ivas_param_mc_dmx_scal_fac_CICP14_3tc_static_inv = 1.f / (3.0f); #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 +1883,10 @@ 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 const float ivas_param_mc_dmx_scal_fac_CICP16_3tc_static = (4.0f); const float ivas_param_mc_dmx_scal_fac_CICP16_3tc_static_inv = 1.f / (4.0f); #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 +1894,10 @@ 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 const float ivas_param_mc_dmx_scal_fac_CICP19_3tc_static = (5.0); const float ivas_param_mc_dmx_scal_fac_CICP19_3tc_static_inv = 1.f / (5.0); #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 @@ -2140,6 +2169,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP6_2tc, &ivas_param_mc_dmx_fac_CICP6_2tc[0], &ivas_param_mc_ild_fac_CICP6_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP6_2tc_static, ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv #endif }, /* CICP6 64000 */ { Loading @@ -2151,6 +2185,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP6_2tc, &ivas_param_mc_dmx_fac_CICP6_2tc[0], &ivas_param_mc_ild_fac_CICP6_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP6_2tc_static, ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv #endif }, /* CICP6 80000 */ { Loading @@ -2162,6 +2201,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP6_2tc, &ivas_param_mc_dmx_fac_CICP6_2tc[0], &ivas_param_mc_ild_fac_CICP6_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP6_2tc_static, ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv #endif }, /* CICP12 48000 */ { Loading @@ -2173,6 +2217,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP12_2tc, &ivas_param_mc_dmx_fac_CICP12_2tc[0], &ivas_param_mc_ild_fac_CICP12_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP12_2tc_static, ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv #endif }, /* CICP12 64000 */ { Loading @@ -2184,6 +2233,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP12_2tc, &ivas_param_mc_dmx_fac_CICP12_2tc[0], &ivas_param_mc_ild_fac_CICP12_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP12_2tc_static, ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv #endif }, /* CICP12 80000 */ { Loading @@ -2195,6 +2249,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP12_2tc, &ivas_param_mc_dmx_fac_CICP12_2tc[0], &ivas_param_mc_ild_fac_CICP12_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP12_2tc_static, ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv #endif }, /* CICP12 96000 */ { Loading @@ -2206,6 +2265,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP12_3tc, &ivas_param_mc_dmx_fac_CICP12_3tc[0], &ivas_param_mc_ild_fac_CICP12_3tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP12_3tc_static, ivas_param_mc_dmx_scal_fac_CICP12_3tc_static_inv #endif }, /* CICP14 48000 */ { Loading @@ -2217,6 +2281,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP14_2tc, &ivas_param_mc_dmx_fac_CICP14_2tc[0], &ivas_param_mc_ild_fac_CICP14_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP14_2tc_static, ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv #endif }, /* CICP14 64000 */ { Loading @@ -2228,6 +2297,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP14_2tc, &ivas_param_mc_dmx_fac_CICP14_2tc[0], &ivas_param_mc_ild_fac_CICP14_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP14_2tc_static, ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv #endif }, /* CICP14 80000 */ { Loading @@ -2239,6 +2313,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP14_2tc, &ivas_param_mc_dmx_fac_CICP14_2tc[0], &ivas_param_mc_ild_fac_CICP14_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP14_2tc_static, ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv #endif }, /* CICP14 96000 */ { Loading @@ -2250,6 +2329,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP14_3tc, &ivas_param_mc_dmx_fac_CICP14_3tc[0], &ivas_param_mc_ild_fac_CICP14_3tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP14_3tc_static, ivas_param_mc_dmx_scal_fac_CICP14_3tc_static_inv #endif }, /* CICP16 96000 */ { Loading @@ -2261,6 +2345,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP16_3tc, &ivas_param_mc_dmx_fac_CICP16_3tc[0], &ivas_param_mc_ild_fac_CICP16_3tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP16_3tc_static, ivas_param_mc_dmx_scal_fac_CICP16_3tc_static_inv #endif }, /* CICP16 128000 */ { Loading @@ -2272,6 +2361,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP16_3tc, &ivas_param_mc_dmx_fac_CICP16_3tc[0], &ivas_param_mc_ild_fac_CICP16_3tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP16_3tc_static, ivas_param_mc_dmx_scal_fac_CICP16_3tc_static_inv #endif }, /* CICP19 128000 */ { Loading @@ -2283,6 +2377,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP19_3tc, &ivas_param_mc_dmx_fac_CICP19_3tc[0], &ivas_param_mc_ild_fac_CICP19_3tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP19_3tc_static, ivas_param_mc_dmx_scal_fac_CICP19_3tc_static_inv #endif } }; Loading lib_com/ivas_stat_com.h +4 −0 Original line number Diff line number Diff line Loading @@ -575,6 +575,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 lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,8 @@ #define NONE_BE_FIX_816_LFE_PLC_FLOAT /* DLB: issue 816: reduce required precision to float for LFE-PLC*/ #define NONBE_FIX_1165_STATIC_SCAL_PARAMMC /* FhG: add static scaling to ParamMC DMX */ /* ##################### End NON-BE switches ########################### */ /* ################## End DEVELOPMENT switches ######################### */ Loading lib_dec/ivas_jbm_dec.c +6 −0 Original line number Diff line number Diff line Loading @@ -634,6 +634,12 @@ ivas_error ivas_jbm_dec_tc( hp20( p_output[n], output_frame, st_ivas->mem_hp20_out[n], output_Fs ); } #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC for ( n = 0; n < st_ivas->nchan_transport; n++ ) { v_multc( p_output[n], st_ivas->hParamMC->static_dmx_fac, p_output[n], output_frame ); } #endif /* Rendering */ if ( output_config == IVAS_AUDIO_CONFIG_MONO || output_config == IVAS_AUDIO_CONFIG_STEREO ) { Loading lib_dec/ivas_mc_param_dec.c +6 −0 Original line number Diff line number Diff line Loading @@ -312,6 +312,9 @@ ivas_error ivas_param_mc_dec_open( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Parametric MC\n" ) ); } mvr2r( ivas_param_mc_conf[config_index].dmx_fac, hParamMC->proto_matrix_int, nchan_transport * nchan_out_transport ); #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC hParamMC->static_dmx_fac = ivas_param_mc_conf[config_index].static_dmx_fac; #endif if ( hParamMC->synthesis_conf == PARAM_MC_SYNTH_LS_CONV_COV || hParamMC->synthesis_conf == PARAM_MC_SYNTH_MONO_STEREO ) { Loading Loading @@ -763,6 +766,9 @@ ivas_error ivas_param_mc_dec_reconfig( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Parametric MC\n" ) ); } mvr2r( ivas_param_mc_conf[config_index].dmx_fac, hParamMC->proto_matrix_int, nchan_transport * nchan_out_transport ); #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC hParamMC->static_dmx_fac = ivas_param_mc_conf[config_index].static_dmx_fac; #endif } if ( hParamMC->synthesis_conf == PARAM_MC_SYNTH_LS_CONV_COV || hParamMC->synthesis_conf == PARAM_MC_SYNTH_MONO_STEREO ) Loading Loading
lib_com/ivas_rom_com.c +99 −0 Original line number Diff line number Diff line Loading @@ -1831,18 +1831,30 @@ 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 const float ivas_param_mc_dmx_scal_fac_CICP6_2tc_static = (2.0f + 2.f * INV_SQRT2); const float ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv = 1.f / (2.0f + 2.f * INV_SQRT2); #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 const float ivas_param_mc_dmx_scal_fac_CICP12_2tc_static = (3.0f + 2.f * INV_SQRT2); const float ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv = 1.f / (3.0f + 2.f * INV_SQRT2); #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 const float ivas_param_mc_dmx_scal_fac_CICP12_3tc_static = (3.0f); const float ivas_param_mc_dmx_scal_fac_CICP12_3tc_static_inv = 1.f / (3.0f); #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 +1862,20 @@ 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 const float ivas_param_mc_dmx_scal_fac_CICP14_2tc_static = (3.0f + 2.f * INV_SQRT2); const float ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv = 1.f / (3.0f + 2.f * INV_SQRT2); #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 const float ivas_param_mc_dmx_scal_fac_CICP14_3tc_static = (3.0f); const float ivas_param_mc_dmx_scal_fac_CICP14_3tc_static_inv = 1.f / (3.0f); #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 +1883,10 @@ 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 const float ivas_param_mc_dmx_scal_fac_CICP16_3tc_static = (4.0f); const float ivas_param_mc_dmx_scal_fac_CICP16_3tc_static_inv = 1.f / (4.0f); #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 +1894,10 @@ 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 const float ivas_param_mc_dmx_scal_fac_CICP19_3tc_static = (5.0); const float ivas_param_mc_dmx_scal_fac_CICP19_3tc_static_inv = 1.f / (5.0); #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 @@ -2140,6 +2169,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP6_2tc, &ivas_param_mc_dmx_fac_CICP6_2tc[0], &ivas_param_mc_ild_fac_CICP6_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP6_2tc_static, ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv #endif }, /* CICP6 64000 */ { Loading @@ -2151,6 +2185,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP6_2tc, &ivas_param_mc_dmx_fac_CICP6_2tc[0], &ivas_param_mc_ild_fac_CICP6_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP6_2tc_static, ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv #endif }, /* CICP6 80000 */ { Loading @@ -2162,6 +2201,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP6_2tc, &ivas_param_mc_dmx_fac_CICP6_2tc[0], &ivas_param_mc_ild_fac_CICP6_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP6_2tc_static, ivas_param_mc_dmx_scal_fac_CICP6_2tc_static_inv #endif }, /* CICP12 48000 */ { Loading @@ -2173,6 +2217,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP12_2tc, &ivas_param_mc_dmx_fac_CICP12_2tc[0], &ivas_param_mc_ild_fac_CICP12_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP12_2tc_static, ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv #endif }, /* CICP12 64000 */ { Loading @@ -2184,6 +2233,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP12_2tc, &ivas_param_mc_dmx_fac_CICP12_2tc[0], &ivas_param_mc_ild_fac_CICP12_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP12_2tc_static, ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv #endif }, /* CICP12 80000 */ { Loading @@ -2195,6 +2249,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP12_2tc, &ivas_param_mc_dmx_fac_CICP12_2tc[0], &ivas_param_mc_ild_fac_CICP12_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP12_2tc_static, ivas_param_mc_dmx_scal_fac_CICP12_2tc_static_inv #endif }, /* CICP12 96000 */ { Loading @@ -2206,6 +2265,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP12_3tc, &ivas_param_mc_dmx_fac_CICP12_3tc[0], &ivas_param_mc_ild_fac_CICP12_3tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP12_3tc_static, ivas_param_mc_dmx_scal_fac_CICP12_3tc_static_inv #endif }, /* CICP14 48000 */ { Loading @@ -2217,6 +2281,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP14_2tc, &ivas_param_mc_dmx_fac_CICP14_2tc[0], &ivas_param_mc_ild_fac_CICP14_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP14_2tc_static, ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv #endif }, /* CICP14 64000 */ { Loading @@ -2228,6 +2297,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP14_2tc, &ivas_param_mc_dmx_fac_CICP14_2tc[0], &ivas_param_mc_ild_fac_CICP14_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP14_2tc_static, ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv #endif }, /* CICP14 80000 */ { Loading @@ -2239,6 +2313,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP14_2tc, &ivas_param_mc_dmx_fac_CICP14_2tc[0], &ivas_param_mc_ild_fac_CICP14_2tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP14_2tc_static, ivas_param_mc_dmx_scal_fac_CICP14_2tc_static_inv #endif }, /* CICP14 96000 */ { Loading @@ -2250,6 +2329,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP14_3tc, &ivas_param_mc_dmx_fac_CICP14_3tc[0], &ivas_param_mc_ild_fac_CICP14_3tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP14_3tc_static, ivas_param_mc_dmx_scal_fac_CICP14_3tc_static_inv #endif }, /* CICP16 96000 */ { Loading @@ -2261,6 +2345,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP16_3tc, &ivas_param_mc_dmx_fac_CICP16_3tc[0], &ivas_param_mc_ild_fac_CICP16_3tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP16_3tc_static, ivas_param_mc_dmx_scal_fac_CICP16_3tc_static_inv #endif }, /* CICP16 128000 */ { Loading @@ -2272,6 +2361,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP16_3tc, &ivas_param_mc_dmx_fac_CICP16_3tc[0], &ivas_param_mc_ild_fac_CICP16_3tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP16_3tc_static, ivas_param_mc_dmx_scal_fac_CICP16_3tc_static_inv #endif }, /* CICP19 128000 */ { Loading @@ -2283,6 +2377,11 @@ const PARAM_MC_CONF ivas_param_mc_conf[PARAM_MC_NUM_CONFIGS] = &ivas_param_mc_icc_mapping_CICP19_3tc, &ivas_param_mc_dmx_fac_CICP19_3tc[0], &ivas_param_mc_ild_fac_CICP19_3tc[0] #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC , ivas_param_mc_dmx_scal_fac_CICP19_3tc_static, ivas_param_mc_dmx_scal_fac_CICP19_3tc_static_inv #endif } }; Loading
lib_com/ivas_stat_com.h +4 −0 Original line number Diff line number Diff line Loading @@ -575,6 +575,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
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,8 @@ #define NONE_BE_FIX_816_LFE_PLC_FLOAT /* DLB: issue 816: reduce required precision to float for LFE-PLC*/ #define NONBE_FIX_1165_STATIC_SCAL_PARAMMC /* FhG: add static scaling to ParamMC DMX */ /* ##################### End NON-BE switches ########################### */ /* ################## End DEVELOPMENT switches ######################### */ Loading
lib_dec/ivas_jbm_dec.c +6 −0 Original line number Diff line number Diff line Loading @@ -634,6 +634,12 @@ ivas_error ivas_jbm_dec_tc( hp20( p_output[n], output_frame, st_ivas->mem_hp20_out[n], output_Fs ); } #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC for ( n = 0; n < st_ivas->nchan_transport; n++ ) { v_multc( p_output[n], st_ivas->hParamMC->static_dmx_fac, p_output[n], output_frame ); } #endif /* Rendering */ if ( output_config == IVAS_AUDIO_CONFIG_MONO || output_config == IVAS_AUDIO_CONFIG_STEREO ) { Loading
lib_dec/ivas_mc_param_dec.c +6 −0 Original line number Diff line number Diff line Loading @@ -312,6 +312,9 @@ ivas_error ivas_param_mc_dec_open( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Parametric MC\n" ) ); } mvr2r( ivas_param_mc_conf[config_index].dmx_fac, hParamMC->proto_matrix_int, nchan_transport * nchan_out_transport ); #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC hParamMC->static_dmx_fac = ivas_param_mc_conf[config_index].static_dmx_fac; #endif if ( hParamMC->synthesis_conf == PARAM_MC_SYNTH_LS_CONV_COV || hParamMC->synthesis_conf == PARAM_MC_SYNTH_MONO_STEREO ) { Loading Loading @@ -763,6 +766,9 @@ ivas_error ivas_param_mc_dec_reconfig( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Parametric MC\n" ) ); } mvr2r( ivas_param_mc_conf[config_index].dmx_fac, hParamMC->proto_matrix_int, nchan_transport * nchan_out_transport ); #ifdef NONBE_FIX_1165_STATIC_SCAL_PARAMMC hParamMC->static_dmx_fac = ivas_param_mc_conf[config_index].static_dmx_fac; #endif } if ( hParamMC->synthesis_conf == PARAM_MC_SYNTH_LS_CONV_COV || hParamMC->synthesis_conf == PARAM_MC_SYNTH_MONO_STEREO ) Loading