Commit 15be34c4 authored by vaillancour's avatar vaillancour
Browse files

Fix for -dtx -max_band FB 32000 48 stv48c

parent 3f04c0dc
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -200,8 +200,13 @@ void E_UTIL_synthesis(const Word16 shift, const Word16 a[], const Word16 x[], Wo
        {
            L_tmp = L_msu(L_tmp, a[j], mem[i-j]);
        }
#ifdef BASOP_NOGLOB
        L_tmp = L_shl_o(L_tmp, q, &Overflow);
        *y++ = round_fx_o(L_tmp, &Overflow);
#else
        L_tmp = L_shl(L_tmp, q);
        *y++ = round_fx(L_tmp);
#endif
    }

    /* Filtering from Input + Output Signal Past */
+7 −2
Original line number Diff line number Diff line
@@ -369,7 +369,9 @@ void hvq_classifier_fx(
    Word16 num_peak_cands, high, low;
    Word16 sharp[HVQ_NSUB_32k];
    Word16 peak_cand_idx[HVQ_THRES_BIN_32k], avail_peaks[HVQ_NSUB_32k];

#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif
    L_input_max = L_deposit_l(0);
    set32_fx(L_thr, 0, L_FRAME16k);

@@ -517,8 +519,11 @@ void hvq_classifier_fx(
            sharp[i] = extract_h(L_shl(L_tmp, shift));          /* 30-s+s-8-16 -> Q6 */

            /*sharp_dist += (sharp[i]-HVQ_SHARP_THRES); */
#ifdef BASOP_NOGLOB
            sharp_dist = add_o(sharp_dist, sub(sharp[i], HVQ_SHARP_THRES_FX), &Overflow);
#else
            sharp_dist = add(sharp_dist, sub(sharp[i], HVQ_SHARP_THRES_FX));

#endif
            if ( GT_16(sharp[i], HVQ_SHARP_THRES_FX))
            {
                num_sharp_bands = add(num_sharp_bands, 1);
+15 −1
Original line number Diff line number Diff line
@@ -1419,7 +1419,9 @@ static void msvq_interpol_2_fx(
    Word16 quant_select[SWB_FENV], w_env11[SWB_FENV/2], w_env12[SWB_FENV/2];
    Word32 L_tmp, distCand[N_CAND], L_dist, L_minDist;
    Word16 synth_energy[SWB_FENV];

#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif
    /* Extract target vector */
    FOR(n_band = 0; n_band < DIM11-1; n_band++)
    {
@@ -1474,9 +1476,15 @@ static void msvq_interpol_2_fx(
        move16();
        FOR( n_band = 1; n_band < DIM12-1; n_band++ )
        {
#ifdef BASOP_NOGLOB
            tmp_q = add_o(quant_tmp[n_band-1], quant_tmp[n_band], &Overflow);
            tmp_q = shr(tmp_q,1);
            quant_tmp2[n_band] = sub_o(env_temp12[n_band], tmp_q, &Overflow);
#else
            tmp_q = add(quant_tmp[n_band-1], quant_tmp[n_band]);
            tmp_q = shr(tmp_q,1);
            quant_tmp2[n_band] = sub(env_temp12[n_band], tmp_q);
#endif
            move16();
        }

@@ -1495,9 +1503,15 @@ static void msvq_interpol_2_fx(
        move16();/*Q8 */
        FOR( n_band = 1; n_band < DIM12-1; n_band++ )
        {
#ifdef BASOP_NOGLOB
            tmp_q = add_o(quant_tmp[n_band-1], quant_tmp[n_band], &Overflow);
            tmp_q = shr(tmp_q,1);
            quant_select[sub(shl(n_band,1),1)] = add_o(quant_tmp2[n_band],tmp_q, &Overflow);
#else
            tmp_q = add(quant_tmp[n_band-1], quant_tmp[n_band]);
            tmp_q = shr(tmp_q,1);
            quant_select[sub(shl(n_band,1),1)] = add(quant_tmp2[n_band],tmp_q);
#endif
        }

        L_dist = L_deposit_l(0);
+4 −0
Original line number Diff line number Diff line
@@ -3722,7 +3722,11 @@ void fb_tbe_enc_fx(
        tmp = div_s(tmp2, tmp);
        L_tmp = L_deposit_h(tmp);
        L_tmp = Isqrt_lc(L_tmp, &exp); /*Q(31-exp)*/
#ifdef BASOP_NOGLOB
        L_tmp = L_max(L_shr_o(L_tmp,sub(31,exp), &Overflow),0x1);/* Q0 */
#else
        L_tmp = L_max(L_shr(L_tmp,sub(31,exp)),0x1);/* Q0 */
#endif
    }
    ELSE
    {