Commit 9e3acc86 authored by multrus's avatar multrus
Browse files

Merge branch '20260313_cleanup' into 'main'

20260313 cleanup

See merge request !2557
parents 9f19bcdc fb70c9ae
Loading
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -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 ######################### */
+1 −24
Original line number Diff line number Diff line
@@ -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


/*-----------------------------------------------------------------------*
@@ -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;
+0 −63
Original line number Diff line number Diff line
@@ -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 )
    {