Commit 8f55cce0 authored by vaclav's avatar vaclav
Browse files

updt

parent 8041f52d
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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(
+2 −1
Original line number Diff line number Diff line
@@ -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 ################################## */
+28 −14
Original line number Diff line number Diff line
@@ -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
@@ -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 );
@@ -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                        
@@ -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
@@ -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
+6 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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 */