From 8629345a18f5579b1bddcf138d0103a14148dd34 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 5 Aug 2025 09:17:16 +0200 Subject: [PATCH 1/2] port MR --- lib_com/ivas_stereo_td_bit_alloc.c | 31 ++++++++++++++++++++++++++++++ lib_com/options.h | 1 + lib_enc/ivas_core_enc.c | 8 ++++++++ 3 files changed, 40 insertions(+) diff --git a/lib_com/ivas_stereo_td_bit_alloc.c b/lib_com/ivas_stereo_td_bit_alloc.c index fd712b509..7829e59fe 100644 --- a/lib_com/ivas_stereo_td_bit_alloc.c +++ b/lib_com/ivas_stereo_td_bit_alloc.c @@ -456,17 +456,48 @@ void td_stereo_param_updt( if ( tdm_use_IAWB_Ave_lpc == 1 ) { mvr2r( IAWB_Ave, tdm_lsfQ_PCh, M ); + +#ifdef FIX_1111_TDM_LSP_BUFFER + if ( tdm_lspQ_PCh != NULL ) + { + lsf2lsp( tdm_lsfQ_PCh, tdm_lspQ_PCh, M, INT_FS_12k8 ); + } +#else lsf2lsp( tdm_lsfQ_PCh, tdm_lspQ_PCh, M, INT_FS_12k8 ); +#endif } else if ( flag_ACELP16k == 1 ) { +#ifdef FIX_1111_TDM_LSP_BUFFER + if ( tdm_lspQ_PCh != NULL ) + { + mvr2r( lsp_old_PCh, tdm_lspQ_PCh, M ); + lsp_convert_poly( tdm_lspQ_PCh, L_FRAME, 0 ); + lsp2lsf( tdm_lspQ_PCh, tdm_lsfQ_PCh, M, INT_FS_12k8 ); + } + else + { + float lsp_temp[M]; + mvr2r( lsp_old_PCh, lsp_temp, M ); + lsp_convert_poly( lsp_temp, L_FRAME, 0 ); + lsp2lsf( lsp_temp, tdm_lsfQ_PCh, M, INT_FS_12k8 ); + } +#else mvr2r( lsp_old_PCh, tdm_lspQ_PCh, M ); lsp_convert_poly( tdm_lspQ_PCh, L_FRAME, 0 ); lsp2lsf( tdm_lspQ_PCh, tdm_lsfQ_PCh, M, INT_FS_12k8 ); +#endif } else { +#ifdef FIX_1111_TDM_LSP_BUFFER + if ( tdm_lspQ_PCh != NULL ) + { + mvr2r( lsp_old_PCh, tdm_lspQ_PCh, M ); + } +#else mvr2r( lsp_old_PCh, tdm_lspQ_PCh, M ); +#endif mvr2r( lsf_old_PCh, tdm_lsfQ_PCh, M ); } diff --git a/lib_com/options.h b/lib_com/options.h index 0c00d7504..698d7dc3f 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -184,6 +184,7 @@ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ #define NONBE_FIX_984_OMASA_EXT_OUTPUT /* Nok: issue 1497 - porting OMASA EXT MR */ #define NONBE_FIX_1028_1DB_TCX_LEVEL_DROP /* VA: Harmonize the logic setting LP weighting factor between TCX encoder and TCX decoder */ +#define FIX_1111_TDM_LSP_BUFFER /* VA: issue 1111: remove unused buffer `tdm_lspQ_PCh[]' */ /* #################### End BASOP porting switches ############################ */ diff --git a/lib_enc/ivas_core_enc.c b/lib_enc/ivas_core_enc.c index ef58b6180..ecaf69da8 100644 --- a/lib_enc/ivas_core_enc.c +++ b/lib_enc/ivas_core_enc.c @@ -99,7 +99,11 @@ ivas_error ivas_core_enc( int16_t Voicing_flag[CPE_CHANNELS]; float pitch_buf[CPE_CHANNELS][NB_SUBFR16k]; int16_t unbits[CPE_CHANNELS]; +#ifdef FIX_1111_TDM_LSP_BUFFER + float tdm_lsfQ_PCh[M]; +#else float tdm_lspQ_PCh[M], tdm_lsfQ_PCh[M]; +#endif int16_t last_element_mode, tdm_Pitch_reuse_flag; int32_t element_brate, last_element_brate, input_Fs; int16_t diff_nBits; @@ -270,7 +274,11 @@ ivas_error ivas_core_enc( if ( st->element_mode == IVAS_CPE_TD && n == 0 ) { +#ifdef FIX_1111_TDM_LSP_BUFFER + td_stereo_param_updt( st->lsp_old, st->lsf_old, pitch_buf[0], NULL, tdm_lsfQ_PCh, hStereoTD->tdm_Pri_pitch_buf, st->flag_ACELP16k, hStereoTD->tdm_use_IAWB_Ave_lpc ); +#else td_stereo_param_updt( st->lsp_old, st->lsf_old, pitch_buf[0], tdm_lspQ_PCh, tdm_lsfQ_PCh, hStereoTD->tdm_Pri_pitch_buf, st->flag_ACELP16k, hStereoTD->tdm_use_IAWB_Ave_lpc ); +#endif } } -- GitLab From 9bcb76c9517253af644cdc9558165ecb4ae5c63b Mon Sep 17 00:00:00 2001 From: vaclav Date: Fri, 8 Aug 2025 16:58:29 +0200 Subject: [PATCH 2/2] updt --- lib_dec/init_dec.c | 5 ++++- lib_enc/ivas_core_enc.c | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib_dec/init_dec.c b/lib_dec/init_dec.c index 8a6e8950f..7d0ca6dac 100644 --- a/lib_dec/init_dec.c +++ b/lib_dec/init_dec.c @@ -293,8 +293,11 @@ ivas_error init_decoder( st->last_vad = 0; st->last_active_brate = ACELP_7k20; st->last_CNG_L_frame = L_FRAME; - +#ifdef NONBE_1325_TD_STEREO_QUANT_LSF_SEC st->active_cnt = CNG_TYPE_HO; +#else + st->active_cnt = 20; +#endif if ( idchan == 0 && ( st->element_mode == EVS_MONO || st->element_mode == IVAS_CPE_DFT || st->element_mode == IVAS_CPE_TD ) ) { diff --git a/lib_enc/ivas_core_enc.c b/lib_enc/ivas_core_enc.c index ae7360f47..211a76f18 100644 --- a/lib_enc/ivas_core_enc.c +++ b/lib_enc/ivas_core_enc.c @@ -275,7 +275,11 @@ ivas_error ivas_core_enc( if ( st->element_mode == IVAS_CPE_TD && n == 0 ) { #ifdef FIX_1111_TDM_LSP_BUFFER +#ifdef NONBE_1325_TD_STEREO_QUANT_LSF_SEC td_stereo_param_updt( st->lsp_old, st->lsf_old, pitch_buf[0], tdm_lsfQ_PCh, hStereoTD->tdm_Pri_pitch_buf, st->flag_ACELP16k, hStereoTD->tdm_use_IAWB_Ave_lpc ); +#else + td_stereo_param_updt( st->lsp_old, st->lsf_old, pitch_buf[0], NULL, tdm_lsfQ_PCh, hStereoTD->tdm_Pri_pitch_buf, st->flag_ACELP16k, hStereoTD->tdm_use_IAWB_Ave_lpc ); +#endif #else td_stereo_param_updt( st->lsp_old, st->lsf_old, pitch_buf[0], tdm_lspQ_PCh, tdm_lsfQ_PCh, hStereoTD->tdm_Pri_pitch_buf, st->flag_ACELP16k, hStereoTD->tdm_use_IAWB_Ave_lpc ); #endif -- GitLab