Commit 69cc7cb7 authored by Manuel Jander's avatar Manuel Jander
Browse files

Fix DFT stereo residual signal scale (leave as Q-1, to be improved later.

parent 7accdef1
Loading
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -932,11 +932,7 @@ ivas_error ivas_cpe_enc_fx(
            Copy_Scale_sig_32_16( old_inp_12k8_fx[1] + L_FRAME8k, sts[1]->old_inp_12k8_fx, L_INP_MEM, 0 - 15 ); // Q0
            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[1]->q_inp, Q15 ) ); // sts[1]->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
        }

        /* no iDFT at input sampling rate for Side channel -> reset the buffer */
@@ -1248,17 +1244,20 @@ 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( Q15, sts[i]->q_inp ) ); // st->q_inp -> Q15
#if ( CPE_CHANNELS != 2 )
#error
#endif
            Copy_Scale_sig_16_32_no_sat( old_inp_12k8_16fx[0], old_inp_12k8_fx[0], L_INP_12k8, sub( Q15, sts[0]->q_inp ) ); // st->q_inp -> Q15
            Copy_Scale_sig_16_32_no_sat( old_inp_12k8_16fx[1], old_inp_12k8_fx[1], L_INP_12k8, Q15 + 1  );                  // Q(-1) -> Q15
#else
            FOR( Word16 i = 0; i < CPE_CHANNELS; i++ )
            {
                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
            }
#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 );
        }

        IF( sts[0]->core_brate == FRAME_NO_DATA || EQ_32( sts[0]->core_brate, SID_2k40 ) )
        {
            assert( ( nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) ) && "Stereo DFT CNG: bit budget is violated" );