Commit d8dab356 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

Merge branch...

Merge branch 'float-1518-osba-rendering-to-mono-and-stereo-for-96kbps-is-significantly-quieter' into 'main'

[non-BE] Resolve "OSBA rendering to Mono and Stereo for <96kbps is significantly quieter"

See merge request !2534
parents 2b2b178a 0854efa8
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -172,6 +172,7 @@
#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_2432_ISM_SPIKES_16KHZ                       /* VA: basop issue 2432: fix spikes in ISM decoding at 16kHz output sampling rate */
#define FIX_FLOAT_1518                                  /* FhG: fix issue 1518: loudness differences in OSBA decoding to mono or stereo output */

/* ##################### End NON-BE switches ########################### */

+8 −1
Original line number Diff line number Diff line
@@ -500,7 +500,14 @@ ivas_error ivas_cpe_dec(

    if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->nchan_out == 1 && ( is_DTXrate( ivas_total_brate ) == 0 || ( is_DTXrate( ivas_total_brate ) == 1 && is_DTXrate( st_ivas->hDecoderConfig->last_ivas_total_brate ) == 0 ) ) )
    {
#ifdef FIX_FLOAT_1518
        if ( !( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_NONE ) )
        {
#endif
            applyDmxMdctStereo( hCPE, output, output_frame );
#ifdef FIX_FLOAT_1518
        }
#endif
    }

#ifndef DEBUG_STEREO_DFT_OUTRESPRED
+6 −0
Original line number Diff line number Diff line
@@ -443,6 +443,12 @@ ivas_error ivas_dec(

            ivas_sba_dirac_stereo_dec( st_ivas, &p_output[sba_ch_idx], output_frame );
        }
#ifdef FIX_FLOAT_1518
        else if ( st_ivas->hDecoderConfig->nchan_out == 1 && st_ivas->ism_mode == ISM_MODE_NONE )
        {
            v_multc( p_output[0], 2.0f, p_output[0], output_frame );
        }
#endif

        /* HP filtering */
        for ( n = 0; n < getNumChanSynthesis( st_ivas ); n++ )
+4 −0
Original line number Diff line number Diff line
@@ -910,7 +910,11 @@ void ivas_sba_dirac_stereo_dec(
    synchro_synthesis( st_ivas->hDecoderConfig->ivas_total_brate, hCPE, output, output_frame, 1 /*st_ivas->sba_dirac_stereo_flag*/ );

    /* output scaling */
#ifdef FIX_FLOAT_1518
    if ( !sba_mono_flag && !( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_NONE ) )
#else
    if ( !sba_mono_flag )
#endif
    {
        v_multc( output[0], 0.5f, output[0], output_frame );
        v_multc( output[1], 0.5f, output[1], output_frame );
+4 −0
Original line number Diff line number Diff line
@@ -349,7 +349,11 @@ void stereo_mdct_core_dec(

    run_min_stats( sts, x );

#ifdef FIX_FLOAT_1518
    if ( hCPE->nchan_out == 1 && ( !bfi || ( bfi && sts[0]->core != ACELP_CORE && sts[1]->core != ACELP_CORE ) ) && !( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_NONE ) )
#else
    if ( hCPE->nchan_out == 1 && ( !bfi || ( bfi && sts[0]->core != ACELP_CORE && sts[1]->core != ACELP_CORE ) ) )
#endif
    {
        apply_dmx_weights( hCPE, x, sts[0]->transform_type, sts[1]->transform_type );
    }