Loading lib_com/ivas_prot.h +0 −1 Original line number Diff line number Diff line Loading @@ -3919,7 +3919,6 @@ ivas_error ivas_spar_md_enc_process( BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ #ifdef SBA_SPAR_HARM int16_t dtx_vad, const int16_t bwidth, const int16_t nchan_inp, #else const int16_t dtx_silence_mode, Loading lib_dec/ivas_spar_md_dec.c +6 −0 Original line number Diff line number Diff line Loading @@ -665,9 +665,13 @@ void ivas_spar_md_dec_process( } #endif #ifndef SBA_SPAR_HARM /* SPAR to DirAC and DirAC to SPAR conversion */ // VE2DB: -> "DirAC to SPAR conversion" only? if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete { #else /* SPAR to DirAC conversion */ #endif ivas_spar_to_dirac( st_ivas, hMdDec, dtx_vad, num_bands_out ); /* set correct number of bands*/ Loading @@ -676,7 +680,9 @@ void ivas_spar_md_dec_process( { nB = nB >> 1; } #ifndef SBA_SPAR_HARM } #endif /* expand DirAC MD to all time slots */ for ( i_ts = 1; i_ts < MAX_PARAM_SPATIAL_SUBFRAMES; i_ts++ ) Loading lib_enc/ivas_spar_encoder.c +31 −20 Original line number Diff line number Diff line Loading @@ -397,21 +397,23 @@ static ivas_error ivas_spar_enc_process( float pcm_tmp[IVAS_SPAR_MAX_CH][L_FRAME48k * 2]; float *p_pcm_tmp[IVAS_SPAR_MAX_CH]; #ifdef SBA_SPAR_HARM int16_t i, j, b, i_ts, input_frame, transient_det; int16_t i, j, b, i_ts, input_frame, transient_det, dtx_vad; #else int16_t i, j, k, b, i_ts, input_frame, num_bands_bw; #endif int16_t dtx_vad, dtx_cov_flag, dtx_silence_mode; #endif int32_t ivas_total_brate, input_Fs; #ifndef SBA_SPAR_HARM ivas_enc_cov_handler_in_buf_t cov_in_buf; #endif float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; #ifndef SBA_SPAR_HARM #ifdef SBA_SPAR_HARM int16_t nchan_inp, nchan_transport, sba_order; #else ivas_spar_md_enc_in_buf_t md_in_buf; #endif int16_t nchan_inp, nchan_transport, bwidth, sba_order; #endif int16_t table_idx; int16_t in_out_mixer_map[IVAS_MAX_FB_MIXER_OUT_CH][IVAS_MAX_SPAR_FB_MIXER_IN_CH]; ivas_error error; Loading Loading @@ -446,7 +448,9 @@ static ivas_error ivas_spar_enc_process( mvr2r( data_f[HOA_keep_ind[i]], data_f[i], input_frame ); } #ifndef SBA_SPAR_HARM table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); #endif /*-----------------------------------------------------------------------------------------* * Transient detector Loading Loading @@ -623,19 +627,18 @@ static ivas_error ivas_spar_enc_process( } } #ifndef SBA_SPAR_HARM /*-----------------------------------------------------------------------------------------* * Pre-proc flags *-----------------------------------------------------------------------------------------*/ /* use just VAD function to get VAD flags */ #ifndef SBA_SPAR_HARM dtx_vad = ( hEncoderConfig->Opt_DTX_ON == 1 ) ? front_vad_flag : 1; #endif dtx_cov_flag = ( dtx_vad == 1 ) ? 0 : 1; dtx_silence_mode = 0; // VE2DB: this variable is always 0 - please review or remove it bwidth = ivas_get_bw_idx_from_sample_rate( input_Fs ); bwidth = min( bwidth, hEncoderConfig->max_bwidth ); #endif /*-----------------------------------------------------------------------------------------* * Covariance process Loading @@ -661,19 +664,33 @@ static ivas_error ivas_spar_enc_process( ivas_enc_cov_handler_process( hSpar->hCovEnc, &cov_in_buf, cov_real, cov_dtx_real, hSpar->hFbMixer->pFb, 0, hSpar->hFbMixer->pFb->filterbank_num_bands ); #endif /*-----------------------------------------------------------------------------------------* * Set SPAR bitrates *-----------------------------------------------------------------------------------------*/ #ifdef SBA_SPAR_HARM table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); #endif if ( hSpar->hMdEnc->table_idx != table_idx ) { hSpar->hMdEnc->table_idx = table_idx; ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, SPAR_DIRAC_SPLIT_START_BAND ); } #ifdef SBA_SPAR_HARM nchan_transport = st_ivas->nchan_transport; #else nchan_transport = hSpar->hMdEnc->spar_md_cfg.nchan_transport; #endif /*-----------------------------------------------------------------------------------------* * MetaData encoder *-----------------------------------------------------------------------------------------*/ #ifndef SBA_SPAR_HARM #ifdef SBA_SPAR_HARM ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, cov_real, cov_dtx_real, hMetaData, dtx_vad, nchan_inp, sba_order ); #else num_bands_bw = ivas_get_num_bands_from_bw_idx( bwidth ); if ( dtx_vad == 0 ) Loading Loading @@ -709,14 +726,13 @@ static ivas_error ivas_spar_enc_process( md_in_buf.num_bands = min( md_in_buf.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); md_in_buf.dtx_vad = dtx_vad; #endif #ifdef SBA_SPAR_HARM ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, cov_real, cov_dtx_real, hMetaData, dtx_vad, bwidth, nchan_inp, sba_order ); #else ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode, sba_order ); #endif #ifndef SBA_SPAR_HARM if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete #endif { float azi_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; float ele_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; Loading @@ -739,13 +755,9 @@ static ivas_error ivas_spar_enc_process( diffuseness[b] = 1.0f - hQMetaData->q_direction->band_data[dirac_band_idx].energy_ratio[0]; } if ( ( d_start_band >= 6 ) && ( dtx_vad == 1 ) ) if ( d_start_band >= 6 && dtx_vad == 1 ) { for ( i = 0; i < IVAS_SPAR_MAX_CH - 1; i++ ) { hSpar->hMdEnc->spar_md.band_coeffs[d_start_band - 1].P_re[i] = hSpar->hMdEnc->spar_md.band_coeffs[d_start_band - 1].P_quant_re[i]; } mvr2r( hSpar->hMdEnc->spar_md.band_coeffs[d_start_band - 1].P_quant_re, hSpar->hMdEnc->spar_md.band_coeffs[d_start_band - 1].P_re, IVAS_SPAR_MAX_CH - 1 ); } for ( b = d_start_band; b < d_end_band; b++ ) Loading @@ -764,8 +776,7 @@ static ivas_error ivas_spar_enc_process( Wscale_d[b] = min( 2.0f, max( Wscale_d[b], 1.0f ) ); } ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, d_start_band, d_end_band, sba_order, dtx_vad, Wscale_d ); ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, d_start_band, d_end_band, sba_order, dtx_vad, Wscale_d ); } Loading lib_enc/ivas_spar_md_enc.c +4 −2 Original line number Diff line number Diff line Loading @@ -561,7 +561,6 @@ ivas_error ivas_spar_md_enc_process( BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ #ifdef SBA_SPAR_HARM int16_t dtx_vad, const int16_t bwidth, const int16_t nchan_inp, #else const int16_t dtx_silence_mode, Loading @@ -575,7 +574,7 @@ ivas_error ivas_spar_md_enc_process( int16_t i, b, qsi, ndm, ndec, num_ch, num_quant_strats; int16_t j, planarCP; #ifdef SBA_SPAR_HARM int16_t k, num_bands, num_bands_full, num_bands_bw; int16_t k, bwidth, num_bands, num_bands_full, num_bands_bw; #else int16_t num_bands = pIn_buf->num_bands; int16_t dtx_vad = pIn_buf->dtx_vad; Loading @@ -595,6 +594,9 @@ ivas_error ivas_spar_md_enc_process( nchan_transport = hMdEnc->spar_md_cfg.nchan_transport; #ifdef SBA_SPAR_HARM bwidth = ivas_get_bw_idx_from_sample_rate( hEncoderConfig->input_Fs ); bwidth = min( bwidth, hEncoderConfig->max_bwidth ); num_bands = ivas_get_num_bands_from_bw_idx( SPAR_CONFIG_BW ); num_bands = min( num_bands, SPAR_DIRAC_SPLIT_START_BAND ); num_bands_full = num_bands; Loading Loading
lib_com/ivas_prot.h +0 −1 Original line number Diff line number Diff line Loading @@ -3919,7 +3919,6 @@ ivas_error ivas_spar_md_enc_process( BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ #ifdef SBA_SPAR_HARM int16_t dtx_vad, const int16_t bwidth, const int16_t nchan_inp, #else const int16_t dtx_silence_mode, Loading
lib_dec/ivas_spar_md_dec.c +6 −0 Original line number Diff line number Diff line Loading @@ -665,9 +665,13 @@ void ivas_spar_md_dec_process( } #endif #ifndef SBA_SPAR_HARM /* SPAR to DirAC and DirAC to SPAR conversion */ // VE2DB: -> "DirAC to SPAR conversion" only? if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete { #else /* SPAR to DirAC conversion */ #endif ivas_spar_to_dirac( st_ivas, hMdDec, dtx_vad, num_bands_out ); /* set correct number of bands*/ Loading @@ -676,7 +680,9 @@ void ivas_spar_md_dec_process( { nB = nB >> 1; } #ifndef SBA_SPAR_HARM } #endif /* expand DirAC MD to all time slots */ for ( i_ts = 1; i_ts < MAX_PARAM_SPATIAL_SUBFRAMES; i_ts++ ) Loading
lib_enc/ivas_spar_encoder.c +31 −20 Original line number Diff line number Diff line Loading @@ -397,21 +397,23 @@ static ivas_error ivas_spar_enc_process( float pcm_tmp[IVAS_SPAR_MAX_CH][L_FRAME48k * 2]; float *p_pcm_tmp[IVAS_SPAR_MAX_CH]; #ifdef SBA_SPAR_HARM int16_t i, j, b, i_ts, input_frame, transient_det; int16_t i, j, b, i_ts, input_frame, transient_det, dtx_vad; #else int16_t i, j, k, b, i_ts, input_frame, num_bands_bw; #endif int16_t dtx_vad, dtx_cov_flag, dtx_silence_mode; #endif int32_t ivas_total_brate, input_Fs; #ifndef SBA_SPAR_HARM ivas_enc_cov_handler_in_buf_t cov_in_buf; #endif float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; #ifndef SBA_SPAR_HARM #ifdef SBA_SPAR_HARM int16_t nchan_inp, nchan_transport, sba_order; #else ivas_spar_md_enc_in_buf_t md_in_buf; #endif int16_t nchan_inp, nchan_transport, bwidth, sba_order; #endif int16_t table_idx; int16_t in_out_mixer_map[IVAS_MAX_FB_MIXER_OUT_CH][IVAS_MAX_SPAR_FB_MIXER_IN_CH]; ivas_error error; Loading Loading @@ -446,7 +448,9 @@ static ivas_error ivas_spar_enc_process( mvr2r( data_f[HOA_keep_ind[i]], data_f[i], input_frame ); } #ifndef SBA_SPAR_HARM table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); #endif /*-----------------------------------------------------------------------------------------* * Transient detector Loading Loading @@ -623,19 +627,18 @@ static ivas_error ivas_spar_enc_process( } } #ifndef SBA_SPAR_HARM /*-----------------------------------------------------------------------------------------* * Pre-proc flags *-----------------------------------------------------------------------------------------*/ /* use just VAD function to get VAD flags */ #ifndef SBA_SPAR_HARM dtx_vad = ( hEncoderConfig->Opt_DTX_ON == 1 ) ? front_vad_flag : 1; #endif dtx_cov_flag = ( dtx_vad == 1 ) ? 0 : 1; dtx_silence_mode = 0; // VE2DB: this variable is always 0 - please review or remove it bwidth = ivas_get_bw_idx_from_sample_rate( input_Fs ); bwidth = min( bwidth, hEncoderConfig->max_bwidth ); #endif /*-----------------------------------------------------------------------------------------* * Covariance process Loading @@ -661,19 +664,33 @@ static ivas_error ivas_spar_enc_process( ivas_enc_cov_handler_process( hSpar->hCovEnc, &cov_in_buf, cov_real, cov_dtx_real, hSpar->hFbMixer->pFb, 0, hSpar->hFbMixer->pFb->filterbank_num_bands ); #endif /*-----------------------------------------------------------------------------------------* * Set SPAR bitrates *-----------------------------------------------------------------------------------------*/ #ifdef SBA_SPAR_HARM table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); #endif if ( hSpar->hMdEnc->table_idx != table_idx ) { hSpar->hMdEnc->table_idx = table_idx; ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, SPAR_DIRAC_SPLIT_START_BAND ); } #ifdef SBA_SPAR_HARM nchan_transport = st_ivas->nchan_transport; #else nchan_transport = hSpar->hMdEnc->spar_md_cfg.nchan_transport; #endif /*-----------------------------------------------------------------------------------------* * MetaData encoder *-----------------------------------------------------------------------------------------*/ #ifndef SBA_SPAR_HARM #ifdef SBA_SPAR_HARM ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, cov_real, cov_dtx_real, hMetaData, dtx_vad, nchan_inp, sba_order ); #else num_bands_bw = ivas_get_num_bands_from_bw_idx( bwidth ); if ( dtx_vad == 0 ) Loading Loading @@ -709,14 +726,13 @@ static ivas_error ivas_spar_enc_process( md_in_buf.num_bands = min( md_in_buf.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); md_in_buf.dtx_vad = dtx_vad; #endif #ifdef SBA_SPAR_HARM ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, cov_real, cov_dtx_real, hMetaData, dtx_vad, bwidth, nchan_inp, sba_order ); #else ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode, sba_order ); #endif #ifndef SBA_SPAR_HARM if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete #endif { float azi_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; float ele_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; Loading @@ -739,13 +755,9 @@ static ivas_error ivas_spar_enc_process( diffuseness[b] = 1.0f - hQMetaData->q_direction->band_data[dirac_band_idx].energy_ratio[0]; } if ( ( d_start_band >= 6 ) && ( dtx_vad == 1 ) ) if ( d_start_band >= 6 && dtx_vad == 1 ) { for ( i = 0; i < IVAS_SPAR_MAX_CH - 1; i++ ) { hSpar->hMdEnc->spar_md.band_coeffs[d_start_band - 1].P_re[i] = hSpar->hMdEnc->spar_md.band_coeffs[d_start_band - 1].P_quant_re[i]; } mvr2r( hSpar->hMdEnc->spar_md.band_coeffs[d_start_band - 1].P_quant_re, hSpar->hMdEnc->spar_md.band_coeffs[d_start_band - 1].P_re, IVAS_SPAR_MAX_CH - 1 ); } for ( b = d_start_band; b < d_end_band; b++ ) Loading @@ -764,8 +776,7 @@ static ivas_error ivas_spar_enc_process( Wscale_d[b] = min( 2.0f, max( Wscale_d[b], 1.0f ) ); } ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, d_start_band, d_end_band, sba_order, dtx_vad, Wscale_d ); ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, d_start_band, d_end_band, sba_order, dtx_vad, Wscale_d ); } Loading
lib_enc/ivas_spar_md_enc.c +4 −2 Original line number Diff line number Diff line Loading @@ -561,7 +561,6 @@ ivas_error ivas_spar_md_enc_process( BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ #ifdef SBA_SPAR_HARM int16_t dtx_vad, const int16_t bwidth, const int16_t nchan_inp, #else const int16_t dtx_silence_mode, Loading @@ -575,7 +574,7 @@ ivas_error ivas_spar_md_enc_process( int16_t i, b, qsi, ndm, ndec, num_ch, num_quant_strats; int16_t j, planarCP; #ifdef SBA_SPAR_HARM int16_t k, num_bands, num_bands_full, num_bands_bw; int16_t k, bwidth, num_bands, num_bands_full, num_bands_bw; #else int16_t num_bands = pIn_buf->num_bands; int16_t dtx_vad = pIn_buf->dtx_vad; Loading @@ -595,6 +594,9 @@ ivas_error ivas_spar_md_enc_process( nchan_transport = hMdEnc->spar_md_cfg.nchan_transport; #ifdef SBA_SPAR_HARM bwidth = ivas_get_bw_idx_from_sample_rate( hEncoderConfig->input_Fs ); bwidth = min( bwidth, hEncoderConfig->max_bwidth ); num_bands = ivas_get_num_bands_from_bw_idx( SPAR_CONFIG_BW ); num_bands = min( num_bands, SPAR_DIRAC_SPLIT_START_BAND ); num_bands_full = num_bands; Loading