Commit 4d066b79 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

disable code for energy-based mono detection under FIX_527_MONO_HEURISTICS

parent bed1365a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -3350,7 +3350,7 @@ void ivas_dirac_param_est_enc(
    DIRAC_ENC_HANDLE hDirAC, 
    IVAS_QDIRECTION *q_direction, 
    const uint8_t useLowerRes, 
#ifdef FIX_527_SBA_MONO_INPUT
#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
    int16_t *dirac_mono_flag,
#endif
    float data_f[][L_FRAME48k], 
@@ -5420,7 +5420,7 @@ void computeReferencePower_enc(
    const IVAS_FORMAT ivas_format,                              /* i  : ivas_format                                     */
    int16_t ref_power_w,                                        /* i  : use 0 if hodirac is enabled                     */
    const int16_t nchan_ana                                     /* i  : number of analysis channels                     */
#ifdef FIX_527_SBA_MONO_INPUT
#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
	,
	int16_t *dirac_mono_flag
#endif
+1 −1
Original line number Diff line number Diff line
@@ -160,7 +160,7 @@
#define IGF_TUNING_96                                   /* FhG: Issue 546: slight tuning of IGF config used in 96 kbps stereo, 128 kbps SBA and others */

#define FIX_527_SBA_MONO_INPUT                          /* FhG: fix issue 527, artifacts in mono signals coded in SBA mode */
/*#define FIX_527_MONO_HEURISTICS*/
#define FIX_527_MONO_HEURISTICS

/* ################## End DEVELOPMENT switches ######################### */
/* clang-format on */
+18 −17
Original line number Diff line number Diff line
@@ -1672,7 +1672,7 @@ void ivas_dirac_dec_read_BS(
        b = st->bit_stream[( st->next_bit_pos )--];
        ( *nb_bits )++;

#ifdef FIX_527_SBA_MONO_INPUT
#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
        hQMetaData->dirac_mono_flag = st->bit_stream[( st->next_bit_pos )--];
        ( *nb_bits )++;
#endif
@@ -1746,7 +1746,7 @@ void ivas_dirac_dec_read_BS(
        b = st->bit_stream[( st->next_bit_pos )--];
        ( *nb_bits )++;

#ifdef FIX_527_SBA_MONO_INPUT
#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
        hQMetaData->dirac_mono_flag = st->bit_stream[( st->next_bit_pos )--];
        ( *nb_bits )++;
#endif
@@ -1789,7 +1789,7 @@ void ivas_dirac_dec_read_BS(
        st->next_bit_pos = next_bit_pos_orig;
    }

#ifdef FIX_527_SBA_MONO_INPUT
#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
    if ( hQMetaData->dirac_mono_flag )
    {
        for ( b = 0; b < hQMetaData->q_direction[0].cfg.nbands; b++ )
@@ -1808,6 +1808,7 @@ void ivas_dirac_dec_read_BS(
                                 dirac_to_spar_md_bands );
    }


    return;
}

+10 −1
Original line number Diff line number Diff line
@@ -680,7 +680,7 @@ void ivas_spar_md_dec_process(

#ifdef FIX_527_MONO_HEURISTICS
    {
		int16_t ndm, ndec,i,j;
		int16_t ndm, ndec,i;

        st_ivas->hQMetaData->dirac_mono_flag = 1;
        for ( b = 0; b < SPAR_DIRAC_SPLIT_START_BAND; b++ )
@@ -716,6 +716,15 @@ void ivas_spar_md_dec_process(
            }
        }
    }

    if ( st_ivas->hQMetaData->dirac_mono_flag )
    {
        for ( b = 0; b < st_ivas->hQMetaData->q_direction[0].cfg.nbands; b++ )
        {
            set_zero( st_ivas->hQMetaData->q_direction[0].band_data[b].energy_ratio, MAX_PARAM_SPATIAL_SUBFRAMES );
            set_zero( st_ivas->hQMetaData->q_direction[0].band_data[b].energy_ratio, MAX_PARAM_SPATIAL_SUBFRAMES );
        }
    }
#endif


+9 −9
Original line number Diff line number Diff line
@@ -307,7 +307,7 @@ void ivas_dirac_enc(
        hDirAC,
        hQMetaData->q_direction,
        hQMetaData->useLowerRes,
#ifdef FIX_527_SBA_MONO_INPUT
#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
        &hQMetaData->dirac_mono_flag,
#endif
        data_f,
@@ -327,7 +327,7 @@ void ivas_dirac_enc(
            /* WB 4TC mode bit  : disable for now*/
            push_next_indice( hMetaData, 0, 1 );

#ifdef FIX_527_SBA_MONO_INPUT
#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
            /* flag to indicate a mono input signal */
            push_next_indice( hMetaData, hQMetaData->dirac_mono_flag, 1 );
#endif
@@ -369,7 +369,7 @@ void ivas_dirac_enc(
            /* 1 bit to indicate mode MD coding : temp solution*/
            push_next_indice( hMetaData, 1, 1 );

#ifdef FIX_527_SBA_MONO_INPUT
#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
            /* flag to indicate a mono input signal */
            push_next_indice( hMetaData, hQMetaData->dirac_mono_flag, 1 );
#endif
@@ -431,7 +431,7 @@ void computeReferencePower_enc(
    const IVAS_FORMAT ivas_format,                                      /* i  : ivas_format                        */
    int16_t ref_power_w,                                                /* i  : use 0 if hodirac is enabled     */
    const int16_t nchan_ana                                             /* i  : number of analysis channels     */
#ifdef FIX_527_SBA_MONO_INPUT
#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
    ,
    int16_t *dirac_mono_flag
#endif
@@ -442,7 +442,7 @@ void computeReferencePower_enc(

    float reference_power_W[DIRAC_MAX_NBANDS];

#ifdef FIX_527_SBA_MONO_INPUT
#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
    if ( dirac_mono_flag != NULL )
    {
        *dirac_mono_flag = 1;
@@ -471,7 +471,7 @@ void computeReferencePower_enc(
            }
        }

#ifdef FIX_527_SBA_MONO_INPUT
#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
        if ( reference_power[i] - reference_power_W[i] > EPSILON && dirac_mono_flag != NULL )
        {
            *dirac_mono_flag = 0;
@@ -502,7 +502,7 @@ void ivas_dirac_param_est_enc(
    DIRAC_ENC_HANDLE hDirAC,
    IVAS_QDIRECTION *q_direction,
    const uint8_t useLowerRes,
#ifdef FIX_527_SBA_MONO_INPUT
#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
    int16_t *dirac_mono_flag,
#endif
    float data_f[][L_FRAME48k],
@@ -620,7 +620,7 @@ void ivas_dirac_param_est_enc(
                ivas_format,
                hodirac_flag ? 0 : 1,
                FOA_CHANNELS
#ifdef FIX_527_SBA_MONO_INPUT
#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
                ,
                dirac_mono_flag
#endif
Loading