Loading lib_com/ivas_dirac_com.c +14 −9 Original line number Diff line number Diff line Loading @@ -947,6 +947,9 @@ void deindex_spherical_component( *-----------------------------------------------------------------*/ void calculate_hodirac_sector_parameters( #ifdef FIX_485_STATIC_BUFFERS DIRAC_ENC_HANDLE hDirAC, /* i : DirAC handle */ #endif float RealBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], /* i : signal vector (L+1)^2 x N_bins, real part */ float ImagBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], /* i : signal vector, imaginary part */ const float beta, /* i : forgetting factor for average filtering */ Loading @@ -965,6 +968,7 @@ void calculate_hodirac_sector_parameters( float sec_I_vec_y[NUM_ANA_SECTORS]; float sec_I_vec_z[NUM_ANA_SECTORS]; #ifndef FIX_485_STATIC_BUFFERS static int16_t firstrun_sector_params = 1; static float sec_I_vec_smth_x[NUM_ANA_SECTORS][IVAS_MAX_NUM_BANDS]; Loading @@ -974,6 +978,7 @@ void calculate_hodirac_sector_parameters( static float energy_smth[NUM_ANA_SECTORS][IVAS_MAX_NUM_BANDS]; static float azi_prev[NUM_ANA_SECTORS * IVAS_MAX_NUM_BANDS]; static float ele_prev[NUM_ANA_SECTORS * IVAS_MAX_NUM_BANDS]; #endif for ( i_sec = 0; i_sec < NUM_ANA_SECTORS; i_sec++ ) { Loading Loading @@ -1009,13 +1014,13 @@ void calculate_hodirac_sector_parameters( float *p_ene = &ene[i_sec * N_bands + i_band]; float *p_diff = &diff[i_sec * N_bands + i_band]; float *p_azi_prev = &azi_prev[i_sec * N_bands + i_band]; float *p_ele_prev = &ele_prev[i_sec * N_bands + i_band]; float *p_azi_prev = &hDirAC->azi_prev[i_sec * N_bands + i_band]; float *p_ele_prev = &hDirAC->ele_prev[i_sec * N_bands + i_band]; float *p_energy_smth = &energy_smth[i_sec][i_band]; float *p_sec_I_vec_smth_x = &sec_I_vec_smth_x[i_sec][i_band]; float *p_sec_I_vec_smth_y = &sec_I_vec_smth_y[i_sec][i_band]; float *p_sec_I_vec_smth_z = &sec_I_vec_smth_z[i_sec][i_band]; float *p_energy_smth = &hDirAC->energy_smth[i_sec][i_band]; float *p_sec_I_vec_smth_x = &hDirAC->sec_I_vec_smth_x[i_sec][i_band]; float *p_sec_I_vec_smth_y = &hDirAC->sec_I_vec_smth_y[i_sec][i_band]; float *p_sec_I_vec_smth_z = &hDirAC->sec_I_vec_smth_z[i_sec][i_band]; *p_sec_I_vec_x = 0.f; *p_sec_I_vec_y = 0.f; Loading Loading @@ -1083,7 +1088,7 @@ void calculate_hodirac_sector_parameters( } } if ( firstrun_sector_params ) if ( hDirAC->firstrun_sector_params ) { *p_sec_I_vec_smth_x = *p_sec_I_vec_x; *p_sec_I_vec_smth_y = *p_sec_I_vec_y; Loading Loading @@ -1125,7 +1130,7 @@ void calculate_hodirac_sector_parameters( } if ( tmp_diff > 0.5f ) { if ( firstrun_sector_params ) if ( hDirAC->firstrun_sector_params ) { *p_azi = 0.f; *p_ele = 0.f; Loading @@ -1144,7 +1149,7 @@ void calculate_hodirac_sector_parameters( } } firstrun_sector_params = 0; hDirAC->firstrun_sector_params = 0; return; } Loading lib_com/ivas_prot.h +3 −0 Original line number Diff line number Diff line Loading @@ -3905,6 +3905,9 @@ void ivas_dirac_dec_get_frequency_axis( const int16_t num_freq_bands ); /* i : number of frequency bands */ void calculate_hodirac_sector_parameters( #ifdef FIX_485_STATIC_BUFFERS DIRAC_ENC_HANDLE hDirAC, #endif float RealBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX],/* i : signal vector (L+1)^2 x N_bins, real part */ float ImagBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX],/* i : signal vector, imaginary part */ const float beta, /* i : forgetting factor for average filtering */ Loading lib_com/ivas_sba_config.c +1 −1 Original line number Diff line number Diff line Loading @@ -295,7 +295,7 @@ void ivas_sba_get_spar_hoa_md_flag( *spar_hoa_md_flag = 0; } if ( sba_order > 1 && ivas_total_brate >= IVAS_512k ) if ( sba_order > 1 && ivas_total_brate >= IVAS_384k ) { *spar_hoa_dirac2spar_md_flag = 0; } Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -164,6 +164,8 @@ #define FIX_482_DUMMYDEC_INIT /* Nokia: fix issue #428: missing inits for dummyDec in IVAS_rend */ #define FIX_468_16KHZ_PUPMIX /* Dlb: Fix issue 468 for Param Upmix at 16kHz sampling rate */ #define FIX_485_STATIC_BUFFERS /* FhG: move static buffers in DirAC parameter estimator to the DirAC struct */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading lib_enc/ivas_dirac_enc.c +17 −1 Original line number Diff line number Diff line Loading @@ -79,6 +79,9 @@ ivas_error ivas_dirac_enc_open( { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for DirAC Config\n" ) ); } #ifdef FIX_485_STATIC_BUFFERS hDirAC->firstrun_sector_params = 1; #endif /*-----------------------------------------------------------------* * DirAC main configuration Loading Loading @@ -763,7 +766,20 @@ void ivas_dirac_param_est_enc( #ifdef DEBUGGING assert( l_ts <= DIRAC_NO_FB_BANDS_MAX ); #endif calculate_hodirac_sector_parameters( Cldfb_RealBuffer, Cldfb_ImagBuffer, 0.20f, hDirAC->band_grouping, hDirAC->hConfig->nbands, hDirAC->hConfig->enc_param_start_band, azi_secs, ele_secs, diff_secs, ene_secs ); calculate_hodirac_sector_parameters( #ifdef FIX_485_STATIC_BUFFERS hDirAC, #endif Cldfb_RealBuffer, Cldfb_ImagBuffer, 0.20f, hDirAC->band_grouping, hDirAC->hConfig->nbands, hDirAC->hConfig->enc_param_start_band, azi_secs, ele_secs, diff_secs, ene_secs ); } if ( hodirac_flag ) Loading Loading
lib_com/ivas_dirac_com.c +14 −9 Original line number Diff line number Diff line Loading @@ -947,6 +947,9 @@ void deindex_spherical_component( *-----------------------------------------------------------------*/ void calculate_hodirac_sector_parameters( #ifdef FIX_485_STATIC_BUFFERS DIRAC_ENC_HANDLE hDirAC, /* i : DirAC handle */ #endif float RealBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], /* i : signal vector (L+1)^2 x N_bins, real part */ float ImagBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], /* i : signal vector, imaginary part */ const float beta, /* i : forgetting factor for average filtering */ Loading @@ -965,6 +968,7 @@ void calculate_hodirac_sector_parameters( float sec_I_vec_y[NUM_ANA_SECTORS]; float sec_I_vec_z[NUM_ANA_SECTORS]; #ifndef FIX_485_STATIC_BUFFERS static int16_t firstrun_sector_params = 1; static float sec_I_vec_smth_x[NUM_ANA_SECTORS][IVAS_MAX_NUM_BANDS]; Loading @@ -974,6 +978,7 @@ void calculate_hodirac_sector_parameters( static float energy_smth[NUM_ANA_SECTORS][IVAS_MAX_NUM_BANDS]; static float azi_prev[NUM_ANA_SECTORS * IVAS_MAX_NUM_BANDS]; static float ele_prev[NUM_ANA_SECTORS * IVAS_MAX_NUM_BANDS]; #endif for ( i_sec = 0; i_sec < NUM_ANA_SECTORS; i_sec++ ) { Loading Loading @@ -1009,13 +1014,13 @@ void calculate_hodirac_sector_parameters( float *p_ene = &ene[i_sec * N_bands + i_band]; float *p_diff = &diff[i_sec * N_bands + i_band]; float *p_azi_prev = &azi_prev[i_sec * N_bands + i_band]; float *p_ele_prev = &ele_prev[i_sec * N_bands + i_band]; float *p_azi_prev = &hDirAC->azi_prev[i_sec * N_bands + i_band]; float *p_ele_prev = &hDirAC->ele_prev[i_sec * N_bands + i_band]; float *p_energy_smth = &energy_smth[i_sec][i_band]; float *p_sec_I_vec_smth_x = &sec_I_vec_smth_x[i_sec][i_band]; float *p_sec_I_vec_smth_y = &sec_I_vec_smth_y[i_sec][i_band]; float *p_sec_I_vec_smth_z = &sec_I_vec_smth_z[i_sec][i_band]; float *p_energy_smth = &hDirAC->energy_smth[i_sec][i_band]; float *p_sec_I_vec_smth_x = &hDirAC->sec_I_vec_smth_x[i_sec][i_band]; float *p_sec_I_vec_smth_y = &hDirAC->sec_I_vec_smth_y[i_sec][i_band]; float *p_sec_I_vec_smth_z = &hDirAC->sec_I_vec_smth_z[i_sec][i_band]; *p_sec_I_vec_x = 0.f; *p_sec_I_vec_y = 0.f; Loading Loading @@ -1083,7 +1088,7 @@ void calculate_hodirac_sector_parameters( } } if ( firstrun_sector_params ) if ( hDirAC->firstrun_sector_params ) { *p_sec_I_vec_smth_x = *p_sec_I_vec_x; *p_sec_I_vec_smth_y = *p_sec_I_vec_y; Loading Loading @@ -1125,7 +1130,7 @@ void calculate_hodirac_sector_parameters( } if ( tmp_diff > 0.5f ) { if ( firstrun_sector_params ) if ( hDirAC->firstrun_sector_params ) { *p_azi = 0.f; *p_ele = 0.f; Loading @@ -1144,7 +1149,7 @@ void calculate_hodirac_sector_parameters( } } firstrun_sector_params = 0; hDirAC->firstrun_sector_params = 0; return; } Loading
lib_com/ivas_prot.h +3 −0 Original line number Diff line number Diff line Loading @@ -3905,6 +3905,9 @@ void ivas_dirac_dec_get_frequency_axis( const int16_t num_freq_bands ); /* i : number of frequency bands */ void calculate_hodirac_sector_parameters( #ifdef FIX_485_STATIC_BUFFERS DIRAC_ENC_HANDLE hDirAC, #endif float RealBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX],/* i : signal vector (L+1)^2 x N_bins, real part */ float ImagBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX],/* i : signal vector, imaginary part */ const float beta, /* i : forgetting factor for average filtering */ Loading
lib_com/ivas_sba_config.c +1 −1 Original line number Diff line number Diff line Loading @@ -295,7 +295,7 @@ void ivas_sba_get_spar_hoa_md_flag( *spar_hoa_md_flag = 0; } if ( sba_order > 1 && ivas_total_brate >= IVAS_512k ) if ( sba_order > 1 && ivas_total_brate >= IVAS_384k ) { *spar_hoa_dirac2spar_md_flag = 0; } Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -164,6 +164,8 @@ #define FIX_482_DUMMYDEC_INIT /* Nokia: fix issue #428: missing inits for dummyDec in IVAS_rend */ #define FIX_468_16KHZ_PUPMIX /* Dlb: Fix issue 468 for Param Upmix at 16kHz sampling rate */ #define FIX_485_STATIC_BUFFERS /* FhG: move static buffers in DirAC parameter estimator to the DirAC struct */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading
lib_enc/ivas_dirac_enc.c +17 −1 Original line number Diff line number Diff line Loading @@ -79,6 +79,9 @@ ivas_error ivas_dirac_enc_open( { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for DirAC Config\n" ) ); } #ifdef FIX_485_STATIC_BUFFERS hDirAC->firstrun_sector_params = 1; #endif /*-----------------------------------------------------------------* * DirAC main configuration Loading Loading @@ -763,7 +766,20 @@ void ivas_dirac_param_est_enc( #ifdef DEBUGGING assert( l_ts <= DIRAC_NO_FB_BANDS_MAX ); #endif calculate_hodirac_sector_parameters( Cldfb_RealBuffer, Cldfb_ImagBuffer, 0.20f, hDirAC->band_grouping, hDirAC->hConfig->nbands, hDirAC->hConfig->enc_param_start_band, azi_secs, ele_secs, diff_secs, ene_secs ); calculate_hodirac_sector_parameters( #ifdef FIX_485_STATIC_BUFFERS hDirAC, #endif Cldfb_RealBuffer, Cldfb_ImagBuffer, 0.20f, hDirAC->band_grouping, hDirAC->hConfig->nbands, hDirAC->hConfig->enc_param_start_band, azi_secs, ele_secs, diff_secs, ene_secs ); } if ( hodirac_flag ) Loading