Commit 758a7a01 authored by multrus's avatar multrus
Browse files

accept FIX_2489_HARMONIZE_FdCng_encodeSID_IVASHP

parent 8d1305d2
Loading
Loading
Loading
Loading
Loading
+0 −21
Original line number Diff line number Diff line
@@ -1941,7 +1941,6 @@ void perform_noise_estimation_enc_ivas_fx(
 * Generate a bitstream out of the partition levels
 *-------------------------------------------------------------------*/
#ifdef FIX_2489_HARMONIZE_FdCng_encodeSID
#define FIX_2489_HARMONIZE_FdCng_encodeSID_IVASHP /* FhG: activate FdCng_encodeSID higher precision in IVAS case - development  */
void FdCng_encodeSID_fx(
    Encoder_State *corest /* i/o: encoder state structure     */
)
@@ -1973,9 +1972,7 @@ void FdCng_encodeSID_fx(
    /* Convert to LOG */
    e_fx = L_deposit_l( 0 );

#ifdef FIX_2489_HARMONIZE_FdCng_encodeSID_IVASHP
    IF( EQ_16( element_mode, EVS_MONO ) )
#endif
    {
        Word16 normShiftN = BASOP_util_norm_s_bands2shift( N );
        Word16 normFacN = getNormReciprocalWord16( N );
@@ -1992,7 +1989,6 @@ void FdCng_encodeSID_fx(
        }
        e_fx = L_shl( Mpy_32_16_1( e_fx, shl( normFacN, sub( normShiftN, 1 ) ) ), 1 );
    }
#ifdef FIX_2489_HARMONIZE_FdCng_encodeSID_IVASHP
    ELSE
    {
        set_zero_fx( v_fx, FDCNG_VQ_MAX_LEN );
@@ -2012,15 +2008,12 @@ void FdCng_encodeSID_fx(
            e_fx = L_add( e_fx, L_shr( v_fx[i], 1 ) ); // Q19, add one bit headroom
        }
    }
#endif

    /* Normalize MSVQ input */

    gain_fx = 0;
    move32();
#ifdef FIX_2489_HARMONIZE_FdCng_encodeSID_IVASHP
    IF( EQ_16( element_mode, EVS_MONO ) )
#endif
    {
        Word16 normFacGain = getNormReciprocalWord16( N_GAIN_MAX - N_GAIN_MIN );
        Word16 normShiftGain = BASOP_util_norm_s_bands2shift( N_GAIN_MAX - N_GAIN_MIN );
@@ -2031,7 +2024,6 @@ void FdCng_encodeSID_fx(
        }
        gain_fx = L_shl( Mpy_32_16_1( gain_fx, shl( normFacGain, sub( normShiftGain, 1 ) ) ), 1 );
    }
#ifdef FIX_2489_HARMONIZE_FdCng_encodeSID_IVASHP
    ELSE
    {
        FOR( i = N_GAIN_MIN; i < N_GAIN_MAX; i++ )
@@ -2048,7 +2040,6 @@ void FdCng_encodeSID_fx(
            move32();
        }
    }
#endif

    /*MSVQ*/
    IF( EQ_16( element_mode, EVS_MONO ) )
@@ -2109,9 +2100,7 @@ void FdCng_encodeSID_fx(
    /* Compute gain */
    gain_fx = 0;
    move32();
#ifdef FIX_2489_HARMONIZE_FdCng_encodeSID_IVASHP
    IF( EQ_16( element_mode, EVS_MONO ) )
#endif
    {
        Word16 normShiftN = BASOP_util_norm_s_bands2shift( N );
        Word16 normFacN = getNormReciprocalWord16( N );
@@ -2122,7 +2111,6 @@ void FdCng_encodeSID_fx(
        }
        gain_fx = L_sub( e_fx, L_shl( Mpy_32_16_1( gain_fx, shl( normFacN, sub( normShiftN, 1 ) ) ), 1 ) );
    }
#ifdef FIX_2489_HARMONIZE_FdCng_encodeSID_IVASHP
    ELSE
    {
        Word16 v_e = sub( 31, sub( 20, find_guarded_bits_fx( N ) ) );
@@ -2134,7 +2122,6 @@ void FdCng_encodeSID_fx(
        gain_fx = Mpy_32_16_1( L_sub( e_fx, gain_fx ), div_s( 1, N ) ); // Q = 31 - v_e
        gain_fx = L_shl( gain_fx, sub( v_e, 8 ) );                      // Q23
    }
#endif

    /* Apply bitrate-dependant scale */
    apply_scale( &gain_fx, hFdCngCom->CngBandwidth, hFdCngCom->CngBitrate,
@@ -2143,22 +2130,18 @@ void FdCng_encodeSID_fx(


    /* Quantize gain */
#ifdef FIX_2489_HARMONIZE_FdCng_encodeSID_IVASHP
    IF( EQ_16( element_mode, EVS_MONO ) )
#endif
    {
        /*Q14.23 format */
        gain_fx = L_add( gain_fx, L_shr( gain_fx, 1 ) );
        gain_fx = L_add( gain_fx, 507510784l /*60.5 Q23*/ );
        index = extract_l( L_shr( gain_fx, WORD32_BITS - 1 - 8 ) );
    }
#ifdef FIX_2489_HARMONIZE_FdCng_encodeSID_IVASHP
    ELSE
    {
        temp = Madd_32_32( L_shl( GAIN_Q_OFFSET_IVAS_FX_Q0, 22 ), gain_fx, 1610612736 /*1.5 in Q30*/ ); // Q22
        index = extract_l( L_shr( L_add( temp, ONE_IN_Q21 ), 22 ) );                                    // Q0
    }
#endif

    if ( index < 0 )
    {
@@ -2173,9 +2156,7 @@ void FdCng_encodeSID_fx(
    }

    /* Apply gain and undo log */
#ifdef FIX_2489_HARMONIZE_FdCng_encodeSID_IVASHP
    IF( EQ_16( element_mode, EVS_MONO ) )
#endif
    {
        Word32 E_ExpLd64;
        /* gain Q14.23 format */
@@ -2217,7 +2198,6 @@ void FdCng_encodeSID_fx(
            move32();
        }
    }
#ifdef FIX_2489_HARMONIZE_FdCng_encodeSID_IVASHP
    ELSE
    {
        Word16 v_e = sub( 31, sub( 20, find_guarded_bits_fx( N ) ) );
@@ -2239,7 +2219,6 @@ void FdCng_encodeSID_fx(
            move32();
        }
    }
#endif

    /* NB last band energy compensation */
    IF( EQ_16( hFdCngCom->CngBandwidth, NB ) )