Loading lib_dec/ivas_sba_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -177,7 +177,7 @@ ivas_error ivas_sba_dec_reconfigure( } #ifdef VLBR_20MS_MD if ( nchan_transport_old != ivas_get_sba_num_TCs( ivas_total_brate, sba_order_internal ) || ( last_ivas_total_brate >= IVAS_512k && ivas_total_brate < IVAS_512k ) || ( last_ivas_total_brate < IVAS_512k && ivas_total_brate >= IVAS_512k ) || ( last_ivas_total_brate >= IVAS_24k4 && ivas_total_brate < IVAS_24k4 ) || ( last_ivas_total_brate < IVAS_24k4 && ivas_total_brate >= IVAS_24k4 ) ) if ( nchan_transport_old != ivas_get_sba_num_TCs( ivas_total_brate, sba_order_internal ) || ( last_ivas_total_brate >= IVAS_512k && ivas_total_brate < IVAS_512k ) || ( last_ivas_total_brate < IVAS_512k && ivas_total_brate >= IVAS_512k ) || ( last_ivas_total_brate < IVAS_24k4 && ivas_total_brate >= IVAS_24k4 ) ) #else if ( nchan_transport_old != ivas_get_sba_num_TCs( ivas_total_brate, sba_order_internal ) || ( last_ivas_total_brate >= IVAS_512k && ivas_total_brate < IVAS_512k ) || ( last_ivas_total_brate < IVAS_512k && ivas_total_brate >= IVAS_512k ) ) #endif Loading lib_dec/ivas_spar_md_dec.c +4 −0 Original line number Diff line number Diff line Loading @@ -3183,7 +3183,11 @@ void ivas_spar_to_dirac( } } /* expand DirAC TC 20ms MD for residual channels to all subframes*/ #ifdef VLBR_20MS_MD for ( block = 0; block < num_md_sub_frames; block++ ) #else for ( block = 0; block < MAX_PARAM_SPATIAL_SUBFRAMES; block++ ) #endif { for ( band = SPAR_DIRAC_SPLIT_START_BAND; band < IVAS_MAX_NUM_BANDS; band++ ) { Loading lib_rend/ivas_sba_rendering.c +8 −30 Original line number Diff line number Diff line Loading @@ -70,8 +70,7 @@ void ivas_sba_prototype_renderer( int16_t slot_idx_start, md_idx; #endif #ifdef VLBR_20MS_MD int16_t sf_idx_flag, num_md_sub_frames; sf_idx_flag = 0; int16_t num_md_sub_frames; num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); #endif Loading Loading @@ -166,6 +165,9 @@ void ivas_sba_prototype_renderer( { /* we have crossed an unadapted parameter sf border, update previous mixing matrices */ int16_t md_sf = md_idx / JBM_CLDFB_SLOTS_IN_SUBFRAME; #ifdef VLBR_20MS_MD md_sf = ( num_md_sub_frames == MAX_PARAM_SPATIAL_SUBFRAMES ) ? md_sf : 0; #endif hSpar->i_subframe++; hSpar->i_subframe = min( hSpar->i_subframe, MAX_PARAM_SPATIAL_SUBFRAMES ); mvr2r( hSpar->hMdDec->mixer_mat_prev[1][0][0], hSpar->hMdDec->mixer_mat_prev[0][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); Loading @@ -173,27 +175,6 @@ void ivas_sba_prototype_renderer( mvr2r( hSpar->hMdDec->mixer_mat_prev[3][0][0], hSpar->hMdDec->mixer_mat_prev[2][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); mvr2r( hSpar->hMdDec->mixer_mat_prev[4][0][0], hSpar->hMdDec->mixer_mat_prev[3][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); #ifdef VLBR_20MS_MD if ( num_md_sub_frames == 1 ) { if ( !sf_idx_flag ) { for ( out_ch = 0; out_ch < numch_out; out_ch++ ) { for ( in_ch = 0; in_ch < numch_in; in_ch++ ) { for ( b = 0; b < num_spar_bands; b++ ) { hSpar->hMdDec->mixer_mat_prev[4][out_ch][in_ch][b] = hSpar->hMdDec->mixer_mat[out_ch][in_ch][b]; } } } } sf_idx_flag = 1; } else { #endif for ( out_ch = 0; out_ch < numch_out; out_ch++ ) { for ( in_ch = 0; in_ch < numch_in; in_ch++ ) Loading @@ -204,9 +185,6 @@ void ivas_sba_prototype_renderer( } } } #ifdef VLBR_20MS_MD } #endif } #endif } Loading Loading
lib_dec/ivas_sba_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -177,7 +177,7 @@ ivas_error ivas_sba_dec_reconfigure( } #ifdef VLBR_20MS_MD if ( nchan_transport_old != ivas_get_sba_num_TCs( ivas_total_brate, sba_order_internal ) || ( last_ivas_total_brate >= IVAS_512k && ivas_total_brate < IVAS_512k ) || ( last_ivas_total_brate < IVAS_512k && ivas_total_brate >= IVAS_512k ) || ( last_ivas_total_brate >= IVAS_24k4 && ivas_total_brate < IVAS_24k4 ) || ( last_ivas_total_brate < IVAS_24k4 && ivas_total_brate >= IVAS_24k4 ) ) if ( nchan_transport_old != ivas_get_sba_num_TCs( ivas_total_brate, sba_order_internal ) || ( last_ivas_total_brate >= IVAS_512k && ivas_total_brate < IVAS_512k ) || ( last_ivas_total_brate < IVAS_512k && ivas_total_brate >= IVAS_512k ) || ( last_ivas_total_brate < IVAS_24k4 && ivas_total_brate >= IVAS_24k4 ) ) #else if ( nchan_transport_old != ivas_get_sba_num_TCs( ivas_total_brate, sba_order_internal ) || ( last_ivas_total_brate >= IVAS_512k && ivas_total_brate < IVAS_512k ) || ( last_ivas_total_brate < IVAS_512k && ivas_total_brate >= IVAS_512k ) ) #endif Loading
lib_dec/ivas_spar_md_dec.c +4 −0 Original line number Diff line number Diff line Loading @@ -3183,7 +3183,11 @@ void ivas_spar_to_dirac( } } /* expand DirAC TC 20ms MD for residual channels to all subframes*/ #ifdef VLBR_20MS_MD for ( block = 0; block < num_md_sub_frames; block++ ) #else for ( block = 0; block < MAX_PARAM_SPATIAL_SUBFRAMES; block++ ) #endif { for ( band = SPAR_DIRAC_SPLIT_START_BAND; band < IVAS_MAX_NUM_BANDS; band++ ) { Loading
lib_rend/ivas_sba_rendering.c +8 −30 Original line number Diff line number Diff line Loading @@ -70,8 +70,7 @@ void ivas_sba_prototype_renderer( int16_t slot_idx_start, md_idx; #endif #ifdef VLBR_20MS_MD int16_t sf_idx_flag, num_md_sub_frames; sf_idx_flag = 0; int16_t num_md_sub_frames; num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); #endif Loading Loading @@ -166,6 +165,9 @@ void ivas_sba_prototype_renderer( { /* we have crossed an unadapted parameter sf border, update previous mixing matrices */ int16_t md_sf = md_idx / JBM_CLDFB_SLOTS_IN_SUBFRAME; #ifdef VLBR_20MS_MD md_sf = ( num_md_sub_frames == MAX_PARAM_SPATIAL_SUBFRAMES ) ? md_sf : 0; #endif hSpar->i_subframe++; hSpar->i_subframe = min( hSpar->i_subframe, MAX_PARAM_SPATIAL_SUBFRAMES ); mvr2r( hSpar->hMdDec->mixer_mat_prev[1][0][0], hSpar->hMdDec->mixer_mat_prev[0][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); Loading @@ -173,27 +175,6 @@ void ivas_sba_prototype_renderer( mvr2r( hSpar->hMdDec->mixer_mat_prev[3][0][0], hSpar->hMdDec->mixer_mat_prev[2][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); mvr2r( hSpar->hMdDec->mixer_mat_prev[4][0][0], hSpar->hMdDec->mixer_mat_prev[3][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); #ifdef VLBR_20MS_MD if ( num_md_sub_frames == 1 ) { if ( !sf_idx_flag ) { for ( out_ch = 0; out_ch < numch_out; out_ch++ ) { for ( in_ch = 0; in_ch < numch_in; in_ch++ ) { for ( b = 0; b < num_spar_bands; b++ ) { hSpar->hMdDec->mixer_mat_prev[4][out_ch][in_ch][b] = hSpar->hMdDec->mixer_mat[out_ch][in_ch][b]; } } } } sf_idx_flag = 1; } else { #endif for ( out_ch = 0; out_ch < numch_out; out_ch++ ) { for ( in_ch = 0; in_ch < numch_in; in_ch++ ) Loading @@ -204,9 +185,6 @@ void ivas_sba_prototype_renderer( } } } #ifdef VLBR_20MS_MD } #endif } #endif } Loading