Loading lib_com/ivas_ism_config.c +0 −41 Original line number Diff line number Diff line Loading @@ -743,17 +743,14 @@ int32_t ivas_interformat_brate( return element_brate_out; } #endif #ifdef OMASA_BRATE_FIX /*--------------------------------------------------------------- * ivas_combined_format_brate_sanity() * * Sanity check in combined format coding * ---------------------------------------------------------------*/ #ifdef OMASA_BRATE_FIX_ALT void ivas_combined_format_brate_sanity( const int32_t element_brate, /* i : element bitrate */ const int16_t core, /* i : core */ Loading Loading @@ -789,43 +786,5 @@ void ivas_combined_format_brate_sanity( return; } #else void ivas_combined_format_brate_sanity( const int32_t element_brate, /* i : element bitrate */ const int32_t brate_surplus, /* i : surplus bitrate */ int16_t nb_bits_metadata[], /* i/o: number of metadata bits */ const int16_t nchan_ism, /* i : number of objects */ int16_t *diff_nBits /* o : number of differential bits */ ) { /* sanity check: at lowest IVAS bit-rates and one ISM channel coded by low-rate core-coder mode, it can happen that the CPE (MASA) bit-budget for core-coding @12.8 kHz is too high => increase the ISM low-rate mode bit-rate */ int16_t nBits_CPE; nBits_CPE = (int16_t) ( element_brate / FRAMES_PER_SEC ); nBits_CPE -= nb_bits_metadata[0]; nBits_CPE += (int16_t) ( brate_surplus / FRAMES_PER_SEC ); nBits_CPE -= ( WB_TBE_0k35 / FRAMES_PER_SEC ); nBits_CPE -= nb_bits_metadata[1]; nBits_CPE -= ( IVAS_FORMAT_SIGNALING_NBITS_SBA + 1 ); nBits_CPE -= 10; *diff_nBits = 0; if ( nchan_ism == 1 && element_brate < ACELP_12k8_HIGH_LIMIT ) { int16_t limit_high = ACELP_12k8_HIGH_LIMIT / FRAMES_PER_SEC; *diff_nBits = nBits_CPE - limit_high; if ( *diff_nBits > 0 ) { nb_bits_metadata[0] += *diff_nBits; } } return; } #endif #endif #endif lib_com/ivas_prot.h +0 −13 Original line number Diff line number Diff line Loading @@ -5181,24 +5181,12 @@ int32_t ivas_interformat_brate( const int16_t ism_imp /* i : ISM importance flag */ ); #ifdef OMASA_BRATE_FIX #ifdef OMASA_BRATE_FIX_ALT void ivas_combined_format_brate_sanity( const int32_t element_brate, /* i : element bitrate */ const int16_t core, /* i : core */ int32_t *core_brate, /* i/o: core bitrate */ int16_t *diff_nBits /* o : number of differential bits */ ); #else void ivas_combined_format_brate_sanity( const int32_t element_brate, /* i : element bitrate */ const int32_t brate_surplus, /* i : surplus bitrate */ int16_t nb_bits_metadata[], /* i/o: number of metadata bits */ const int16_t nchan_ism, /* i : number of objects */ int16_t *diff_nBits /* o : number of differential bits */ ); #endif #endif #endif ISM_MODE ivas_omasa_ism_mode_select( Loading @@ -5218,7 +5206,6 @@ void ivas_masa_ism_data_open( Decoder_Struct* st_ivas /* i/o: IVAS decoder handle */ ); void preProcessStereoTransportsForMovedObjects( Decoder_Struct* st_ivas, float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], Loading lib_com/ivas_rom_com.c +2 −2 Original line number Diff line number Diff line Loading @@ -2786,13 +2786,13 @@ int32_t sep_object_brate[][MAX_NUM_OBJECTS] = {0, 0, 0, 0}, /* 13k2 */ {0, 0, 0, 0}, /* 16k4 */ {9600, 0, 0, 0}, /* 24k4 */ #ifdef OMASA_BRATE_FIX #ifdef OMASA_BRATE {11000, 0, 0, 0}, /* 32k */ #else {9600, 0, 0, 0}, /* 32k */ #endif {IVAS_13k2, 0, 0, 0}, /* 48k */ #ifdef OMASA_BRATE_FIX #ifdef OMASA_BRATE {16000, 12000, 0, 0}, /* 64k */ #else {16000, IVAS_13k2, 0, 0}, /* 64k */ Loading lib_com/options.h +1 −3 Original line number Diff line number Diff line Loading @@ -163,9 +163,7 @@ #define MASA_AND_OBJECTS_VE // VA: improve codec print-outs #define OMASA_BRATE /* VA: combined format bit-budget distribution */ #define OMASA_BRATE_FIX // fix at lowest bitrates and 1 inactive ISM - more verification/tuning needed #define OMASA_BRATE_FIX_ALT #define OMASA_BRATE_TD // support of bitrate adaptation in TD stereo - work in progress #define OMASA_BRATE_TD // support of bitrate adaptation in TD stereo #define DEBUG_VA // output 'res/brate_ism' and 'res_brate_masa' bit-rates debugging files #endif Loading lib_dec/core_switching_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -1040,7 +1040,7 @@ void bandwidth_switching_detect( st->bws_cnt1 = 0; } else if ( st->total_brate > ACELP_9k60 && st->last_core_brate < ACELP_9k60 && st->bwidth == SWB && st->last_bwidth == WB #ifdef OMASA_BRATE // VE: !!!!! this breaks BE in pure ISM #ifdef OMASA_BRATE // VE: !!!!! this breaks BE in pure ISM unless FIX_299_ISM_BWS is activated && st->last_core_brate != 2450 #endif ) Loading Loading
lib_com/ivas_ism_config.c +0 −41 Original line number Diff line number Diff line Loading @@ -743,17 +743,14 @@ int32_t ivas_interformat_brate( return element_brate_out; } #endif #ifdef OMASA_BRATE_FIX /*--------------------------------------------------------------- * ivas_combined_format_brate_sanity() * * Sanity check in combined format coding * ---------------------------------------------------------------*/ #ifdef OMASA_BRATE_FIX_ALT void ivas_combined_format_brate_sanity( const int32_t element_brate, /* i : element bitrate */ const int16_t core, /* i : core */ Loading Loading @@ -789,43 +786,5 @@ void ivas_combined_format_brate_sanity( return; } #else void ivas_combined_format_brate_sanity( const int32_t element_brate, /* i : element bitrate */ const int32_t brate_surplus, /* i : surplus bitrate */ int16_t nb_bits_metadata[], /* i/o: number of metadata bits */ const int16_t nchan_ism, /* i : number of objects */ int16_t *diff_nBits /* o : number of differential bits */ ) { /* sanity check: at lowest IVAS bit-rates and one ISM channel coded by low-rate core-coder mode, it can happen that the CPE (MASA) bit-budget for core-coding @12.8 kHz is too high => increase the ISM low-rate mode bit-rate */ int16_t nBits_CPE; nBits_CPE = (int16_t) ( element_brate / FRAMES_PER_SEC ); nBits_CPE -= nb_bits_metadata[0]; nBits_CPE += (int16_t) ( brate_surplus / FRAMES_PER_SEC ); nBits_CPE -= ( WB_TBE_0k35 / FRAMES_PER_SEC ); nBits_CPE -= nb_bits_metadata[1]; nBits_CPE -= ( IVAS_FORMAT_SIGNALING_NBITS_SBA + 1 ); nBits_CPE -= 10; *diff_nBits = 0; if ( nchan_ism == 1 && element_brate < ACELP_12k8_HIGH_LIMIT ) { int16_t limit_high = ACELP_12k8_HIGH_LIMIT / FRAMES_PER_SEC; *diff_nBits = nBits_CPE - limit_high; if ( *diff_nBits > 0 ) { nb_bits_metadata[0] += *diff_nBits; } } return; } #endif #endif #endif
lib_com/ivas_prot.h +0 −13 Original line number Diff line number Diff line Loading @@ -5181,24 +5181,12 @@ int32_t ivas_interformat_brate( const int16_t ism_imp /* i : ISM importance flag */ ); #ifdef OMASA_BRATE_FIX #ifdef OMASA_BRATE_FIX_ALT void ivas_combined_format_brate_sanity( const int32_t element_brate, /* i : element bitrate */ const int16_t core, /* i : core */ int32_t *core_brate, /* i/o: core bitrate */ int16_t *diff_nBits /* o : number of differential bits */ ); #else void ivas_combined_format_brate_sanity( const int32_t element_brate, /* i : element bitrate */ const int32_t brate_surplus, /* i : surplus bitrate */ int16_t nb_bits_metadata[], /* i/o: number of metadata bits */ const int16_t nchan_ism, /* i : number of objects */ int16_t *diff_nBits /* o : number of differential bits */ ); #endif #endif #endif ISM_MODE ivas_omasa_ism_mode_select( Loading @@ -5218,7 +5206,6 @@ void ivas_masa_ism_data_open( Decoder_Struct* st_ivas /* i/o: IVAS decoder handle */ ); void preProcessStereoTransportsForMovedObjects( Decoder_Struct* st_ivas, float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], Loading
lib_com/ivas_rom_com.c +2 −2 Original line number Diff line number Diff line Loading @@ -2786,13 +2786,13 @@ int32_t sep_object_brate[][MAX_NUM_OBJECTS] = {0, 0, 0, 0}, /* 13k2 */ {0, 0, 0, 0}, /* 16k4 */ {9600, 0, 0, 0}, /* 24k4 */ #ifdef OMASA_BRATE_FIX #ifdef OMASA_BRATE {11000, 0, 0, 0}, /* 32k */ #else {9600, 0, 0, 0}, /* 32k */ #endif {IVAS_13k2, 0, 0, 0}, /* 48k */ #ifdef OMASA_BRATE_FIX #ifdef OMASA_BRATE {16000, 12000, 0, 0}, /* 64k */ #else {16000, IVAS_13k2, 0, 0}, /* 64k */ Loading
lib_com/options.h +1 −3 Original line number Diff line number Diff line Loading @@ -163,9 +163,7 @@ #define MASA_AND_OBJECTS_VE // VA: improve codec print-outs #define OMASA_BRATE /* VA: combined format bit-budget distribution */ #define OMASA_BRATE_FIX // fix at lowest bitrates and 1 inactive ISM - more verification/tuning needed #define OMASA_BRATE_FIX_ALT #define OMASA_BRATE_TD // support of bitrate adaptation in TD stereo - work in progress #define OMASA_BRATE_TD // support of bitrate adaptation in TD stereo #define DEBUG_VA // output 'res/brate_ism' and 'res_brate_masa' bit-rates debugging files #endif Loading
lib_dec/core_switching_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -1040,7 +1040,7 @@ void bandwidth_switching_detect( st->bws_cnt1 = 0; } else if ( st->total_brate > ACELP_9k60 && st->last_core_brate < ACELP_9k60 && st->bwidth == SWB && st->last_bwidth == WB #ifdef OMASA_BRATE // VE: !!!!! this breaks BE in pure ISM #ifdef OMASA_BRATE // VE: !!!!! this breaks BE in pure ISM unless FIX_299_ISM_BWS is activated && st->last_core_brate != 2450 #endif ) Loading