Commit 4284a6ea authored by vaillancour's avatar vaillancour
Browse files

replace hard coded Q 18 with constant Q_icBWE. This is a bit exact modification

parent 690c1ed4
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@
#include "ivas_rom_com.h"


#define Q_icBWE 18

/*-------------------------------------------------------------------*
 * ic_bwe_dec_reset()
@@ -915,9 +916,9 @@ void stereo_icBWE_dec_fx(
                // common Q for addition
                L_nlExc16k = L_deposit_l( hStereoICBWE->nlExc16k_fx[k] );                                                 // prev_q_bwe_exc - 16
                L_mixExc16k = L_deposit_l( hStereoICBWE->mixExc16k_fx[k] );                                               // Q_exc
                L_nlExc16k = L_shl( L_nlExc16k, 18 - ( st->prev_Q_bwe_exc - 16 ) );                                       // Q18
                L_mixExc16k = L_shl( L_mixExc16k, 18 - st->Q_exc );                                                       // Q18
                excSHB_nonref_fx[k] = L_add( Mpy_32_16_1( L_nlExc16k, temp1_fx ), Mpy_32_16_1( L_mixExc16k, temp2_fx ) ); // Q18
                L_nlExc16k = L_shl( L_nlExc16k, Q_icBWE - ( st->prev_Q_bwe_exc - 16 ) );                                  // Q_icBWE
                L_mixExc16k = L_shl( L_mixExc16k, Q_icBWE - st->Q_exc );                                                  // Q_icBWE
                excSHB_nonref_fx[k] = L_add( Mpy_32_16_1( L_nlExc16k, temp1_fx ), Mpy_32_16_1( L_mixExc16k, temp2_fx ) ); // Q_icBWE
                move32();
                k++;
            }
@@ -929,13 +930,13 @@ void stereo_icBWE_dec_fx(

        Q_syn_shb = FindScale( hStereoICBWE->mem_syn_shb_nonref_fx, LPC_SHB_ORDER, hStereoICBWE->prev_Q_syn_shb_nonref, Q_syn_shb );
        Q_syn_shb = FindScale( hStereoICBWE->lpSHBRef_fx, LPC_SHB_ORDER + 1, 12, Q_syn_shb );
        Q_syn_shb = FindScale( excSHB_nonref_fx, L_FRAME16k, 18, Q_syn_shb );
        Q_syn_shb = FindScale( excSHB_nonref_fx, L_FRAME16k, Q_icBWE, Q_syn_shb );
        Q_syn_shb = FindScale( hStereoICBWE->mem_lpc_shbsynth_nonref_fx, LPC_SHB_ORDER, hStereoICBWE->prev_Q_lpc_shbsynth_nonref, Q_syn_shb );

        Q_syn_shb = sub( Q_syn_shb, 3 ); // gaurded bits

        Scale_sig32( hStereoICBWE->lpSHBRef_fx, LPC_SHB_ORDER + 1, sub( Q_syn_shb, 12 ) );
        Scale_sig32( excSHB_nonref_fx, L_FRAME16k, sub( Q_syn_shb, 18 ) );
        Scale_sig32( excSHB_nonref_fx, L_FRAME16k, sub( Q_syn_shb, Q_icBWE ) );
        Scale_sig32( hStereoICBWE->mem_lpc_shbsynth_nonref_fx, LPC_SHB_ORDER, sub( Q_syn_shb, hStereoICBWE->prev_Q_lpc_shbsynth_nonref ) );
        Scale_sig32( hStereoICBWE->mem_syn_shb_nonref_fx, L_SHB_LAHEAD, sub( Q_syn_shb, hStereoICBWE->prev_Q_syn_shb_nonref ) );