Commit 845a35ac authored by norvell's avatar norvell
Browse files

Merge conflict on edct_fx.x and fft_fx.c

parents 64cd98d5 4a1cd706
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -167,7 +167,33 @@ Word32 Pow2( /* (o) Q0 : result (range: 0<=v
 |       dot_product = sum(x[i]*y[i])     i=0..N-1                           |
 |___________________________________________________________________________|
*/
#ifdef BASOP_NOGLOB
Word32 Dot_product12_o(   /* (o) Q31: normalized result (1 < val <= -1) */
    const Word16 x[],  /* (i) 12bits: x vector                       */
    const Word16 y[],  /* (i) 12bits: y vector                       */
    const Word16 lg,   /* (i)    : vector length                     */
    Word16* exp,       /* (o)    : exponent of result (0..+30)       */
    Flag* Overflow_out /* o :  propagating the Overflow flag to upper level */
)
{
    Word16 i, sft;
    Word32 L_sum;

    L_sum = L_mac(1, x[0], y[0]);
    FOR(i = 1; i < lg; i++)
    {
        L_sum = L_mac_o(L_sum, x[i], y[i], Overflow_out);
    }
    /* Normalize acc in Q31 */

    sft = norm_l(L_sum);
    L_sum = L_shl(L_sum, sft);

    *exp = sub(30, sft);                   move16();  /* exponent = 0..30 */

    return L_sum;
}
#endif
Word32 Dot_product12(                      /* (o) Q31: normalized result (1 < val <= -1) */
     const Word16 x[],                     /* (i) 12bits: x vector                       */
     const Word16 y[],                     /* (i) 12bits: y vector                       */
+10 −1
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
 *--------------------------------------------------------------------------*/
#include "oper_32b.h"
#include "log2.h"
#include "stl.h"

Word32 Isqrt(           /* (o) Q31 : output value (range: 0<=val<1)         */
     Word32 L_x         /* (i) Q0  : input value  (range: 0<=val<=7fffffff) */
@@ -18,13 +19,21 @@ Word32 Pow2( /* (o) Q0 : result (range: 0<=val<=0x7fffffff) */
     Word16 exponant,   /* (i) Q0  : Integer part.      (range: 0<=val<=30)   */
     Word16 fraction    /* (i) Q15 : Fractionnal part.  (range: 0.0<=val<1.0) */
);
#ifdef BASOP_NOGLOB
Word32 Dot_product12_o(   /* (o) Q31: normalized result (1 < val <= -1) */
    const Word16 x[],  /* (i) 12bits: x vector                       */
    const Word16 y[],  /* (i) 12bits: y vector                       */
    const Word16 lg,   /* (i)    : vector length                     */
    Word16* exp,       /* (o)    : exponent of result (0..+30)       */
    Flag* Overflow_out /* o :  propagating the Overflow flag to upper level */
);
#endif
Word32 Dot_product12(   /* (o) Q31: normalized result (1 < val <= -1) */
     const Word16 x[],  /* (i) 12bits: x vector                       */
     const Word16 y[],  /* (i) 12bits: y vector                       */
     const Word16 lg,   /* (i)    : vector length                     */
     Word16 * exp       /* (o)    : exponent of result (0..+30)       */
);

Word32 Energy_scale(    /* (o) Q31: normalized result (1 < val <= -1) */
     const Word16 x[],  /* (i) 12bits: x vector                       */
     const Word16 lg,   /* (i)  : vector length                       */
+9 −7
Original line number Diff line number Diff line
@@ -314,21 +314,22 @@ void edct_16fx(
        i2 = shl(i,1);

        L_tmp = L_mult(x[i2],edct_table[i]);/*Q(Qx+16) */
        Lacc = L_mac(L_tmp,*px,*pt);/*Q(Qx+16) */
#ifdef BASOP_NOGLOB
        re2[i] = round_fx(L_shl_o(Lacc, Q_edct, &Overflow)); /* Q(Qx+Q_edct) */
        Lacc = L_mac_o(L_tmp,*px,*pt, &Overflow);/*Q(Qx+16) */
        re2[i] = round_fx_o(L_shl_o(Lacc, Q_edct, &Overflow), &Overflow); /* Q(Qx+Q_edct) */
#else
        Lacc = L_mac(L_tmp,*px,*pt);/*Q(Qx+16) */
        re2[i] = round_fx(L_shl(Lacc, Q_edct)); /* Q(Qx+Q_edct) */
#endif

        L_tmp = L_mult(*px,edct_table[i]);/*Q(Qx+16) */
        Lacc = L_msu(L_tmp,x[i2],*pt);/*Q(Qx+16) */
#ifdef BASOP_NOGLOB
        im2[i] = round_fx(L_shl_o(Lacc, Q_edct, &Overflow)); /* Q(Qx+Q_edct) */
        Lacc = L_msu_o(L_tmp,x[i2],*pt, &Overflow);/*Q(Qx+16) */
        im2[i] = round_fx_o(L_shl_o(Lacc, Q_edct, &Overflow), &Overflow); /* Q(Qx+Q_edct) */
#else
        Lacc = L_msu(L_tmp,x[i2],*pt);/*Q(Qx+16) */
        im2[i] = round_fx(L_shl(Lacc, Q_edct)); /* Q(Qx+Q_edct) */
#endif

        px -= 2;
        pt--;
    }
@@ -375,10 +376,11 @@ void edct_16fx(
        i2 = shl(i,1);

        L_tmp = L_mult(re[i],edct_table[i]);/*Q(Qx+Q_edct+16) */
        Lacc = L_mac(L_tmp,im[i],*pt);/*Q(Qx+Q_edct+16) */
#ifdef BASOP_NOGLOB
        Lacc = L_mac_o(L_tmp, im[i], *pt, &Overflow);/*Q(Qx+Q_edct+16) */
        y[i2] = round_fx_o(L_shr_o(Lacc,Q_edct, &Overflow), &Overflow); /* Q(Qx) */
#else /* BASOP_NOGLOB */
        Lacc = L_mac(L_tmp, im[i], *pt);/*Q(Qx+Q_edct+16) */
        y[i2] = round_fx(L_shr(Lacc,Q_edct)); /* Q(Qx) */
#endif /* BASOP_NOGLOB */

+292 −158

File changed.

Preview size limit exceeded, changes collapsed.

+2 −1
Original line number Diff line number Diff line
@@ -1038,10 +1038,11 @@ void highband_exc_dct_in_fx(
                        IF(GT_16(tmp,abs_s(*dst)))
                        {
                            tmp2 = *src;
                            *src = mult_r(16384,sub(*src , abs_s(*dst))); /*Q_exc */      move16();
#ifdef BASOP_NOGLOB
                            * src = mult_r(16384, sub_o(*src, abs_s(*dst), &Overflow)); /*Q_exc */      move16();
                            tmp = mult_r(16384,add_o(tmp2 , abs_s(*dst), &Overflow));  /*Q_exc */
#else /* BASOP_NOGLOB */
                            * src = mult_r(16384, sub(*src, abs_s(*dst))); /*Q_exc */      move16();
                            tmp = mult_r(16384,add(tmp2 , abs_s(*dst)));  /*Q_exc */
#endif /* BASOP_NOGLOB */
                            if( tmp2 > 0 )
Loading