Commit a18e00fd authored by Manuel Jander's avatar Manuel Jander
Browse files

Reduce differences to main. Correct Q format comments. Add supposedly missing scale changes.

parent 6c2ada8d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -377,6 +377,7 @@ void FEC_encode_ivas_fx(
#else
            exp_enrq = sub( 31, shl( Q_synth, 1 ) );
#endif

            test();
            test();
            if ( EQ_16( clas, VOICED_CLAS ) || EQ_16( clas, ONSET ) || EQ_16( clas, SIN_ONSET ) ) /* Voiced or Onset current frame */
+9 −4
Original line number Diff line number Diff line
@@ -546,7 +546,7 @@ ivas_error pre_proc_front_ivas_fx(
    {
        /* update the FIR resampling filter memory, needed for switching to time-domain (FIR) resampling */
#ifdef NONBE_FIX_ISSUE_2206_NO
        Copy_Scale_sig( signal_in_fx + sub( input_frame, add( NS2SA_FX2( input_Fs, L_MEM_RECALC_NS ), 2 * NS2SA_FX2( input_Fs, DELAY_FIR_RESAMPL_NS ) ) ), st->mem_decim_fx_q_inp, 2 * NS2SA_FX2( input_Fs, DELAY_FIR_RESAMPL_NS ), sub( -Q1, st->q_inp ) ); /* st->q_inp */
        Copy_Scale_sig( signal_in_fx + sub( input_frame, add( NS2SA_FX2( input_Fs, L_MEM_RECALC_NS ), 2 * NS2SA_FX2( input_Fs, DELAY_FIR_RESAMPL_NS ) ) ), st->mem_decim_fx_q_inp, 2 * NS2SA_FX2( input_Fs, DELAY_FIR_RESAMPL_NS ), sub( -Q1, st->q_inp ) ); /* Q-1 */
        st->mem_q = -Q1;
        move16();
#else
@@ -585,7 +585,7 @@ ivas_error pre_proc_front_ivas_fx(
    IF( EQ_16( element_mode, IVAS_CPE_DFT ) )
    {
#ifdef NONBE_FIX_ISSUE_2206
        Copy_Scale_sig( new_inp_12k8_fx - STEREO_DFT_OVL_12k8, st->buf_speech_enc + L_FRAME32k - STEREO_DFT_OVL_12k8, L_FRAME + STEREO_DFT_OVL_12k8, sub( st->q_inp, st->q_inp ) ); /* Q_inp_const */
        Copy_Scale_sig( new_inp_12k8_fx - STEREO_DFT_OVL_12k8, st->buf_speech_enc + L_FRAME32k - STEREO_DFT_OVL_12k8, L_FRAME + STEREO_DFT_OVL_12k8, sub( st->q_inp, st->q_inp ) ); /* st->q_inp */
#else
        Copy_Scale_sig( new_inp_12k8_fx - STEREO_DFT_OVL_12k8, st->buf_speech_enc + L_FRAME32k - STEREO_DFT_OVL_12k8, L_FRAME + STEREO_DFT_OVL_12k8, sub( Q_inp_const, st->q_inp ) );                                                         /* Q_inp_const */
#endif
@@ -593,7 +593,7 @@ ivas_error pre_proc_front_ivas_fx(
    ELSE IF( EQ_16( element_mode, IVAS_CPE_TD ) || EQ_16( element_mode, IVAS_CPE_MDCT ) )
    {
#ifdef NONBE_FIX_ISSUE_2206
        Copy_Scale_sig( new_inp_12k8_fx - lMemRecalc_12k8, st->buf_speech_enc + L_FRAME32k - lMemRecalc_12k8 - L_FILT, add( L_FRAME + L_FILT, lMemRecalc_12k8 ), sub( st->q_inp, st->q_inp ) ); /* Q_inp_const */
        Copy_Scale_sig( new_inp_12k8_fx - lMemRecalc_12k8, st->buf_speech_enc + L_FRAME32k - lMemRecalc_12k8 - L_FILT, add( L_FRAME + L_FILT, lMemRecalc_12k8 ), sub( st->q_inp, st->q_inp ) ); /* st->q_inp */
#else
        Copy_Scale_sig( new_inp_12k8_fx - lMemRecalc_12k8, st->buf_speech_enc + L_FRAME32k - lMemRecalc_12k8 - L_FILT, add( L_FRAME + L_FILT, lMemRecalc_12k8 ), sub( Q_inp_const, st->q_inp ) ); /* Q_inp_const */
#endif
@@ -601,7 +601,7 @@ ivas_error pre_proc_front_ivas_fx(
    ELSE
    {
#ifdef NONBE_FIX_ISSUE_2206
        Copy_Scale_sig( new_inp_12k8_fx, st->buf_speech_enc + L_FRAME32k, L_FRAME, sub( st->q_inp, st->q_inp ) ); /* Q_inp_const */
        Copy_Scale_sig( new_inp_12k8_fx, st->buf_speech_enc + L_FRAME32k, L_FRAME, sub( st->q_inp, st->q_inp ) ); /* st->q_inp */
#else
        Copy_Scale_sig( new_inp_12k8_fx, st->buf_speech_enc + L_FRAME32k, L_FRAME, sub( Q_inp_const, st->q_inp ) ); /* Q_inp_const */
#endif
@@ -898,7 +898,11 @@ ivas_error pre_proc_front_ivas_fx(
    IF( st->idchan == 0 && NE_16( element_mode, IVAS_CPE_MDCT ) )
    {
        Word16 input_fx_tmp[480];
#ifdef NONBE_FIX_ISSUE_2206
        Copy_Scale_sig( st->input_fx, input_fx_tmp, shr( input_frame, 1 ), negate( st->q_inp ) ); /*scaling from st->q_inp to q0*/
#else
        Copy_Scale_sig( st->input_fx, input_fx_tmp, shr( input_frame, 1 ), negate( st->q_inp ) ); /*scaling from Q_inp_const to q0*/
#endif

        bw_detect_fx( st, input_fx_tmp, NULL, enerBuffer_fx, sf_energySum, ivas_format, 0, 0 );
    }
@@ -1691,6 +1695,7 @@ ivas_error pre_proc_front_ivas_fx(
    st->exp_old_inp_12k8 = sub( Q15, add( *Q_new, shift ) );
    move16();


#ifdef NONBE_FIX_ISSUE_2206_NO
    *Q_new = sub( *Q_new, st->q_inp ); // ivas_core_enc will assume inp signal (12k8 and 16k) in Q_new - st->q_inp
#else
+11 −3
Original line number Diff line number Diff line
@@ -897,7 +897,7 @@ ivas_error ivas_cpe_enc_fx(
        /* iDFT & resampling to 12.8kHz internal sampling rate */
        stereo_dft_enc_synthesize_fx( hCPE->hStereoDft, old_inp_12k8_fx[0] + L_INP_MEM, &out_12k8_start_ind[0], &out_12k8_end_ind[0], 0, input_Fs, INT_FS_12k8, 0, NULL );
#ifdef NONBE_FIX_ISSUE_2206
        Copy_Scale_sig_32_16( old_inp_12k8_fx[0], old_inp_12k8_16fx[0], L_INP_12k8, sub( sts[0]->q_inp, Q15 ) ); // sts[0]->q_inp32
        Copy_Scale_sig_32_16( old_inp_12k8_fx[0], old_inp_12k8_16fx[0], L_INP_12k8, sub( sts[0]->q_inp, Q15 ) ); // sts[0]->q_inp
#else
        Copy_Scale_sig_32_16( old_inp_12k8_fx[0], old_inp_12k8_16fx[0], L_INP_12k8, -Q16 ); // Q-1
#endif
@@ -906,7 +906,7 @@ ivas_error ivas_cpe_enc_fx(
        IF( EQ_32( input_Fs, internal_Fs ) )
        {
#ifdef NONBE_FIX_ISSUE_2206
            Copy_Scale_sig32( sts[0]->input32_fx - STEREO_DFT_OVL_16k, old_inp_16k_fx[0] + L_INP_MEM - STEREO_DFT_OVL_16k, add( input_frame, STEREO_DFT_OVL_16k ), sub( Q15, sts[0]->q_inp32 ) ); /* sts[0]->q_inp32 */
            Copy_Scale_sig32( sts[0]->input32_fx - STEREO_DFT_OVL_16k, old_inp_16k_fx[0] + L_INP_MEM - STEREO_DFT_OVL_16k, add( input_frame, STEREO_DFT_OVL_16k ), sub( Q15, sts[0]->q_inp32 ) ); /* Q15 */
#else
            Copy32( sts[0]->input32_fx - STEREO_DFT_OVL_16k, old_inp_16k_fx[0] + L_INP_MEM - STEREO_DFT_OVL_16k, add( input_frame, STEREO_DFT_OVL_16k ) ); /* sts[0]->q_inp32 */
#endif
@@ -925,7 +925,11 @@ ivas_error ivas_cpe_enc_fx(
        test();
        IF( EQ_16( hCPE->element_mode, IVAS_CPE_DFT ) && hCPE->hStereoDft->res_cod_mode[STEREO_DFT_OFFSET] )
        {
#ifdef NONBE_FIX_ISSUE_2206
            Copy_Scale_sig_16_32_no_sat( sts[1]->old_inp_12k8_fx, old_inp_12k8_fx[1], L_INP_MEM, sub( Q15, sub( Q15, sts[1]->exp_old_inp_12k8 ) ) ); // Q15
#else
            Copy_Scale_sig_16_32_no_sat( sts[1]->old_inp_12k8_fx, old_inp_12k8_fx[1], L_INP_MEM, 15 - 0 ); // Q15
#endif
            stereo_dft_enc_synthesize_fx( hCPE->hStereoDft, old_inp_12k8_fx[1] + L_INP_MEM, &out_12k8_start_ind[1], &out_12k8_end_ind[1], 1, input_Fs, 8000, 0, NULL );

            /* update old input signal buffer */
@@ -933,7 +937,7 @@ ivas_error ivas_cpe_enc_fx(
            sts[1]->exp_old_inp_12k8 = Q15;
            move16();
#ifdef NONBE_FIX_ISSUE_2206
            Copy_Scale_sig_32_16( old_inp_12k8_fx[1], old_inp_12k8_16fx[1], L_INP_12k8, sub( sts[0]->q_inp, Q15 ) ); // sts[0]->q_inp32
            Copy_Scale_sig_32_16( old_inp_12k8_fx[1], old_inp_12k8_16fx[1], L_INP_12k8, sub( sts[0]->q_inp, Q15 ) ); // sts[0]->q_inp
#else
            Copy_Scale_sig_32_16( old_inp_12k8_fx[1], old_inp_12k8_16fx[1], L_INP_12k8, -Q16 ); // Q-1
#endif
@@ -1255,7 +1259,11 @@ ivas_error ivas_cpe_enc_fx(

            FOR( Word16 i = 0; i < CPE_CHANNELS; i++ )
            {
#ifdef NONBE_FIX_ISSUE_2206
                Copy_Scale_sig_16_32_no_sat( old_inp_12k8_16fx[i], old_inp_12k8_fx[i], L_INP_12k8, sub( sts[i]->q_inp, Q15 ) ); // q_inp -> Q15
#else
                Copy_Scale_sig_16_32_no_sat( old_inp_12k8_16fx[i], old_inp_12k8_fx[i], L_INP_12k8, Q16 ); // Q(-1) -> Q15
#endif
            }
            stereo_dft_enc_res_fx( hCPE->hStereoDft, old_inp_12k8_fx[1] + L_INP_MEM - STEREO_DFT_OVL_8k, hCPE->hMetaData, &nb_bits, max_bits );
        }
+1 −0
Original line number Diff line number Diff line
@@ -751,6 +751,7 @@ void stereo_switching_enc_fx(
            move32();
        }
#endif

        /* reset DFT synthesis overlap memory @8kHz, secondary channel */
        set32_fx( hCPE->hStereoDft->output_mem_res_8k_fx, 0, STEREO_DFT_OVL_8k );