From e7ef014cc0d55fb68056692569226cd51f9fcb95 Mon Sep 17 00:00:00 2001 From: Sandesh Venkatesh Date: Mon, 3 Jun 2024 22:31:35 +0530 Subject: [PATCH 1/2] Float members cleaned from param_ism_rendering [x] Below float members cleaned: proto_matrix mixing_matrix_lin Cldfb_RealBuffer_tc Cldfb_ImagBuffer_tc [x] Full fixed path for: ivas_param_ism_dec_digest_tc_fx --- lib_com/ivas_prot.h | 7 +- lib_dec/ivas_ism_param_dec.c | 126 +++++-------------------- lib_dec/ivas_jbm_dec.c | 63 ++++--------- lib_dec/ivas_stat_dec.h | 177 +++++++++++++++++------------------ lib_dec/lib_dec_fx.c | 22 ----- 5 files changed, 137 insertions(+), 258 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 5d458df88..c388377c1 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -1334,9 +1334,10 @@ void ivas_ism_dec_digest_tc( #ifdef IVAS_FLOAT_FIXED void ivas_param_ism_dec_digest_tc_fx( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ - const UWord16 nCldfbSlots, /* i : number of CLFBS slots in the transport channels */ - Word32 *transport_channels_f[] /* i : synthesized core-coder transport channels/DirAC output */ + Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ + const UWord16 nCldfbSlots, /* i : number of CLFBS slots in the transport channels */ + Word32 *transport_channels[], /* i : synthesized core-coder transport channels/DirAC output */ + Word16 q_tc_in ); #else void ivas_param_ism_dec_digest_tc( diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index a1c7c2356..982467cbe 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -685,7 +685,7 @@ static void ivas_param_ism_render_slot_fx( { Word32 tmp_2 = Mpy_32_32( tmp_1_fx, mixing_matrix_fx[bin_idx][outchIdx + inchIdx * num_ch_LS] ); // hParamIsmDec->hParamIsmRendering->exp_mixing_matrix_lin Word32 tmp_3 = Mpy_32_32( L_sub( ONE_IN_Q31, tmp_1_fx ), hParamIsmDec->hParamIsmRendering->mixing_matrix_lin_old_fx[bin_idx][outchIdx + inchIdx * num_ch_LS] ); // 1 + hParamIsmDec->hParamIsmRendering->exp_mixing_matrix_lin_old - mixing_matrix_smooth_fx = BASOP_Util_Add_Mant32Exp( tmp_2, hParamIsmDec->hParamIsmRendering->exp_mixing_matrix_lin_fx, tmp_3, hParamIsmDec->hParamIsmRendering->exp_mixing_matrix_lin_old_fx, &res_exp ); + mixing_matrix_smooth_fx = BASOP_Util_Add_Mant32Exp( tmp_2, hParamIsmDec->hParamIsmRendering->exp_mixing_matrix_lin_fx[bin_idx], tmp_3, hParamIsmDec->hParamIsmRendering->exp_mixing_matrix_lin_old_fx[bin_idx], &res_exp ); Word32 tmp_4 = Mpy_32_32( mixing_matrix_smooth_fx, Cldfb_RealBuffer_in_fx[inchIdx][bin_idx] ); // res_exp + hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_exp Word32 tmp_5 = Mpy_32_32( mixing_matrix_smooth_fx, Cldfb_ImagBuffer_in_fx[inchIdx][bin_idx] ); // res_exp + hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_exp @@ -833,16 +833,10 @@ static ivas_error ivas_param_ism_rendering_init_fx( set32_fx( hParamIsmRendering->mixing_matrix_lin_old_fx[bin_idx], 0, PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX ); } #ifdef MSAN_FIX - hParamIsmRendering->exp_mixing_matrix_lin_old_fx = 0; + set16_fx( hParamIsmRendering->exp_mixing_matrix_lin_old_fx, 0, CLDFB_NO_CHANNELS_MAX ); #endif /* memory allocation for proto matrix and interpolator */ -#ifdef IVAS_FLOAT_FIXED_TO_BE_REMOVED - IF( ( hParamIsmRendering->proto_matrix = (float *) malloc( hOutSetup.nchan_out_woLFE * nchan_transport * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for proto matrix\n" ) ); - } -#endif IF( ( hParamIsmRendering->proto_matrix_fx = (Word16 *) malloc( hOutSetup.nchan_out_woLFE * nchan_transport * sizeof( Word16 ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for proto matrix\n" ) ); @@ -860,14 +854,6 @@ static ivas_error ivas_param_ism_rendering_init_fx( { /* computation of proto matrix */ ivas_ism_get_proto_matrix_fx( hOutSetup, nchan_transport, hParamIsmRendering->proto_matrix_fx ); - -#ifdef IVAS_FLOAT_FIXED_TO_BE_REMOVED - FOR( Word16 idx = 0; idx < hOutSetup.nchan_out_woLFE; idx++ ) - { - hParamIsmRendering->proto_matrix[idx] = (float) hParamIsmRendering->proto_matrix_fx[idx] / ( 1 << 15 ); - hParamIsmRendering->proto_matrix[idx + hOutSetup.nchan_out_woLFE] = (float) hParamIsmRendering->proto_matrix_fx[idx + hOutSetup.nchan_out_woLFE] / ( 1 << 15 ); - } -#endif } /* computation of interpolator*/ @@ -918,7 +904,7 @@ static ivas_error ivas_param_ism_rendering_init( static void ivas_param_ism_update_mixing_matrix_fx( PARAM_ISM_DEC_HANDLE hParamIsmDec, Word32 mixing_matrix_fx[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX], - Word16 mixing_matrix_exp, + Word16 mixing_matrix_exp[CLDFB_NO_CHANNELS_MAX], const Word16 nchan_in, const Word16 nchan_out ) { @@ -945,7 +931,7 @@ static void ivas_param_ism_update_mixing_matrix_fx( } } - hParamIsmDec->hParamIsmRendering->exp_mixing_matrix_lin_old_fx = mixing_matrix_exp; + Copy( mixing_matrix_exp, hParamIsmDec->hParamIsmRendering->exp_mixing_matrix_lin_old_fx, CLDFB_NO_CHANNELS_MAX ); move16(); return; @@ -1163,10 +1149,7 @@ ivas_error ivas_param_ism_dec_open_fx( IF( EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_PARAMETRIC ) || EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) { nchan_full = nchan_transport; -#ifdef IVAS_FLOAT_FIXED_TO_BE_REMOVED - hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc = NULL; - hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc = NULL; -#endif + hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_fx = NULL; hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_fx = NULL; } @@ -1183,20 +1166,6 @@ ivas_error ivas_param_ism_dec_open_fx( n_slots_to_alloc = CLDFB_SLOTS_PER_SUBFRAME * MAX_PARAM_SPATIAL_SUBFRAMES; move16(); } -#ifdef IVAS_FLOAT_FIXED_TO_BE_REMOVED - IF( ( hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc = (float *) malloc( n_slots_to_alloc * nchan_transport * hSpatParamRendCom->num_freq_bands * sizeof( float ) ) ) == NULL ) - - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Param ISM JBM Rendering handle\n" ) ); - } - set_zero( hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc, n_slots_to_alloc * nchan_transport * hSpatParamRendCom->num_freq_bands ); - - IF( ( hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc = (float *) malloc( n_slots_to_alloc * nchan_transport * hSpatParamRendCom->num_freq_bands * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Param ISM JBM Rendering handle\n" ) ); - } - set_zero( hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc, n_slots_to_alloc * nchan_transport * hSpatParamRendCom->num_freq_bands ); -#endif IF( ( hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_fx = (Word32 *) malloc( n_slots_to_alloc * nchan_transport * hSpatParamRendCom->num_freq_bands * sizeof( Word32 ) ) ) == NULL ) { @@ -1222,10 +1191,6 @@ ivas_error ivas_param_ism_dec_open_fx( } ELSE { -#ifdef IVAS_FLOAT_FIXED_TO_BE_REMOVED - hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc = NULL; - hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc = NULL; -#endif hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_fx = NULL; hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_fx = NULL; IF( st_ivas->hTcBuffer == NULL ) @@ -1475,14 +1440,6 @@ void ivas_param_ism_dec_close_fx( IF( !( EQ_16( output_config, IVAS_AUDIO_CONFIG_MONO ) || EQ_16( output_config, IVAS_AUDIO_CONFIG_STEREO ) ) ) { /* Param ISM Rendering */ -#ifdef IVAS_FLOAT_FIXED_TO_BE_REMOVED - // To be removed later: Freeing memory allocated to float pointers - IF( hParamIsmDec->hParamIsmRendering->proto_matrix != NULL ) - { - free( hParamIsmDec->hParamIsmRendering->proto_matrix ); - hParamIsmDec->hParamIsmRendering->proto_matrix = NULL; - } -#endif IF( hParamIsmDec->hParamIsmRendering->interpolator_fx != NULL ) { free( hParamIsmDec->hParamIsmRendering->interpolator_fx ); @@ -1494,19 +1451,6 @@ void ivas_param_ism_dec_close_fx( hParamIsmDec->hParamIsmRendering->proto_matrix_fx = NULL; } } -#ifdef IVAS_FLOAT_FIXED_TO_BE_REMOVED - // To be removed later: Freeing memory allocated to float pointers - IF( hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc != NULL ) - { - free( hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc ); - hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc = NULL; - } - IF( hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc != NULL ) - { - free( hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc ); - hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc = NULL; - } -#endif IF( hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_fx != NULL ) { free( hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_fx ); @@ -2088,16 +2032,16 @@ void ivas_ism_dec_digest_tc( *-------------------------------------------------------------------------*/ #ifdef IVAS_FLOAT_FIXED void ivas_param_ism_dec_digest_tc_fx( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ - const UWord16 nCldfbSlots, /* i : number of CLFBS slots in the transport channels */ - Word32 *transport_channels[] /* i : synthesized core-coder transport channels/DirAC output */ -) + Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ + const UWord16 nCldfbSlots, /* i : number of CLFBS slots in the transport channels */ + Word32 *transport_channels[], /* i : synthesized core-coder transport channels/DirAC output */ + Word16 q_tc_in ) { Word16 exp_ref_power = 31, exp_cx_diag = 31; Word16 exp_real_tmp = 0, exp_imag_tmp = 0; Word32 ref_power_fx[CLDFB_NO_CHANNELS_MAX]; Word32 cx_diag_fx[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_DMX]; - Word16 q_tc = 13; + Word16 q_tc = q_tc_in; Word16 ch, nchan_transport, nchan_out, nchan_out_woLFE, i; Word16 slot_idx, bin_idx; Word32 ivas_total_brate; @@ -2119,8 +2063,8 @@ void ivas_param_ism_dec_digest_tc_fx( nchan_transport = st_ivas->nchan_transport; ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; - hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_exp = 23; - hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_exp = 23; + hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_exp = 25; + hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_exp = 25; IF( EQ_16( st_ivas->hDecoderConfig->output_config, IVAS_AUDIO_CONFIG_EXTERNAL ) ) { nchan_out = st_ivas->nchan_ism; @@ -2209,10 +2153,6 @@ void ivas_param_ism_dec_digest_tc_fx( hParamIsmDec->hParamIsmRendering->proto_matrix_fx[nchan_out_woLFE + j] = ONE_IN_Q14; } } -#ifdef IVAS_FLOAT_FIXED_TO_BE_REMOVED - hParamIsmDec->hParamIsmRendering->proto_matrix[j] = fixedToFloat( hParamIsmDec->hParamIsmRendering->proto_matrix_fx[j], Q15 ); - hParamIsmDec->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = fixedToFloat( hParamIsmDec->hParamIsmRendering->proto_matrix_fx[nchan_out_woLFE + j], Q15 ); -#endif } } @@ -2220,9 +2160,14 @@ void ivas_param_ism_dec_digest_tc_fx( { /*TODO : FhG to check*/ ivas_ism_param_dec_tc_gain_ajust_fx( st_ivas, output_frame, fade_len, transport_channels, &q_tc ); - FOR( i = 0; i < 2; i++ ) - scale_sig32( transport_channels[i], output_frame, sub( Q13, q_tc ) ); - q_tc = 13; + IF( NE_16( q_tc, q_tc_in ) ) + { + FOR( i = 0; i < 2; i++ ) + { + scale_sig32( transport_channels[i], output_frame, sub( q_tc_in, q_tc ) ); + } + q_tc = q_tc_in; + } } FOR( ch = 0; ch < nchan_transport; ch++ ) @@ -2234,12 +2179,12 @@ void ivas_param_ism_dec_digest_tc_fx( { Word32 RealBuffer_fx[CLDFB_NO_CHANNELS_MAX]; Word32 ImagBuffer_fx[CLDFB_NO_CHANNELS_MAX]; - q_tc = 13; + q_tc = q_tc_in; cldfbAnalysis_ts_fx_fixed_q( &( transport_channels[ch][hSpatParamRendCom->num_freq_bands * slot_idx] ), RealBuffer_fx, ImagBuffer_fx, hSpatParamRendCom->num_freq_bands, st_ivas->cldfbAnaDec[ch], &q_tc ); Copy32( RealBuffer_fx, &hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_fx[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], hSpatParamRendCom->num_freq_bands ); Copy32( ImagBuffer_fx, &hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_fx[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], hSpatParamRendCom->num_freq_bands ); - hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_exp = 23; - hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_exp = 23; + hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_exp = sub( 31, q_tc ); + hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_exp = sub( 31, q_tc ); } Word16 scale_factor_real, scale_factor_imag; @@ -2277,29 +2222,10 @@ void ivas_param_ism_dec_digest_tc_fx( set32_fx( hParamIsmDec->hParamIsmRendering->mixing_matrix_lin_fx[bin_idx], 0, nchan_transport * nchan_out_woLFE ); } #endif -#if 1 /*TODO : To be removed (Fixed to float) */ - FOR( ch = 0; ch < nchan_transport; ch++ ) - { - scale_sig32( st_ivas->cldfbAnaDec[ch]->cldfb_state_fx, st_ivas->cldfbAnaDec[ch]->cldfb_size, sub( Q11, Q13 ) ); - st_ivas->cldfbAnaDec[ch]->Q_cldfb_state = Q11; - /* CLDFB Analysis */ - FOR( slot_idx = 0; slot_idx < nCldfbSlots; slot_idx++ ) - { - fixedToFloat_arrL( &hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_fx[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], &hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], Q8, hSpatParamRendCom->num_freq_bands ); - fixedToFloat_arrL( &hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_fx[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], &hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], Q8, hSpatParamRendCom->num_freq_bands ); - } - } -#endif - /* Compute mixing matrix */ - Word16 temp_exp[CLDFB_NO_CHANNELS_MAX]; - ivas_param_ism_compute_mixing_matrix_fx( st_ivas->nchan_ism, hParamIsmDec, st_ivas->hISMDTX, direct_response_fx, nchan_transport, nchan_out_woLFE, cx_diag_fx, exp_cx_diag, ref_power_fx, exp_ref_power, hParamIsmDec->hParamIsmRendering->mixing_matrix_lin_fx, temp_exp ); - /////////fix2float (to be removed) - for ( i = 0; i < CLDFB_NO_CHANNELS_MAX; i++ ) - { - me2f_buf( hParamIsmDec->hParamIsmRendering->mixing_matrix_lin_fx[i], temp_exp[i], hParamIsmDec->hParamIsmRendering->mixing_matrix_lin[i], PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX ); - } - ////////////////////////////////// + /* Compute mixing matrix */ + ivas_param_ism_compute_mixing_matrix_fx( st_ivas->nchan_ism, hParamIsmDec, st_ivas->hISMDTX, direct_response_fx, nchan_transport, nchan_out_woLFE, cx_diag_fx, exp_cx_diag, ref_power_fx, exp_ref_power, + hParamIsmDec->hParamIsmRendering->mixing_matrix_lin_fx, hParamIsmDec->hParamIsmRendering->exp_mixing_matrix_lin_fx ); pop_wmops(); diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index 0d4ef85ff..de71701e6 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -2181,27 +2181,15 @@ void ivas_jbm_dec_feed_tc_to_renderer( ELSE IF( EQ_16( st_ivas->renderer_type, RENDERER_PARAM_ISM ) || EQ_16( st_ivas->renderer_type, RENDERER_SBA_LINEAR_ENC ) ) { #ifdef IVAS_FLOAT_FIXED - floatToFixed_arr32( p_data_f[0], p_data_f_fx[0], Q13, MAX_CLDFB_DIGEST_CHANNELS * MAX_JBM_L_FRAME48k ); -#if 1 /*Float to fixed conversions*/ - FOR( Word16 ch = 0; ch < MAX_INTERN_CHANNELS; ch++ ) - { - IF( st_ivas->cldfbAnaDec[ch] ) - { - scale_sig32( st_ivas->cldfbAnaDec[ch]->cldfb_state_fx, st_ivas->cldfbAnaDec[ch]->cldfb_size, sub( Q13, Q11 ) ); - st_ivas->cldfbAnaDec[ch]->Q_cldfb_state = Q13; - } - } - FOR( Word16 ch = 0; ch < st_ivas->nchan_transport; ch++ ) - { - FOR( Word16 slot_idx = 0; slot_idx < n_render_timeslots; slot_idx++ ) - { - floatToFixed_arr32( &st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc[slot_idx * st_ivas->hSpatParamRendCom->num_freq_bands * st_ivas->nchan_transport + ch * st_ivas->hSpatParamRendCom->num_freq_bands], &st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_fx[slot_idx * st_ivas->hSpatParamRendCom->num_freq_bands * st_ivas->nchan_transport + ch * st_ivas->hSpatParamRendCom->num_freq_bands], Q8, st_ivas->hSpatParamRendCom->num_freq_bands ); - floatToFixed_arr32( &st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc[slot_idx * st_ivas->hSpatParamRendCom->num_freq_bands * st_ivas->nchan_transport + ch * st_ivas->hSpatParamRendCom->num_freq_bands], &st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_fx[slot_idx * st_ivas->hSpatParamRendCom->num_freq_bands * st_ivas->nchan_transport + ch * st_ivas->hSpatParamRendCom->num_freq_bands], Q8, st_ivas->hSpatParamRendCom->num_freq_bands ); - } - } -#endif - ivas_param_ism_dec_digest_tc_fx( st_ivas, n_render_timeslots, p_data_f_fx ); - fixedToFloat_arrL( p_data_f_fx[0], p_data_f[0], Q13, MAX_CLDFB_DIGEST_CHANNELS * MAX_JBM_L_FRAME48k ); +/////////////////////////// flt2fix /////////////////////// + floatToFixed_arr32( p_data_f[0], p_data_f_fx[0], Q11, MAX_CLDFB_DIGEST_CHANNELS * MAX_JBM_L_FRAME48k ); +/////////////////////////// flt2fix /////////////////////// + + ivas_param_ism_dec_digest_tc_fx( st_ivas, n_render_timeslots, p_data_f_fx, Q11 ); + +/////////////////////////// fix2flt /////////////////////// + fixedToFloat_arrL( p_data_f_fx[0], p_data_f[0], Q11, MAX_CLDFB_DIGEST_CHANNELS * MAX_JBM_L_FRAME48k ); +/////////////////////////// fix2flt /////////////////////// #else ivas_param_ism_dec_digest_tc( st_ivas, n_render_timeslots, p_data_f ); #endif @@ -2742,17 +2730,6 @@ ivas_error ivas_jbm_dec_render( /*i/o : st_ivas->cldfbSynDec[ch]->cldfb_state------------------------------------------------------------Q11----*/ /*--------------------------------------------------------------------------------------------------------------*/ - f2me_buf( (float *) st_ivas->hParamIsmDec->hParamIsmRendering->mixing_matrix_lin, (Word32 *) st_ivas->hParamIsmDec->hParamIsmRendering->mixing_matrix_lin_fx, &st_ivas->hParamIsmDec->hParamIsmRendering->exp_mixing_matrix_lin_fx, CLDFB_NO_CHANNELS_MAX * ( PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX ) ); - - Word16 n_slots_to_alloc = st_ivas->hDecoderConfig->Opt_tsm == 1 ? 32 : 16; - Word16 n_chan_transport_t = st_ivas->nchan_transport; - Word16 freq_bands = st_ivas->hSpatParamRendCom->num_freq_bands; - - Word16 size = n_slots_to_alloc * n_chan_transport_t * freq_bands; - - f2me_buf( st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc, st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_fx, &st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_exp, size ); - f2me_buf( st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc, st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_fx, &st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_exp, size ); - Word16 n_out; if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) { @@ -3486,9 +3463,9 @@ ivas_error ivas_jbm_dec_render( nchan_out_cldfb = nchan_out_transport; set_s( channel_active_fx, 1, nchan_out_cov ); } - // ftf for ivas_dirac_dec_output_synthesis_cov_param_mc_synthesise_slot_fx - // ftf changes - if ( st_ivas->hParamMC->max_band_decorr > 0 ) + //ftf for ivas_dirac_dec_output_synthesis_cov_param_mc_synthesise_slot_fx + //ftf changes + if (st_ivas->hParamMC->max_band_decorr > 0) { // ftf for param_mc_protoSignalComputation_fx FOR( Word16 x = 0; x < st_ivas->hParamMC->diff_proto_info->num_protos_diff; x++ ) @@ -3504,7 +3481,7 @@ ivas_error ivas_jbm_dec_render( f2me_buf( st_ivas->hParamMC->h_freq_domain_decorr_ap_state->decorr_buffer, st_ivas->hParamMC->h_freq_domain_decorr_ap_state->decorr_buffer_fx, &tmp_e, st_ivas->hParamMC->h_freq_domain_decorr_ap_state->decorr_buffer_len ); st_ivas->hParamMC->h_freq_domain_decorr_ap_state->q_decorr_buffer = 31 - tmp_e; } - if ( ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) ) + if ((st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM)) { if ( st_ivas->hCombinedOrientationData && st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV ) { @@ -3522,21 +3499,21 @@ ivas_error ivas_jbm_dec_render( st_ivas->cldfbSynDec[ch]->Q_cldfb_state = Q5; } } - + Word16 tempp; FOR( Word16 param_band_idx = 0; param_band_idx < st_ivas->hParamMC->num_param_bands_synth; param_band_idx++ ) { - tempp = getScaleFactor32( st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx[param_band_idx], nchan_transport * nchan_out_cov ); - scale_sig32( st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx[param_band_idx], nchan_transport * nchan_out_cov, tempp ); - st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp[param_band_idx] = sub( st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp[param_band_idx], tempp ); + tempp = getScaleFactor32(st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx[param_band_idx], nchan_transport * nchan_out_cov); + scale_sig32(st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx[param_band_idx], nchan_transport * nchan_out_cov, tempp); + st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp[param_band_idx] = sub(st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp[param_band_idx], tempp); IF( st_ivas->hParamMC->band_grouping[param_band_idx] < st_ivas->hParamMC->h_output_synthesis_params.max_band_decorr ) { - tempp = getScaleFactor32( st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx[param_band_idx], nchan_transport * nchan_out_cov ); - scale_sig32( st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx[param_band_idx], nchan_transport * nchan_out_cov, tempp ); - st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp[param_band_idx] = sub( st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp[param_band_idx], tempp ); + tempp = getScaleFactor32(st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx[param_band_idx], nchan_transport * nchan_out_cov); + scale_sig32(st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx[param_band_idx], nchan_transport * nchan_out_cov, tempp); + st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp[param_band_idx] = sub(st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp[param_band_idx], tempp); } } #endif diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 51786e21a..8d96c429a 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -106,31 +106,31 @@ typedef struct stereo_dft_dec_data_struct #endif - int16_t dft32ms_ovl; /* Overlap size */ + int16_t dft32ms_ovl; /* Overlap size */ #ifndef IVAS_FLOAT_FIXED const float *win32ms; /* DFT window */ const float *win32ms_12k8; /* DFT window */ const float *win32ms_16k; /* DFT window */ const float *win32ms_8k; /* DFT window */ #else - const Word16 *win32ms_fx; /* DFT window */ /* Q15 */ - const Word16 *win32ms_12k8_fx; /* DFT window */ /* Q15 */ - const Word16 *win32ms_16k_fx; /* DFT window */ /* Q15 */ - const Word16 *win32ms_8k_fx; /* DFT window */ /* Q15 */ + const Word16 *win32ms_fx; /* DFT window */ /* Q15 */ + const Word16 *win32ms_12k8_fx; /* DFT window */ /* Q15 */ + const Word16 *win32ms_16k_fx; /* DFT window */ /* Q15 */ + const Word16 *win32ms_8k_fx; /* DFT window */ /* Q15 */ #endif - int16_t dft32ms_ovl2; /* Overlap2 size */ + int16_t dft32ms_ovl2; /* Overlap2 size */ #ifndef IVAS_FLOAT_FIXED const float *win232ms; /* DFT window */ const float *win232ms_12k8; /* DFT window */ const float *win232ms_16k; /* DFT window */ const float *win232ms_8k; /* DFT window */ #else - const Word16 *win232ms_fx; /* DFT window */ /* Q15 */ - const Word16 *win232ms_12k8_fx; /* DFT window */ /* Q15 */ - const Word16 *win232ms_16k_fx; /* DFT window */ /* Q15 */ - const Word16 *win232ms_8k_fx; /* DFT window */ /* Q15 */ - const Word16 *win_8k_fx; /* DFT window residual */ /* Q15 */ + const Word16 *win232ms_fx; /* DFT window */ /* Q15 */ + const Word16 *win232ms_12k8_fx; /* DFT window */ /* Q15 */ + const Word16 *win232ms_16k_fx; /* DFT window */ /* Q15 */ + const Word16 *win232ms_8k_fx; /* DFT window */ /* Q15 */ + const Word16 *win_8k_fx; /* DFT window residual */ /* Q15 */ #endif #ifndef IVAS_FLOAT_FIXED @@ -149,7 +149,7 @@ typedef struct stereo_dft_dec_data_struct #ifndef IVAS_FLOAT_FIXED float side_gain[STEREO_DFT_DEC_DFT_NB * STEREO_DFT_BAND_MAX]; #else - Word32 side_gain_fx[STEREO_DFT_DEC_DFT_NB * STEREO_DFT_BAND_MAX]; /* Q31 */ + Word32 side_gain_fx[STEREO_DFT_DEC_DFT_NB * STEREO_DFT_BAND_MAX]; /* Q31 */ #endif int16_t side_gain_flag_1; int16_t side_gain_flag_2; @@ -159,7 +159,7 @@ typedef struct stereo_dft_dec_data_struct #ifndef IVAS_FLOAT_FIXED float gipd[STEREO_DFT_DEC_DFT_NB]; #else - Word32 gipd_fx[STEREO_DFT_DEC_DFT_NB]; /* Q13 */ + Word32 gipd_fx[STEREO_DFT_DEC_DFT_NB]; /* Q13 */ #endif int16_t no_ipd_flag; /* flag to indicate when no IPD gets used */ @@ -186,7 +186,7 @@ typedef struct stereo_dft_dec_data_struct #endif /*residual prediction*/ - int16_t res_pred_mode[STEREO_DFT_DEC_DFT_NB]; /* residual prediction mode: 0(off), 1(stereo filling only), 2(enhanced stereo filling) */ + int16_t res_pred_mode[STEREO_DFT_DEC_DFT_NB]; /* residual prediction mode: 0(off), 1(stereo filling only), 2(enhanced stereo filling) */ #ifndef IVAS_FLOAT_FIXED float res_pred_gain[STEREO_DFT_DEC_DFT_NB * STEREO_DFT_BAND_MAX]; /* prediction gain for the residual HFs */ #endif @@ -202,9 +202,9 @@ typedef struct stereo_dft_dec_data_struct Word32 ipd_xfade_prev_fx; /* Q13 */ Word32 res_pred_gain_fx[STEREO_DFT_DEC_DFT_NB * STEREO_DFT_BAND_MAX]; /* prediction gain for the residual HFs */ /* Q31 */ #endif - int16_t res_pred_band_min; /* Band min for prediction of residual */ + int16_t res_pred_band_min; /* Band min for prediction of residual */ #ifndef IVAS_FLOAT_FIXED - float DFT_past_DMX[STEREO_DFT_PAST_MAX][STEREO_DFT32MS_N_32k]; /* Past DMX for residual prediction */ + float DFT_past_DMX[STEREO_DFT_PAST_MAX][STEREO_DFT32MS_N_32k]; /* Past DMX for residual prediction */ #endif int16_t past_DMX_pos; int16_t res_pred_flag_0; @@ -243,7 +243,7 @@ typedef struct stereo_dft_dec_data_struct Word16 q_smoothed_nrg; Word16 q_DFT_past_DMX_fx[STEREO_DFT_PAST_MAX]; Word32 res_global_gain_fx; /* Q15 */ -#endif // IVAS_FLOAT_FIXED +#endif // IVAS_FLOAT_FIXED #ifndef IVAS_FLOAT_FIXED float res_cod_mem[STEREO_DFT_OVL_8k]; float buff_LBTCX_mem[NS2SA( 16000, STEREO_DFT32MS_OVL_NS )]; @@ -330,7 +330,7 @@ typedef struct stereo_dft_dec_data_struct #ifndef IVAS_FLOAT_FIXED float g_state[STEREO_DFT_BAND_MAX]; #else - Word16 g_state_fx[STEREO_DFT_BAND_MAX]; /* Q15 */ + Word16 g_state_fx[STEREO_DFT_BAND_MAX]; /* Q15 */ #endif int16_t frame_sid_nodata; int16_t frame_nodata; @@ -339,7 +339,7 @@ typedef struct stereo_dft_dec_data_struct #ifndef IVAS_FLOAT_FIXED float scale; #else - Word16 scale_fx; /* Q15 */ + Word16 scale_fx; /* Q15 */ #endif /* PLC on residual signal */ @@ -378,10 +378,10 @@ typedef struct stereo_dft_dec_data_struct float g_R_prev; const float *max_smooth_gains, *min_smooth_gains; #else - Word32 mixer_mat_smooth_fx[2][4][2 * IVAS_MAX_NUM_BANDS]; /* Q31 */ - Word32 g_L_prev_fx; /* Q31 */ - Word32 g_R_prev_fx; /* Q31 */ - const Word16 *max_smooth_gains_fx, *min_smooth_gains_fx; /* Q15 */ + Word32 mixer_mat_smooth_fx[2][4][2 * IVAS_MAX_NUM_BANDS]; /* Q31 */ + Word32 g_L_prev_fx; /* Q31 */ + Word32 g_R_prev_fx; /* Q31 */ + const Word16 *max_smooth_gains_fx, *min_smooth_gains_fx; /* Q15 */ #endif } STEREO_DFT_DEC_DATA, *STEREO_DFT_DEC_DATA_HANDLE; @@ -394,16 +394,16 @@ typedef struct stereo_dft_dmx_out_data_structure float targetGain; /* TCA gain norm applied on target (or right) channel in current frame */ float prevTargetGain; /* TCA gain norm applied on target (or right) channel in previous frame */ #else - Word32 targetGain_fx; /* Q29 */ - Word32 prevTargetGain_fx; /* Q29 */ + Word32 targetGain_fx; /* Q29 */ + Word32 prevTargetGain_fx; /* Q29 */ #endif #ifndef IVAS_FLOAT_FIXED float memOutHB[NS2SA( 48000, IVAS_DEC_DELAY_NS - DELAY_BWE_TOTAL_NS )]; float memTransitionHB[NS2SA( 48000, STEREO_DFT32MS_OVL_NS )]; #else - Word32 memOutHB_fx[NS2SA( 48000, IVAS_DEC_DELAY_NS - DELAY_BWE_TOTAL_NS )]; /* Q11 */ - Word32 memTransitionHB_fx[NS2SA( 48000, STEREO_DFT32MS_OVL_NS )]; /* Q11 */ + Word32 memOutHB_fx[NS2SA( 48000, IVAS_DEC_DELAY_NS - DELAY_BWE_TOTAL_NS )]; /* Q11 */ + Word32 memTransitionHB_fx[NS2SA( 48000, STEREO_DFT32MS_OVL_NS )]; /* Q11 */ #endif } STEREO_DFT_DMX_DATA, *STEREO_DFT_DMX_DATA_HANDLE; @@ -483,14 +483,14 @@ typedef struct stereo_td_dec_data_structure #ifndef IVAS_FLOAT_FIXED float TCX_old_syn_Overl[L_FRAME16k / 2]; /* past ovrl buffer for possible switching from TD stereo ACELP to MDCT stereo TCX frame */ - float prevSP_ratio; /* previous SP ratio */ - float SP_ratio_LT; /* longterm SP ratio */ - float c_LR_LT; /* left-right cross-correlation */ + float prevSP_ratio; /* previous SP ratio */ + float SP_ratio_LT; /* longterm SP ratio */ + float c_LR_LT; /* left-right cross-correlation */ #else Word32 TCX_old_syn_Overl_fx[L_FRAME16k / 2]; /* past ovrl buffer for possible switching from TD stereo ACELP to MDCT stereo TCX frame */ /* Q11 */ - Word16 prevSP_ratio_fx; /* previous SP ratio */ - Word32 SP_ratio_LT_fx; /* longterm SP ratio */ - Word32 c_LR_LT_fx; /* left-right cross-correlation */ + Word16 prevSP_ratio_fx; /* previous SP ratio */ + Word32 SP_ratio_LT_fx; /* longterm SP ratio */ + Word32 c_LR_LT_fx; /* left-right cross-correlation */ #endif } STEREO_TD_DEC_DATA, *STEREO_TD_DEC_DATA_HANDLE; @@ -519,21 +519,21 @@ typedef struct stereo_mdct_dec_data_structure #ifndef IVAS_FLOAT_FIXED float itd; #else - Word32 itd_fx; /* Q15 */ + Word32 itd_fx; /* Q15 */ #endif int16_t reverse_dmx; #ifndef IVAS_FLOAT_FIXED float smooth_ratio; #else - Word32 smooth_ratio_fx; /* Q26 */ + Word32 smooth_ratio_fx; /* Q26 */ #endif int16_t prev_ms_mask[NB_DIV][MAX_SFB]; #ifndef IVAS_FLOAT_FIXED float lastCoh; #else - Word16 lastCoh_fx; /* Q14 */ + Word16 lastCoh_fx; /* Q14 */ #endif int16_t noise_seeds_channels[CPE_CHANNELS]; int16_t noise_seed_common; @@ -556,8 +556,8 @@ typedef struct stereo_tca_dec_data_structure float targetGain; /* gain norm applied on target (or right) channel in current frame */ float prevTargetGain; /* gain norm applied on target (or right) channel in previous frame */ #else - Word32 targetGain_fx; /* gain norm applied on target (or right) channel in current frame */ // Q29 - Word32 prevTargetGain_fx; /* gain norm applied on target (or right) channel in previous frame */ // Q29 + Word32 targetGain_fx; /* gain norm applied on target (or right) channel in current frame */ // Q29 + Word32 prevTargetGain_fx; /* gain norm applied on target (or right) channel in previous frame */ // Q29 #endif int16_t corrLagStats; /* corr lag stats in current frame */ @@ -571,8 +571,8 @@ typedef struct stereo_tca_dec_data_structure Word32 memChanL_fx[L_DEC_MEM_LEN_ICA]; /* left channel input to correct at the cross-over for Fixed */ Word32 memChanR_fx[L_DEC_MEM_LEN_ICA]; /* right channel input to correct at the cross-over for Fixed */ #else - float memChanL[L_DEC_MEM_LEN_ICA]; /* left channel input to correct at the cross-over */ - float memChanR[L_DEC_MEM_LEN_ICA]; /* right channel input to correct at the cross-over */ + float memChanL[L_DEC_MEM_LEN_ICA]; /* left channel input to correct at the cross-over */ + float memChanR[L_DEC_MEM_LEN_ICA]; /* right channel input to correct at the cross-over */ #endif } STEREO_TCA_DEC_DATA, *STEREO_TCA_DEC_HANDLE; @@ -594,9 +594,9 @@ typedef struct stereo_icbwe_dec_data_structure float memTransitionHB[CPE_CHANNELS][NS2SA( 48000, STEREO_DFT32MS_OVL_NS )]; #else - Word32 memOutHB_fx[CPE_CHANNELS][NS2SA( 48000, IVAS_DEC_DELAY_NS - DELAY_BWE_TOTAL_NS )]; /* Q11 */ + Word32 memOutHB_fx[CPE_CHANNELS][NS2SA( 48000, IVAS_DEC_DELAY_NS - DELAY_BWE_TOTAL_NS )]; /* Q11 */ - Word32 memTransitionHB_fx[CPE_CHANNELS][NS2SA( 48000, STEREO_DFT32MS_OVL_NS )]; /* Q11 */ + Word32 memTransitionHB_fx[CPE_CHANNELS][NS2SA( 48000, STEREO_DFT32MS_OVL_NS )]; /* Q11 */ #endif /* unscaled & scaled SHB synthesis memory */ @@ -605,9 +605,9 @@ typedef struct stereo_icbwe_dec_data_structure float mem_lpc_shbsynth_nonref[LPC_SHB_ORDER]; float mem_syn_shb_ola_nonref[L_SHB_LAHEAD]; #else - Word32 mem_syn_shb_nonref_fx[L_SHB_LAHEAD]; /* Q(prev_Q_syn_shb_nonref) */ - Word32 mem_lpc_shbsynth_nonref_fx[LPC_SHB_ORDER]; /* Q(prev_Q_lpc_shbsynth_nonref) */ - Word32 mem_syn_shb_ola_nonref_fx[L_SHB_LAHEAD]; /* Q(prev_Q_syn_shb_ola_nonref) */ + Word32 mem_syn_shb_nonref_fx[L_SHB_LAHEAD]; /* Q(prev_Q_syn_shb_nonref) */ + Word32 mem_lpc_shbsynth_nonref_fx[LPC_SHB_ORDER]; /* Q(prev_Q_lpc_shbsynth_nonref) */ + Word32 mem_syn_shb_ola_nonref_fx[L_SHB_LAHEAD]; /* Q(prev_Q_syn_shb_ola_nonref) */ Word16 prev_Q_syn_shb_nonref; Word16 prev_Q_lpc_shbsynth_nonref; @@ -646,7 +646,7 @@ typedef struct stereo_icbwe_dec_data_structure #ifndef IVAS_FLOAT_FIXED float icbweM2Ref_prev; #else - Word16 icbweM2Ref_prev_fx; /* Q14 */ + Word16 icbweM2Ref_prev_fx; /* Q14 */ #endif #ifndef IVAS_FLOAT_FIXED @@ -698,24 +698,21 @@ typedef struct param_ism_rendering Word16 *proto_matrix_fx; Word16 *interpolator_fx; /* Q15 */ Word32 *Cldfb_RealBuffer_tc_fx; - Word16 *Cldfb_RealBuffer_tc_e; Word16 Cldfb_RealBuffer_tc_exp; Word32 *Cldfb_ImagBuffer_tc_fx; - Word16 *Cldfb_ImagBuffer_tc_e; Word16 Cldfb_ImagBuffer_tc_exp; Word32 mixing_matrix_lin_fx[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX]; - Word16 exp_mixing_matrix_lin_fx; + Word16 exp_mixing_matrix_lin_fx[CLDFB_NO_CHANNELS_MAX]; Word32 mixing_matrix_lin_old_fx[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX]; - Word16 exp_mixing_matrix_lin_old_fx; -#endif // IVAS_FLOAT_FIXED + Word16 exp_mixing_matrix_lin_old_fx[CLDFB_NO_CHANNELS_MAX]; +#else // IVAS_FLOAT_FIXED float *proto_matrix; -#ifndef IVAS_FLOAT_FIXED float *interpolator; - float mixing_matrix_lin_old[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX]; -#endif float mixing_matrix_lin[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX]; + float mixing_matrix_lin_old[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX]; float *Cldfb_RealBuffer_tc; float *Cldfb_ImagBuffer_tc; +#endif } PARAM_ISM_RENDERING_DATA, *PARAM_ISM_RENDERING_HANDLE; @@ -797,8 +794,8 @@ typedef struct dirac_output_synthesis_cov_state_structure Word32 *mixing_matrix_res_old_fx[CLDFB_NO_CHANNELS_MAX]; Word32 *mixing_matrix_res_fx[CLDFB_NO_CHANNELS_MAX]; - Word16 *cx_old_e; - Word16 *cy_old_e; + Word16 * cx_old_e; + Word16 *cy_old_e; Word16 *mixing_matrix_old_exp; Word16 *mixing_matrix_res_old_exp; Word16 *mixing_matrix_exp; @@ -832,9 +829,9 @@ typedef struct ivas_param_mc_dec_data_structure { int16_t slot_size; #ifdef IVAS_FLOAT_FIXED - Word32 *Cldfb_RealBuffer_tc_fx; // Q12 + Word32 *Cldfb_RealBuffer_tc_fx; // Q12 Word16 Cldfb_RealBuffer_tc_e; - Word32 *Cldfb_ImagBuffer_tc_fx; // Q12 + Word32 *Cldfb_ImagBuffer_tc_fx; // Q12 Word16 Cldfb_ImagBuffer_tc_e; Word16 sz; #else @@ -865,8 +862,8 @@ typedef struct ivas_param_mc_dec_data_structure float *proto_frame_f; float *proto_frame_dec_f; #else - Word32 *proto_frame_f_fx; /* Q11 */ - Word32 *proto_frame_dec_f_fx; /* Q11 */ + Word32 *proto_frame_f_fx; /* Q11 */ + Word32 *proto_frame_dec_f_fx; /* Q11 */ #endif DIRAC_OUTPUT_SYNTHESIS_COV_STATE h_output_synthesis_cov_state; @@ -920,14 +917,14 @@ typedef struct ivas_mc_paramupmix_dec_data_structure #ifdef IVAS_FLOAT_FIXED - Word32 alphas_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 - Word32 betas_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 + Word32 alphas_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 + Word32 betas_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 Word32 alpha_prev_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 - Word32 beta_prev_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 + Word32 beta_prev_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 Word32 *pcm_delay_fx[MC_PARAMUPMIX_MAX_TRANSPORT_CHANS]; - Word16 *param_interpolator_fx; // Q15 - Word32 alpha_sf_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 - Word32 beta_sf_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 + Word16 *param_interpolator_fx; // Q15 + Word32 alpha_sf_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS];//Q28 + Word32 beta_sf_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS];//Q28 Word32 *hoa_encoder_fx; #else float alphas[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; @@ -1011,7 +1008,7 @@ typedef struct ivas_agc_dec_chan_state_t #ifndef IVAS_FLOAT_FIXED float lastGain; #else - Word16 lastGain_fx; /* Q15 */ + Word16 lastGain_fx; /* Q15 */ #endif // IVAS_FLOAT_FIXED Word16 gainExpVal; @@ -1162,7 +1159,7 @@ typedef struct cpe_dec_data_structure #endif #ifdef IVAS_FLOAT_FIXED - Word32 lt_es_em_fx; // 24 + Word32 lt_es_em_fx;//24 Word32 prev_hb_synth_fx[CPE_CHANNELS][NS2SA( 48000, IVAS_DEC_DELAY_NS - DELAY_BWE_TOTAL_NS )]; Word32 prev_synth_fx[CPE_CHANNELS][NS2SA( 48000, IVAS_DEC_DELAY_NS - STEREO_DFT32MS_OVL_NS )]; @@ -1232,7 +1229,7 @@ typedef struct ivas_lfe_dec_data_structure #ifndef IVAS_FLOAT_FIXED float lfe_block_delay_s; #else - Word16 lfe_block_delay_s_fx; /* Q15 */ + Word16 lfe_block_delay_s_fx; /* Q15 */ #endif Word16 lfe_prior_buf_len; #ifndef IVAS_FLOAT_FIXED @@ -1281,17 +1278,17 @@ typedef struct ivas_binaural_rendering_struct IVAS_OUTPUT_SETUP_HANDLE hInputSetup; /* pointer to input spatial format for binaural renderer*/ EFAP_HANDLE hEFAPdata; /* EFAP structure*/ #ifndef IVAS_FLOAT_FIXED - float *hoa_dec_mtx; /* pointer to HOA decoder mtx */ + float *hoa_dec_mtx; /* pointer to HOA decoder mtx */ #else - Word32 *hoa_dec_mtx; /* pointer to HOA decoder mtx */ + Word32 *hoa_dec_mtx; /* pointer to HOA decoder mtx */ #endif - int8_t rotInCldfb; /* Flag to enable rotation within bin Renderer in CLDFB*/ - int16_t max_band; /* band upto which rendering is performed */ - int16_t conv_band; /* band upto which convolution in cldfb domain is performed */ - int16_t timeSlots; /* number of time slots of binaural renderer */ - int16_t nInChannels; /* number input channels */ - int8_t render_lfe; /* Flag to render LFE in binaural rendering*/ - IVAS_FORMAT ivas_format; /* format; corresponds to st_ivas->ivas_format, unless the signal gets transormed to a different domain for rendering */ + int8_t rotInCldfb; /* Flag to enable rotation within bin Renderer in CLDFB*/ + int16_t max_band; /* band upto which rendering is performed */ + int16_t conv_band; /* band upto which convolution in cldfb domain is performed */ + int16_t timeSlots; /* number of time slots of binaural renderer */ + int16_t nInChannels; /* number input channels */ + int8_t render_lfe; /* Flag to render LFE in binaural rendering*/ + IVAS_FORMAT ivas_format; /* format; corresponds to st_ivas->ivas_format, unless the signal gets transormed to a different domain for rendering */ /* Convolution module structure */ #ifndef IVAS_FLOAT_FIXED @@ -1337,7 +1334,7 @@ typedef struct ivas_masa_decoder_data_struct #ifndef IVAS_FLOAT_FIXED float dir_decode_quality; #else - Word16 dir_decode_quality_fx; /* Q15 */ + Word16 dir_decode_quality_fx; /* Q15 */ #endif } MASA_DECODER_DATA; @@ -1400,7 +1397,7 @@ typedef struct ivas_masa_ism_data_structure #ifndef IVAS_FLOAT_FIXED float **delayBuffer; #else - Word32 **delayBuffer_fx; /* Q11 */ + Word32 **delayBuffer_fx; /* Q11 */ #endif int16_t delayBuffer_size; int16_t delayBuffer_nchan; @@ -1418,22 +1415,22 @@ typedef struct decoder_tc_buffer_structure float *tc_buffer; /* the buffer itself */ float *tc[MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS]; /* pointers into the buffer to the beginning of each tc */ // VE2SB: TBV #else - Word32 *tc_buffer_fx; /* the buffer itself */ - Word16 tc_buff_len; /*stores memory length of tc buffer*/ + Word32 *tc_buffer_fx; /* the buffer itself */ + Word16 tc_buff_len;/*stores memory length of tc buffer*/ Word32 *tc_fx[MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS]; /* pointers into the buffer to the beginning of each tc Q11 for ivas */ // VE2SB: TBV #ifdef MSAN_FIX Word16 no_channels; /*Stores no of channels in tc_fx with values*/ #endif Word16 q_tc_fx; #endif - TC_BUFFER_MODE tc_buffer_mode; /* mode of the buffer (no buffering, render buffering, out buffering) */ - int16_t nchan_transport_jbm; /* number of TCs after TC decoding */ - int16_t nchan_transport_internal; /* total number of TC buffer channels, can include e.g. TD decorr data */ - int16_t nchan_buffer_full; /* number of channels to be fully buffered */ - int16_t n_samples_available; /* samples still available for rendering in the current frame */ - int16_t n_samples_buffered; /* full number of samples in the buffer (including spill to next frame) */ - int16_t n_samples_rendered; /* samples already rendered in the current frame */ - int16_t n_samples_granularity; /* render granularity */ + TC_BUFFER_MODE tc_buffer_mode; /* mode of the buffer (no buffering, render buffering, out buffering) */ + int16_t nchan_transport_jbm; /* number of TCs after TC decoding */ + int16_t nchan_transport_internal; /* total number of TC buffer channels, can include e.g. TD decorr data */ + int16_t nchan_buffer_full; /* number of channels to be fully buffered */ + int16_t n_samples_available; /* samples still available for rendering in the current frame */ + int16_t n_samples_buffered; /* full number of samples in the buffer (including spill to next frame) */ + int16_t n_samples_rendered; /* samples already rendered in the current frame */ + int16_t n_samples_granularity; /* render granularity */ int16_t n_samples_flushed; int16_t subframe_nbslots[MAX_JBM_SUBFRAMES_5MS]; int16_t nb_subframes; diff --git a/lib_dec/lib_dec_fx.c b/lib_dec/lib_dec_fx.c index 5f25a4eeb..2764728f6 100644 --- a/lib_dec/lib_dec_fx.c +++ b/lib_dec/lib_dec_fx.c @@ -1438,17 +1438,6 @@ static ivas_error IVAS_DEC_GetTcSamples( { num_freq_bands = st_ivas->hSpatParamRendCom->num_freq_bands; } - FOR( Word16 lp = 0; lp < n_ch_cldfb_tmp; lp++ ) - { - Word16 length = 15 * num_freq_bands * n_ch_cldfb_tmp + num_freq_bands * ( n_ch_cldfb_tmp - 1 ) + st_ivas->cldfbAnaDec[lp]->no_channels; - FOR( Word16 i = 0; i < length; i++ ) - { - st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_fx[i] = - floatToFixed( st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc[i], 6 ); - st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_fx[i] = - floatToFixed( st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc[i], 6 ); - } - } } ELSE IF( st_ivas->ivas_format == MC_FORMAT ) { @@ -1500,17 +1489,6 @@ static ivas_error IVAS_DEC_GetTcSamples( { num_freq_bands = st_ivas->hSpatParamRendCom->num_freq_bands; } - FOR( Word16 lp = 0; lp < n_ch_cldfb_tmp; lp++ ) - { - Word16 length = 15 * num_freq_bands * n_ch_cldfb_tmp + num_freq_bands * ( n_ch_cldfb_tmp - 1 ) + st_ivas->cldfbAnaDec[lp]->no_channels; - FOR( Word16 lp2 = 0; lp2 < length; lp2++ ) - { - st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc[lp2] = - fixedToFloat( st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc_fx[lp2], 6 ); - st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc[lp2] = - fixedToFloat( st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_fx[lp2], 6 ); - } - } } ELSE IF( st_ivas->ivas_format == MC_FORMAT ) { -- GitLab From a2ec28a8a27b317175d480619595c86f38304e88 Mon Sep 17 00:00:00 2001 From: Sandesh Venkatesh Date: Mon, 3 Jun 2024 22:36:39 +0530 Subject: [PATCH 2/2] Clang formatting changes for 2 files --- lib_dec/ivas_jbm_dec.c | 28 +++---- lib_dec/ivas_stat_dec.h | 162 ++++++++++++++++++++-------------------- 2 files changed, 95 insertions(+), 95 deletions(-) diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index de71701e6..c38410672 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -2181,13 +2181,13 @@ void ivas_jbm_dec_feed_tc_to_renderer( ELSE IF( EQ_16( st_ivas->renderer_type, RENDERER_PARAM_ISM ) || EQ_16( st_ivas->renderer_type, RENDERER_SBA_LINEAR_ENC ) ) { #ifdef IVAS_FLOAT_FIXED -/////////////////////////// flt2fix /////////////////////// + /////////////////////////// flt2fix /////////////////////// floatToFixed_arr32( p_data_f[0], p_data_f_fx[0], Q11, MAX_CLDFB_DIGEST_CHANNELS * MAX_JBM_L_FRAME48k ); -/////////////////////////// flt2fix /////////////////////// + /////////////////////////// flt2fix /////////////////////// ivas_param_ism_dec_digest_tc_fx( st_ivas, n_render_timeslots, p_data_f_fx, Q11 ); -/////////////////////////// fix2flt /////////////////////// + /////////////////////////// fix2flt /////////////////////// fixedToFloat_arrL( p_data_f_fx[0], p_data_f[0], Q11, MAX_CLDFB_DIGEST_CHANNELS * MAX_JBM_L_FRAME48k ); /////////////////////////// fix2flt /////////////////////// #else @@ -3463,9 +3463,9 @@ ivas_error ivas_jbm_dec_render( nchan_out_cldfb = nchan_out_transport; set_s( channel_active_fx, 1, nchan_out_cov ); } - //ftf for ivas_dirac_dec_output_synthesis_cov_param_mc_synthesise_slot_fx - //ftf changes - if (st_ivas->hParamMC->max_band_decorr > 0) + // ftf for ivas_dirac_dec_output_synthesis_cov_param_mc_synthesise_slot_fx + // ftf changes + if ( st_ivas->hParamMC->max_band_decorr > 0 ) { // ftf for param_mc_protoSignalComputation_fx FOR( Word16 x = 0; x < st_ivas->hParamMC->diff_proto_info->num_protos_diff; x++ ) @@ -3481,7 +3481,7 @@ ivas_error ivas_jbm_dec_render( f2me_buf( st_ivas->hParamMC->h_freq_domain_decorr_ap_state->decorr_buffer, st_ivas->hParamMC->h_freq_domain_decorr_ap_state->decorr_buffer_fx, &tmp_e, st_ivas->hParamMC->h_freq_domain_decorr_ap_state->decorr_buffer_len ); st_ivas->hParamMC->h_freq_domain_decorr_ap_state->q_decorr_buffer = 31 - tmp_e; } - if ((st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM)) + if ( ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) ) { if ( st_ivas->hCombinedOrientationData && st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV ) { @@ -3499,21 +3499,21 @@ ivas_error ivas_jbm_dec_render( st_ivas->cldfbSynDec[ch]->Q_cldfb_state = Q5; } } - + Word16 tempp; FOR( Word16 param_band_idx = 0; param_band_idx < st_ivas->hParamMC->num_param_bands_synth; param_band_idx++ ) { - tempp = getScaleFactor32(st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx[param_band_idx], nchan_transport * nchan_out_cov); - scale_sig32(st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx[param_band_idx], nchan_transport * nchan_out_cov, tempp); - st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp[param_band_idx] = sub(st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp[param_band_idx], tempp); + tempp = getScaleFactor32( st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx[param_band_idx], nchan_transport * nchan_out_cov ); + scale_sig32( st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx[param_band_idx], nchan_transport * nchan_out_cov, tempp ); + st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp[param_band_idx] = sub( st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp[param_band_idx], tempp ); IF( st_ivas->hParamMC->band_grouping[param_band_idx] < st_ivas->hParamMC->h_output_synthesis_params.max_band_decorr ) { - tempp = getScaleFactor32(st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx[param_band_idx], nchan_transport * nchan_out_cov); - scale_sig32(st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx[param_band_idx], nchan_transport * nchan_out_cov, tempp); - st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp[param_band_idx] = sub(st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp[param_band_idx], tempp); + tempp = getScaleFactor32( st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx[param_band_idx], nchan_transport * nchan_out_cov ); + scale_sig32( st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx[param_band_idx], nchan_transport * nchan_out_cov, tempp ); + st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp[param_band_idx] = sub( st_ivas->hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp[param_band_idx], tempp ); } } #endif diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 8d96c429a..e8beec6d0 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -106,31 +106,31 @@ typedef struct stereo_dft_dec_data_struct #endif - int16_t dft32ms_ovl; /* Overlap size */ + int16_t dft32ms_ovl; /* Overlap size */ #ifndef IVAS_FLOAT_FIXED const float *win32ms; /* DFT window */ const float *win32ms_12k8; /* DFT window */ const float *win32ms_16k; /* DFT window */ const float *win32ms_8k; /* DFT window */ #else - const Word16 *win32ms_fx; /* DFT window */ /* Q15 */ - const Word16 *win32ms_12k8_fx; /* DFT window */ /* Q15 */ - const Word16 *win32ms_16k_fx; /* DFT window */ /* Q15 */ - const Word16 *win32ms_8k_fx; /* DFT window */ /* Q15 */ + const Word16 *win32ms_fx; /* DFT window */ /* Q15 */ + const Word16 *win32ms_12k8_fx; /* DFT window */ /* Q15 */ + const Word16 *win32ms_16k_fx; /* DFT window */ /* Q15 */ + const Word16 *win32ms_8k_fx; /* DFT window */ /* Q15 */ #endif - int16_t dft32ms_ovl2; /* Overlap2 size */ + int16_t dft32ms_ovl2; /* Overlap2 size */ #ifndef IVAS_FLOAT_FIXED const float *win232ms; /* DFT window */ const float *win232ms_12k8; /* DFT window */ const float *win232ms_16k; /* DFT window */ const float *win232ms_8k; /* DFT window */ #else - const Word16 *win232ms_fx; /* DFT window */ /* Q15 */ - const Word16 *win232ms_12k8_fx; /* DFT window */ /* Q15 */ - const Word16 *win232ms_16k_fx; /* DFT window */ /* Q15 */ - const Word16 *win232ms_8k_fx; /* DFT window */ /* Q15 */ - const Word16 *win_8k_fx; /* DFT window residual */ /* Q15 */ + const Word16 *win232ms_fx; /* DFT window */ /* Q15 */ + const Word16 *win232ms_12k8_fx; /* DFT window */ /* Q15 */ + const Word16 *win232ms_16k_fx; /* DFT window */ /* Q15 */ + const Word16 *win232ms_8k_fx; /* DFT window */ /* Q15 */ + const Word16 *win_8k_fx; /* DFT window residual */ /* Q15 */ #endif #ifndef IVAS_FLOAT_FIXED @@ -149,7 +149,7 @@ typedef struct stereo_dft_dec_data_struct #ifndef IVAS_FLOAT_FIXED float side_gain[STEREO_DFT_DEC_DFT_NB * STEREO_DFT_BAND_MAX]; #else - Word32 side_gain_fx[STEREO_DFT_DEC_DFT_NB * STEREO_DFT_BAND_MAX]; /* Q31 */ + Word32 side_gain_fx[STEREO_DFT_DEC_DFT_NB * STEREO_DFT_BAND_MAX]; /* Q31 */ #endif int16_t side_gain_flag_1; int16_t side_gain_flag_2; @@ -159,7 +159,7 @@ typedef struct stereo_dft_dec_data_struct #ifndef IVAS_FLOAT_FIXED float gipd[STEREO_DFT_DEC_DFT_NB]; #else - Word32 gipd_fx[STEREO_DFT_DEC_DFT_NB]; /* Q13 */ + Word32 gipd_fx[STEREO_DFT_DEC_DFT_NB]; /* Q13 */ #endif int16_t no_ipd_flag; /* flag to indicate when no IPD gets used */ @@ -186,7 +186,7 @@ typedef struct stereo_dft_dec_data_struct #endif /*residual prediction*/ - int16_t res_pred_mode[STEREO_DFT_DEC_DFT_NB]; /* residual prediction mode: 0(off), 1(stereo filling only), 2(enhanced stereo filling) */ + int16_t res_pred_mode[STEREO_DFT_DEC_DFT_NB]; /* residual prediction mode: 0(off), 1(stereo filling only), 2(enhanced stereo filling) */ #ifndef IVAS_FLOAT_FIXED float res_pred_gain[STEREO_DFT_DEC_DFT_NB * STEREO_DFT_BAND_MAX]; /* prediction gain for the residual HFs */ #endif @@ -202,9 +202,9 @@ typedef struct stereo_dft_dec_data_struct Word32 ipd_xfade_prev_fx; /* Q13 */ Word32 res_pred_gain_fx[STEREO_DFT_DEC_DFT_NB * STEREO_DFT_BAND_MAX]; /* prediction gain for the residual HFs */ /* Q31 */ #endif - int16_t res_pred_band_min; /* Band min for prediction of residual */ + int16_t res_pred_band_min; /* Band min for prediction of residual */ #ifndef IVAS_FLOAT_FIXED - float DFT_past_DMX[STEREO_DFT_PAST_MAX][STEREO_DFT32MS_N_32k]; /* Past DMX for residual prediction */ + float DFT_past_DMX[STEREO_DFT_PAST_MAX][STEREO_DFT32MS_N_32k]; /* Past DMX for residual prediction */ #endif int16_t past_DMX_pos; int16_t res_pred_flag_0; @@ -243,7 +243,7 @@ typedef struct stereo_dft_dec_data_struct Word16 q_smoothed_nrg; Word16 q_DFT_past_DMX_fx[STEREO_DFT_PAST_MAX]; Word32 res_global_gain_fx; /* Q15 */ -#endif // IVAS_FLOAT_FIXED +#endif // IVAS_FLOAT_FIXED #ifndef IVAS_FLOAT_FIXED float res_cod_mem[STEREO_DFT_OVL_8k]; float buff_LBTCX_mem[NS2SA( 16000, STEREO_DFT32MS_OVL_NS )]; @@ -330,7 +330,7 @@ typedef struct stereo_dft_dec_data_struct #ifndef IVAS_FLOAT_FIXED float g_state[STEREO_DFT_BAND_MAX]; #else - Word16 g_state_fx[STEREO_DFT_BAND_MAX]; /* Q15 */ + Word16 g_state_fx[STEREO_DFT_BAND_MAX]; /* Q15 */ #endif int16_t frame_sid_nodata; int16_t frame_nodata; @@ -339,7 +339,7 @@ typedef struct stereo_dft_dec_data_struct #ifndef IVAS_FLOAT_FIXED float scale; #else - Word16 scale_fx; /* Q15 */ + Word16 scale_fx; /* Q15 */ #endif /* PLC on residual signal */ @@ -378,10 +378,10 @@ typedef struct stereo_dft_dec_data_struct float g_R_prev; const float *max_smooth_gains, *min_smooth_gains; #else - Word32 mixer_mat_smooth_fx[2][4][2 * IVAS_MAX_NUM_BANDS]; /* Q31 */ - Word32 g_L_prev_fx; /* Q31 */ - Word32 g_R_prev_fx; /* Q31 */ - const Word16 *max_smooth_gains_fx, *min_smooth_gains_fx; /* Q15 */ + Word32 mixer_mat_smooth_fx[2][4][2 * IVAS_MAX_NUM_BANDS]; /* Q31 */ + Word32 g_L_prev_fx; /* Q31 */ + Word32 g_R_prev_fx; /* Q31 */ + const Word16 *max_smooth_gains_fx, *min_smooth_gains_fx; /* Q15 */ #endif } STEREO_DFT_DEC_DATA, *STEREO_DFT_DEC_DATA_HANDLE; @@ -394,16 +394,16 @@ typedef struct stereo_dft_dmx_out_data_structure float targetGain; /* TCA gain norm applied on target (or right) channel in current frame */ float prevTargetGain; /* TCA gain norm applied on target (or right) channel in previous frame */ #else - Word32 targetGain_fx; /* Q29 */ - Word32 prevTargetGain_fx; /* Q29 */ + Word32 targetGain_fx; /* Q29 */ + Word32 prevTargetGain_fx; /* Q29 */ #endif #ifndef IVAS_FLOAT_FIXED float memOutHB[NS2SA( 48000, IVAS_DEC_DELAY_NS - DELAY_BWE_TOTAL_NS )]; float memTransitionHB[NS2SA( 48000, STEREO_DFT32MS_OVL_NS )]; #else - Word32 memOutHB_fx[NS2SA( 48000, IVAS_DEC_DELAY_NS - DELAY_BWE_TOTAL_NS )]; /* Q11 */ - Word32 memTransitionHB_fx[NS2SA( 48000, STEREO_DFT32MS_OVL_NS )]; /* Q11 */ + Word32 memOutHB_fx[NS2SA( 48000, IVAS_DEC_DELAY_NS - DELAY_BWE_TOTAL_NS )]; /* Q11 */ + Word32 memTransitionHB_fx[NS2SA( 48000, STEREO_DFT32MS_OVL_NS )]; /* Q11 */ #endif } STEREO_DFT_DMX_DATA, *STEREO_DFT_DMX_DATA_HANDLE; @@ -483,14 +483,14 @@ typedef struct stereo_td_dec_data_structure #ifndef IVAS_FLOAT_FIXED float TCX_old_syn_Overl[L_FRAME16k / 2]; /* past ovrl buffer for possible switching from TD stereo ACELP to MDCT stereo TCX frame */ - float prevSP_ratio; /* previous SP ratio */ - float SP_ratio_LT; /* longterm SP ratio */ - float c_LR_LT; /* left-right cross-correlation */ + float prevSP_ratio; /* previous SP ratio */ + float SP_ratio_LT; /* longterm SP ratio */ + float c_LR_LT; /* left-right cross-correlation */ #else Word32 TCX_old_syn_Overl_fx[L_FRAME16k / 2]; /* past ovrl buffer for possible switching from TD stereo ACELP to MDCT stereo TCX frame */ /* Q11 */ - Word16 prevSP_ratio_fx; /* previous SP ratio */ - Word32 SP_ratio_LT_fx; /* longterm SP ratio */ - Word32 c_LR_LT_fx; /* left-right cross-correlation */ + Word16 prevSP_ratio_fx; /* previous SP ratio */ + Word32 SP_ratio_LT_fx; /* longterm SP ratio */ + Word32 c_LR_LT_fx; /* left-right cross-correlation */ #endif } STEREO_TD_DEC_DATA, *STEREO_TD_DEC_DATA_HANDLE; @@ -519,21 +519,21 @@ typedef struct stereo_mdct_dec_data_structure #ifndef IVAS_FLOAT_FIXED float itd; #else - Word32 itd_fx; /* Q15 */ + Word32 itd_fx; /* Q15 */ #endif int16_t reverse_dmx; #ifndef IVAS_FLOAT_FIXED float smooth_ratio; #else - Word32 smooth_ratio_fx; /* Q26 */ + Word32 smooth_ratio_fx; /* Q26 */ #endif int16_t prev_ms_mask[NB_DIV][MAX_SFB]; #ifndef IVAS_FLOAT_FIXED float lastCoh; #else - Word16 lastCoh_fx; /* Q14 */ + Word16 lastCoh_fx; /* Q14 */ #endif int16_t noise_seeds_channels[CPE_CHANNELS]; int16_t noise_seed_common; @@ -556,8 +556,8 @@ typedef struct stereo_tca_dec_data_structure float targetGain; /* gain norm applied on target (or right) channel in current frame */ float prevTargetGain; /* gain norm applied on target (or right) channel in previous frame */ #else - Word32 targetGain_fx; /* gain norm applied on target (or right) channel in current frame */ // Q29 - Word32 prevTargetGain_fx; /* gain norm applied on target (or right) channel in previous frame */ // Q29 + Word32 targetGain_fx; /* gain norm applied on target (or right) channel in current frame */ // Q29 + Word32 prevTargetGain_fx; /* gain norm applied on target (or right) channel in previous frame */ // Q29 #endif int16_t corrLagStats; /* corr lag stats in current frame */ @@ -571,8 +571,8 @@ typedef struct stereo_tca_dec_data_structure Word32 memChanL_fx[L_DEC_MEM_LEN_ICA]; /* left channel input to correct at the cross-over for Fixed */ Word32 memChanR_fx[L_DEC_MEM_LEN_ICA]; /* right channel input to correct at the cross-over for Fixed */ #else - float memChanL[L_DEC_MEM_LEN_ICA]; /* left channel input to correct at the cross-over */ - float memChanR[L_DEC_MEM_LEN_ICA]; /* right channel input to correct at the cross-over */ + float memChanL[L_DEC_MEM_LEN_ICA]; /* left channel input to correct at the cross-over */ + float memChanR[L_DEC_MEM_LEN_ICA]; /* right channel input to correct at the cross-over */ #endif } STEREO_TCA_DEC_DATA, *STEREO_TCA_DEC_HANDLE; @@ -594,9 +594,9 @@ typedef struct stereo_icbwe_dec_data_structure float memTransitionHB[CPE_CHANNELS][NS2SA( 48000, STEREO_DFT32MS_OVL_NS )]; #else - Word32 memOutHB_fx[CPE_CHANNELS][NS2SA( 48000, IVAS_DEC_DELAY_NS - DELAY_BWE_TOTAL_NS )]; /* Q11 */ + Word32 memOutHB_fx[CPE_CHANNELS][NS2SA( 48000, IVAS_DEC_DELAY_NS - DELAY_BWE_TOTAL_NS )]; /* Q11 */ - Word32 memTransitionHB_fx[CPE_CHANNELS][NS2SA( 48000, STEREO_DFT32MS_OVL_NS )]; /* Q11 */ + Word32 memTransitionHB_fx[CPE_CHANNELS][NS2SA( 48000, STEREO_DFT32MS_OVL_NS )]; /* Q11 */ #endif /* unscaled & scaled SHB synthesis memory */ @@ -605,9 +605,9 @@ typedef struct stereo_icbwe_dec_data_structure float mem_lpc_shbsynth_nonref[LPC_SHB_ORDER]; float mem_syn_shb_ola_nonref[L_SHB_LAHEAD]; #else - Word32 mem_syn_shb_nonref_fx[L_SHB_LAHEAD]; /* Q(prev_Q_syn_shb_nonref) */ - Word32 mem_lpc_shbsynth_nonref_fx[LPC_SHB_ORDER]; /* Q(prev_Q_lpc_shbsynth_nonref) */ - Word32 mem_syn_shb_ola_nonref_fx[L_SHB_LAHEAD]; /* Q(prev_Q_syn_shb_ola_nonref) */ + Word32 mem_syn_shb_nonref_fx[L_SHB_LAHEAD]; /* Q(prev_Q_syn_shb_nonref) */ + Word32 mem_lpc_shbsynth_nonref_fx[LPC_SHB_ORDER]; /* Q(prev_Q_lpc_shbsynth_nonref) */ + Word32 mem_syn_shb_ola_nonref_fx[L_SHB_LAHEAD]; /* Q(prev_Q_syn_shb_ola_nonref) */ Word16 prev_Q_syn_shb_nonref; Word16 prev_Q_lpc_shbsynth_nonref; @@ -794,8 +794,8 @@ typedef struct dirac_output_synthesis_cov_state_structure Word32 *mixing_matrix_res_old_fx[CLDFB_NO_CHANNELS_MAX]; Word32 *mixing_matrix_res_fx[CLDFB_NO_CHANNELS_MAX]; - Word16 * cx_old_e; - Word16 *cy_old_e; + Word16 *cx_old_e; + Word16 *cy_old_e; Word16 *mixing_matrix_old_exp; Word16 *mixing_matrix_res_old_exp; Word16 *mixing_matrix_exp; @@ -829,9 +829,9 @@ typedef struct ivas_param_mc_dec_data_structure { int16_t slot_size; #ifdef IVAS_FLOAT_FIXED - Word32 *Cldfb_RealBuffer_tc_fx; // Q12 + Word32 *Cldfb_RealBuffer_tc_fx; // Q12 Word16 Cldfb_RealBuffer_tc_e; - Word32 *Cldfb_ImagBuffer_tc_fx; // Q12 + Word32 *Cldfb_ImagBuffer_tc_fx; // Q12 Word16 Cldfb_ImagBuffer_tc_e; Word16 sz; #else @@ -862,8 +862,8 @@ typedef struct ivas_param_mc_dec_data_structure float *proto_frame_f; float *proto_frame_dec_f; #else - Word32 *proto_frame_f_fx; /* Q11 */ - Word32 *proto_frame_dec_f_fx; /* Q11 */ + Word32 *proto_frame_f_fx; /* Q11 */ + Word32 *proto_frame_dec_f_fx; /* Q11 */ #endif DIRAC_OUTPUT_SYNTHESIS_COV_STATE h_output_synthesis_cov_state; @@ -917,14 +917,14 @@ typedef struct ivas_mc_paramupmix_dec_data_structure #ifdef IVAS_FLOAT_FIXED - Word32 alphas_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 - Word32 betas_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 + Word32 alphas_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 + Word32 betas_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 Word32 alpha_prev_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 - Word32 beta_prev_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 + Word32 beta_prev_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 Word32 *pcm_delay_fx[MC_PARAMUPMIX_MAX_TRANSPORT_CHANS]; - Word16 *param_interpolator_fx; // Q15 - Word32 alpha_sf_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS];//Q28 - Word32 beta_sf_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS];//Q28 + Word16 *param_interpolator_fx; // Q15 + Word32 alpha_sf_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 + Word32 beta_sf_fx[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; // Q28 Word32 *hoa_encoder_fx; #else float alphas[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; @@ -1008,7 +1008,7 @@ typedef struct ivas_agc_dec_chan_state_t #ifndef IVAS_FLOAT_FIXED float lastGain; #else - Word16 lastGain_fx; /* Q15 */ + Word16 lastGain_fx; /* Q15 */ #endif // IVAS_FLOAT_FIXED Word16 gainExpVal; @@ -1159,7 +1159,7 @@ typedef struct cpe_dec_data_structure #endif #ifdef IVAS_FLOAT_FIXED - Word32 lt_es_em_fx;//24 + Word32 lt_es_em_fx; // 24 Word32 prev_hb_synth_fx[CPE_CHANNELS][NS2SA( 48000, IVAS_DEC_DELAY_NS - DELAY_BWE_TOTAL_NS )]; Word32 prev_synth_fx[CPE_CHANNELS][NS2SA( 48000, IVAS_DEC_DELAY_NS - STEREO_DFT32MS_OVL_NS )]; @@ -1229,7 +1229,7 @@ typedef struct ivas_lfe_dec_data_structure #ifndef IVAS_FLOAT_FIXED float lfe_block_delay_s; #else - Word16 lfe_block_delay_s_fx; /* Q15 */ + Word16 lfe_block_delay_s_fx; /* Q15 */ #endif Word16 lfe_prior_buf_len; #ifndef IVAS_FLOAT_FIXED @@ -1278,17 +1278,17 @@ typedef struct ivas_binaural_rendering_struct IVAS_OUTPUT_SETUP_HANDLE hInputSetup; /* pointer to input spatial format for binaural renderer*/ EFAP_HANDLE hEFAPdata; /* EFAP structure*/ #ifndef IVAS_FLOAT_FIXED - float *hoa_dec_mtx; /* pointer to HOA decoder mtx */ + float *hoa_dec_mtx; /* pointer to HOA decoder mtx */ #else - Word32 *hoa_dec_mtx; /* pointer to HOA decoder mtx */ + Word32 *hoa_dec_mtx; /* pointer to HOA decoder mtx */ #endif - int8_t rotInCldfb; /* Flag to enable rotation within bin Renderer in CLDFB*/ - int16_t max_band; /* band upto which rendering is performed */ - int16_t conv_band; /* band upto which convolution in cldfb domain is performed */ - int16_t timeSlots; /* number of time slots of binaural renderer */ - int16_t nInChannels; /* number input channels */ - int8_t render_lfe; /* Flag to render LFE in binaural rendering*/ - IVAS_FORMAT ivas_format; /* format; corresponds to st_ivas->ivas_format, unless the signal gets transormed to a different domain for rendering */ + int8_t rotInCldfb; /* Flag to enable rotation within bin Renderer in CLDFB*/ + int16_t max_band; /* band upto which rendering is performed */ + int16_t conv_band; /* band upto which convolution in cldfb domain is performed */ + int16_t timeSlots; /* number of time slots of binaural renderer */ + int16_t nInChannels; /* number input channels */ + int8_t render_lfe; /* Flag to render LFE in binaural rendering*/ + IVAS_FORMAT ivas_format; /* format; corresponds to st_ivas->ivas_format, unless the signal gets transormed to a different domain for rendering */ /* Convolution module structure */ #ifndef IVAS_FLOAT_FIXED @@ -1334,7 +1334,7 @@ typedef struct ivas_masa_decoder_data_struct #ifndef IVAS_FLOAT_FIXED float dir_decode_quality; #else - Word16 dir_decode_quality_fx; /* Q15 */ + Word16 dir_decode_quality_fx; /* Q15 */ #endif } MASA_DECODER_DATA; @@ -1397,7 +1397,7 @@ typedef struct ivas_masa_ism_data_structure #ifndef IVAS_FLOAT_FIXED float **delayBuffer; #else - Word32 **delayBuffer_fx; /* Q11 */ + Word32 **delayBuffer_fx; /* Q11 */ #endif int16_t delayBuffer_size; int16_t delayBuffer_nchan; @@ -1415,22 +1415,22 @@ typedef struct decoder_tc_buffer_structure float *tc_buffer; /* the buffer itself */ float *tc[MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS]; /* pointers into the buffer to the beginning of each tc */ // VE2SB: TBV #else - Word32 *tc_buffer_fx; /* the buffer itself */ - Word16 tc_buff_len;/*stores memory length of tc buffer*/ + Word32 *tc_buffer_fx; /* the buffer itself */ + Word16 tc_buff_len; /*stores memory length of tc buffer*/ Word32 *tc_fx[MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS]; /* pointers into the buffer to the beginning of each tc Q11 for ivas */ // VE2SB: TBV #ifdef MSAN_FIX Word16 no_channels; /*Stores no of channels in tc_fx with values*/ #endif Word16 q_tc_fx; #endif - TC_BUFFER_MODE tc_buffer_mode; /* mode of the buffer (no buffering, render buffering, out buffering) */ - int16_t nchan_transport_jbm; /* number of TCs after TC decoding */ - int16_t nchan_transport_internal; /* total number of TC buffer channels, can include e.g. TD decorr data */ - int16_t nchan_buffer_full; /* number of channels to be fully buffered */ - int16_t n_samples_available; /* samples still available for rendering in the current frame */ - int16_t n_samples_buffered; /* full number of samples in the buffer (including spill to next frame) */ - int16_t n_samples_rendered; /* samples already rendered in the current frame */ - int16_t n_samples_granularity; /* render granularity */ + TC_BUFFER_MODE tc_buffer_mode; /* mode of the buffer (no buffering, render buffering, out buffering) */ + int16_t nchan_transport_jbm; /* number of TCs after TC decoding */ + int16_t nchan_transport_internal; /* total number of TC buffer channels, can include e.g. TD decorr data */ + int16_t nchan_buffer_full; /* number of channels to be fully buffered */ + int16_t n_samples_available; /* samples still available for rendering in the current frame */ + int16_t n_samples_buffered; /* full number of samples in the buffer (including spill to next frame) */ + int16_t n_samples_rendered; /* samples already rendered in the current frame */ + int16_t n_samples_granularity; /* render granularity */ int16_t n_samples_flushed; int16_t subframe_nbslots[MAX_JBM_SUBFRAMES_5MS]; int16_t nb_subframes; -- GitLab