Commit 88b261ec authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Fix for 3GPP issue 1247: Basop Encoder: Noise introduced for Stereo DTX @32kbps

Link #1247
parent 1056c027
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -160,4 +160,5 @@
#define SVD_WMOPS_OPT                           /* Ittiam : SVD related optimizations */
#define NONBE_FIX_1087_OOB_SBA_DTX_RS           /* VA: issue 1087: Extend the length of the buffer for MCT decoding to avoid out-of-bound writing in SBA SID bitrate switching decoding */
#define FIX_ISSUE_1279                          /* VA: correction of wrong scaling update */
#define FIX_ISSUE_1247
#endif
+20 −0
Original line number Diff line number Diff line
@@ -394,6 +394,25 @@ ivas_error ivas_cpe_enc_fx(
    /*----------------------------------------------------------------*
     * Resets/updates in case of stereo switching
     *----------------------------------------------------------------*/
#ifdef FIX_ISSUE_1247
    shift = norm_arr( sts[1]->old_input_signal_fx, input_frame );
    Scale_sig( sts[1]->old_input_signal_fx, input_frame, shift ); /* sts[1]->q_old_inp + shift  */
    sts[1]->q_old_inp = add( sts[1]->q_old_inp, shift );
    move16();
    shift = norm_arr( sts[1]->input_fx, input_frame );
    Scale_sig( sts[1]->input_fx, input_frame, shift ); /* sts[1]->q_inp + shift  */
    sts[1]->q_inp = add( sts[1]->q_inp, shift );
    move16();

    shift = norm_arr( sts[0]->old_input_signal_fx, input_frame );
    Scale_sig( sts[0]->old_input_signal_fx, input_frame, shift ); /* sts[1]->q_old_inp + shift  */
    sts[0]->q_old_inp = add( sts[0]->q_old_inp, shift );
    move16();
    shift = norm_arr( sts[0]->input_fx, input_frame );
    Scale_sig( sts[0]->input_fx, input_frame, shift ); /* sts[1]->q_inp, shift  */
    sts[0]->q_inp = add( sts[0]->q_inp, shift );
    move16();
#else
    shift = getScaleFactor16( sts[1]->old_input_signal_fx, input_frame );
    Scale_sig( sts[1]->old_input_signal_fx, input_frame, shift ); /* sts[1]->q_old_inp + shift  */
    sts[1]->q_old_inp = add( sts[1]->q_old_inp, shift );
@@ -411,6 +430,7 @@ ivas_error ivas_cpe_enc_fx(
    Scale_sig( sts[0]->input_fx, input_frame, shift ); /* sts[1]->q_inp, shift  */
    sts[0]->q_inp = add( sts[0]->q_inp, shift );
    move16();
#endif

    Word16 q_inp = s_min( s_min( sts[0]->q_inp, sts[0]->q_old_inp ), s_min( sts[1]->q_inp, sts[1]->q_old_inp ) );