Commit 032e1cfc authored by vaclav's avatar vaclav
Browse files

fix FIX_2302_LSF_CDBK_THRESHOLD

parent 2b2acfdb
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -145,6 +145,7 @@
#define FIX_2315_AGC_MEMORY_RESET                       /* VA: basop issue 2315: fix reset of the AGC memory */
#define FIX_2312_CONDITION_MISSING_GSC_DEC_LR           /* VA: basop issue 2297: addition of condition missing in the GSC gain decoder at low-rate */
#define FIX_2313_HF_RESET_16KHZ                         /* VA: basop issue 2313: Call hf_synth_reset_fx() also for 16 kHz output_Fs */
#define FIX_2302_LSF_CDBK_THRESHOLD                     /* VA: basop issue 2302: fix threshold for LSF Q codebook-type decision */

/* ##################### End NON-BE switches ########################### */

+9 −6
Original line number Diff line number Diff line
@@ -1585,10 +1585,12 @@ void lsf_end_enc_ivas_fx(
#else
        abs_threshold = SFNETLOWLIMIT_NB / 2;
#endif
        move32();
    }
    ELSE
    {
#ifdef FIX_2302_LSF_CDBK_THRESHOLD
        abs_threshold = L_add( SFNETLOWLIMIT_WB, 0 );
#else
        abs_threshold = SFNETLOWLIMIT_WB / 2;
        move32();
#ifdef HARM_LSF_ENC
@@ -1596,6 +1598,7 @@ void lsf_end_enc_ivas_fx(
        {
            abs_threshold = L_add( SFNETLOWLIMIT_WB, 0 );
        }
#endif
#endif
    }

@@ -2638,12 +2641,12 @@ static Word32 vq_lvq_lsf_enc(
            diff[j] = shl_sat( diff[j], 4 );
            move16();
        }
        L_tmp = L_mult( mult( diff[0], shl_sat( w[0], 1 ) ), diff[0] ); /*(2.56+Q5+ Q10 -Q15) + 2.56+ Q5 + Q1 = 2.56 + 2.56 + Q6 */
        L_tmp = L_mult( mult( diff[0], shl_sat( w[0], 1 ) ), diff[0] ); /*(2.56+Q5+ Q10 -Q15) + 2.56+ Q5 + Q1 = 2.56 + 2.56 + Q4 */
        FOR( j = 1; j < M; j++ )
        {
            L_tmp = L_mac( L_tmp, mult( diff[j], shl_sat( w[j], 1 ) ), diff[j] ); /*(2.56+Q5+ Q10 -Q15) + 2.56+ Q5 + Q1 = 2.56 + 2.56 + Q6 */
            L_tmp = L_mac( L_tmp, mult( diff[j], shl_sat( w[j], 1 ) ), diff[j] ); /*(2.56+Q5+ Q10 -Q15) + 2.56+ Q5 + Q1 = 2.56 + 2.56 + Q4 */
        }
        e[i] = L_tmp; /*(2.56+Q5+ Q10 -Q15) + 2.56+ Q5 + Q1 = 2.56 + 2.56 + Q6 */
        e[i] = L_tmp; /*(2.56+Q5+ Q10 -Q15) + 2.56+ Q5 + Q1 = 2.56 + 2.56 + Q4 */
        move32();
    }

@@ -2757,10 +2760,10 @@ static Word32 vq_lvq_lsf_enc_ivas_fx(
            diff[j] = shl_sat( diff[j], 4 );
            move16();
        }
        L_tmp = L_mult( mult( diff[0], shl_sat( w[0], 1 ) ), diff[0] ); /*(2.56+Q5+ Q10 -Q15) + 2.56+ Q5 + Q1 = 2.56 + 2.56 + Q6 */
        L_tmp = L_mult( mult( diff[0], shl_sat( w[0], 1 ) ), diff[0] ); /*(2.56+Q5+ Q10 -Q15) + 2.56+ Q5 + Q1 = 2.56 + 2.56 + Q4 */
        FOR( j = 1; j < M; j++ )
        {
            L_tmp = L_mac_sat( L_tmp, mult( diff[j], shl_sat( w[j], 1 ) ), diff[j] ); /*(2.56+Q5+ Q10 -Q15) + 2.56+ Q5 + Q1 = 2.56 + 2.56 + Q6 */
            L_tmp = L_mac_sat( L_tmp, mult( diff[j], shl_sat( w[j], 1 ) ), diff[j] ); /*(2.56+Q5+ Q10 -Q15) + 2.56+ Q5 + Q1 = 2.56 + 2.56 + Q4 */
        }
        e[i] = L_tmp;
        move32();