From 33cedc151fd196acdab6402088059736f807a917 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 30 Nov 2022 16:21:09 +0100 Subject: [PATCH 1/2] comment --- lib_com/options.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 0ec45254f9..1cff0303b4 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -175,7 +175,8 @@ #define FIX_GET_DELAY_RETURN /* Issue 223: change return data type in function get_delay() */ #define NTT_REDUC_COMP_POC /* Contribution : Complexity reduction of phase spectrum in stereo downmix*/ -#define FIX_ISM_INACTIVE_BITS /* fix bitbudget distribution in inactive frames in ISM format */ +#define FIX_ISM_INACTIVE_BITS /* Issue 230: fix bitbudget distribution in inactive frames in ISM format */ + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ -- GitLab From 28c818e25b49e5cea478ed13646cd21158237b0a Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 6 Dec 2022 18:38:22 +0100 Subject: [PATCH 2/2] reintroduce FIX_ISM_INACTIVE_BITS fix --- lib_com/ivas_ism_config.c | 12 ++++++++++++ lib_enc/ivas_ism_metadata_enc.c | 14 ++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/lib_com/ivas_ism_config.c b/lib_com/ivas_ism_config.c index fc4be3127e..75ef0a2ae7 100644 --- a/lib_com/ivas_ism_config.c +++ b/lib_com/ivas_ism_config.c @@ -199,7 +199,11 @@ ivas_error ivas_ism_config( diff = 0; for ( ch = 0; ch < n_ISms; ch++ ) { +#ifdef FIX_ISM_INACTIVE_BITS + int16_t limit; +#else int32_t limit; +#endif limit = MIN_BRATE_SWB_BWE / FRMS_PER_SECOND; if ( element_brate[ch] < MIN_BRATE_SWB_STEREO ) /* replicate function set_bw() -> check the coded audio band-width */ @@ -219,12 +223,20 @@ ivas_error ivas_ism_config( else if ( ism_imp[ch] == ISM_LOW_IMP ) { tmp = (int16_t) ( BETA_ISM_LOW_IMP * bits_CoreCoder[ch] ); +#ifdef FIX_ISM_INACTIVE_BITS + tmp = max( limit, tmp ); +#else tmp = (int16_t) max( limit, bits_CoreCoder[ch] - tmp ); +#endif } else if ( ism_imp[ch] == ISM_MEDIUM_IMP ) { tmp = (int16_t) ( BETA_ISM_MEDIUM_IMP * bits_CoreCoder[ch] ); +#ifdef FIX_ISM_INACTIVE_BITS + tmp = max( limit, tmp ); +#else tmp = (int16_t) max( limit, bits_CoreCoder[ch] - tmp ); +#endif } else /* ism_imp[ch] == ISM_HIGH_IMP */ { diff --git a/lib_enc/ivas_ism_metadata_enc.c b/lib_enc/ivas_ism_metadata_enc.c index 60550bca0b..c4fcd2dee7 100644 --- a/lib_enc/ivas_ism_metadata_enc.c +++ b/lib_enc/ivas_ism_metadata_enc.c @@ -105,6 +105,20 @@ static void rate_ism_importance( { ctype = hSCE[ch]->hCoreCoder[0]->coder_type_raw; +#ifdef FIX_ISM_INACTIVE_BITS + if ( hSCE[ch]->hCoreCoder[0]->tcxonly ) + { + if ( hSCE[ch]->hCoreCoder[0]->localVAD == 0 ) + { + ctype = INACTIVE; + } + else if ( ctype == UNVOICED ) + { + ctype = GENERIC; + } + } +#endif + if ( hIsmMeta[ch]->ism_metadata_flag == 0 ) { ism_imp[ch] = ISM_NO_META; -- GitLab