Commit a8bdd528 authored by vaclav's avatar vaclav
Browse files

accept FIX_I120_INV_SQRT

parent 4fb80063
Loading
Loading
Loading
Loading
Loading
+4 −12
Original line number Diff line number Diff line
@@ -136,11 +136,11 @@ static void house_refl(
    }
    else
    {
        float _rcp = 1.f / ( *normu );
        float rcp = 1.f / ( *normu );

        for ( i = 0; i < sizex; i++ )
        {
            pu[i] *= _rcp;
            pu[i] *= rcp;
        }
        if ( pu[0] >= 0.f )
        {
@@ -152,15 +152,11 @@ static void house_refl(
            pu[0] -= 1;
        }

#ifdef FIX_I120_INV_SQRT
        _rcp = inv_sqrt( fabsf( pu[0] ) );
#else
        _rcp = 1.f / sqrtf( fabsf( pu[0] ) );
#endif
        rcp = inv_sqrt( fabsf( pu[0] ) );

        for ( i = 0; i < sizex; i++ )
        {
            pu[i] *= _rcp;
            pu[i] *= rcp;
        }
    }

@@ -649,11 +645,7 @@ static void norm_quat(

    norm_q = dotp( q, q, IVAS_PCA_INTERP );

#ifdef FIX_I120_INV_SQRT
    norm_q = inv_sqrt( norm_q ); // VE: TBV: possible division by 0
#else
    norm_q = 1 / sqrtf( norm_q ); // VE: TBV: possible division by 0
#endif

    for ( i = 0; i < IVAS_PCA_INTERP; i++ )
    {
+0 −1
Original line number Diff line number Diff line
@@ -147,7 +147,6 @@
/*#define FIX_I1_113*/                                  /* under review : MCT bit distribution optimization for SBA high bitrates*/

#define FIX_I13_TCX_TNS_ISSUE                           /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */
#define FIX_I120_INV_SQRT                               /* Issue 120: inv_sqrt() shall be used instead of 1 / sqrt() to measure the correct complexity */


/* ################## End DEVELOPMENT switches ######################### */
+0 −8
Original line number Diff line number Diff line
@@ -2536,11 +2536,7 @@ static void initDiffuseResponses(
    if ( output_config == AUDIO_CONFIG_MONO )
    {
        diffuse_response_function[0] = 1.0f;
#ifdef FIX_I120_INV_SQRT
        diffuse_response_function[1] = inv_sqrt( 3.0f );
#else
        diffuse_response_function[1] = 1.0f / sqrtf( 3.0f );
#endif
    }
    else if ( !( output_config == AUDIO_CONFIG_FOA || output_config == AUDIO_CONFIG_HOA2 || output_config == AUDIO_CONFIG_HOA3 ) )
    {
@@ -2622,11 +2618,7 @@ static void initDiffuseResponses(
        {
            for ( k = 0; k < ( 2 * l + 1 ); k++ )
            {
#ifdef FIX_I120_INV_SQRT
                diffuse_response_function[idx++] = inv_sqrt( 2.0f * l + 1.0f );
#else
                diffuse_response_function[idx++] = 1.0f / sqrtf( 2.0f * l + 1.0f );
#endif
            }
        }
    }
+3 −14
Original line number Diff line number Diff line
@@ -414,6 +414,7 @@ static void ivas_dirac_dec_binaural_internal(
                        Cldfb_ImagBuffer_in[0][slot][b] = INV_SQRT2 * ( Cldfb_ImagBuffer_in[0][slot][b] + Cldfb_ImagBuffer_in[2][slot][b] );
                        Cldfb_ImagBuffer_in[1][slot][b] = Cldfb_ImagBuffer_in[0][slot][b];
                    }

                    /* HB: Copy first channel to second channel and add HB-CNGs with different scalings*/
                    for ( ; b < nBins; b++ )
                    {
@@ -430,13 +431,9 @@ static void ivas_dirac_dec_binaural_internal(
                {
                    /* At mono input duplicate the channel to dual-mono, and apply gain
                    correction to ensure same overall level as in stereo mode  */
#ifdef FIX_I120_INV_SQRT
                    v_multc( Cldfb_RealBuffer_in[0][slot], INV_SQRT_2, Cldfb_RealBuffer_in[0][slot], nBins );
                    v_multc( Cldfb_ImagBuffer_in[0][slot], INV_SQRT_2, Cldfb_ImagBuffer_in[0][slot], nBins );
#else
                    v_multc( Cldfb_RealBuffer_in[0][slot], 1.0f / SQRT2, Cldfb_RealBuffer_in[0][slot], nBins );
                    v_multc( Cldfb_ImagBuffer_in[0][slot], 1.0f / SQRT2, Cldfb_ImagBuffer_in[0][slot], nBins );
#endif

                    mvr2r( Cldfb_RealBuffer_in[0][slot], Cldfb_RealBuffer_in[1][slot], nBins );
                    mvr2r( Cldfb_ImagBuffer_in[0][slot], Cldfb_ImagBuffer_in[1][slot], nBins );
                }
@@ -451,15 +448,11 @@ static void ivas_dirac_dec_binaural_internal(
                                  Cldfb_RealBuffer_in[ch][slot],
                                  Cldfb_ImagBuffer_in[ch][slot],
                                  nBins, st_ivas->cldfbAnaDec[ch] );

                if ( st_ivas->nchan_transport == 1 && st_ivas->ivas_format == SBA_FORMAT )
                {
#ifdef FIX_I120_INV_SQRT
                    v_multc( Cldfb_RealBuffer_in[ch][slot], INV_SQRT_2, Cldfb_RealBuffer_in[ch][slot], nBins );
                    v_multc( Cldfb_ImagBuffer_in[ch][slot], INV_SQRT_2, Cldfb_ImagBuffer_in[ch][slot], nBins );
#else
                    v_multc( Cldfb_RealBuffer_in[ch][slot], 1.0f / SQRT2, Cldfb_RealBuffer_in[ch][slot], nBins );
                    v_multc( Cldfb_ImagBuffer_in[ch][slot], 1.0f / SQRT2, Cldfb_ImagBuffer_in[ch][slot], nBins );
#endif
                }
            }
        }
@@ -771,11 +764,7 @@ static void ivas_dirac_dec_binaural_formulate_input_and_target_covariance_matric
                    {
                        /* 0.5f <= spreadCoh < 1.0f */
                        centerMul = 2.0f - ( 2.0f * spreadCoh );
#ifdef FIX_I120_INV_SQRT
                        sidesMul = inv_sqrt( centerMul + 2.0f );
#else
                        sidesMul = 1.0f / sqrtf( centerMul + 2.0f );
#endif
                        centerMul *= sidesMul;
                    }

+1 −4
Original line number Diff line number Diff line
@@ -2078,11 +2078,8 @@ static void spreadCoherencePanningVbap(
    if ( hVBAPdata == NULL )
    {
        /* Distribute signal to all channels if VBAP is not properly initialized. */
#ifdef FIX_I120_INV_SQRT
        set_f( direct_response, inv_sqrt( num_channels_dir ), num_channels_dir );
#else
        set_f( direct_response, 1.0f / sqrtf( num_channels_dir ), num_channels_dir );
#endif

        return;
    }

Loading