Loading lib_com/ivas_ism_com.c +21 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,10 @@ #define BETA_ISM_LOW_IMP 0.6f #define BETA_ISM_MEDIUM_IMP 0.8f #ifdef FIX_562_ISM2_64KBPS #define MAX_BRATE_TCX_32k 48000 #endif /*-------------------------------------------------------------------* * bitbudget_to_brate() Loading Loading @@ -346,6 +350,23 @@ ivas_error ivas_ism_config( bits_CoreCoder[ch] = tmp; } #ifdef FIX_562_ISM2_64KBPS /* limitaton to avoid too high bitrate in one active TCX channel */ if ( element_brate[0] >= SCE_CORE_16k_LOW_LIMIT && element_brate[0] <= IVAS_32k ) { diff = 0; limit_high = MAX_BRATE_TCX_32k / FRAMES_PER_SEC; for ( ch = 0; ch < n_ISms; ch++ ) { tmp = (int16_t) min( bits_CoreCoder[ch], limit_high ); diff += bits_CoreCoder[ch] - tmp; bits_CoreCoder[ch] = tmp; } } #endif if ( diff > 0 ) { ch = 0; Loading lib_com/options.h +3 −0 Original line number Diff line number Diff line Loading @@ -167,6 +167,9 @@ #define FIX_564 /* Nokia: Issue 564: Fix gains in JBM path for SBA with parametric binaural renderer */ #define FIX_566_2DIR_MASA_384K /* Nokia: Issued 566: Bugfix in 384k MASA metadata encoding of second direction */ #define FIX_562_ISM2_64KBPS /* VA: issue 562: fix ISM2 at 64kbps issue */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading lib_dec/ivas_ism_metadata_dec.c +5 −0 Original line number Diff line number Diff line Loading @@ -542,7 +542,12 @@ ivas_error ivas_ism_metadata_dec( if ( ism_mode == ISM_MODE_DISC ) { #ifdef FIX_532_ISM_MD_INACTIVE #ifdef FIX_562_ISM2_64KBPS if ( ism_imp[ch] == ISM_NO_META && ( ( total_brate[ch] < ACELP_8k00 && element_brate[ch] < SCE_CORE_16k_LOW_LIMIT ) || ( total_brate[ch] <= ACELP_16k_LOW_LIMIT && element_brate[ch] >= SCE_CORE_16k_LOW_LIMIT ) ) ) #else if ( ism_imp[ch] == ISM_NO_META && total_brate[ch] < ACELP_8k00 ) #endif #else if ( hIsmMeta[ch]->ism_metadata_flag == 0 && localVAD[ch] == 0 && ism_metadata_flag_global ) #endif Loading lib_enc/ivas_ism_metadata_enc.c +5 −0 Original line number Diff line number Diff line Loading @@ -636,7 +636,12 @@ ivas_error ivas_ism_metadata_enc( if ( ism_mode == ISM_MODE_DISC ) { #ifdef FIX_532_ISM_MD_INACTIVE #ifdef FIX_562_ISM2_64KBPS if ( ism_imp[ch] == ISM_NO_META && ( ( total_brate[ch] < ACELP_8k00 && element_brate[ch] < SCE_CORE_16k_LOW_LIMIT ) || ( total_brate[ch] <= ACELP_16k_LOW_LIMIT && element_brate[ch] >= SCE_CORE_16k_LOW_LIMIT ) ) ) #else if ( ism_imp[ch] == ISM_NO_META && total_brate[ch] < ACELP_8k00 ) #endif #else if ( hIsmMeta[ch]->ism_metadata_flag == 0 && vad_flag[ch] == 0 && ism_metadata_flag_global ) #endif Loading Loading
lib_com/ivas_ism_com.c +21 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,10 @@ #define BETA_ISM_LOW_IMP 0.6f #define BETA_ISM_MEDIUM_IMP 0.8f #ifdef FIX_562_ISM2_64KBPS #define MAX_BRATE_TCX_32k 48000 #endif /*-------------------------------------------------------------------* * bitbudget_to_brate() Loading Loading @@ -346,6 +350,23 @@ ivas_error ivas_ism_config( bits_CoreCoder[ch] = tmp; } #ifdef FIX_562_ISM2_64KBPS /* limitaton to avoid too high bitrate in one active TCX channel */ if ( element_brate[0] >= SCE_CORE_16k_LOW_LIMIT && element_brate[0] <= IVAS_32k ) { diff = 0; limit_high = MAX_BRATE_TCX_32k / FRAMES_PER_SEC; for ( ch = 0; ch < n_ISms; ch++ ) { tmp = (int16_t) min( bits_CoreCoder[ch], limit_high ); diff += bits_CoreCoder[ch] - tmp; bits_CoreCoder[ch] = tmp; } } #endif if ( diff > 0 ) { ch = 0; Loading
lib_com/options.h +3 −0 Original line number Diff line number Diff line Loading @@ -167,6 +167,9 @@ #define FIX_564 /* Nokia: Issue 564: Fix gains in JBM path for SBA with parametric binaural renderer */ #define FIX_566_2DIR_MASA_384K /* Nokia: Issued 566: Bugfix in 384k MASA metadata encoding of second direction */ #define FIX_562_ISM2_64KBPS /* VA: issue 562: fix ISM2 at 64kbps issue */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading
lib_dec/ivas_ism_metadata_dec.c +5 −0 Original line number Diff line number Diff line Loading @@ -542,7 +542,12 @@ ivas_error ivas_ism_metadata_dec( if ( ism_mode == ISM_MODE_DISC ) { #ifdef FIX_532_ISM_MD_INACTIVE #ifdef FIX_562_ISM2_64KBPS if ( ism_imp[ch] == ISM_NO_META && ( ( total_brate[ch] < ACELP_8k00 && element_brate[ch] < SCE_CORE_16k_LOW_LIMIT ) || ( total_brate[ch] <= ACELP_16k_LOW_LIMIT && element_brate[ch] >= SCE_CORE_16k_LOW_LIMIT ) ) ) #else if ( ism_imp[ch] == ISM_NO_META && total_brate[ch] < ACELP_8k00 ) #endif #else if ( hIsmMeta[ch]->ism_metadata_flag == 0 && localVAD[ch] == 0 && ism_metadata_flag_global ) #endif Loading
lib_enc/ivas_ism_metadata_enc.c +5 −0 Original line number Diff line number Diff line Loading @@ -636,7 +636,12 @@ ivas_error ivas_ism_metadata_enc( if ( ism_mode == ISM_MODE_DISC ) { #ifdef FIX_532_ISM_MD_INACTIVE #ifdef FIX_562_ISM2_64KBPS if ( ism_imp[ch] == ISM_NO_META && ( ( total_brate[ch] < ACELP_8k00 && element_brate[ch] < SCE_CORE_16k_LOW_LIMIT ) || ( total_brate[ch] <= ACELP_16k_LOW_LIMIT && element_brate[ch] >= SCE_CORE_16k_LOW_LIMIT ) ) ) #else if ( ism_imp[ch] == ISM_NO_META && total_brate[ch] < ACELP_8k00 ) #endif #else if ( hIsmMeta[ch]->ism_metadata_flag == 0 && vad_flag[ch] == 0 && ism_metadata_flag_global ) #endif Loading