diff --git a/lib_com/options.h b/lib_com/options.h index 444ee05448c0a8c5782bb00c7af967795a8a97d0..1182802d8c1637e7219cc3eca2e292dfd885fd7c 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -161,7 +161,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ #define TMP_1342_WORKAROUND_DEC_FLUSH_BROKEN_IN_SR /* FhG: Temporary workaround for incorrect implementation of decoder flush with split rendering */ #define NONBE_1122_KEEP_EVS_MODE_UNCHANGED /* FhG: Disables fix for issue 1122 in EVS mode to keep BE tests green. This switch should be removed once the 1122 fix is added to EVS via a CR. */ -#define FIX_FLOAT_1535_ARI_RES_Q_CLEANUP /* FhG: remove dead code from tcx_ari_res_Q_spec() */ #define FIX_FLOAT_1536_INIT_NO_PARAM_LPC /* FhG: make sure no_param_lpc is initialized in core_encode_twodiv() */ #define FIX_1525_UNINIT_FORMAT_SWITCHING_DEC /* VA: float issue 1525: fix reading of uninitialized memory in format switching at the decoder */ @@ -169,11 +168,9 @@ /* #################### Start NON-BE switches ############################ */ /* any switch which is non-be wrt. TS 26.258 V3.0 */ -#define FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE /* Nokia: float issue 1493: Improves float decision stability in MASA encoding by adjusting reduction code */ #define FIX_BASOP_2436_REUSED_CLDFB_IN_OMASA_SR /* FhG: basop issue 2436 (related to basop 2283): fix garbage output for >1 object OMASA with extrend as ISAR prerenderer */ #define FIX_FLOAT_1528_5MS_REND_ISM_META_DELAY_COMPENSATION /* Nokia: float issue 1528: Fixes incorrect compensation for ISM metadata delay in 5ms TD rendering */ - /* ##################### End NON-BE switches ########################### */ /* ################## End MAINTENANCE switches ######################### */ diff --git a/lib_enc/ivas_masa_enc.c b/lib_enc/ivas_masa_enc.c index b0ffb61171bd05895b84d4c50bbd6b45009be2c1..022b15f39e84f450411d0eaddd039ff0227d9477 100644 --- a/lib_enc/ivas_masa_enc.c +++ b/lib_enc/ivas_masa_enc.c @@ -82,9 +82,7 @@ static void masa_metadata_direction_alignment( MASA_ENCODER_HANDLE hMasa ); #define LOWBITRATE_ONSET_BETA 0.92f #define LOWBITRATE_ONSET_GAIN 1.4f #define LOWBITRATE_NUM_BANDS 5 -#ifdef FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE -#define IMPORTANCE_MIN_STEP 0.000244140625f /* 2^-12 to match BASOP */ -#endif +#define IMPORTANCE_MIN_STEP 0.000244140625f /* 2^-12 to match BASOP */ /*-----------------------------------------------------------------------* @@ -984,11 +982,7 @@ static void combine_freqbands_and_subframes( MASA_ENCODER_HANDLE hMasa ) { int16_t i, j, k, m; -#ifdef FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE volatile float aziRad, eleRad; /* Using volatile to reduce numerically unstable optimization */ -#else - float aziRad, eleRad; -#endif float x[MASA_MAXIMUM_DIRECTIONS][MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; float y[MASA_MAXIMUM_DIRECTIONS][MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; float z[MASA_MAXIMUM_DIRECTIONS][MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; @@ -1074,14 +1068,9 @@ static void combine_freqbands_and_subframes( energySum += hMasa->data.energy[j][m]; } -#ifdef FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE /* Using atan2 instead of atan2f to reduce platform difference */ aziRad = (float) atan2( ySum, xSum ); eleRad = (float) atan2( zSum, sqrtf( xSum * xSum + ySum * ySum ) ); -#else - aziRad = atan2f( ySum, xSum ); - eleRad = atan2f( zSum, sqrtf( xSum * xSum + ySum * ySum ) ); -#endif hMeta->directional_meta[i].azimuth[j][k] = aziRad / EVS_PI * 180.0f; hMeta->directional_meta[i].elevation[j][k] = eleRad / EVS_PI * 180.0f; @@ -1189,13 +1178,8 @@ void ivas_masa_combine_directions( uint8_t computeCoherence; MASA_METADATA_HANDLE hMeta; -#ifdef FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE volatile float aziRad; /* Using volatile to reduce numerically unstable optimization */ volatile float eleRad; -#else - float aziRad; - float eleRad; -#endif float x[MASA_MAXIMUM_DIRECTIONS][MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; float y[MASA_MAXIMUM_DIRECTIONS][MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; float z[MASA_MAXIMUM_DIRECTIONS][MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; @@ -1265,13 +1249,11 @@ void ivas_masa_combine_directions( } importance[i] /= (float) numSf; importance[i] *= hMasa->data.importanceWeight[i]; -#ifdef FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE /* Setting close to zero values to zero to reduce decision differences */ if ( importance[i] < IMPORTANCE_MIN_STEP ) { importance[i] = 0.0f; } -#endif } /* Determine bands where to use two directions */ @@ -1295,14 +1277,9 @@ void ivas_masa_combine_directions( { for ( j = 0; j < numSf; j++ ) { -#ifdef FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE /* Using atan2 instead of atan2f to reduce platform difference */ aziRad = (float) atan2( ySum[j][i], xSum[j][i] ); eleRad = (float) atan2( zSum[j][i], sqrtf( xSum[j][i] * xSum[j][i] + ySum[j][i] * ySum[j][i] ) ); -#else - aziRad = atan2f( ySum[j][i], xSum[j][i] ); - eleRad = atan2f( zSum[j][i], sqrtf( xSum[j][i] * xSum[j][i] + ySum[j][i] * ySum[j][i] ) ); -#endif hMeta->directional_meta[0].azimuth[j][i] = aziRad / EVS_PI * 180.0f; hMeta->directional_meta[0].elevation[j][i] = eleRad / EVS_PI * 180.0f; diff --git a/lib_enc/tcx_utils_enc.c b/lib_enc/tcx_utils_enc.c index 4a6c46b5cb7efa1e5a4cf3cf9b46a9423dbccdba..2a025e18e8acfbf3b3209c013266a14cafc0cfc5 100644 --- a/lib_enc/tcx_utils_enc.c +++ b/lib_enc/tcx_utils_enc.c @@ -1106,70 +1106,7 @@ int16_t tcx_ari_res_Q_spec( fac_p = 0.5f - fac_m; num_zeros = 0; -#ifdef FIX_FLOAT_1535_ARI_RES_Q_CLEANUP assert( x_fac != NULL ); -#else - if ( x_fac == NULL ) - { - for ( i = 0; i < L_frame; ++i ) - { - if ( bits >= target_bits ) - { - /* no bits left */ - break; - } - if ( x_Q[i] != 0 ) - { - int16_t sign = ( 1 - 2 * signs[i] ); - - x_Q_m = x_Q[i] - sign * fac_m; - x_Q_p = x_Q[i] + sign * fac_p; - if ( fabs( x_orig[i] - gain * x_Q_m ) < fabs( x_orig[i] - gain * x_Q_p ) ) /* Decrease magnitude */ - { - x_Q[i] = x_Q_m; - prm[bits++] = 0; - } - else /* Increase magnitude */ - { - x_Q[i] = x_Q_p; - prm[bits++] = 1; - } - } - else - { - zeros[num_zeros++] = i; - } - } - - /* Requantize zeroed-lines of the spectrum */ - fac_p = ( 1.0f - deadzone ) * 0.33f; - --target_bits; /* reserve 1 bit for the check below */ - for ( j = 0; j < num_zeros; ++j ) - { - if ( bits >= target_bits ) - { - /* 1 or 0 bits left */ - break; - } - - i = zeros[j]; - - thres = fac_p; - if ( fabs( x_orig[i] ) > thres * gain ) - { - prm[bits++] = 1; - prm[bits++] = 1 - signs[i]; - x_Q[i] = ( 2 - 4 * signs[i] ) * thres; - } - else - { - prm[bits++] = 0; - } - } - - return bits; - } -#endif for ( i = 0; i < L_frame; ++i ) {