Commit 30ef38b4 authored by multrus's avatar multrus
Browse files

[cleanup] accept FIX_440_PARAM_ISM_DIR_NOISE

parent 91454205
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -164,9 +164,7 @@ typedef struct ivas_param_ism_data_structure

    int16_t flag_noisy_speech;
    int16_t noisy_speech_buffer[PARAM_ISM_HYS_BUF_SIZE];
#ifdef FIX_440_PARAM_ISM_DIR_NOISE
    int16_t flag_equal_energy;
#endif

} PARAM_ISM_CONFIG_DATA, *PARAM_ISM_CONFIG_HANDLE;

+0 −1
Original line number Diff line number Diff line
@@ -156,7 +156,6 @@


#define FIX_439_OTR_PARAMS                              /* Philips: Issue 439: orientation tracking parameter aspects. */
#define FIX_440_PARAM_ISM_DIR_NOISE                     /* FhG: Issue 440: Fix directional background noise becoming diffuse in ParamISM */

#define LBR_SBA_DIRAC_FIX                               /* DLB: Bug fix for DirAC at low bitrates */

+0 −33
Original line number Diff line number Diff line
@@ -55,12 +55,10 @@ static void ivas_param_ism_compute_obj_parameters(
    int16_t i, b, m, br, mr;
    int16_t brange_start, brange_end, mrange_start, mrange_end, time_merge_fac;
    float power_ratios_m[MAX_PARAM_ISM_NBANDS][MAX_PARAM_ISM_NBLOCKS];
#ifdef FIX_440_PARAM_ISM_DIR_NOISE
    float ref_power_local_frame[MAX_NUM_OBJECTS];
    float tmp_ratio;

    set_f( ref_power_local_frame, 0, MAX_NUM_OBJECTS );
#endif

    assert( nchan_ism == 3 || nchan_ism == 4 );

@@ -96,10 +94,8 @@ static void ivas_param_ism_compute_obj_parameters(
                        ref_power_local[i] += reference_power_obj[i][mr][br];
                    }
                }
#ifdef FIX_440_PARAM_ISM_DIR_NOISE
                /* Sum up T/F tiles per object */
                ref_power_local_frame[i] += ref_power_local[i];
#endif
            }

            /* find two dominant objects and derive object indices for current T/F tile */
@@ -155,7 +151,6 @@ static void ivas_param_ism_compute_obj_parameters(
        }
    }

#ifdef FIX_440_PARAM_ISM_DIR_NOISE
    /* Check if objects have roughly equal power by comparing reference power of first object against all others*/
    hParamIsm->flag_equal_energy = 1;
    for ( i = 1; i < nchan_ism; i++ )
@@ -175,7 +170,6 @@ static void ivas_param_ism_compute_obj_parameters(
            }
        }
    }
#endif

    return;
}
@@ -473,32 +467,6 @@ void ivas_param_ism_compute_noisy_speech_flag(
        st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i] = st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i + 1];
    }

#ifndef FIX_440_PARAM_ISM_DIR_NOISE
    /* For the current frame, make a decision based on some core-coder flags */
    if ( st_ivas->hSCE[0]->hCoreCoder[0]->flag_noisy_speech_snr && st_ivas->hSCE[1]->hCoreCoder[0]->flag_noisy_speech_snr )
    {
        if ( st_ivas->hSCE[0]->hCoreCoder[0]->vad_flag || st_ivas->hSCE[1]->hCoreCoder[0]->vad_flag )
        {
            st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i] = 0;
        }
        else
        {
            st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i] = 1;
        }
    }
    else
    {

        st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i] = 0;
    }

    /* Do a decision based on hysterisis */
    st_ivas->hDirAC->hParamIsm->flag_noisy_speech = 1;
    for ( i = 0; i < PARAM_ISM_HYS_BUF_SIZE; i++ )
    {
        st_ivas->hDirAC->hParamIsm->flag_noisy_speech = st_ivas->hDirAC->hParamIsm->flag_noisy_speech && st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i];
    }
#else
    /* Set flag_noisy_speech to 0 for cases where object energies are not roughly equal */
    if ( !st_ivas->hDirAC->hParamIsm->flag_equal_energy )
    {
@@ -531,7 +499,6 @@ void ivas_param_ism_compute_noisy_speech_flag(
            st_ivas->hDirAC->hParamIsm->flag_noisy_speech = st_ivas->hDirAC->hParamIsm->flag_noisy_speech && st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i];
        }
    }
#endif

    return;
}