Loading lib_rend/ivas_dirac_dec_binaural_functions_fx.c +122 −150 Original line number Diff line number Diff line Loading @@ -2712,6 +2712,7 @@ static void ivas_dirac_dec_binaural_process_output_fx( Word32 decorrIm_fx[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], Word16 *Q_inp_mix, const Word8 recompute ) { Word16 slot, bin, chA, chB; Word16 nBins; Loading Loading @@ -2746,18 +2747,6 @@ static void ivas_dirac_dec_binaural_process_output_fx( } } // scaling input and reverb to same q// // input scaling is to maintain precision in ivas_dirac_dec_decorrelate_slot fn// move16(); FOR( Word16 i = 0; i < ch_len; i++ ) { FOR( Word16 j = 0; j < nSlots; j++ ) { /* Process second / room effect part of binaural output when needed */ ivas_binaural_reverb_processSubframe_fx( hDiracDecBin->hReverb, numInChannels, nSlots, inRe_fx, inIm_fx, reverbRe_fx, reverbIm_fx ); } } IF( EQ_16( recompute, 1 ) ) { // scaling input and reverb to same q// Loading @@ -2765,7 +2754,7 @@ static void ivas_dirac_dec_binaural_process_output_fx( Word16 shift = s_min( L_norm_arr( cldfbSynDec[0]->cldfb_state_fx, cldfbSynDec[0]->p_filter_length ), L_norm_arr( cldfbSynDec[1]->cldfb_state_fx, cldfbSynDec[1]->p_filter_length ) ); q_inp_mix = 31; move16(); FOR( Word16 i = 0; i < 6; i++ ) FOR( Word16 i = 0; i < ch_len; i++ ) { FOR( Word16 j = 0; j < nSlots; j++ ) { Loading @@ -2792,7 +2781,9 @@ static void ivas_dirac_dec_binaural_process_output_fx( move16(); } FOR( Word16 i = 0; i < 6; i++ ) eff_q = sub( add( q_inp_mix, q_mat ), 15 ); FOR( Word16 i = 0; i < ch_len; i++ ) { FOR( Word16 j = 0; j < nSlots; j++ ) { Loading @@ -2802,8 +2793,8 @@ static void ivas_dirac_dec_binaural_process_output_fx( test(); IF( ( processReverb && EQ_16( recompute, 1 ) ) && LT_16( i, 2 ) ) { scale_sig32( reverbRe_fx[i][j], CLDFB_NO_CHANNELS_MAX, sub( add( q_inp_mix, q_mat ), 15 ) ); /*q_inp_mix+q_mat-15*/ scale_sig32( reverbIm_fx[i][j], CLDFB_NO_CHANNELS_MAX, sub( add( q_inp_mix, q_mat ), 15 ) ); /*q_inp_mix+q_mat-15*/ scale_sig32( reverbRe_fx[i][j], CLDFB_NO_CHANNELS_MAX, eff_q ); /*q_inp_mix+q_mat-15*/ scale_sig32( reverbIm_fx[i][j], CLDFB_NO_CHANNELS_MAX, eff_q ); /*q_inp_mix+q_mat-15*/ } } } Loading @@ -2821,24 +2812,6 @@ static void ivas_dirac_dec_binaural_process_output_fx( ELSE { q_inp_mix = *Q_inp_mix; eff_q = sub( add( q_inp_mix, q_mat ), 15 ); FOR( Word16 i = 0; i < ch_len; i++ ) { FOR( Word16 j = 0; j < nSlots; j++ ) { scale_sig32( inRe_fx[i][j], nBins, q_inp_mix ); /*q_input + q_inp_mix*/ scale_sig32( inIm_fx[i][j], nBins, q_inp_mix ); /*q_input + q_inp_mix*/ test(); IF( processReverb && LT_16( i, 2 ) ) { scale_sig32( reverbRe_fx[i][j], CLDFB_NO_CHANNELS_MAX, eff_q ); /*q_inp_mix+q_mat-15*/ scale_sig32( reverbIm_fx[i][j], CLDFB_NO_CHANNELS_MAX, eff_q ); /*q_inp_mix+q_mat-15*/ } } } q_inp_mix = add( q_inp_mix, q_input ); Loading Loading @@ -2996,7 +2969,6 @@ static void ivas_dirac_dec_binaural_process_output_fx( return; } } static void adaptTransportSignalsHeadtracked_fx( Loading Loading
lib_rend/ivas_dirac_dec_binaural_functions_fx.c +122 −150 Original line number Diff line number Diff line Loading @@ -2712,6 +2712,7 @@ static void ivas_dirac_dec_binaural_process_output_fx( Word32 decorrIm_fx[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], Word16 *Q_inp_mix, const Word8 recompute ) { Word16 slot, bin, chA, chB; Word16 nBins; Loading Loading @@ -2746,18 +2747,6 @@ static void ivas_dirac_dec_binaural_process_output_fx( } } // scaling input and reverb to same q// // input scaling is to maintain precision in ivas_dirac_dec_decorrelate_slot fn// move16(); FOR( Word16 i = 0; i < ch_len; i++ ) { FOR( Word16 j = 0; j < nSlots; j++ ) { /* Process second / room effect part of binaural output when needed */ ivas_binaural_reverb_processSubframe_fx( hDiracDecBin->hReverb, numInChannels, nSlots, inRe_fx, inIm_fx, reverbRe_fx, reverbIm_fx ); } } IF( EQ_16( recompute, 1 ) ) { // scaling input and reverb to same q// Loading @@ -2765,7 +2754,7 @@ static void ivas_dirac_dec_binaural_process_output_fx( Word16 shift = s_min( L_norm_arr( cldfbSynDec[0]->cldfb_state_fx, cldfbSynDec[0]->p_filter_length ), L_norm_arr( cldfbSynDec[1]->cldfb_state_fx, cldfbSynDec[1]->p_filter_length ) ); q_inp_mix = 31; move16(); FOR( Word16 i = 0; i < 6; i++ ) FOR( Word16 i = 0; i < ch_len; i++ ) { FOR( Word16 j = 0; j < nSlots; j++ ) { Loading @@ -2792,7 +2781,9 @@ static void ivas_dirac_dec_binaural_process_output_fx( move16(); } FOR( Word16 i = 0; i < 6; i++ ) eff_q = sub( add( q_inp_mix, q_mat ), 15 ); FOR( Word16 i = 0; i < ch_len; i++ ) { FOR( Word16 j = 0; j < nSlots; j++ ) { Loading @@ -2802,8 +2793,8 @@ static void ivas_dirac_dec_binaural_process_output_fx( test(); IF( ( processReverb && EQ_16( recompute, 1 ) ) && LT_16( i, 2 ) ) { scale_sig32( reverbRe_fx[i][j], CLDFB_NO_CHANNELS_MAX, sub( add( q_inp_mix, q_mat ), 15 ) ); /*q_inp_mix+q_mat-15*/ scale_sig32( reverbIm_fx[i][j], CLDFB_NO_CHANNELS_MAX, sub( add( q_inp_mix, q_mat ), 15 ) ); /*q_inp_mix+q_mat-15*/ scale_sig32( reverbRe_fx[i][j], CLDFB_NO_CHANNELS_MAX, eff_q ); /*q_inp_mix+q_mat-15*/ scale_sig32( reverbIm_fx[i][j], CLDFB_NO_CHANNELS_MAX, eff_q ); /*q_inp_mix+q_mat-15*/ } } } Loading @@ -2821,24 +2812,6 @@ static void ivas_dirac_dec_binaural_process_output_fx( ELSE { q_inp_mix = *Q_inp_mix; eff_q = sub( add( q_inp_mix, q_mat ), 15 ); FOR( Word16 i = 0; i < ch_len; i++ ) { FOR( Word16 j = 0; j < nSlots; j++ ) { scale_sig32( inRe_fx[i][j], nBins, q_inp_mix ); /*q_input + q_inp_mix*/ scale_sig32( inIm_fx[i][j], nBins, q_inp_mix ); /*q_input + q_inp_mix*/ test(); IF( processReverb && LT_16( i, 2 ) ) { scale_sig32( reverbRe_fx[i][j], CLDFB_NO_CHANNELS_MAX, eff_q ); /*q_inp_mix+q_mat-15*/ scale_sig32( reverbIm_fx[i][j], CLDFB_NO_CHANNELS_MAX, eff_q ); /*q_inp_mix+q_mat-15*/ } } } q_inp_mix = add( q_inp_mix, q_input ); Loading Loading @@ -2996,7 +2969,6 @@ static void ivas_dirac_dec_binaural_process_output_fx( return; } } static void adaptTransportSignalsHeadtracked_fx( Loading