Commit c7d647c3 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Adding fix for non-uniform q in first_VQstages

parent fea01257
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -679,7 +679,11 @@ void encod_audio_ivas_fx(
     *--------------------------------------------------------------------------------------*/

    edct_16fx( dct_epit, exc, st_fx->L_frame, 7, st_fx->element_mode );
    scale_sig( exc, st_fx->L_frame, sub( Q_new, Q_exc ) );
    edct_16fx( exc_wo_nf, exc_wo_nf, st_fx->L_frame, 7, st_fx->element_mode );
    scale_sig( exc_wo_nf, st_fx->L_frame, sub( Q_new, Q_exc ) );
    Q_exc = Q_new;
    move16();
    /*--------------------------------------------------------------------------------------*
     * Remove potential pre-echo in case an onset has been detected
     *--------------------------------------------------------------------------------------*/
+1 −1
Original line number Diff line number Diff line
@@ -627,7 +627,7 @@ ivas_error pre_proc_front_ivas_fx(
    move16();
    set32_fx( sig_out, 0, 960 );

    headroom = 1;
    headroom = 2;
    move16();

    test();
+8 −8
Original line number Diff line number Diff line
@@ -2133,7 +2133,7 @@ static void first_VQstages(
        L_tmp1 = Mult_32_16( L_tmp1, u[j] );                     /*x2.56 + Q15 + x2.56 -Q15 */
        L_tmp = L_add( L_tmp, L_tmp1 );                          /*Q0 + x2.56 +x2.56 */
    }
    set32_fx( dist[1], L_tmp, maxC );
    set32_fx( dist[1], L_shr( L_tmp, 1 ), maxC ); /*Q-1 + x2.56 +x2.56 */

    /* Set up initial error (residual) vectors */
    pTmp = resid[1];
@@ -2192,15 +2192,15 @@ static void first_VQstages(
            /* compute weighted codebook element and its energy */
            FOR( c2 = 0; c2 < N; c2++ )
            {
                Tmp[c2] = shl( mult( w[c2], cbp[c2] ), 2 ); /* Q8 + x2.56 -Q15 +Q2 */
                Tmp[c2] = extract_h( L_shl( L_mult0( w[c2], cbp[c2] ), 6 ) ); /* Q8 + x2.56 + q6 -q16 */
                move16();
            }

            en = L_mult( cbp[0], Tmp[0] );
            en = L_mult( cbp[0], Tmp[0] ); /*x2.56 + x2.56 + Q-2 +Q1 */

            FOR( c2 = 1; c2 < N; c2++ )
            {
                en = L_mac( en, cbp[c2], Tmp[c2] ); /*x2.56 + x2.56 + Q-5 +Q1 */
                en = L_mac( en, cbp[c2], Tmp[c2] ); /*x2.56 + x2.56 + Q-2 +Q1 */
            }
            cbp += N;
            move16();
@@ -2208,15 +2208,15 @@ static void first_VQstages(
            /* iterate over all parent nodes */
            FOR( c = 0; c < m; c++ )
            {
                pTmp = &resid[0][c * N];
                pTmp = &resid[0][c * N]; /*x2.56*/
                move16();
                L_tmp = L_mult( pTmp[0], Tmp[0] );
                L_tmp = L_mult( pTmp[0], Tmp[0] ); /*x2.56 + x2.56 + Q-2 +Q1 */
                FOR( c2 = 1; c2 < N; c2++ )
                {
                    L_tmp = L_mac( L_tmp, pTmp[c2], Tmp[c2] ); /* */
                    L_tmp = L_mac( L_tmp, pTmp[c2], Tmp[c2] ); /*x2.56 + x2.56 + Q-2 +Q1 */
                }

                L_tmp = L_add( dist[0][c], L_sub( en, L_shl( L_tmp, 1 ) ) );
                L_tmp = L_add( dist[0][c], L_sub( en, L_shl( L_tmp, 1 ) ) ); /*x2.56 + x2.56 -1*/

                IF( LE_32( L_tmp, dist[1][p_max] ) )
                {