Loading lib_com/ivas_prot_fx.h +4 −0 Original line number Diff line number Diff line Loading @@ -1367,7 +1367,11 @@ void stereo_icBWE_enc_fx( Word32 shb_speech_nonref_fx[], /* i/o: SHB speech non-ref channel */ #endif Word16 shb_speech_nonref_e, /* i/o: SHB speech non-ref channel */ #ifdef SCALING_SWB_SPEECH_32 const Word16 *voice_factors_fx /* i : voicing factors Q15 */ #else const Word32 *voice_factors_fx /* i : voicing factors Q31 */ #endif ); void initMdctStereoDecData_fx( Loading lib_com/options.h +2 −1 Original line number Diff line number Diff line Loading @@ -118,7 +118,8 @@ #define HARM_COREDECODER_FUNCTIONS /* VA: basop issue 2347: Remove various duplicated code in core-decoder */ #define SIMPLIFY_SCALING_OLD_INP #define REMOVE_UNUSED_BUFFER_CORE_ENC #define REMOVE_SCALING_SHB_SPEECH #define REMOVE_SCALING_SHB_SPEECH_BE #define REMOVE_SCALING_SHB_SPEECH_NONBE #define SCALING_SWB_SPEECH_32 /* #################### End BE switches ################################## */ Loading lib_enc/ivas_core_enc_fx.c +28 −14 Original line number Diff line number Diff line Loading @@ -798,6 +798,9 @@ ivas_error ivas_core_enc_fx( } } #ifdef REMOVE_SCALING_SHB_SPEECH_BE Word16 flag_shb_scale = 0; // just temporary to keep BE, it will disappear #endif Word16 Q_shb_spch_16 = Q_shb_spch; move16(); #ifdef FIX_2344_ALIGN_PREPROC Loading @@ -805,7 +808,7 @@ ivas_error ivas_core_enc_fx( // IF( st->tcxonly == 0 ) #endif { #ifndef REMOVE_SCALING_SHB_SPEECH #ifndef REMOVE_SCALING_SHB_SPEECH_BE shift = add( getScaleFactor16( shb_speech_fx, L_FRAME16k ), Q16 ); Copy_Scale_sig_16_32_no_sat( shb_speech_fx, shb_speech_fx32, L_FRAME16k, shift ); // Q_shb_spch Q_shb_spch = add( Q_shb_spch, shift ); Loading Loading @@ -841,7 +844,8 @@ ivas_error ivas_core_enc_fx( } ELSE IF( EQ_16( st->extl, SWB_BWE ) || EQ_16( st->extl, FB_BWE ) ) { #ifdef REMOVE_SCALING_SHB_SPEECH #ifdef REMOVE_SCALING_SHB_SPEECH_BE flag_shb_scale = 1; shift = add( getScaleFactor16( shb_speech_fx, L_FRAME16k ), Q16 ); Q_shb_spch = add( Q_shb_spch_16, shift ); Copy_Scale_sig_16_32_no_sat( shb_speech_fx, shb_speech_fx32, L_FRAME16k, shift ); // Q_shb_spch Loading @@ -863,10 +867,14 @@ ivas_error ivas_core_enc_fx( IF( st->hTdCngEnc != NULL && st->Opt_DTX_ON && ( GE_16( input_frame, L_FRAME32k ) || EQ_16( st->element_mode, IVAS_CPE_DFT ) ) ) { /* SHB DTX/CNG encoder */ #ifdef REMOVE_SCALING_SHB_SPEECH #ifdef REMOVE_SCALING_SHB_SPEECH_BE if( flag_shb_scale == 0 ) { flag_shb_scale = 1; shift = add( getScaleFactor16( shb_speech_fx, L_FRAME16k ), Q16 ); Q_shb_spch = add( Q_shb_spch_16, shift ); Copy_Scale_sig_16_32_no_sat( shb_speech_fx, shb_speech_fx32, L_FRAME16k, shift ); // Q_shb_spch } #endif Copy_Scale_sig_32_16( shb_speech_fx32, shb_speech_fx, L_FRAME16k, negate( Q_shb_spch ) ); // Q0 #ifdef HARM_NON_LINEARITY Loading @@ -883,26 +891,32 @@ ivas_error ivas_core_enc_fx( Word16 q_new_swb_speech_buffer = getScaleFactor16( new_swb_speech_buffer_fx_16, L_FRAME48k + STEREO_DFT_OVL_MAX ); Scale_sig( new_swb_speech_buffer_fx_16, L_FRAME48k + STEREO_DFT_OVL_MAX, q_new_swb_speech_buffer ); // st->q_inp+q_new_swb_speech_buffer q_new_swb_speech_buffer = add( st->q_inp, q_new_swb_speech_buffer ); test(); test(); IF( n == 0 && GE_32( input_Fs, 32000 ) && hStereoICBWE != NULL ) { #ifndef SCALING_SWB_SPEECH_32 Word32 voice_factors_fx32[CPE_CHANNELS][NB_SUBFR16k]; #endif stereo_icBWE_preproc_fx( hCPE, input_frame, new_swb_speech_buffer_fx_16 /*tmp buffer*/, q_new_swb_speech_buffer ); q_new_swb_speech_buffer = add( q_new_swb_speech_buffer, 16 ); #ifndef SCALING_SWB_SPEECH_32 Copy_Scale_sig_16_32_no_sat( new_swb_speech_buffer_fx_16, new_swb_speech_buffer_fx, L_FRAME48k + STEREO_DFT_OVL_MAX, Q16 ); // q_new_swb_speech_buffer+st->q_inp - 16 - > q_new_swb_speech_buffer+st->q_inp #endif Copy_Scale_sig_16_32_no_sat( voice_factors_fx[0], voice_factors_fx32[0], NB_SUBFR16k, Q16 ); // Q31 #endif #ifdef REMOVE_SCALING_SHB_SPEECH #ifdef REMOVE_SCALING_SHB_SPEECH_BE if ( flag_shb_scale == 0 ) { shift = add( getScaleFactor16( shb_speech_fx, L_FRAME16k ), Q16 ); Q_shb_spch = add( Q_shb_spch_16, shift ); Copy_Scale_sig_16_32_no_sat( shb_speech_fx, shb_speech_fx32, L_FRAME16k, shift ); // Q_shb_spch } #endif #ifdef SCALING_SWB_SPEECH_32 stereo_icBWE_enc_fx( hCPE, shb_speech_fx32, sub( Q31, Q_shb_spch ), new_swb_speech_buffer_fx_16, sub( Q31, q_new_swb_speech_buffer ), voice_factors_fx32[0] ); stereo_icBWE_enc_fx( hCPE, shb_speech_fx32, sub( Q31, Q_shb_spch ), new_swb_speech_buffer_fx_16, sub( Q31, q_new_swb_speech_buffer ), voice_factors_fx[0] ); #else stereo_icBWE_enc_fx( hCPE, shb_speech_fx32, sub( Q31, Q_shb_spch ), new_swb_speech_buffer_fx, sub( Q31, q_new_swb_speech_buffer ), voice_factors_fx32[0] ); #endif Loading lib_enc/ivas_stereo_icbwe_enc_fx.c +6 −0 Original line number Diff line number Diff line Loading @@ -627,7 +627,11 @@ void stereo_icBWE_enc_fx( Word32 shb_speech_nonref_fx[], /* i/o: SHB speech non-ref channel Q31-shb_speech_nonref_e*/ #endif Word16 shb_speech_nonref_e, /* i/o: SHB speech non-ref channel */ #ifdef SCALING_SWB_SPEECH_32 const Word16 *voice_factors_fx16 /* i : voicing factors Q15 */ #else const Word32 *voice_factors_fx /* i : voicing factors Q31 */ #endif ) { Word16 i, j, k, nbSubFr; Loading @@ -653,8 +657,10 @@ void stereo_icBWE_enc_fx( #ifdef SCALING_SWB_SPEECH_32 Word32 shb_speech_nonref_fx[L_FRAME48k + STEREO_DFT_OVL_MAX]; Word32 voice_factors_fx[NB_SUBFR16k]; Copy_Scale_sig_16_32_no_sat( shb_speech_nonref_fx_16, shb_speech_nonref_fx, L_FRAME48k + STEREO_DFT_OVL_MAX, Q16 ); // q_new_swb_speech_buffer+st->q_inp - 16 - > q_new_swb_speech_buffer+st->q_inp Copy_Scale_sig_16_32_no_sat( voice_factors_fx16, voice_factors_fx, NB_SUBFR16k, Q16 ); // Q31 #endif /* initialization */ Loading Loading
lib_com/ivas_prot_fx.h +4 −0 Original line number Diff line number Diff line Loading @@ -1367,7 +1367,11 @@ void stereo_icBWE_enc_fx( Word32 shb_speech_nonref_fx[], /* i/o: SHB speech non-ref channel */ #endif Word16 shb_speech_nonref_e, /* i/o: SHB speech non-ref channel */ #ifdef SCALING_SWB_SPEECH_32 const Word16 *voice_factors_fx /* i : voicing factors Q15 */ #else const Word32 *voice_factors_fx /* i : voicing factors Q31 */ #endif ); void initMdctStereoDecData_fx( Loading
lib_com/options.h +2 −1 Original line number Diff line number Diff line Loading @@ -118,7 +118,8 @@ #define HARM_COREDECODER_FUNCTIONS /* VA: basop issue 2347: Remove various duplicated code in core-decoder */ #define SIMPLIFY_SCALING_OLD_INP #define REMOVE_UNUSED_BUFFER_CORE_ENC #define REMOVE_SCALING_SHB_SPEECH #define REMOVE_SCALING_SHB_SPEECH_BE #define REMOVE_SCALING_SHB_SPEECH_NONBE #define SCALING_SWB_SPEECH_32 /* #################### End BE switches ################################## */ Loading
lib_enc/ivas_core_enc_fx.c +28 −14 Original line number Diff line number Diff line Loading @@ -798,6 +798,9 @@ ivas_error ivas_core_enc_fx( } } #ifdef REMOVE_SCALING_SHB_SPEECH_BE Word16 flag_shb_scale = 0; // just temporary to keep BE, it will disappear #endif Word16 Q_shb_spch_16 = Q_shb_spch; move16(); #ifdef FIX_2344_ALIGN_PREPROC Loading @@ -805,7 +808,7 @@ ivas_error ivas_core_enc_fx( // IF( st->tcxonly == 0 ) #endif { #ifndef REMOVE_SCALING_SHB_SPEECH #ifndef REMOVE_SCALING_SHB_SPEECH_BE shift = add( getScaleFactor16( shb_speech_fx, L_FRAME16k ), Q16 ); Copy_Scale_sig_16_32_no_sat( shb_speech_fx, shb_speech_fx32, L_FRAME16k, shift ); // Q_shb_spch Q_shb_spch = add( Q_shb_spch, shift ); Loading Loading @@ -841,7 +844,8 @@ ivas_error ivas_core_enc_fx( } ELSE IF( EQ_16( st->extl, SWB_BWE ) || EQ_16( st->extl, FB_BWE ) ) { #ifdef REMOVE_SCALING_SHB_SPEECH #ifdef REMOVE_SCALING_SHB_SPEECH_BE flag_shb_scale = 1; shift = add( getScaleFactor16( shb_speech_fx, L_FRAME16k ), Q16 ); Q_shb_spch = add( Q_shb_spch_16, shift ); Copy_Scale_sig_16_32_no_sat( shb_speech_fx, shb_speech_fx32, L_FRAME16k, shift ); // Q_shb_spch Loading @@ -863,10 +867,14 @@ ivas_error ivas_core_enc_fx( IF( st->hTdCngEnc != NULL && st->Opt_DTX_ON && ( GE_16( input_frame, L_FRAME32k ) || EQ_16( st->element_mode, IVAS_CPE_DFT ) ) ) { /* SHB DTX/CNG encoder */ #ifdef REMOVE_SCALING_SHB_SPEECH #ifdef REMOVE_SCALING_SHB_SPEECH_BE if( flag_shb_scale == 0 ) { flag_shb_scale = 1; shift = add( getScaleFactor16( shb_speech_fx, L_FRAME16k ), Q16 ); Q_shb_spch = add( Q_shb_spch_16, shift ); Copy_Scale_sig_16_32_no_sat( shb_speech_fx, shb_speech_fx32, L_FRAME16k, shift ); // Q_shb_spch } #endif Copy_Scale_sig_32_16( shb_speech_fx32, shb_speech_fx, L_FRAME16k, negate( Q_shb_spch ) ); // Q0 #ifdef HARM_NON_LINEARITY Loading @@ -883,26 +891,32 @@ ivas_error ivas_core_enc_fx( Word16 q_new_swb_speech_buffer = getScaleFactor16( new_swb_speech_buffer_fx_16, L_FRAME48k + STEREO_DFT_OVL_MAX ); Scale_sig( new_swb_speech_buffer_fx_16, L_FRAME48k + STEREO_DFT_OVL_MAX, q_new_swb_speech_buffer ); // st->q_inp+q_new_swb_speech_buffer q_new_swb_speech_buffer = add( st->q_inp, q_new_swb_speech_buffer ); test(); test(); IF( n == 0 && GE_32( input_Fs, 32000 ) && hStereoICBWE != NULL ) { #ifndef SCALING_SWB_SPEECH_32 Word32 voice_factors_fx32[CPE_CHANNELS][NB_SUBFR16k]; #endif stereo_icBWE_preproc_fx( hCPE, input_frame, new_swb_speech_buffer_fx_16 /*tmp buffer*/, q_new_swb_speech_buffer ); q_new_swb_speech_buffer = add( q_new_swb_speech_buffer, 16 ); #ifndef SCALING_SWB_SPEECH_32 Copy_Scale_sig_16_32_no_sat( new_swb_speech_buffer_fx_16, new_swb_speech_buffer_fx, L_FRAME48k + STEREO_DFT_OVL_MAX, Q16 ); // q_new_swb_speech_buffer+st->q_inp - 16 - > q_new_swb_speech_buffer+st->q_inp #endif Copy_Scale_sig_16_32_no_sat( voice_factors_fx[0], voice_factors_fx32[0], NB_SUBFR16k, Q16 ); // Q31 #endif #ifdef REMOVE_SCALING_SHB_SPEECH #ifdef REMOVE_SCALING_SHB_SPEECH_BE if ( flag_shb_scale == 0 ) { shift = add( getScaleFactor16( shb_speech_fx, L_FRAME16k ), Q16 ); Q_shb_spch = add( Q_shb_spch_16, shift ); Copy_Scale_sig_16_32_no_sat( shb_speech_fx, shb_speech_fx32, L_FRAME16k, shift ); // Q_shb_spch } #endif #ifdef SCALING_SWB_SPEECH_32 stereo_icBWE_enc_fx( hCPE, shb_speech_fx32, sub( Q31, Q_shb_spch ), new_swb_speech_buffer_fx_16, sub( Q31, q_new_swb_speech_buffer ), voice_factors_fx32[0] ); stereo_icBWE_enc_fx( hCPE, shb_speech_fx32, sub( Q31, Q_shb_spch ), new_swb_speech_buffer_fx_16, sub( Q31, q_new_swb_speech_buffer ), voice_factors_fx[0] ); #else stereo_icBWE_enc_fx( hCPE, shb_speech_fx32, sub( Q31, Q_shb_spch ), new_swb_speech_buffer_fx, sub( Q31, q_new_swb_speech_buffer ), voice_factors_fx32[0] ); #endif Loading
lib_enc/ivas_stereo_icbwe_enc_fx.c +6 −0 Original line number Diff line number Diff line Loading @@ -627,7 +627,11 @@ void stereo_icBWE_enc_fx( Word32 shb_speech_nonref_fx[], /* i/o: SHB speech non-ref channel Q31-shb_speech_nonref_e*/ #endif Word16 shb_speech_nonref_e, /* i/o: SHB speech non-ref channel */ #ifdef SCALING_SWB_SPEECH_32 const Word16 *voice_factors_fx16 /* i : voicing factors Q15 */ #else const Word32 *voice_factors_fx /* i : voicing factors Q31 */ #endif ) { Word16 i, j, k, nbSubFr; Loading @@ -653,8 +657,10 @@ void stereo_icBWE_enc_fx( #ifdef SCALING_SWB_SPEECH_32 Word32 shb_speech_nonref_fx[L_FRAME48k + STEREO_DFT_OVL_MAX]; Word32 voice_factors_fx[NB_SUBFR16k]; Copy_Scale_sig_16_32_no_sat( shb_speech_nonref_fx_16, shb_speech_nonref_fx, L_FRAME48k + STEREO_DFT_OVL_MAX, Q16 ); // q_new_swb_speech_buffer+st->q_inp - 16 - > q_new_swb_speech_buffer+st->q_inp Copy_Scale_sig_16_32_no_sat( voice_factors_fx16, voice_factors_fx, NB_SUBFR16k, Q16 ); // Q31 #endif /* initialization */ Loading